Я использую ArgoCD и Kustomize для своих проектов в git-репозитории.
У меня есть этот проект, основанный на Kustomize, и я хотел бы, чтобы мои секреты внутри проекта одновременно считывались argocd-vault-plugin. Я пробовал несколько способов, но не смог заставить это работать.
Если я использую Kustomize, то секреты не извлекаются из моего хранилища, и я все время получаю <password>
в качестве данных или получаю ошибку:
плагин cmp-server с именем “argocd-vault-plugin” поддерживает данный репозиторий.”
Моя конфигурация – это кластер OpenShift.
kind: ConfigMap
apiVersion: v1
metadata:
name: cmp-plugin
namespace: argocd
data:
avp.yaml: |
apiVersion: argoproj.io/v1alpha1
kind: ConfigManagementPlugin
metadata:
name: argocd-vault-plugin
spec:
allowConcurrency: true
discover:
find:
command:
- sh
- "-c"
- "find . -name '*.yaml'"
generate:
command:
- argocd-vault-plugin
- generate
- "."
lockRepo: false
Это ConfigMap из моего контейнера argocd-vault-plugin.
Ответ
Для интеграции ArgoCD с Kustomize и использованием плагина argocd-vault-plugin для получения секретов из Vault, необходимо убедиться, что ваш кластер армирован правильно и что все конфигурации настроены корректно. Вот шаги, которые могут помочь вам решить вашу проблему.
Шаги по настройке
-
Проверка зависимостей: Убедитесь, что у вас установлены ArgoCD и argocd-vault-plugin. Версия плагина должна быть совместима с вашим экземпляром ArgoCD.
-
Создание ConfigMap: Вы уже создали
ConfigMap
для плагинаargocd-vault-plugin
. Убедитесь, что он правильно применен в пространстве именargocd
:kind: ConfigMap apiVersion: v1 metadata: name: cmp-plugin namespace: argocd data: avp.yaml: | apiVersion: argoproj.io/v1alpha1 kind: ConfigManagementPlugin metadata: name: argocd-vault-plugin spec: allowConcurrency: true discover: find: command: - sh - "-c" - "find . -name '*.yaml'" generate: command: - argocd-vault-plugin - generate - "." lockRepo: false
-
Конфигурация манифеста Kustomize: Вам нужно убедиться, что
Kustomization.yaml
правильно настроен для работы с вашим плагином. Например:apiVersion: v1 kind: Kustomization resources: - deployment.yaml - service.yaml secrets: - name: my-secret # Укажите необходимые параметры для вашего секрета
-
Обновление ArgoCD приложения: Обновите ваше приложение для того, чтобы оно использовало плагин. Вам может потребоваться добавить следующий аннотационный метаданные для вашего приложения:
annotations: argocd-vault-plugin.argoproj.io/private: "true"
-
Проверка конфигурации pugin: Убедитесь, что ваш plugin настроен для работы с правильным backend конфигурации:
vault: address: https://your-vault-address:8200 token: your-vault-token # другие параметры, такие как путь к секретам
-
Дебаггинг: Если после всех этих изменений вы все еще получаете ошибки, такие как
<password>
, попробуйте следующее:- Проверьте логи ArgoCD для диагностики ошибок.
- Убедитесь, что ваши секреты действительно существуют в Vault и что у вашего ArgoCD есть разрешения на доступ к ним.
- Возможно, вам придется изменить команды в
generate
, чтобы указать путь к вашим учётным данным в Vault.
- Тестирование: После всех изменений, выполните команду sync в ArgoCD и убедитесь, что ваше приложение успешно синхронизируется и правильно получает секреты из Vault.
Заключение
Подводя итог, настройка ArgoCD с Kustomize и argocd-vault-plugin может быть завершена путем тщательной конфигурации всех необходимых компонентов. Важно убедиться в правильности конфигураций и наличии доступов для успешной работы с секретами. Наблюдение за логами и тестирование на каждом этапе поможет быстро выявить и исправить проблемы.