Плагин ArgoCD для Vault и Kustomize

Вопросы и ответы

Я использую 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, необходимо убедиться, что ваш кластер армирован правильно и что все конфигурации настроены корректно. Вот шаги, которые могут помочь вам решить вашу проблему.

Шаги по настройке

  1. Проверка зависимостей: Убедитесь, что у вас установлены ArgoCD и argocd-vault-plugin. Версия плагина должна быть совместима с вашим экземпляром ArgoCD.

  2. Создание 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
  3. Конфигурация манифеста Kustomize: Вам нужно убедиться, что Kustomization.yaml правильно настроен для работы с вашим плагином. Например:

    apiVersion: v1
    kind: Kustomization
    resources:
      - deployment.yaml
      - service.yaml
    
    secrets:
      - name: my-secret
        # Укажите необходимые параметры для вашего секрета
  4. Обновление ArgoCD приложения: Обновите ваше приложение для того, чтобы оно использовало плагин. Вам может потребоваться добавить следующий аннотационный метаданные для вашего приложения:

    annotations:
      argocd-vault-plugin.argoproj.io/private: "true"
  5. Проверка конфигурации pugin: Убедитесь, что ваш plugin настроен для работы с правильным backend конфигурации:

    vault:
      address: https://your-vault-address:8200
      token: your-vault-token
      # другие параметры, такие как путь к секретам
  6. Дебаггинг: Если после всех этих изменений вы все еще получаете ошибки, такие как <password>, попробуйте следующее:

    • Проверьте логи ArgoCD для диагностики ошибок.
    • Убедитесь, что ваши секреты действительно существуют в Vault и что у вашего ArgoCD есть разрешения на доступ к ним.
    • Возможно, вам придется изменить команды в generate, чтобы указать путь к вашим учётным данным в Vault.
  7. Тестирование: После всех изменений, выполните команду sync в ArgoCD и убедитесь, что ваше приложение успешно синхронизируется и правильно получает секреты из Vault.

Заключение

Подводя итог, настройка ArgoCD с Kustomize и argocd-vault-plugin может быть завершена путем тщательной конфигурации всех необходимых компонентов. Важно убедиться в правильности конфигураций и наличии доступов для успешной работы с секретами. Наблюдение за логами и тестирование на каждом этапе поможет быстро выявить и исправить проблемы.

Оцените материал
Добавить комментарий

Капча загружается...