HelmDeploy@1 - 封裝及部署 Helm 圖表 v1 工作
執行 helm 命令,在 Azure Container Service 中部署、設定、更新 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
-
連線類型
string
。
command != logout && command != package
時為必要項。 允許的值:Azure Resource Manager
、Kubernetes Service Connection
、None
。 預設值:Azure Resource Manager
。
選取 [Azure Resource Manager] 以使用 Azure 服務聯機連線至 Azure Kubernetes Service。 選取 [Kubernetes 服務連線],以使用 kubeconfig 或服務帳戶連線到任何 Kubernetes 叢集。
azureSubscription
-
Azure 訂用帳戶
輸入別名:azureSubscriptionEndpoint
。
string
。
connectionType = Azure Resource Manager && command != logout && command != package
時為必要項。
選取具有 Azure Container Registry 的 Azure 訂用帳戶。
azureResourceGroup
-
資源群組
string
。
connectionType = Azure Resource Manager && command != logout && command != package
時為必要項。
選取 Azure 資源群組。
kubernetesCluster
-
Kubernetes 叢集
string
。
connectionType = Azure Resource Manager && command != logout && command != package
時為必要項。
選取 Azure 受控叢集。
useClusterAdmin
-
使用叢集管理員認證
boolean
。 自選。
connectionType = Azure Resource Manager && command != logout && command != package
時使用 。 預設值:false
。
使用叢集管理員認證,而不是預設叢集用戶認證。
kubernetesServiceConnection
-
Kubernetes Service 連線
輸入別名:kubernetesServiceEndpoint
。
string
。
connectionType = Kubernetes Service Connection && command != logout && command != package
時為必要項。
選取 Kubernetes 服務連線。
namespace
-
命名空間
string
。 自選。
command != logout && command != package
時使用 。
指定要使用的 K8 命名空間。 您可以使用 Tiller 命名空間在工作的進階區段中指定,或傳遞 --tiller-namespace 選項做為自變數。
azureSubscriptionForACR
-
Container Registry 的 Azure 訂用帳戶
輸入別名:azureSubscriptionEndpointForACR
。
string
。
command == login || command == package
時為必要項。
選取具有 Azure Container Registry 的 Azure 訂用帳戶。
azureResourceGroupForACR
-
資源群組
string
。
command == login || command == package
時為必要項。
選取具有 Container Registry 的 Azure 資源群組。
azureContainerRegistry
-
Azure Container Registry
string
。
command == login || command == package
時為必要項。
選取將用於 Helm 圖表的 Azure Container Registry。
command
-
命令
string
。 必填。 允許的值:create
、delete
、expose
、get
、init
、install
、login
、logout
、ls
、package
、rollback
、upgrade
、uninstall
。 預設值: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'。
chartVersion
-
版本
輸入別名:version
。
string
。 自選。
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
-
Wait
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 憑證
string
。
enableTls == true && command != login && command != logout && command != package
時為必要項。
CA 憑證,用來發行 tiller 和 helm 用戶端的憑證。
certificate
-
憑證
string
。
enableTls == true && command != login && command != logout && command != package
時為必要項。
指定 Tiller 憑證或 Helm 用戶端憑證。
privatekey
-
金鑰
string
。
enableTls == 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
。
如果這是真的,工作將會收集併發佈部署元數據。
Azure Container Registry chartNameForACR
- 圖表名稱
string
。
command == package
時為必要項。
圖表名稱,圖表將儲存在 Azure Container Registry 中。
chartPathForACR
-
Azure Container Registry 的圖表路徑
string
。
command == package
時為必要項。
圖表目錄的路徑。
工作控制選項
除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性。
輸出變數
此工作會定義下列 輸出變數,您可以在下游步驟、作業和階段中取用這些變數。
helmExitCode
從執行指定的 Helm 命令發出的結束代碼
helmOutput
從執行指定的 Helm 命令發出的輸出
言論
HelmDeploy@1
工作的主要變更是會移除 helm 圖表命令:
- 已移除
helm chart
子命令 - 已移除
helm chart push
- 已移除
helm chart remove
-
helm chart save
已取代為helm package
- 已移除
helm save
要求
要求 | 描述 |
---|---|
管線類型 | YAML、傳統組建、傳統版本 |
執行於 | Agent、DeploymentGroup |
需求 | 沒有 |
功能 | 此工作不符合作業中後續工作的任何需求。 |
命令限制 | 任何 |
Settable 變數 | 任何 |
代理程式版本 | 所有支援的代理程式版本。 |
工作類別 | 部署 |