J'essaie d'intégrer CircleCi avec le moteur gcloud Kubernetes.
Une partie de mon fichier yaml comprend:
docker:
- image: google/cloud-sdk
environment:
- PROJECT_NAME: 'my-project'
- GOOGLE_PROJECT_ID: 'my-project-112233'
- GOOGLE_COMPUTE_ZONE: 'us-central1-a'
- GOOGLE_CLUSTER_NAME: 'my-project-bed'
steps:
- checkout
- run:
name: Setup Google Cloud SDK
command: |
apt-get install -qq -y gettext
echo $GCLOUD_SERVICE_KEY > ${HOME}/gcloud-service-key.json
gcloud auth activate-service-account --key-file=${HOME}/gcloud-service-key.json
gcloud --quiet config set project ${GOOGLE_PROJECT_ID}
gcloud --quiet config set compute/zone ${GOOGLE_COMPUTE_ZONE}
gcloud --quiet container clusters get-credentials ${GOOGLE_CLUSTER_NAME}
Tout fonctionne parfaitement sauf que la dernière commande:
gcloud --quiet container clusters get-credentials ${GOOGLE_CLUSTER_NAME}
Il échoue toujours avec l'erreur:
ERROR: (gcloud.container.clusters.get-credentials) ResponseError: code=403, message=Required "container.clusters.get" permission(s) for "projects/my-project-112233/zones/us-central1-a/clusters/my-project-bed". See https://cloud.google.com/kubernetes-engine/docs/troubleshooting#gke_service_account_deleted for more info.
J'ai essayé de donner au compte ci le rôle de maître d'ouvrage mais j'ai quand même eu cette erreur.
J'ai essayé de désactiver et de réactiver le service Kubernetes mais cela n'a pas aidé.
Aucune idée sur la façon de résoudre ça? J'essaye de le résoudre depuis 4 jours ...
Je crois que ce n'est pas le compte de service CI mais le compte de service k8s utilisé pour gérer votre cluster GKE, où son e-mail devrait ressembler à ceci (quelqu'un doit l'avoir supprimé):
k8s-service-account@<project-id>.iam.gserviceaccount.com
Vous pouvez le recréer et lui accorder des autorisations de propriétaire de projet.
Les détails des erreurs mentionnées ci-dessus sont expliqués dans ce centre d'aide article.
Pour ajouter le compte de service Kubernetes Engine (si vous ne l'avez pas), veuillez exécuter la commande suivante, afin de recréer correctement le compte de service Kubernetes avec le rôle "Kubernetes Engine Service Agent",
gcloud services enable container.googleapis.com
Étape 1: gcloud init
Étape 2: Sélectionnez [2] Créez une nouvelle configuration
Étape 3: entrez le nom de la configuration. Les noms commencent par une lettre minuscule et contiennent uniquement des lettres minuscules a-z, des chiffres 0 à 9 et des tirets "-": kubernetes-service-account
Étape 4: Choisissez le compte que vous souhaitez utiliser pour effectuer des opérations pour cette configuration: [2] Connectez-vous avec un nouveau compte
Étape 5: Voulez-vous continuer (O/n)? y
Étape 6: Copiez collez le lien vers brwoser et connectez-vous avec l'ID utilisé pour créer votre compte Google Cloud
Étape 7: copiez le code de vérification fourni par google après la connexion et collez-le dans la console.
Étape 8: Choisissez le projet cloud à utiliser:
Étape 9: Voulez-vous configurer une région et une zone de calcul par défaut? (O/n)? y
Étape 10: Veuillez saisir un choix numérique ou une valeur de texte (doit correspondre exactement à l'élément de la liste): 8
Votre SDK Google Cloud est configuré et prêt à l'emploi!