Installer Config Connector en mode d'espace de noms
Cette page explique comment installer Config Connector en mode d'espace de noms.
L'installation en mode espace de noms est une extension de Config Connector l'installation. Le mode espace de noms permet la gestion de plusieurs projets, chacun avec ses propres identités Google Cloud.
Avant de commencer
Avant de configurer Config Connector pour qu'il s'exécute en mode espace de noms, veillez à avez 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 :
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
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 sur 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 ressources Google 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.
Créer une identité
Créez un compte de service Identity and Access Management (IAM), puis créez une liaison entre le compte de service IAM et le compte de service Kubernetes de Config Connector :
Créer un compte de service IAM Si vous disposez déjà d'un compte de service, vous pouvez l'utiliser au lieu d'en créer un autre. Pour créer le compte de service, exécutez la commande
gcloud
suivante :gcloud iam service-accounts create NAMESPACE_GSA --project HOST_PROJECT_ID
Remplacez l'élément suivant :
- 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
Pour en savoir plus sur la création de comptes de service, consultez la page Créer et gérer des comptes de service.
Accordez au compte de service IAM des autorisations avec privilèges élevés sur votre projet géré.
gcloud projects add-iam-policy-binding MANAGED_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner"
Remplacez l'élément suivant :
- MANAGED_PROJECT_ID par l'ID de votre projet géré
- 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
Créez une liaison de stratégie IAM entre le compte de service IAM et le compte de service Kubernetes de Config Connector. Vous liez les comptes de service en exécutant la commande
gcloud
suivante :gcloud iam service-accounts add-iam-policy-binding \ NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:HOST_PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager-NAMESPACE]" \ --role="roles/iam.workloadIdentityUser" \ --project HOST_PROJECT_ID
Remplacez l'élément suivant :
- HOST_PROJECT_ID par l'ID de votre projet hôte
- NAMESPACE_GSA par le nom du compte de service Google associé à votre espace de noms
- NAMESPACE par votre espace de noms
Accordez au compte de service IAM les autorisations nécessaires pour publier des métriques Prometheus dans Google Cloud Observability sur votre projet hôte.
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
Remplacez les éléments suivants :
- HOST_PROJECT_ID par l'ID de votre projet hôte
- NAMESPACE_GSA par le nom du compte de service Google associé à votre espace de noms
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 :
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
Appliquez le fichier à votre cluster à l'aide de la commande
kubectl
suivante :kubectl apply -f configconnectorcontext.yaml
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.
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.
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.
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 nomsKIND
: genre de la ressource découverte à l'étape précédenteNAME
: 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
- Premiers pas avec Config Connector
- Découvrez les bonnes pratiques à suivre pour Config Connector.