В рамках конвейера сборки я хотел создать 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.