HelmDeploy@0 - 打包和部署 Helm 图表 v0 任务

使用此任务通过运行 helm 命令在 Azure 容器服务中部署、配置或更新 Kubernetes 群集。

通过运行 helm 命令,使用此任务在 Azure 容器服务中部署、配置或更新 Kubernetes 群集。

语法

# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package && command != save. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package && command != save. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package && command != save. Namespace. 
  # Azure Container Registry
    #azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == save. Azure subscription for Container Registry. 
    #azureResourceGroupForACR: # string. Required when command == save. Resource group. 
    #azureContainerRegistry: # string. Required when command == save. Azure Container Registry. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'save' | 'upgrade' | 'uninstall'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package || command == install || command == upgrade. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
    #chartNameForACR: # string. Required when command == save. Chart Name For Azure Container Registry. 
    #chartPathForACR: # string. Required when command == save. Chart Path for Azure Container Registry. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package && command != save. Tiller namespace. 
    #failOnStderr: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Fail on Standard Error. Default: false.
    #publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Publish pipeline metadata. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package && command != save. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package && command != save. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package && command != save. Namespace. 
  # Azure Container Registry
    #azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == save. Azure subscription for Container Registry. 
    #azureResourceGroupForACR: # string. Required when command == save. Resource group. 
    #azureContainerRegistry: # string. Required when command == save. Azure Container Registry. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'save' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package || command == install || command == upgrade. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
    #chartNameForACR: # string. Required when command == save. Chart Name For Azure Container Registry. 
    #chartPathForACR: # string. Required when command == save. Chart Path for Azure Container Registry. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package && command != save. Tiller namespace. 
    #failOnStderr: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Fail on Standard Error. Default: false.
    #publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Publish pipeline metadata. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package. Namespace. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package. Tiller namespace. 
    #failOnStderr: true # boolean. Optional. Use when command != login && command != logout && command != package. Fail on Standard Error. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Kubernetes cluster. 
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package. Namespace. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package. Tiller namespace.
# Package and deploy Helm charts v0
# Deploy, configure, update your Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Kubernetes cluster. 
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package. Namespace. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package. Tiller namespace.

输入

connectionType - 连接类型
string. 当 command != logout && command != package && command != save 时,需要此选项。 允许的值:Azure Resource ManagerKubernetes Service ConnectionNone。 默认值:Azure Resource Manager

指定连接类型。

  • Kubernetes Service Connection - 指定 Kubernetes Service Connection 使用 kubeconfig 或 Azure 服务帐户连接到任何 Kubernetes 群集。 允许提供 KubeConfig 文件、指定服务帐户或使用 Azure 订阅 选项导入 AKS 实例。 使用 Azure 订阅 选项导入 AKS 实例需要在服务连接配置时访问 Kubernetes 群集。
  • Azure Resource Manager- 指定Azure Resource Manager以使用 Azure 服务连接连接到Azure Kubernetes 服务。 在服务连接配置时不访问 Kubernetes 群集。
  • None - 使用本地存储的预先创建的 Kubernetes 配置。

有关详细信息,请参阅以下“备注”部分中的服务连接


connectionType - 连接类型
string. 当 command != logout && command != package 时,需要此选项。 允许的值:Azure Resource ManagerKubernetes Service ConnectionNone。 默认值:Azure Resource Manager

指定连接类型。

  • Kubernetes Service Connection - 指定 Kubernetes Service Connection 使用 kubeconfig 或 Azure 服务帐户连接到任何 Kubernetes 群集。 允许提供 KubeConfig 文件、指定服务帐户或使用 Azure 订阅 选项导入 AKS 实例。 使用 Azure 订阅 选项导入 AKS 实例需要在服务连接配置时访问 Kubernetes 群集。
  • Azure Resource Manager- 指定Azure Resource Manager以使用 Azure 服务连接连接到Azure Kubernetes 服务。 在服务连接配置时不访问 Kubernetes 群集。
  • None - 使用本地存储的预先创建的 Kubernetes 配置。

