使用 Helm 3 将 Azure DevOps Pipeline 部署到 Kubernetes:没有此类文件或目录

问题描述 投票:0回答:1

我有一个 Asp.net Core 项目,我正在尝试使用 Helm 3 创建用于 Kubernetes 部署的 Azure DevOps 管道。

项目结构为:

服务器 图表 服务器 Chart.yaml 控制器 等等..

当前构建管道,构建docker镜像,并将其上传到Azure容器注册表。

错误发生在 HelmDeploy 任务 'package' => ChartPath:

这是部署的管道阶段:

  - stage: 'Deploy'
  displayName: 'Deploy the container'
  dependsOn: Build
  jobs:
  - deployment: Deploy
    displayName: Deploy
    pool:
      vmImage: 'ubuntu-latest'
    environment: 'staging'
    strategy:    
      runOnce:
        deploy:
          steps:        
          - task: HelmInstaller@0
            inputs:
              helmVersion: 'latest'
              installKubectl: true
          
          - task: HelmDeploy@0
            inputs:
              command: 'package'
              chartPath: Server/charts/server

          - task: HelmDeploy@0
            inputs:
              connectionType: 'Kubernetes Service Connection'
              kubernetesServiceConnection: 'Staging-592588480'
              namespace: 'staging'
              command: 'upgrade'
              chartType: 'FilePath'
              chartPath: $(Build.ArtifactStagingDirectory)/server

我尝试了很多组合都没有成功:

chartPath: $(Build.Repository.LocalPath)/Server/charts/server
chartPath: $(Build.SourcesDirectory)/Server/charts/server
chartPath: **/Server/charts/server
chartPath: Server/charts/server/

根据文档,azure pipelines 上的 Helm 3 不需要“init”命令,“upgrade”命令将安装图表(如果不存在)。

azure-devops azure-pipelines kubernetes-helm
1个回答
5
投票

默认情况下,部署作业不会下载源代码,因此如果您在源代码中保留图表,请在部署作业开始时添加结帐步骤:

- checkout: self
© www.soinside.com 2019 - 2024. All rights reserved.