HelmDeploy@1 - 打包和部署 Helm 图表 v1 任务

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

语法

# Package and deploy Helm charts v1
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@1
  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. 
  # Azure Container Registry
    #azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == login || command == package. Azure subscription for Container Registry. 
    #azureResourceGroupForACR: # string. Required when command == login || command == package. Resource group. 
    #azureContainerRegistry: # string. Required when command == login || command == package. Azure Container Registry. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | '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 == package. Chart Name For Azure Container Registry. 
    #chartPathForACR: # string. Required when command == package. Chart Path for Azure Container Registry. 
  # 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: false # boolean. Optional. Use when command != login && command != logout && command != package. Fail on Standard Error. Default: false.
    #publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package. Publish pipeline metadata. Default: true.

输入

connectionType - 连接类型
stringcommand != logout && command != package时是必需的。 允许的值:Azure Resource ManagerKubernetes Service ConnectionNone。 默认值:Azure Resource Manager

选择“Azure 资源管理器”以使用 Azure 服务连接连接到 Azure Kubernetes 服务。 选择“Kubernetes 服务连接”以使用 kubeconfig 或服务帐户连接到任何 Kubernetes 群集。


azureSubscription - Azure 订阅
输入别名:azureSubscriptionEndpointstringconnectionType = Azure Resource Manager && command != logout && command != package时是必需的。

选择具有 Azure 容器注册表的 Azure 订阅。


azureResourceGroup - 资源组
stringconnectionType = Azure Resource Manager && command != logout && command != package时是必需的。

选择 Azure 资源组。


kubernetesCluster - Kubernetes 群集
stringconnectionType = Azure Resource Manager && command != logout && command != package时是必需的。

选择 Azure 托管群集。


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

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


kubernetesServiceConnection - Kubernetes 服务连接
输入别名:kubernetesServiceEndpointstringconnectionType = Kubernetes Service Connection && command != logout && command != package时是必需的。

选择 Kubernetes 服务连接。


namespace - 命名空间
string。 自选。 当 command != logout && command != package时使用。

指定要使用的 K8 命名空间。 可以使用 Tiller 命名空间在任务的高级部分中指定,也可以通过将 --tiller-namespace 选项作为参数传递。


azureSubscriptionForACR - 容器注册表的 Azure 订阅
输入别名:azureSubscriptionEndpointForACRstringcommand == login || command == package时是必需的。

选择具有 Azure 容器注册表的 Azure 订阅。


azureResourceGroupForACR - 资源组
stringcommand == login || command == package时是必需的。

选择具有容器注册表的 Azure 资源组。


azureContainerRegistry - Azure 容器注册表
stringcommand == login || command == package时是必需的。

选择将用于 helm 图表的 Azure 容器注册表。


command - 命令
string。 必填。 允许的值:createdeleteexposegetinitinstallloginlogoutlspackagerollbackupgradeuninstall。 默认值:ls

选择 helm 命令。


chartType - 图表类型
stringcommand == install || command == upgrade时是必需的。 允许的值:NameFilePath(文件路径)。 默认值:Name

选择要输入图表信息的方式。 可以提供图表的名称或图表的文件夹/文件路径。


chartName - 图表名称
stringchartType == Name时是必需的。

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


chartPath - 图表路径
stringchartType == FilePath || command == package时是必需的。

要安装的图表的路径。 这可以是打包图表的路径,也可以是解包图表目录的路径。 例如,如果指定了“./redis”,任务将运行“helm install ./redis”。


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

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


releaseName - 发布名称
string。 自选。 当 command == install || command == upgrade时使用。

发布名称。 如果未指定,它将自动生成一个。


overrideValues - 设置值
string。 自选。 当 command == install || command == upgrade时使用。

在命令行上设置值(可以使用逗号或换行符指定多个或单独的值:key1=val1,key2=val2 或
key1=val1
key2=val2
). 该任务将使用这些设置值来构造 helm 命令。 例如,helm 安装 --set key1=val1 ./redis。


valueFile - 值文件
string。 自选。 当 command == install || command == upgrade时使用。

在 YAML 文件或 URL 中指定值。 例如,指定 myvalues.yaml 将导致“helm install --values=myvals.yaml”。


destination - 目标
string。 自选。 当 command == package时使用。 默认值:$(Build.ArtifactStagingDirectory)

在 YAML 文件或 URL 中指定值。


canaryimage - 使用 canary 映像版本。
boolean。 自选。 当 command == init时使用。 默认值:false

使用 Canary Tiller 映像,这是 Tiller 的最新预发行版本。


upgradetiller - 升级 Tiller
boolean。 自选。 当 command == init时使用。 默认值:true

如果已安装 Tiller,请升级。


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

在安装图表之前运行 helm 依赖项更新。 在打包之前,将依赖项从“requirements.yaml”更新为 dir“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 - 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时使用。 默认值:false

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


caCert - CA 证书
stringenableTls == true && command != login && command != logout && command != package时是必需的。

用于颁发 tiller 和 helm 客户端证书的 CA 证书。


certificate - 证书
stringenableTls == true && command != login && command != logout && command != package时是必需的。

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


privatekey - 密钥
stringenableTls == true && command != login && command != logout && command != package时是必需的。

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


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

指定 tiller 的 K8 命名空间。


标准错误 失败
boolean。 自选。 当 command != login && command != logout && command != package时使用。 默认值:false

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


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

如果为 true,任务将收集和发布部署元数据。


Azure 容器注册表的 chartNameForACR - 图表名称
stringcommand == package时是必需的。

图表名称,图表将存储在 Azure 容器注册表中。


Azure 容器注册表 的 图表路径
stringcommand == package时是必需的。

图表目录的路径。


任务控制选项

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

输出变量

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

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

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

言论

HelmDeploy@1 任务的主要更改是删除 helm 图表命令:

  • 已删除 helm chart 子命令
  • 已删除 helm chart push
  • 已删除 helm chart remove
  • helm chart save 已替换为 helm package
  • 已删除 helm save

要求

要求 描述
管道类型 YAML,经典版本,经典版本
运行时间 代理,DeploymentGroup
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 所有支持的代理版本。
任务类别 部署