有关详细信息,请参阅以下“备注”部分中的服务连接


azureSubscription - Azure 订阅
输入别名: azureSubscriptionEndpointstring. 当 connectionType = Azure Resource Manager && command != logout && command != package && command != save 时,需要此选项。

Azure 服务连接的名称。 指定具有容器注册表的 Azure 订阅。


azureSubscription - Azure 订阅
输入别名: azureSubscriptionEndpointstring. 当 connectionType = Azure Resource Manager && command != logout && command != package 时,需要此选项。

Azure 服务连接的名称。 指定具有容器注册表的 Azure 订阅。


azureResourceGroup - 资源组
string. 当 connectionType = Azure Resource Manager && command != logout && command != package && command != save 时,需要此选项。

订阅中资源组的名称。 指定 Azure 资源组。


azureResourceGroup - 资源组
string. 当 connectionType = Azure Resource Manager && command != logout && command != package 时,需要此选项。

订阅中资源组的名称。 指定 Azure 资源组。


kubernetesCluster - Kubernetes 群集
string. 当 connectionType = Azure Resource Manager && command != logout && command != package && command != save 时,需要此选项。

AKS 群集的名称。 指定 Azure 托管群集。


kubernetesCluster - Kubernetes 群集
string. 当 connectionType = Azure Resource Manager && command != logout && command != package 时,需要此选项。

AKS 群集的名称。 指定 Azure 托管群集。


useClusterAdmin - 使用群集管理员凭据
boolean. 可选。 在 时 connectionType = Azure Resource Manager && command != logout && command != package && command != save使用 。 默认值:false

使用群集管理员凭据而不是默认群集用户凭据。


useClusterAdmin - 使用群集管理员凭据
boolean. 可选。 在 时 connectionType = Azure Resource Manager && command != logout && command != package使用 。 默认值:false

使用群集管理员凭据而不是默认群集用户凭据。


kubernetesServiceConnection - Kubernetes 服务连接
输入别名: kubernetesServiceEndpointstring. 当 connectionType = Kubernetes Service Connection && command != logout && command != package && command != save 时,需要此选项。

指定 Kubernetes 服务连接。


kubernetesServiceConnection - Kubernetes 服务连接
输入别名: kubernetesServiceEndpointstring. 当 connectionType = Kubernetes Service Connection && command != logout && command != package 时,需要此选项。

指定 Kubernetes 服务连接。


namespace - 命名 空间
string. 可选。 在 时 command != logout && command != package && command != save使用 。

在其中运行命令的 kubectl 命名空间。 如果未指定,则任务将使用默认命名空间。 指定要使用的 Kubernetes 命名空间。 可以在任务的高级部分中指定 Tiller 命名空间,也可以通过将 选项作为参数传递来指定 --tiller-namespace


namespace - 命名 空间
string. 可选。 在 时 command != logout && command != package使用 。

在其中运行命令的 kubectl 命名空间。 如果未指定,则任务将使用默认命名空间。 指定要使用的 Kubernetes 命名空间。 可以在任务的高级部分中指定 Tiller 命名空间,也可以通过将 选项作为参数传递来指定 --tiller-namespace


azureSubscriptionForACR - 容器注册表的 Azure 订阅
输入别名: azureSubscriptionEndpointForACRstring. 当 command == save 时,需要此选项。

指定具有Azure 容器注册表的 Azure 订阅。


azureResourceGroupForACR - 资源组
string. 当 command == save 时,需要此选项。

指定具有容器注册表的 Azure 资源组。


azureContainerRegistry - Azure 容器注册表
string. 当 command == save 时,需要此选项。

指定用于推送 Helm 图表的Azure 容器注册表。


command - 命令
string. 必需。 允许的值:create、、deleteexposegetinitinstalllsloginlogoutpackagerollback、、saveupgrade、 。 uninstall 默认值:ls

