Создать ConfigMap через задачу kubectl - PullRequest
0 голосов
/ 20 апреля 2020

В рамках конвейера сборки я хотел создать ConfigMap с содержимым файла, являющегося частью репозитория Git, из которого запускается конвейер.

В соответствии с задачей Kubectl für Azure Трубопроводы, это должно быть возможно. Но я понятия не имею, как его применить. Неважно, как мой YAML выглядит для этой задачи, результат всегда «успех». Даже я ввожу foo / bar в качестве входных параметров. https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/kubernetes?view=azure-devops

Я спросил Microsoft, может ли быть недостаток в документации или в самой реализации. Единственный ответ, который я получил, был спросить здесь. Они действительно переносят ответственность за поддержку на сообщество.

Это мое определение:

- task: Kubernetes@1
  displayName: 'Create ConfigMap for /data'
  inputs:
    kubernetesServiceEndpoint: 'cluster-test'
    namespace: 'app-test'
    forceUpdateConfigMap: true
    configMapName: data
    configMapArguments: --from-file $(Build.SourcesDirectory)/data/ExcelTemplate.xlsx

При этом я ожидаю, согласно документации, что при каждом запуске ConfigMap будет удаляться и исправлено с содержимым данного файла Excel (и ExcelTemaplte.xlsx в качестве ключа). Вручную я могу сделать это с помощью:
kubectl create configmap data --from-file ExcelTemplate.xlsx

Связанная документация упоминает об использовании, как это (I d:

    - task: Kubernetes@1
      displayName: configMap with literal values
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey4
        configMapName: myconfig
        forceUpdateConfigMap: true
        configMapArguments: --from-literal=myname=contoso
  • Первая часть ясна, В примере используется кластер Azure, но может использоваться любой тип.
  • Почему они используют apply с файлом .yaml? Что должно быть внутри?
  • Почему они имеют дело с секретами, просто комбинированный пример? Это не упомянуто
  • configMapArguments упоминается в документах (предположение недавно добавлено, не было раньше)

Но я могу дать для каждого из параметров ConfigMap случайное значение и задача даже тогда успешна. Или, в свою очередь, я могу настроить правильные значения, и результат будет успешным, ничего не делая.

- task: Kubernetes@1
  displayName: 'Create ConfigMap for /data'
  inputs:
    kubernetesServiceEndpoint: 'cluster-test'
    namespace: foobar # does not exist
    forceUpdateConfigMap: true
    configMapName: data
    configMapArguments: 'today is sunny'

Кто-то уже использовал эту задачу для создания ConfigMap? Или успешно выполнил эту задачу?

Насколько мне известно, мне пришлось дважды запускать эту задачу один раз с удалением и один раз с выделенным манифестом для создания ConfigMap с помощью команды apply. Или как второе решение просто запустив команды kubectl для удаления / создания в сценарии bash.

1 Ответ

1 голос
/ 20 апреля 2020

Кажется, что что-то исправлено с прошлой пятницы. Теперь следующее определение работает как положено:

- task: Kubernetes@1
  displayName: 'Create ConfigMap for /data'
  inputs:
    kubernetesServiceEndpoint: 'cluster-test'
    namespace: 'app-test'
    forceUpdateConfigMap: true
    configMapName: data
    configMapArguments: --from-file $(Build.SourcesDirectory)/data/ExcelTemplate.xlsx
...