Аутентификация Fluxcd ImageRepository с помощью реестра эластичных контейнеров AWS Не работает

#amazon-web-services #kubernetes #arm64 #gitops #fluxcd

Вопрос:

Fluxcd ImageRepository аутентификация с AWS Elastic Container Registry неработающим ARM64 graviton узлом.

После отладки я обнаружил, что образ, используемый init container для получения учетных данных cred, не поддерживает Arm64 экземпляры.

 image name:-bitnami/kubectl
 

ссылка на документ:-https://fluxcd.io/документы/руководства/изображение-обновление/

Ответ №1:

Существуют некоторые обходные пути, представленные на портале fluxcd документации:

Реестр эластичных контейнеров AWS

Предлагаемое решение заключается в создании cronjob, который выполняется каждые 6 часов и будет воссоздавать docker-registry секрет с использованием нового токена.

Ключ JSON

Срок действия ключа Json не истекает, поэтому нам не нужна cronjob, нам просто нужно создать секрет и сослаться на него в политике ImagePolicy. Сначала создайте файл ключа json, следуя этой документации. Предоставьте учетной записи службы роль Container Registry Service Agent , чтобы она могла получить доступ к GCR и загрузить файл json.

Статические Учетные данные

Вместо того, чтобы создавать секрет непосредственно в кластере Kubernetes, зашифруйте его с помощью Mozilla SOP или запечатанных секретов, затем зафиксируйте и отправьте зашифрованный файл в git.

Этот секрет должен находиться в том же пространстве имен, что и ваш ImageRepository объект flux. Обновите ImageRepository.spec.secretRef , чтобы указать на это.

Комментарии:

1. Спасибо.. @Yasen .. проблема исправлена fluxcd … просто образ, который он должен работать. github.com/fluxcd/flux2/issues/1864

2. Рад вам помочь

3. привет @Yasen после изменения изображения bitnami/kubectl на ghcr.io/fluxcd/flux-cli:v0.17.2 (многодуговое изображение потока).. секрет создан, но все еще не может пройти аутентификацию с помощью ECR.. Потому что у этой команды kubectl create secret docker-registry $SECRET_NAME --dry-run=client --docker-server="$ECR_REGISTRY" --docker-username=AWS --docker-password="$(</token/ecr-token)" -o yaml | kubectl apply -f - возникли некоторые проблемы с получением токена с помощью этого «$(. любая идея.пожалуйста