【问题标题】:Azure DevOps Pipelines HelmDeploy: how to get latest version on chartPathAzure DevOps Pipelines HelmDeploy:如何在 chartPath 上获取最新版本
【发布时间】:2020-10-05 06:19:13
【问题描述】:

我有一个构建 Docker 容器并将其上传到 Azure Container Registry 的 Azure Pipeline。

源码图打包,部署在temp工件路径上,然后用Helm 3命令部署到Kubernetes。

   - task: HelmDeploy@0
        inputs:
          command: 'package'
          chartPath: Server/charts/server
          destination: $(Build.ArtifactStagingDirectory)

      - task: HelmDeploy@0
        inputs:
          connectionType: 'Kubernetes Service Connection'
          kubernetesServiceConnection: 'Staging12602128'
          namespace: 'staging'
          command: 'upgrade'
          chartType: 'FilePath'
          chartPath: '$(Build.ArtifactStagingDirectory)/server-0.0.1.tgz' <<== How to select latest version?
          releaseName: 'server'

package命令上的destination,使用最新版本的图表,就像这样/home/vsts/work/1/a/server-0.1.1.tgz

在所有示例中,升级命令的 chartPath 都需要 tgz 包的确切版本。 如何在升级任务的“chartPath”中自动插入最新的图表版本,这样每次升级都不必手动更改?

我试过没有成功:

 chartPath: '$(Build.ArtifactStagingDirectory)/server-*.tgz'
 chartPath: '$(Build.ArtifactStagingDirectory)/*.tgz'
 chartPath: '$(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).tgz'
 chartPath: '$(Build.ArtifactStagingDirectory)/server-$(Build.DefinitionName).tgz'

【问题讨论】:

  • 这个问题怎么样?下面的答案是否解决了您的问题,如果没有,请告诉我有关此问题的最新信息吗?
  • @FrancesoCristallo 你能考虑支持我的回复吗?它对你有帮助吗?

标签: azure-devops azure-pipelines kubernetes-helm


【解决方案1】:

我不确定您的版本号来自哪里,但即使没有,您也可以尝试这种方法:

- task: HelmDeploy@0
    inputs:
      command: 'package'
      chartPath: Server/charts/server
      destination: $(Build.ArtifactStagingDirectory)
- pwsh: |
        $charts = Get-ChildItem
        $sorted = $charts | sort -Descending
        $latest = $sorted[0]
        Write-Host "##vso[task.setvariable variable=chartName;]$latest"
    workingDirectory: '$(Build.ArtifactStagingDirectory)'
- task: HelmDeploy@0
    inputs:
      connectionType: 'Kubernetes Service Connection'
      kubernetesServiceConnection: 'Staging12602128'
      namespace: 'staging'
      command: 'upgrade'
      chartType: 'FilePath'
      chartPath: '$(Build.ArtifactStagingDirectory)/$(chartName)' <<== How to select latest version?
      releaseName: 'server'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 2020-02-02
    • 2020-12-25
    • 1970-01-01
    相关资源
    最近更新 更多