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 Manager
、Kubernetes Service Connection
、None
。 預設值: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 Manager
、Kubernetes Service Connection
、None
。 預設值: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 訂用帳戶
輸入別名: azureSubscriptionEndpoint
。 string
. 當 connectionType = Azure Resource Manager && command != logout && command != package && command != save
時為必要。
Azure 服務連線的名稱。 指定具有容器登錄的 Azure 訂用帳戶。
azureSubscription
- Azure 訂用帳戶
輸入別名: azureSubscriptionEndpoint
。 string
. 當 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 連線
輸入別名: kubernetesServiceEndpoint
。 string
. 當 connectionType = Kubernetes Service Connection && command != logout && command != package && command != save
時為必要。
指定 Kubernetes Service 連線。
kubernetesServiceConnection
- Kubernetes Service 連線
輸入別名: kubernetesServiceEndpoint
。 string
. 當 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 訂用帳戶
輸入別名: azureSubscriptionEndpointForACR
。 string
. 當 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
、、、 expose
、 get
install
init
logout
login
、、 。 package
uninstall
ls
rollback
save
upgrade
delete
預設值:ls
。
指定 Helm 命令。
command
- 命令
string
. 必要。 允許的值:、、、 expose
install
get
login
logout
init
、、 。 ls
upgrade
package
save
rollback
delete
create
預設值:ls
。
指定 Helm 命令。
command
- 命令
string
. 必要。 允許的值: create
、、 delete
init
install
expose
get
login
、 logout
、、 。 ls
package
rollback
upgrade
預設值:ls
。
指定 Helm 命令。
chartType
- 圖表類型
string
. 當 command == install || command == upgrade
時為必要。 允許的值: Name
、 FilePath
(檔案路徑) 。 預設值: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
- 版本
輸入別名: version
。 string
. 選擇性。 使用 時機 command == package || command == install || command == upgrade
。
指定要安裝的確切圖表版本。 如果您未指定圖表版本,工作會安裝最新版本。 將圖表上的版本設定為此 semver 版本。
chartVersion
- 版本
輸入別名: version
。 string
. 選擇性。 使用 時機 command == package
。
指定要安裝的確切圖表版本。 如果您未指定圖表版本,工作會安裝最新版本。 將圖表上的版本設定為此 semver 版本。
releaseName
- 發行名稱
string
. 選擇性。 使用 時機 command == install || command == upgrade
。
發行名稱。 如果您未指定發行名稱,工作會自動為您產生一個版本名稱。 輸入 releaseName
僅適用于 install
和 upgrade
命令。
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.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
。
如果 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 Manager和Kubernetes 服務連線。 如需設定這兩種連線類型的範例,請參閱 範例 。
注意
如果指向 Kubernetes 叢集的環境資源已在管線階段中指定,則不需要服務連線。
存取 AKS 時的 Kubernetes Service 連線考慮
您可以使用下列任何選項來建立 Kubernetes 服務連線。
- KubeConfig
- 服務帳戶
- Azure 訂用帳戶
選取 [Azure 訂 用帳戶] 選項時,Kubernetes 必須在服務連線設定時間存取 Azure DevOps。 可能無法建立服務連線的各種原因,例如您 建立私人叢集 ,或叢集 已停用本機帳戶。 在這些情況下,Azure DevOps 無法在服務連線設定時間連線到叢集,您會看到停滯的 載入命名空間 畫面。
從 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 圖表
下載 GPG。
以系統管理員模式啟動命令提示字元。 執行下列命令以產生私密金鑰組,以使用 gpg 簽署 helm 圖表。 建立金鑰時,系統會提示您輸入使用者名稱和電子郵件地址。 稍後會使用「名稱電子郵件地址」來命名所建立的私密金鑰組。
gpg --full-generate-key
系統會提示您輸入複雜密碼。 提供值,然後按一下 [確定]。
建立金鑰之後,您可以使用下列命令來查看包含私用和公用的金鑰清單。
若要查看私密金鑰清單
gpg --list-secret-keys
若要查看公開金鑰清單
gpg --list-keys
使用副檔名 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 變數 | 任何 |
代理程式版本 | 所有支援的代理程式版本。 |
工作類別 | 部署 |