HelmDeploy@0 - 封裝及部署 Helm 圖表 v0 工作

執行 helm 命令,使用此工作在 Azure Container Service 中部署、設定或更新 Kubernetes 叢集。

執行 helm 命令,使用此工作在 Azure Container Service 中部署、設定或更新 Kubernetes 叢集。

Syntax

# 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 Service。 無法在服務連線設定時間存取 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 Service。 無法在服務連線設定時間存取 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 Service 連線
輸入別名: kubernetesServiceEndpointstring. 當 connectionType = Kubernetes Service Connection && command != logout && command != package && command != save 時為必要。

指定 Kubernetes Service 連線。


kubernetesServiceConnection - Kubernetes Service 連線
輸入別名: kubernetesServiceEndpointstring. 當 connectionType = Kubernetes Service Connection && command != logout && command != package 時為必要。

指定 Kubernetes Service 連線。


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 - Container Registry 的 Azure 訂用帳戶
輸入別名: azureSubscriptionEndpointForACRstring. 當 command == save 時為必要。

指定具有您Azure Container Registry的 Azure 訂用帳戶。


azureResourceGroupForACR - 資源群組
string. 當 command == save 時為必要。

指定具有 Container Registry 的 Azure 資源群組。


azureContainerRegistry - Azure Container Registry
string. 當 command == save 時為必要。

指定要用於推送 Helm 圖表的Azure Container Registry。


command - 命令
string. 必要。 允許的值: create 、、、 exposegetinstallinitlogoutlogin 、、 。 packageuninstalllsrollbacksaveupgradedelete 預設值:ls

指定 Helm 命令。


command - 命令
string. 必要。 允許的值:、、、 exposeinstallgetloginlogoutinit 、、 。 lsupgradepackagesaverollbackdeletecreate 預設值:ls

指定 Helm 命令。


command - 命令
string. 必要。 允許的值: create 、、 deleteinitinstallexposegetloginlogout 、、 。 lspackagerollbackupgrade 預設值: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

指定 Canary Tiller 影像。 使用最新的 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 時為必要。

CA 憑證,用來發行 Tiller 和 Helm 用戶端的憑證。


caCert - CA 憑證
string. 當 enableTls == true && command != login && command != logout && command != package 時為必要。

CA 憑證,用來發行 Tiller 和 Helm 用戶端的憑證。


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 Container Registry的圖表名稱
string. 當 command == save 時為必要。

Azure Container Registry中的圖表名稱。


chartPathForACR - Azure Container Registry的圖表路徑
string. 當 command == save 時為必要。

Azure Container Registry中圖表目錄的檔案路徑。


工作控制選項

除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制選項和一般工作屬性

輸出變數

此工作會定義下列 輸出變數,您可以在下游步驟、作業和階段中使用。

helmExitCode
從執行指定的 Helm 命令發出的結束代碼。

helmOutput
從執行指定的 Helm 命令發出的輸出。

無。

備註

執行 Helm 命令,使用HelmDeploy@0在 Azure Container Service 中部署、設定或更新 Kubernetes 叢集。 Helm 是一種工具,可使用稱為圖表的封裝格式,簡化部署和管理 Kubernetes 應用程式。

您可以使用 Helm 定義、版本、共用、安裝和升級最複雜的 Kubernetes 應用程式。

  • Helm 可協助您將多個 Kubernetes 資訊清單 (yaml) ,例如服務、部署、組態對應等等,合併成稱為 Helm Chart 的單一單元。 您不需要發明或使用權杖化或範本化工具。
  • Helm 圖表可協助您管理應用程式相依性,以及部署和復原作為單位。 它們也很容易建立、版本、發佈,並與其他合作夥伴小組共用。

Azure Pipelines 具有 Helm 圖表的內建支援:

  • Helm 工具安裝程式工作可用來將正確的 Helm 版本安裝到代理程式上。
  • Helm 套件和部署工作可用來封裝應用程式,並將其部署至 Kubernetes 叢集。 您可以使用工作來安裝或更新 Tiller 至 Kubernetes 命名空間、安全地連線到 Tiller over TLS 以部署圖表,或執行 lint之類的任何 Helm 命令。
  • Helm 工作支援使用 Azure 服務連線連線連線至Azure Kubernetes Service。 您可以使用 kubeconfig 或服務帳戶連線到任何 Kubernetes 叢集。
  • Helm 部署可以使用 Kubectl 工作來補充;例如,create/update、imagepullsecret 和其他專案。

服務連線

HelmDeploy@0適用于兩種服務連線類型:Azure Resource ManagerKubernetes 服務連線。 如需設定這兩種連線類型的範例,請參閱 範例

注意

如果指向 Kubernetes 叢集的環境資源已在管線階段中指定,則不需要服務連線。

存取 AKS 時的 Kubernetes Service 連線考慮

您可以使用下列任何選項來建立 Kubernetes 服務連線。

  • KubeConfig
  • 服務帳戶
  • Azure 訂用帳戶

選擇 Kubernetes 服務連線驗證方法的螢幕擷取畫面。

