Аутентификация учетной записи службы gcloud в gitlab CI / CD - PullRequest
0 голосов
/ 06 августа 2020

Я развертываю службу в gcloud из файла gitlab-ci.yml, используя gcloud-service-key. json. Я получаю эту ошибку

$ google-cloud-sdk / bin / gcloud auth activate-service-account --key-file $ {HOME} /gcloud-service-key.json ОШИБКА: Произошел сбой gcloud (ValueError): не удалось обнаружить ключ.

Найдите подмножество фрагмента кода

 - apk add --update make ca-certificates openssl python --repository https://alpine.global.ssl.fastly.net/alpine/v3.10/community --repository https://alpine.global.ssl.fastly.net/alpine/v3.10/main && rm -fR /var/cache/apk/*
  - update-ca-certificates
  # Write our GCP service account private key into a file
  - echo $GCLOUD_SERVICE_KEY > ${HOME}/gcloud-service-key.json
  # Download and install Google Cloud SDK
  - wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz
  - tar zxvf google-cloud-sdk.tar.gz && ./google-cloud-sdk/install.sh --usage-reporting=false --path-update=true
  - google-cloud-sdk/bin/gcloud --quiet components update
  - google-cloud-sdk/bin/gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json

Любая помощь будет оценена, я занимаюсь этим уже несколько дней.

1 Ответ

0 голосов
/ 06 августа 2020

Похоже, проблема с вашим ключевым файлом. Попробуйте создать новый ключ с помощью gcloud:

$ gcloud iam service-accounts keys create key1.json --iam-account=test123@xxxxx.iam.gserviceaccount.com
created key [6ca5ffc929f31d1f1915d430887a7fa3689eb69d] of type [json] as [key1.json] for [test123@xxxxx.iam.gserviceaccount.com]

Там также есть официальная документация , как сгенерировать ключ - не стесняйтесь взглянуть, если сомневаетесь.

Ваш json ключевой файл должен выглядеть так:

{
  "type": "service_account",
  "project_id": "xxxxxx,
  "private_key_id": "6ca5ffc929f31d1f1915d430887a7fa3689eb69d",
  "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAAsdfsd234fesSiAgEAAoIBAQDKnmI67Aw3DgHM\n1b25LH1jRAV0pt6hjTEeJGH$
  "client_email": "test123@xxxxx.iam.gserviceaccount.com",
  "client_id": "110107674812168412361",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test123@xxxxx.iam.gserviceaccount.com"
}

Если ваш файл выглядит иначе, проверьте часть echo $GCLOUD_SERVICE_KEY > ${HOME}/gcloud-service-key.json. Это может быть проблема с переменной $GCLOUD_SERVICE_KEY.

Также, если у вас есть какие-либо сомнения по поводу активации учетной записи, есть также другая документация о том, как это сделать .

...