Installer Config Connector en mode espace de noms


Cette page explique comment installer Config Connector en mode espace de noms.

L'installation en mode espace de noms est une extension de l'installation de Config Connector. Le mode espace de noms permet de gérer plusieurs projets, chacun avec ses propres Google Cloud identités.

Avant de commencer

Avant de configurer Config Connector pour l'exécution en mode espace de noms, assurez-vous d'avoir installé Config Connector.

Configurer Config Connector pour l'exécution en mode espace de noms

Pour activer le mode espace de noms, procédez comme suit:

  1. Copiez le fichier YAML suivant dans un fichier nommé configconnector.yaml :

    apiVersion: core.cnrm.cloud.google.com/v1beta1
    kind: ConfigConnector
    metadata:
      # the name is restricted to ensure that there is only ConfigConnector resource installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    spec:
      mode: namespaced
      stateIntoSpec: Absent
    
  2. Appliquez la configuration à votre cluster à l'aide de la commande kubectl apply :

    kubectl apply -f configconnector.yaml
    

Configurer Config Connector pour gérer les ressources dans vos espaces de noms

Dans les sections suivantes, le projet Google Cloud dans lequel vous installez Config Connector est appelé projet hôte, ou HOST_PROJECT_ID. Les autres projets dans lesquels vous gérez des ressources sont appelés projets gérés, ou MANAGED_PROJECT_ID. Il peut s'agir du même projet si vous souhaitez uniquement utiliser Config Connector pour créer des ressources Google Cloud dans le projet dans lequel se trouve votre cluster.

Créer un espace de noms

Vous pouvez ignorer cette étape si vous disposez déjà d'un espace de noms à utiliser pour organiser les ressourcesGoogle Cloud .

Pour créer un espace de noms, exécutez la commande kubectl suivante :

kubectl create namespace NAMESPACE

Remplacez NAMESPACE par le nom de l'espace de noms.

Configurer une stratégie IAM pour se connecter aux API Google Cloud

Pour autoriser Config Connector à gérer vos ressources Google Cloud à l'aide de la fédération d'identité de charge de travail pour GKE, créez une stratégie IAM.

Pour configurer la liaison de stratégie, créez une stratégie d'autorisation IAM qui fait référence au compte de service Kubernetes créé automatiquement lorsque vous installez Config Connector sur votre cluster:

gcloud projects add-iam-policy-binding projects/PROJECT_ID \
    --role=roles/iam.workloadIdentityUser \
    --member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/cnrm-system/cnrm-controller-manager \
    --condition=None

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre Google Cloud projet.
  • PROJECT_NUMBER: numéro numérique de votre Google Cloudprojet.
  • NAMESPACE: nom de l'espace de noms Kubernetes du compte de service du connecteur de configuration. Si vous n'avez pas créé explicitement d'espace de noms, la valeur est default.

Créer un objet ConfigConnectorContext

Pour créer des ressources Google Cloud , vous devez configurer Config Connector pour surveiller votre espace de noms en ajoutant un objet ConfigConnectorContext à l'espace de noms que vous souhaitez utiliser.

Pour créer un objet ConfigConnectorContext, procédez comme suit :

  1. Copiez le fichier YAML suivant dans un fichier nommé configconnectorcontext.yaml :

    apiVersion: core.cnrm.cloud.google.com/v1beta1
    kind: ConfigConnectorContext
    metadata:
      # you can only have one ConfigConnectorContext per namespace
      name: configconnectorcontext.core.cnrm.cloud.google.com
      namespace: NAMESPACE
    spec:
      googleServiceAccount: "NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com"
      stateIntoSpec: Absent
    

    Remplacez l'élément suivant :

    • NAMESPACE par le nom de votre espace de noms.
    • NAMESPACE_GSA par le nom du compte de service Google associé à votre espace de noms
    • HOST_PROJECT_ID par l'ID de votre projet hôte
  2. Appliquez le fichier à votre cluster à l'aide de la commande kubectl suivante :

    kubectl apply -f configconnectorcontext.yaml
    
  3. Vérifiez que l'opérateur Config Connector a créé un compte de service Kubernetes pour votre espace de noms en exécutant la commande kubectl suivante :

    kubectl get serviceaccount/cnrm-controller-manager-NAMESPACE  -n cnrm-system
    

    Remplacez NAMESPACE par le nom de votre espace de noms.

  4. Vérifiez que le pod du contrôleur Config Connector est en cours d'exécution pour votre espace de noms en exécutant la commande kubectl suivante :

    kubectl wait -n cnrm-system \
        --for=condition=Ready pod \
        -l cnrm.cloud.google.com/component=cnrm-controller-manager \
        -l cnrm.cloud.google.com/scoped-namespace=NAMESPACE
    

    Remplacez NAMESPACE par le nom de votre espace de noms.

    Si le contrôleur Config Connector est en cours d'exécution, le résultat ressemble à ce qui suit :

    cnrm-controller-manager-abcdefghijk-0 condition met.
    

Configurer Config Connector pour ne plus gérer les ressources dans votre espace de noms

Pour configurer Config Connector afin de ne plus gérer votre espace de noms, vous devez supprimer toutes les ressources Config Connector qu'il contient et supprimer le champ ConfigConnectorContext de votre espace de noms.

Supprimer les ressources Config Connector dans votre espace de noms

Pour finaliser la suppression de ConfigConnectorContext, supprimez toutes les ressources Config Connector de votre espace de noms.

  1. Pour découvrir toutes les ressources Config Connector de votre espace de noms, listez toutes les ressources pour chaque définition de ressource personnalisée Config Connector.

    kubectl get gcp -n NAMESPACE
    

    Remplacez NAMESPACE par le nom de votre espace de noms.

  2. Pour supprimer toutes les ressources Config Connector, exécutez une commande de suppression pour chaque ressource dans le résultat de l'étape précédente.

    kubectl delete -n NAMESPACE KIND NAME
    

    Remplacez les éléments suivants :

    • NAMESPACE : nom de votre espace de noms
    • KIND : genre de la ressource découverte à l'étape précédente
    • NAME : nom de la ressource découverte à l'étape précédente

Supprimer l'objet ConfigConnectorContext

Pour configurer Config Connector afin de ne plus gérer les ressources Config Connector dans votre espace de noms, supprimez ConfigConnectorContext de votre espace de noms.

  kubectl delete -n NAMESPACE ConfigConnectorContext configconnectorcontext.core.cnrm.cloud.google.com

Remplacez NAMESPACE par le nom de votre espace de noms.

La suppression de ConfigConnectorContext ne sera finalisée que lorsque toutes les ressources Config Connector seront supprimées de votre espace de noms.

Désinstaller Config Connector

N'utilisez pas les étapes suivantes pour désinstaller un cluster Config Controller.

Utilisez kubectl delete pour supprimer les CRD Config Connector et les composants du contrôleur :

kubectl delete ConfigConnectorContext --all -A –wait=false

kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \
    --wait=true

Pour désinstaller l'opérateur Config Connector, exécutez la commande suivante :

kubectl delete -f operator-system/configconnector-operator.yaml  --wait=true

Étape suivante