指定 Helm 命令。


command - 命令
string. 必需。 允许的值:create、、deleteexposegetinitlogininstalllogoutlspackagerollbacksave、 。 upgrade 默认值:ls

指定 Helm 命令。


command - 命令
string. 必需。 允许的值:create、、deleteexposegetinitinstallloginlogoutlspackage、、rollback、 。 upgrade 默认值:ls

指定 Helm 命令。


chartType - 图表类型
string. 当 command == install || command == upgrade 时,需要此选项。 允许的值: NameFilePath (文件路径) 。 默认值:Name

指定要如何输入图表信息。 可以提供图表的名称或图表的文件夹/文件路径。


chartName - 图表名称
string. 当 chartType == Name 时,需要此选项。

要安装的图表引用的名称。 这可以是 URL 或图表名称。 例如,如果图表名称为 stable/mysql,则任务运行 helm install stable/mysql


chartPath - 图表路径
string. 当 chartType == FilePath || command == package 时,需要此选项。

要安装的图表的路径。 这可以是已打包图表的路径,也可以是已解包图表目录的路径。 例如,如果指定 ./redis,则任务将运行 helm install ./redis。 如果要使用作为项目发布的图表,则路径为 $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME


chartVersion - 版本
输入别名: versionstring. 可选。 在 时 command == package || command == install || command == upgrade使用 。

指定要安装的确切图表版本。 如果未指定图表版本,则任务将安装最新版本。 将图表上的版本设置为此 semver 版本。


chartVersion - 版本
输入别名: versionstring. 可选。 在 时 command == package使用 。

指定要安装的确切图表版本。 如果未指定图表版本,则任务将安装最新版本。 将图表上的版本设置为此 semver 版本。


releaseName - 发布名称
string. 可选。 在 时 command == install || command == upgrade使用 。

发布名称。 如果未指定发布名称,则任务会为你自动生成一个发布名称。 输入 releaseName 仅对 installupgrade 命令有效。


overrideValues - 设置值
string. 可选。 在 时 command == install || command == upgrade使用 。

指定命令行上的值。 此输入可以使用逗号指定多个或单独的值: key1=val1,key2=val2

还可以通过用新行分隔多个值来指定多个值,如下所示:

  • key1=val1
  • key2=val2

如果值包含新行,请使用 valueFile 选项。 否则,任务会将新行视为分隔符。 任务使用这些设置值构造 Helm 命令。 例如,可以使用如下所示的命令设置值: helm install --set key1=val1 ./redis


valueFile - 值文件
string. 可选。 在 时 command == install || command == upgrade使用 。

指定 YAML 文件或 URL 中的值。 例如,在 myvalues.yamlhelm install --values=myvals.yaml指定结果。


destination - 目的地
string. 可选。 在 时 command == package使用 。 默认值:$(Build.ArtifactStagingDirectory)

指定 YAML 文件或 URL 中的值。


canaryimage - 使用 Canary 映像版本。
boolean. 可选。 在 时 command == init使用 。 默认值:false

指定金丝雀蒂勒图像。 使用最新预发行版本的 Tiller。


upgradetiller - 升级 Tiller
boolean. 可选。 在 时 command == init使用 。 默认值:true

如果 true为 ,则如果已安装 Tiller,则此输入将升级 Tiller。


updatedependency - 更新依赖项
boolean. 可选。 在 时 command == install || command == package使用 。 默认值:false

如果 true为 ,则此输入会在安装图表之前更新 Helm 依赖项更新。 打包之前,汇报 从 requirements.yaml 到 目录的charts/依赖项。


save -
boolean. 可选。 在 时 command == package使用 。 默认值:true

设置为 true​时,将打包的图表保存到本地图表存储库。


install - 如果版本不存在,请安装。
boolean. 可选。 在 时 command == upgrade使用 。 默认值:true

如果此名称的版本尚不存在,则此输入将运行安装。


