【问题标题】:Create ConfigMap through kubectl task通过 kubectl 任务创建 ConfigMap
【发布时间】:2020-04-20 16:01:38
【问题描述】:

作为构建管道的一部分,我想创建一个包含文件内容的 ConfigMap,该文件是运行管道的 Git 存储库的一部分。

根据 Azure Pipelines 的 Kubectl 任务,这应该是可能的。但我不知道如何应用它。不管我的 YAML 对这个任务看起来如何,结果总是“成功”。即使我输入foo / bar 作为输入参数。 https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/kubernetes?view=azure-devops

我问微软是否可能缺少文档或实现本身。我得到的唯一答案是在这里问。他们确实将支持的责任转移到了社区。​​p>

这是我的定义:

- 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 作为键)重新创建。 Manuelly 我可以这样做:
kubectl create configmap data --from-file ExcelTemplate.xlsx

链接的文档提到了这样的用法(我:

    - 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?或者成功地尝试了这个任务?

要知道我必须运行此任务两次,一次使用删除,一次使用专用清单使用apply 命令创建 ConfigMap。或者作为第二种解决方案,只需在 bash 脚本中触发 kubectl 命令以进行删除/创建。

【问题讨论】:

    标签: kubernetes azure-devops azure-pipelines configmap


    【解决方案1】:

    看来,自上周五以来,有些事情已经解决了。现在以下定义按预期工作:

    - 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
    

    【讨论】:

    • 嗨!感谢您在这里分享解决方案,您可以Accept it as an Answer,这样它可以帮助遇到相同问题的其他社区成员,我们可以存档此线程。只是提醒this :)
    猜你喜欢
    • 2018-10-04
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多