Ressources

Config Connector comprend un ensemble de définitions de ressources personnalisées (CRD, Custom Resource Definitions). Chaque CRD vous permet de configurer une ressource Google Cloud à partir de Kubernetes. Config Connector vous permet également de tirer parti d'un certain nombre de fonctionnalités Kubernetes pour gérer les ressources Google Cloud.

Cette page explique comment Config Connector utilise les objets Kubernetes et leurs métadonnées.

Objets Kubernetes et ressources de Config Connector

Par exemple, lorsque vous créez un objet Kubernetes de kind: SQLInstance, Config Connector crée une instance Cloud SQL. Cette section décrit comment Config Connector étend les types d'objets.

Spécification et état

Chaque ressource Config Connector est un objet Kubernetes avec un Spec et un Status.

Spécification
Le champ Spec contient tous les champs qui définissent l'état souhaité d'un objet, à l'exception de Labels. Les sous-champs d'un Spec font référence à la ressource Google Cloud associée. Lorsque vous modifiez un sous-champ, la valeur de la ressource Google Cloud est éventuellement cohérente avec la valeur souhaitée.
Un exemple de champ accessible en écriture est databaseVersion dans une ressource d'instance SQL.
État
Le champ Status est en lecture seule et contient l'état actuel de votre objet. Config Connector lit périodiquement des informations sur votre ressource Google Cloud et met à jour le Status. Vous pouvez vérifier les messages d'erreur ou l'aptitude d'une ressource en consultant le champ Status.Condition.
Un exemple de champ Status en lecture seule est le connectionName d'une ressource d'instance SQL.

Métadonnées des objets

Chaque ressource Config Connector comprend un champ de métadonnées. Cette section décrit comment Config Connector utilise les sous-champs dans les métadonnées.

Nom
La création d'une ressource Config Connector crée une ressource Google Cloud portant le même nom.
Espace de noms
L'espace de noms dans lequel vous créez une ressource Config Connector détermine le projet qui contient la ressource Google Cloud. Pour en savoir plus sur les espaces de noms, consultez la page Espaces de noms Kubernetes et projets Google Cloud.
Libellés
Les libellés du champ de métadonnées d'une ressource Config Connector sont également ajoutés à la ressource Google Cloud associée.
De plus, Config Connector ajoute un libellé système nommé managed-by-cnrm avec une valeur de true à vos ressources Google Cloud.
Annotations

Config Connector peut effectuer sur les ressources des actions supplémentaires qui ne sont pas définies dans le champ Spec. Ces actions sont définies dans les sous-champs de metadata.annotations. Les valeurs d'annotation doivent être des chaînes. Les types d'annotations compatibles avec Config Connector sont décrits dans les sections suivantes.

Suppression

Par défaut, Config Connector supprime une ressource après que vous avez supprimé l'objet de votre cluster. Si vous préférez conserver la ressource, définissez l'annotation deletion-policy.

Directives

Les directives indiquent à Config Connector d'effectuer des actions supplémentaires au-delà de la création ou de la suppression de ressources.

Par exemple, Cloud Storage ne vous permet pas de supprimer un StorageBucket qui contient des objets. L'application de l'annotation force-destroy au bucket, puis la suppression de ce bucket oblige Config Connector à supprimer d'abord tous les objets du bucket, puis à supprimer le bucket.

Par exemple, la directive force-destroy est déclarée dans l'extrait de code YAML suivant.

metadata:
  annotations:
    cnrm.cloud.google.com/force-destroy: "true"

Pour identifier les ressources compatibles avec les directives, consultez la section Ressources.

Dossiers et ressources hiérarchiques

En plus de la gestion des ressources dans les produits Google Cloud, Config Connector permet de créer et de gérer des ressources dans les dossiers et organisations Google Cloud. Pour en savoir plus, consultez la section Espaces de noms et projets.

Utiliser RBAC pour le contrôle des accès

Le contrôle des accès basé sur les rôles (RBAC) de Kubernetes sécurise vos ressources. Vous pouvez contrôler la création de ressources Google Cloud en accordant des autorisations RBAC. Pour en savoir plus, consultez la section Sécuriser l'accès aux ressources.

Condition de l'état

L'aptitude que Config Connector met à disposition dans status.condition a un double objectif :

  • Indiquer quand une ressource est prête. Lorsqu'une ressource est réconciliée et prête, son status.condition.status est défini sur True. Pour vérifier si une ressource est prête, consultez la section Vérifier si une ressource est prête.
  • Afficher des informations ou des erreurs supplémentaires. L'aptitude comporte des champs Message et Reason qui fournissent des informations supplémentaires sur l'état de la ressource.

Événements

Les changements d'état importants des ressources Config Connector sont visibles en tant qu'événements Kubernetes. Pour en savoir plus, consultez la section Afficher des événements.

Configuration déclarative et cohérence à terme

Avec la configuration déclarative, vous définissez l'état souhaité du système. Le système fonctionne alors en permanence pour demeurer le plus proche possible de cet état. Consultez la section Gestion déclarative des objets Kubernetes à l'aide des fichiers de configuration pour en savoir plus.

À l'aide de Config Connector, vous pouvez créer et mettre à jour des ressources dans n'importe quel ordre, quelles que soient les relations de dépendance. GKE déplace votre configuration déclarée vers la cohérence à terme avec l'état souhaité.

Par exemple, si vous créez un PubSubSubscription avant le PubSubTopic correspondant, Config Connector attend que le sujet soit créé avant de créer l'abonnement associé.

La durée de votre installation de Config Connector varie selon le nombre et les types de ressources qu'elle gère. Les modifications apportées à un cluster GKE sont généralement exécutées en quelques secondes. Cependant, le temps de création des ressources Google Cloud peut varier en fonction du type de ressource. Par exemple, cela ne prend que quelques secondes pour créer un seul PubSubTopic. Les ressources Google Cloud ne parviennent à être cohérentes qu'après leur création. Par exemple, lors de la création d'un SQLInstance et d'un SQLDatabase, le système est incohérent durant quelques minutes pendant la création de la base de données.

GKE et Config Connector rapprochent chaque ressource avec chaque mise à jour ou toutes les 10 minutes. En cas d'erreur lors du rapprochement, Config Connector effectue une nouvelle tentative toutes les 30 secondes avec un intervalle exponentiel entre les tentatives. Vous pouvez afficher toutes les erreurs dans les événements d'une ressource donnée.

Étape suivante