recreate - 重新创建 Pod。
boolean. 可选。 在 时 command == upgrade使用 。 默认值:false

对资源执行 Pod 重启(如果适用)。


resetValues - 重置值。
boolean. 可选。 在 时 command == upgrade使用 。 默认值:false

将值重置为内置于图表中的值。


force -
boolean. 可选。 在 时 command == upgrade使用 。 默认值:false

如果需要,通过删除或重新创建操作强制更新资源。


waitForExecution -
boolean. 可选。 在 时 command == init || command == install || command == upgrade使用 。 默认值:true

阻止操作,直到命令执行完成。


arguments - 参数
string. 可选。 在 时 command != login && command != logout使用 。

Helm 命令选项。


enableTls - 启用 TLS
boolean. 可选。 在 时 command != login && command != logout && command != package && command != save使用 。 默认值:false

允许在 Helm 和 Tiller 之间使用 SSL。


enableTls - 启用 TLS
boolean. 可选。 在 时 command != login && command != logout && command != package使用 。 默认值:false

允许在 Helm 和 Tiller 之间使用 SSL。


caCert - CA 证书
string. 当 enableTls == true && command != login && command != logout && command != package && command != save 时,需要此选项。

用于为 Tiller 和 Helm 客户端颁发证书的 CA 证书。


caCert - CA 证书
string. 当 enableTls == true && command != login && command != logout && command != package 时,需要此选项。

用于为 Tiller 和 Helm 客户端颁发证书的 CA 证书。


certificate - 证书
string. 当 enableTls == true && command != login && command != logout && command != package && command != save 时,需要此选项。

指定 Tiller 证书或 Helm 客户端证书。


certificate - 证书
string. 当 enableTls == true && command != login && command != logout && command != package 时,需要此选项。

指定 Tiller 证书或 Helm 客户端证书。


privatekey - 关键
string. 当 enableTls == true && command != login && command != logout && command != package && command != save 时,需要此选项。

指定 Tiller 密钥或 Helm 客户端密钥。


privatekey - 关键
string. 当 enableTls == true && command != login && command != logout && command != package 时,需要此选项。

指定 Tiller 密钥或 Helm 客户端密钥。


tillernamespace - Tiller 命名空间
string. 可选。 在 时 command != login && command != logout && command != package && command != save使用 。

指定 Tiller 的 Kubernetes 命名空间。


tillernamespace - Tiller 命名空间
string. 可选。 在 时 command != login && command != logout && command != package使用 。

指定 Tiller 的 Kubernetes 命名空间。


failOnStderr - 标准错误失败
boolean. 可选。 在 时 command != login && command != logout && command != package && command != save使用 。 默认值:false

如果此输入为 true,则如果任何错误写入错误管道,或者将任何数据写入标准错误流,则此任务将失败。 否则,任务依赖于退出代码来确定失败。


failOnStderr - 标准错误失败
boolean. 可选。 在 时 command != login && command != logout && command != package使用 。 默认值:true

如果此输入为 true,则如果任何错误写入错误管道,或者将任何数据写入标准错误流,则此任务将失败。 否则,任务依赖于退出代码来确定失败。


publishPipelineMetadata - 发布管道元数据
boolean. 可选。 在 时 command != login && command != logout && command != package && command != save使用 。 默认值:true

如果此输入为 true,则任务将收集并发布部署元数据。


chartNameForACR - Azure 容器注册表的图表名称
string. 当 command == save 时,需要此选项。

Azure 容器注册表中的图表名称。


chartPathForACR - Azure 容器注册表的图表路径
string. 当 command == save 时,需要此选项。

Azure 容器注册表中图表目录的文件路径。


任务控制选项

除了任务输入,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

此任务定义以下 输出变量,可在下游步骤、作业和阶段中使用。

helmExitCode
执行指定的 Helm 命令时发出的退出代码。

helmOutput
执行指定的 Helm 命令时发出的输出。

