Gérer les ressources avec le champ resourceID


Cette page explique comment gérer les ressources avec le champ resourceID.

Config Connector vous permet de spécifier explicitement l'ID de ressource d'une ressource Google Cloud à l'aide du champ resourceID immuable, mais facultatif, pour créer ou acquérir la ressource. "Immuable, mais facultatif" signifie que vous pouvez choisir de spécifier ou non le champ resourceID, mais que vous ne pouvez apporter aucune modification à la valeur du champ resourceID après avoir appliqué le fichier manifeste à votre cluster.

Le champ resourceID augmente la flexibilité d'attribution de nom à une ressource Google Cloud avec un ID de ressource spécifié par l'utilisateur. À l'aide du champ resourceID de vos ressources Config Connector, vous pouvez définir plusieurs ressources Config Connector du même genre avec le même nom de ressource Google Cloud dans différents projets, dossiers, organisations ou ressources parentes au sein d'un même espace de noms. Le nom de la ressource Google Cloud n'est pas non plus limité par la convention d'attribution de noms d'un nom d'objet Kubernetes. En outre, le champ resourceID permet d'acquérir une ressource Google Cloud ayant un ID de ressource généré par le service.

Config Connector fait de l'espace de noms le "propriétaire" d'une ressource pour éviter qu'elle ne soit utilisée par un autre propriétaire. Toutefois, si vous utilisez le champ resourceID, plusieurs ressources portant le même nom de ressource Google Cloud peuvent être créées sous le même espace de noms. Ces ressources créent des conflits que Config Connector ne peut pas gérer. Vous devez résoudre les conflits manuellement.

Types d'ID de ressource

Dans Config Connector, les ID des ressources peuvent être spécifiés par l'utilisateur ou générés par le service.

ID de ressource spécifié par l'utilisateur
ID de ressource déterminé, spécifié et transmis par l'utilisateur avant la création de la ressource. Vous pouvez créer ou acquérir une ressource qui possède un ID spécifié par l'utilisateur avec le champ resourceID.
ID de ressource généré par le service
ID de ressource généré par le service lors de la création de la ressource. Il peut être récupéré par l'utilisateur une fois la ressource créée. Vous pouvez acquérir une ressource qui possède un ID généré par le service avec le champ resourceID. Laissez le champ non spécifié si vous souhaitez créer une ressource dotée d'un ID généré par le service. Consultez la liste des ressources avec un ID de ressource généré par le service.

Spécifier le champ resourceID

Vous pouvez spécifier le champ resourceID dans spec pour la ressource.

Le fichier manifeste suivant décrit comment spécifier le champ resourceID pour un sujet Pub/Sub. Le nom de la ressource Config Connector est pubsub-topic-sample et le nom du sujet Pub/Sub est pubsub-topic-id.

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
  name: pubsub-topic-sample
spec:
  resourceID: pubsub-topic-id

Créer une ressource avec le champ resourceID

Créer un ensemble de données BigQuery

Dans cet exemple, vous créez un ensemble de données BigQuery à l'aide de Config Connector avec le champ resourceID. La valeur du champ resourceID doit suivre la convention d'attribution de noms pour le champ datasetId de l'ensemble de données BigQuery.

  1. Copiez le contenu suivant dans un fichier nommé bigquery-dataset.yaml.

      apiVersion: bigquery.cnrm.cloud.google.com/v1beta1
      kind: BigQueryDataset
      metadata:
        name: bigquerydataset-sample-for-creation
      spec:
        resourceID: bigquerydataset_sample_with_resourceid
        defaultTableExpirationMs: 3600000
        description: "BigQuery Dataset Sample with the ResourceID Field"
        friendlyName: bigquerydataset-sample-with-resourceid
        location: US
    
  2. Appliquez le fichier YAML à votre cluster.

    kubectl apply --namespace CC_NAMESPACE -f bigquery-dataset.yaml

    Remplacez CC_NAMESPACE par l'espace de noms à partir duquel Config Connector gère les ressources.

  3. Utilisez kubectl describe pour afficher les détails sur l'ensemble de données.

    kubectl describe --namespace CC_NAMESPACE bigquerydataset bigquerydataset-sample-for-creation

    Remplacez CC_NAMESPACE par l'espace de noms à partir duquel Config Connector gère les ressources.

Acquérir une ressource avec le champ resourceID

Lorsque vous gérez une ressource Google Cloud avec le champ resourceID, Config Connector acquiert la ressource si :

  • La ressource dispose d'un ID de ressource spécifié par l'utilisateur, et les valeurs du fichier manifeste et du nom de ressource correspondent à une ressource existante ; ou
  • La ressource possède un ID de ressource généré par le service.

Acquérir un dossier

Pour acquérir un dossier à l'aide de Config Connector avec le champ resourceID, procédez comme suit :

  1. Copiez le contenu suivant dans un fichier nommé folder.yaml.

        apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1
        kind: Folder
        metadata:
          annotations:
            cnrm.cloud.google.com/organization-id: ORG_ID
            # Remove the deletion-policy annotation if it is safe to delete the
            # folder when the resource is deleted from your cluster.
            cnrm.cloud.google.com/deletion-policy: "abandon"
          name: folder-sample-for-acquisition
        spec:
          resourceID: ACQUIRED_FOLDER_ID
          displayName: ACQUIRED_FOLDER_DISPLAY_NAME
    

    Remplacez les éléments suivants :

    • ORG_ID par l'ID numérique de votre organisation.
    • ACQUIRED_FOLDER_ID par l'ID numérique du dossier à acquérir.
    • ACQUIRED_FOLDER_DISPLAY_NAME par le nom à afficher pour le dossier à acquérir.
  2. Appliquez le fichier YAML à votre cluster.

    kubectl apply --namespace CC_NAMESPACE -f folder.yaml

    Remplacez CC_NAMESPACE par l'espace de noms à partir duquel Config Connector gère les ressources.

  3. Utilisez kubectl describe pour afficher les détails sur le dossier.

    kubectl describe --namespace CC_NAMESPACE folder folder-sample-for-acquisition

    Remplacez CC_NAMESPACE par l'espace de noms à partir duquel Config Connector gère les ressources.

Étapes suivantes

Consultez la documentation de référence de la ressource pour en savoir plus sur les ressources compatibles avec Config Connector.