選取 [Azure 訂 用帳戶] 選項時,Kubernetes 必須在服務連線設定時間存取 Azure DevOps。 可能無法建立服務連線的各種原因,例如您 建立私人叢集 ,或叢集 已停用本機帳戶。 在這些情況下,Azure DevOps 無法在服務連線設定時間連線到叢集,您會看到停滯的 載入命名空間 畫面。

選擇 Kubernetes 服務連線驗證對話方塊停滯在載入命名空間的螢幕擷取畫面。

從 Kubernetes 1.24 開始, 預設不會再建立長期權杖。 Kubernetes 不建議使用長期權杖。 因此,使用以 Azure 訂 用帳戶建立的 Kubernetes 服務連線工作,無法存取驗證所需的永久權杖,而且無法存取 Kubernetes 叢集。 這也會導致凍結的 [載入命名空間 ] 對話方塊。

使用 Azure Resource Manager服務連線來存取 AKS

對於 AKS 客戶,Azure Resource Manager服務連線類型提供連線到私人叢集的最佳方法,或已停用本機帳戶的叢集。 當您建立服務連線時,此方法不相依于叢集連線。 AKS 的存取會延後至管線執行時間,其優點如下:

  • 您可以從可看見叢集的自我裝載或擴展集代理程式,存取 (私人) AKS 叢集。
  • 系統會針對使用 Azure Resource Manager服務連線的每個工作建立權杖。 這可確保您使用短期權杖連線到 Kubernetes,這是 Kubernetes 建議
  • 即使停用本機帳戶,也可以存取 AKS。

服務連線常見問題

我收到下列錯誤訊息:找不到與服務帳戶相關聯的任何秘密。 這是為什麼?

您使用 Kubernetes 服務連線搭配 Azure 訂用帳戶選項。 我們正在更新這個方法來建立長期存留的權杖。 這預期會在 5 月中提供。 不過,建議您開始使用 Azure 服務連線類型,而不是根據 Kubernetes 指引使用長期權杖。

我使用的是 AKS,不想變更任何專案,我可以繼續搭配 Kubernetes 服務連線使用工作嗎?

我們正在更新這個方法來建立長期存留的權杖。 這預期會在 5 月中提供。 不過,請注意,此方法是針對 Kubernetes 指引

我使用的是 Kubernetes 工作和 Kubernetes 服務連線,但不是 AKS。 我應該擔心嗎?

您工作會如往常一樣繼續運作。

是否會移除 Kubernetes 服務連線類型?

我們的 Kubernetes 工作會使用任何 Kubernetes 叢集,不論其執行位置為何。 Kubernetes 服務連線將繼續存在。

我是 AKS 客戶,而且一切都正常運作,我應該採取動作嗎?

不需要變更任何專案。 如果您在建立期間使用 Kubernetes 服務連線和選取的 Azure 訂用帳戶,您應該留意 使用長期權杖的 Kubernetes 指引

我正在建立 Kubernetes 環境,而且沒有選項可以使用服務連線

如果無法在環境建立期間存取 AKS,您可以使用空的環境,並將輸入設定 connectionType 為 Azure Resource Manager服務連線。

我已使用 Azure Active Directory RBAC 設定 AKS,而我的管線無法運作。 這些更新會解決嗎?

啟用 AAD RBAC 時存取 Kubernetes 與權杖建立無關。 為了防止互動式提示,我們將在未來的更新中支援 kubelogin

命令值

命令輸入接受下列其中一個 helm 命令:create/delete/public/get/init/install/login/logout/ls/package/rollback/upgrade。 Examples are provided in the Examples section.

每個命令輸入都會對應至一組工作輸入。 對應至工作輸入的命令是在 YAML 語法區塊和工作輸入資料表中指定

疑難排解

HelmDeploy 工作在 Helm 3.0.2 版本上執行 'helm init --wait --client-only' 時擲回錯誤 'unknown flag: --wait'。

Helm 2 與 Helm 3 之間有一些重大變更。 其中一個包括移除 tiller,因此 helm init 不再支援命令。 使用 Helm 3.0 + 版本時,請移除 command: init。

使用 Helm 3 時,如果 System.debug 設定為 true 且 Helm 升級是正在使用的命令,即使升級成功,管線仍會失敗。

這是 Helm 3 的已知問題,因為其會將一些記錄寫入 stderr。 如果有記錄到 stderr 或結束代碼為非零,則 Helm 部署工作會標示為失敗。 設定工作輸入 failOnStderr: false,以忽略列印到 stderr 的記錄。

範例

Azure Resource Manager

此 YAML 範例示範如何使用 Azure Resource Manager 來參考 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 Service 連線

此 YAML 範例示範如何使用 Kubernetes 服務連線來參考 Kubernetes 叢集。 這與其中一個 helm 命令 搭配使用,以及命令所需的適當值:

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

命令

命令輸入接受下列其中一個 helm 命令:create/delete/public/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 範例示範 套件 命令:

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

upgrade 命令

此 YAML 範例示範 升級 命令:

- 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 檔案儲存在程式庫 安全檔案 區段中。

範例

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
要求
Capabilities 此工作不符合作業中後續工作的任何需求。
命令限制 任何
Settable 變數 任何
代理程式版本 所有支援的代理程式版本。
工作類別 部署