无。

备注

使用 HelmDeploy@0通过运行 Helm 命令在 Azure 容器服务中部署、配置或更新 Kubernetes 群集。 Helm 是一种使用称为图表的打包格式简化 Kubernetes 应用部署和管理的工具。

甚至可以使用 Helm 来定义、共享、安装和升级最复杂的 Kubernetes 应用并对其进行版本控制。

  • Helm 可帮助你将多个 Kubernetes 清单(yaml 文件,例如服务、部署、配置映射等)合并到一个称为 Helm 图表的单元中。 你无需开发或者使用标记化或模板工具。
  • Helm 图表可帮助你管理应用程序依赖项,并将其作为一个单元进行部署和回滚。 此外,可以轻松创建、发布这些图表,对其进行版本控制,以及与其他合作团队共享。

Azure Pipelines 内置了对 Helm 图表的支持:

  • Helm 工具安装程序任务可用于将正确版本的 Helm 安装到代理上。
  • Helm 打包和部署任务可用于打包应用并将其部署到 Kubernetes 群集。 可以使用该任务在 Kubernetes 命名空间中安装或更新 Tiller,以通过 TLS 安全连接到 Tiller 来部署图表,或运行 lint 等任何 Helm 命令。
  • Helm 任务支持使用 Azure 服务连接来连接到 Azure Kubernetes 服务。 可以使用 kubeconfig 或服务帐户连接到任何 Kubernetes 群集。
  • 可以使用 create/update、imagepullsecret 等 Kubectl 任务来补充 Helm 部署。

服务连接

HelmDeploy@0适用于两种服务连接类型:Azure 资源管理器Kubernetes 服务连接。 有关配置这两种连接类型的示例,请参阅 示例

注意

如果已在管道阶段中指定了指向 Kubernetes 群集的环境资源,则不需要服务连接。

访问 AKS 时的 Kubernetes 服务连接注意事项

可以使用以下任一选项创建 Kubernetes 服务连接。

  • KubeConfig
  • 服务帐户
  • Azure 订阅

选择 Kubernetes 服务连接身份验证方法的屏幕截图。

选择 Azure 订阅 选项时,Azure DevOps 需要在服务连接配置时访问 Kubernetes。 无法创建服务连接的原因可能有多种,例如,你 创建了专用群集 ,或者群集 禁用了本地帐户。 在这些情况下,Azure DevOps 无法在服务连接配置时连接到群集,你将看到停滞的 “加载命名空间” 屏幕。

选择 Kubernetes 服务连接身份验证对话框停滞在加载命名空间时的屏幕截图。

从 Kubernetes 1.24 开始, 默认情况下不再创建长期令牌。 Kubernetes 建议不要使用生存期较长的令牌。 因此,使用使用 Azure 订阅 选项创建的 Kubernetes 服务连接的任务无法访问进行身份验证所需的永久令牌,并且无法访问 Kubernetes 群集。 这还会导致冻结的 “加载命名空间 ”对话框。

使用 Azure 资源管理器服务连接访问 AKS

对于 AKS 客户,Azure 资源管理器服务连接类型提供了连接到专用群集或禁用本地帐户的群集的最佳方法。 在创建服务连接时,此方法不依赖于群集连接。 对 AKS 的访问延迟到管道运行时,这具有以下优点:

  • 可以从自承载代理或规模集代理执行对 (专用) AKS 群集的访问,并可以一目了然地访问群集。
  • 为每个使用 Azure 资源管理器服务连接的任务创建令牌。 这可确保使用生存期较短的令牌连接到 Kubernetes,这是 Kubernetes 建议
  • 即使禁用了本地帐户,也可以访问 AKS。

服务连接常见问题解答

我收到以下错误消息:找不到任何与服务帐户关联的机密。 发生了什么?

