将 Helm Chart 推送到 Azure 容器注册表失败

Dee*_*ari 2 kubernetes azure-devops kubernetes-helm azure-container-registry

当我尝试将图表推送到 ACR 时,出现以下错误。您能建议此处要执行的步骤吗?

“此命令已隐式弃用,因为命令组“acr helm”已弃用,并将在未来版本中删除。请改用“helm v3”。”

我按照这篇文章创建了 Helm Chart

https://cloudblogs.microsoft.com/opensource/2018/11/27/tutorial-azure-devops-setup-cicd-pipeline-kubernetes-docker-helm/

这些文章也描述了这个问题,但我不明白需要做什么来解决它。 https://github.com/Azure/azure-cli/issues/14498 https://gitanswer.com/azure-cli-az-acr-helm-commands-not-working-python-663770738 https://github.com/azure-cli-az-acr-helm-commands-not-working-python-663770738 com/Azure/azure-cli/issues/14467

这是抛出错误的 yaml 脚本

- bash: |
    cd $(projectName)
    chartPackage=$(ls $(projectName)-$(helmChartVersion).tgz)
    az acr helm push \
        -n $(registryName) \
        -u $(registryLogin) \
        -p '$(registryPassword)' \
        $chartPackage



 Chart.yaml
         apiVersion: v1
         description: first helm chart create 
          name: helmApp
          version: v0.3.0
Run Code Online (Sandbox Code Playgroud)

Kal*_*ari 5

Azure 已弃用支持使用 Az Cli 管理 Helm 图表。因此,您将需要 Helm 客户端版本3.7.1来将 Helm 图表推送到 ACR。

要将 Helm 图表推送到 ACR,请执行以下步骤:

  1. 启用 OCI 支持

    export HELM_EXPERIMENTAL_OCI=1
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将您的图表保存到本地存档

    cd chart-dir
    helm package .
    
    Run Code Online (Sandbox Code Playgroud)
  3. helm registry login使用命令向注册表进行身份验证

    helm registry login $ACR_NAME.azurecr.io \
      --username $USER_NAME \
      --password $PASSWORD
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将图表作为 OCI 工件推送到注册表

    helm push chart-name-0.1.0.tgz oci://$ACR_NAME.azurecr.io/helm
    
    Run Code Online (Sandbox Code Playgroud)

您可以在 Azure DevOps 管道中使用上述步骤,它将按预期工作。有关将 helm 图表推送到 ACR 的更多信息,请参阅此文档

  • 如果他们使用集成服务连接而不是用户名/密码变量为此添加 yaml 任务示例,那就太好了。 (2认同)