你正在将 Kubernetes 服务连接与 Azure 订阅选项配合使用。 我们将更新此方法以创建长期令牌。 这预计将在 5 月中旬推出。 但是,根据 Kubernetes 指南,建议开始使用 Azure 服务连接类型,而不是使用长期令牌。

我使用的是 AKS,不想更改任何内容,是否可以继续将任务与 Kubernetes 服务连接配合使用?

我们将更新此方法以创建长期令牌。 这预计将在 5 月中旬推出。 但是,请注意,此方法违反 Kubernetes 指南

我使用的是 Kubernetes 任务和 Kubernetes 服务连接,但未使用 AKS。 我应该担心吗?

任务将继续像以前一样工作。

是否会删除 Kubernetes 服务连接类型?

我们的 Kubernetes 任务适用于任何 Kubernetes 群集,无论它们在何处运行。 Kubernetes 服务连接将继续存在。

我是 AKS 客户,一切正常,我应该采取行动吗?

无需更改任何内容。 如果在创建过程中使用 Kubernetes 服务连接并选择了 Azure 订阅,则应了解 有关使用长期令牌的 Kubernetes 指南

我正在创建 Kubernetes 环境,但无法选择使用服务连接

如果在环境创建期间无法访问 AKS,可以使用空环境并将输入设置为 connectionType Azure 资源管理器服务连接。

我已使用 Azure Active Directory RBAC 配置了 AKS,但管道不起作用。 这些更新会解决此问题吗?

启用 AAD RBAC 时访问 Kubernetes 与令牌创建无关。 为了防止交互式提示,我们将在将来的更新中支持 kubelogin

命令值

命令输入接受以下 helm 命令之一:create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade。 示例部分提供了 示例

每个命令输入映射到一组任务输入。 映射到任务输入的命令在 YAML 语法块和任务输入表中指定

疑难解答

HelmDeploy 任务在 Helm 3.0.2 版本上运行“helm init --wait --client-only”时引发错误“未知标志: --wait”。

Helm 2 和 Helm 3 之间存在一些中断性变更。 其中一项变更包括删除了 tiller,因此不再支持 helm init 命令。 使用 Helm 3.0+ 版本时,已删除命令 init。

使用 Helm 3 时,如果 System.debug 设置为 true 且使用的命令是 Helm upgrade,则即使升级成功,管道也会失败。

这是 Helm 3 的已知问题,因为它会将一些日志写入 stderr。 如果存在指向 stderr 的日志或退出代码为非零,则 Helm 部署任务将被标记为失败。 设置任务输入“failOnStderr: false”以忽略打印到 stderr 的日志。

示例

Azure 资源管理器

此 YAML 示例演示如何使用 Azure 资源管理器来引用 Kubernetes 群集。 此代码与 helm 命令之一以及命令所需的适当值一起使用

variables:
  azureSubscriptionEndpoint: Contoso
  azureContainerRegistry: contoso.azurecr.io
  azureResourceGroup: Contoso
  kubernetesCluster: Contoso

- task: HelmDeploy@0
  displayName: Helm deploy
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)

Kubernetes 服务连接

此 YAML 示例演示如何使用 Kubernetes 服务连接来引用 Kubernetes 群集。 此代码与 helm 命令之一以及命令所需的适当值一起使用

- task: HelmDeploy@0
  displayName: Helm deploy
  inputs:
    connectionType: Kubernetes Service Connection
    kubernetesServiceEndpoint: Contoso

命令

命令输入接受以下 helm 命令之一:create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade。

此 YAML 示例演示 ls 命令:

- task: HelmDeploy@0
  displayName: Helm list
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: ls
    arguments: --all

init 命令

此 YAML 示例演示 init 命令:

- task: HelmDeploy@0
  displayName: Helm init
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: init
    upgradetiller: true
    waitForExecution: true
    arguments: --client-only

install 命令

此 YAML 示例演示 install 命令:

- task: HelmDeploy@0
  displayName: Helm install
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: install
    chartType: FilePath
    chartPath: Application/charts/sampleapp

package 命令

此 YAML 示例演示 package 命令:

- task: HelmDeploy@0
  displayName: Helm package
  inputs:
    command: package
    chartPath: Application/charts/sampleapp
    destination: $(Build.ArtifactStagingDirectory)

upgrade 命令

此 YAML 示例演示 upgrade 命令:

- task: HelmDeploy@0
  displayName: Helm upgrade
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: upgrade
    chartType: filepath
    chartPath: $(Build.ArtifactStagingDirectory)/sampleapp-v0.2.0.tgz
    releaseName: azuredevopsdemo
    install: true
    waitForExecution: false

save 命令

此 YAML 示例演示 save 命令:

- task: HelmDeploy@0
  displayName: Helm save
  inputs:
    command: save
    chartNameForACR: mycontainerregistry.azurecr.io/helm/hello-world:v1
    chartPathForACR: Application/charts/sampleapp
    azureSubscriptionEndpointForACR: $(azureSubscriptionEndpointForACR)
    azureResourceGroupForACR: $(azureResourceGroupForACR)
    azureContainerRegistry: $(azureContainerRegistry)

将 Helm 图表打包并签名

本部分介绍如何在管道中将 Helm 图表打包并签名。

生成私钥-公钥对,以使用 GPG 对将 Helm 图表签名

  1. 下载 GPG

  2. 以管理员模式启动命令提示符。 运行以下命令生成私钥-公钥对,以使用 GPG 将 Helm 图表签名。 创建密钥时,系统会提示你输入用户名和电子邮件地址。 该名称和电子邮件地址稍后用于为创建的私钥-公钥对命名。

    gpg --full-generate-key
    

    生成密钥

  3. 系统会提示你输入通行短语。 指定值并单击“确定”。

    显示提供通行短语的屏幕截图。

  4. 创建密钥后,可以使用以下命令查看包含私钥和公钥的密钥列表。

    • 查看私钥列表

      gpg --list-secret-keys
      

      私钥

    • 查看公钥列表

      gpg --list-keys
      

      公钥

  5. 将私钥和公钥存储在扩展名为 gpg 的 2 个不同文件中,如下所示。

    • 对于私钥
    gpg --export-secret-key 94325E18E53EDD99DD8339C3CFD9DAF0707CB788 contoso@microsoft.com > C:/somepath/privatekeys.gpg
    

    你会看到 privatekeys.gpg 文件已导出到上述路径。

    • 对于公钥
    gpg --export-key 94325E18E53EDD99DD8339C3CFD9DAF0707CB788 contoso@microsoft.com > C:/somepath/publickey.gpg
    

    你会看到 publickey.gpg 文件已导出到上述路径。

在 Azure DevOps 中,将 privatekey.gpg 文件保存在库的 secure files 节中。

示例

pool:
  name: Hosted Ubuntu 1604

variables:
  # The below variable should be secure
  HelmKeyPassphrase: contoso@123
  keyName: contoso contoso@microsoft.com
  azureSubscriptionEndpoint: contoso
  azureResourceGroup: contoso
  kubernetesCluster: contoso

steps:
- task: DownloadSecureFile@1
  displayName: Download Secure file
  inputs:
    secureFile: privatekey.gpg
  name: privateKeyRing

- task: HelmInstaller@0
  displayName: Install Helm 2.12.0
  inputs:
    helmVersion: 2.12.0

- task: HelmDeploy@0
  displayName: helm init
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: init
    arguments: --client-only

- task: HelmDeploy@0
  displayName: helm package
  inputs:
    command: package
    chartPath: Application/charts/sampleapp
    arguments: --sign --key "$(keyName)" --keyring $(privateKeyRing.secureFilePath)
  env:
    HelmKeyPassphrase: $(HelmKeyPassphrase)

要求

要求 说明
管道类型 YAML,经典内部版本,经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置的变量 任意
代理版本 所有支持的代理版本。
任务类别 部署