HelmDeploy@0 - Creare un pacchetto e distribuire l'attività Grafici Helm v0
Usare questa attività per distribuire, configurare o aggiornare un cluster Kubernetes nel servizio Azure Container eseguendo comandi Helm.
Sintassi
# 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.
Ingressi dati
connectionType
-
tipo di connessione
string
. Obbligatorio quando command != logout && command != package && command != save
. Valori consentiti: Azure Resource Manager
, Kubernetes Service Connection
, None
. Valore predefinito: Azure Resource Manager
Specifica il tipo di connessione.
-
Kubernetes Service Connection
: specificareKubernetes Service Connection
per connettersi a qualsiasi cluster Kubernetes usandokubeconfig
o l'account del servizio di Azure. Consente di fornire un file KubeConfig, specificare un account del servizio o importare un'istanza del servizio Azure Kubernetes con l'opzione sottoscrizione di Azure. L'importazione di un'istanza del servizio Azure Kubernetes con l'opzione sottoscrizione di Azure richiede l'accesso al cluster Kubernetes al momento della configurazione della connessione del servizio. -
Azure Resource Manager
: specificareAzure Resource Manager
per connettersi a un servizio Azure Kubernetes tramite connessione al servizio di Azure. Non accede al cluster Kubernetes in fase di configurazione della connessione al servizio. -
None
: usare una configurazione Kubernetes creata in locale.
Per altre informazioni, vedere connessione al servizio nella sezione osservazioni seguente.
connectionType
-
tipo di connessione
string
. Obbligatorio quando command != logout && command != package
. Valori consentiti: Azure Resource Manager
, Kubernetes Service Connection
, None
. Valore predefinito: Azure Resource Manager
Specifica il tipo di connessione.
-
Kubernetes Service Connection
: specificareKubernetes Service Connection
per connettersi a qualsiasi cluster Kubernetes usandokubeconfig
o l'account del servizio di Azure. Consente di fornire un file KubeConfig, specificare un account del servizio o importare un'istanza del servizio Azure Kubernetes con l'opzione sottoscrizione di Azure. L'importazione di un'istanza del servizio Azure Kubernetes con l'opzione sottoscrizione di Azure richiede l'accesso al cluster Kubernetes al momento della configurazione della connessione del servizio. -
Azure Resource Manager
: specificareAzure Resource Manager
per connettersi a un servizio Azure Kubernetes tramite connessione al servizio di Azure. Non accede al cluster Kubernetes in fase di configurazione della connessione al servizio. -
None
: usare una configurazione Kubernetes creata in locale.
Per altre informazioni, vedere connessione al servizio nella sezione osservazioni seguente.
azureSubscription
-
sottoscrizione di Azure
Alias di input: azureSubscriptionEndpoint
.
string
. Obbligatorio quando connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
Nome della connessione al servizio di Azure. Specificare una sottoscrizione di Azure con il registro contenitori.
azureSubscription
-
sottoscrizione di Azure
Alias di input: azureSubscriptionEndpoint
.
string
. Obbligatorio quando connectionType = Azure Resource Manager && command != logout && command != package
.
Nome della connessione al servizio di Azure. Specificare una sottoscrizione di Azure con il registro contenitori.
azureResourceGroup
-
gruppo di risorse
string
. Obbligatorio quando connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
Nome del gruppo di risorse all'interno della sottoscrizione. Specificare un gruppo di risorse di Azure.
azureResourceGroup
-
gruppo di risorse
string
. Obbligatorio quando connectionType = Azure Resource Manager && command != logout && command != package
.
Nome del gruppo di risorse all'interno della sottoscrizione. Specificare un gruppo di risorse di Azure.
kubernetesCluster
-
cluster Kubernetes
string
. Obbligatorio quando connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
Nome del cluster del servizio Azure Kubernetes. Specificare un cluster gestito di Azure.
kubernetesCluster
-
cluster Kubernetes
string
. Obbligatorio quando connectionType = Azure Resource Manager && command != logout && command != package
.
Nome del cluster del servizio Azure Kubernetes. Specificare un cluster gestito di Azure.
useClusterAdmin
-
Usare le credenziali di amministratore del cluster
boolean
. Opzionale. Usare quando connectionType = Azure Resource Manager && command != logout && command != package && command != save
. Valore predefinito: false
Usa le credenziali di amministratore del cluster anziché le credenziali utente del cluster predefinite.
useClusterAdmin
-
Usare le credenziali di amministratore del cluster
boolean
. Opzionale. Usare quando connectionType = Azure Resource Manager && command != logout && command != package
. Valore predefinito: false
Usa le credenziali di amministratore del cluster anziché le credenziali utente del cluster predefinite.
kubernetesServiceConnection
-
connessione al servizio Kubernetes
Alias di input: kubernetesServiceEndpoint
.
string
. Obbligatorio quando connectionType = Kubernetes Service Connection && command != logout && command != package && command != save
.
Specifica una connessione al servizio Kubernetes.
kubernetesServiceConnection
-
connessione al servizio Kubernetes
Alias di input: kubernetesServiceEndpoint
.
string
. Obbligatorio quando connectionType = Kubernetes Service Connection && command != logout && command != package
.
Specifica una connessione al servizio Kubernetes.
namespace
-
spazio dei nomi
string
. Opzionale. Usare quando command != logout && command != package && command != save
.
Spazio dei nomi in cui si eseguono i comandi kubectl
. Se non specificato, l'attività usa lo spazio dei nomi predefinito. Specificare lo spazio dei nomi Kubernetes da usare. È possibile specificare lo spazio dei nomi Tiller nella sezione avanzata dell'attività o passando l'opzione --tiller-namespace
come argomento.
namespace
-
spazio dei nomi
string
. Opzionale. Usare quando command != logout && command != package
.
Spazio dei nomi in cui si eseguono i comandi kubectl
. Se non specificato, l'attività usa lo spazio dei nomi predefinito. Specificare lo spazio dei nomi Kubernetes da usare. È possibile specificare lo spazio dei nomi Tiller nella sezione avanzata dell'attività o passando l'opzione --tiller-namespace
come argomento.
azureSubscriptionForACR
-
sottoscrizione di Azure per l' del Registro Container
Alias di input: azureSubscriptionEndpointForACR
.
string
. Obbligatorio quando command == save
.
Specifica una sottoscrizione di Azure con Registro Azure Container.
azureResourceGroupForACR
-
gruppo di risorse
string
. Obbligatorio quando command == save
.
Specifica un gruppo di risorse di Azure con registro contenitori.
azureContainerRegistry
-
registro Azure Container
string
. Obbligatorio quando command == save
.
Specifica un Registro Azure Container da usare per il push dei grafici Helm.
command
-
comando
string
. Obbligatorio. Valori consentiti: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
, upgrade
, uninstall
. Valore predefinito: ls
Specifica un comando Helm.
command
-
comando
string
. Obbligatorio. Valori consentiti: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
. Valore predefinito: ls
Specifica un comando Helm.
command
-
comando
string
. Obbligatorio. Valori consentiti: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, upgrade
. Valore predefinito: ls
Specifica un comando Helm.
chartType
-
tipo di grafico
string
. Obbligatorio quando command == install || command == upgrade
. Valori consentiti: Name
, FilePath
(percorso file). Valore predefinito: Name
Specifica la modalità di immissione delle informazioni sul grafico. È possibile specificare il nome del grafico o del percorso cartella/file del grafico.
chartName
-
nome grafico
string
. Obbligatorio quando chartType == Name
.
Nome del riferimento al grafico da installare. Può trattarsi di un URL o di un nome di grafico. Ad esempio, se il nome del grafico è stable/mysql
, l'attività viene eseguita helm install stable/mysql
.
chartPath
-
percorso grafico
string
. Obbligatorio quando chartType == FilePath || command == package
.
Percorso del grafico da installare. Può trattarsi di un percorso di un grafico in pacchetto o di un percorso di una directory del grafico decompresso. Ad esempio, se si specifica ./redis
, l'attività viene eseguita helm install ./redis
. Se si utilizza un grafico pubblicato come artefatto, il percorso verrà $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME
.
chartVersion
-
versione
Alias di input: version
.
string
. Opzionale. Usare quando command == package || command == install || command == upgrade
.
Specifica la versione esatta del grafico da installare. Se non si specifica la versione del grafico, l'attività installa la versione più recente. Impostare la versione nel grafico su questa versione semver.
chartVersion
-
versione
Alias di input: version
.
string
. Opzionale. Usare quando command == package
.
Specifica la versione esatta del grafico da installare. Se non si specifica la versione del grafico, l'attività installa la versione più recente. Impostare la versione nel grafico su questa versione semver.
releaseName
-
nome versione
string
. Opzionale. Usare quando command == install || command == upgrade
.
Nome della versione. Se non si specifica il nome della versione, l'attività ne genera automaticamente una. L'input releaseName
è valido solo per i comandi install
e upgrade
.
overrideValues
-
impostare valori
string
. Opzionale. Usare quando command == install || command == upgrade
.
Specifica i valori nella riga di comando. Questo input può specificare più valori o separarli con virgole: key1=val1,key2=val2
.
È anche possibile specificare più valori delimitandoli con una nuova riga, come indicato di seguito:
- key1=val1
- key2=val2
Se si dispone di un valore che contiene nuove righe, usare l'opzione valueFile
. In caso contrario, l'attività considera la nuova riga come delimitatore. L'attività costruisce il comando Helm usando questi valori impostati. Ad esempio, è possibile impostare il valore usando un comando simile al seguente: helm install --set key1=val1 ./redis
.
valueFile
-
file valore
string
. Opzionale. Usare quando command == install || command == upgrade
.
Specifica i valori in un file YAML o in un URL. Ad esempio, se si specifica myvalues.yaml
viene restituito helm install --values=myvals.yaml
.
destination
-
destinazione
string
. Opzionale. Usare quando command == package
. Valore predefinito: $(Build.ArtifactStagingDirectory)
Specifica i valori in un file YAML o in un URL.
canaryimage
-
Usare la versione dell'immagine canary.
boolean
. Opzionale. Usare quando command == init
. Valore predefinito: false
Specifica l'immagine canary Tiller. Usare la versione non definitiva più recente di Tiller.
upgradetiller
-
Upgrade Tiller
boolean
. Opzionale. Usare quando command == init
. Valore predefinito: true
Se true
, questo input aggiorna Tiller se Tiller è già installato.
updatedependency
-
Aggiornare dipendenze
boolean
. Opzionale. Usare quando command == install || command == package
. Valore predefinito: false
Se true
, questo input aggiorna un aggiornamento delle dipendenze Helm prima di installare il grafico. Aggiorna le dipendenze da requirements.yaml
alla directory charts/
prima della creazione del pacchetto.
save
-
Salva
boolean
. Opzionale. Usare quando command == package
. Valore predefinito: true
Salva il grafico in pacchetto nel repository del grafico locale quando impostato su true
.
install
-
Installare se la versione non è presente.
boolean
. Opzionale. Usare quando command == upgrade
. Valore predefinito: true
Se non esiste già una versione con questo nome, questo input esegue un'installazione.
recreate
-
ricreare i pod.
boolean
. Opzionale. Usare quando command == upgrade
. Valore predefinito: false
Esegue il riavvio dei pod per la risorsa, se applicabile.
resetValues
-
reimpostare i valori.
boolean
. Opzionale. Usare quando command == upgrade
. Valore predefinito: false
Reimposta i valori sui valori incorporati nel grafico.
force
-
Force
boolean
. Opzionale. Usare quando command == upgrade
. Valore predefinito: false
Forza l'aggiornamento di una risorsa tramite un'azione di eliminazione o ricreazione, se necessario.
waitForExecution
-
Attesa
boolean
. Opzionale. Usare quando command == init || command == install || command == upgrade
. Valore predefinito: true
Blocca l'azione fino al completamento dell'esecuzione del comando.
arguments
-
argomenti
string
. Opzionale. Usare quando command != login && command != logout
.
Opzioni del comando Helm.
enableTls
-
Abilitare TLS
boolean
. Opzionale. Usare quando command != login && command != logout && command != package && command != save
. Valore predefinito: false
Abilita l'uso di SSL tra Helm e Tiller.
enableTls
-
Abilitare TLS
boolean
. Opzionale. Usare quando command != login && command != logout && command != package
. Valore predefinito: false
Abilita l'uso di SSL tra Helm e Tiller.
caCert
-
Certificato CA
string
. Obbligatorio quando enableTls == true && command != login && command != logout && command != package && command != save
.
Certificato CA usato per rilasciare un certificato per il client Tiller e Helm.
caCert
-
Certificato CA
string
. Obbligatorio quando enableTls == true && command != login && command != logout && command != package
.
Certificato CA usato per rilasciare un certificato per il client Tiller e Helm.
certificate
-
certificato
string
. Obbligatorio quando enableTls == true && command != login && command != logout && command != package && command != save
.
Specificare il certificato Tiller o il certificato client Helm.
certificate
-
certificato
string
. Obbligatorio quando enableTls == true && command != login && command != logout && command != package
.
Specificare il certificato Tiller o il certificato client Helm.
privatekey
-
chiave
string
. Obbligatorio quando enableTls == true && command != login && command != logout && command != package && command != save
.
Specificare la chiave Tiller o la chiave client Helm.
privatekey
-
chiave
string
. Obbligatorio quando enableTls == true && command != login && command != logout && command != package
.
Specificare la chiave Tiller o la chiave client Helm.
tillernamespace
-
dello spazio dei nomi Tiller
string
. Opzionale. Usare quando command != login && command != logout && command != package && command != save
.
Specificare lo spazio dei nomi Kubernetes di Tiller.
tillernamespace
-
dello spazio dei nomi Tiller
string
. Opzionale. Usare quando command != login && command != logout && command != package
.
Specificare lo spazio dei nomi Kubernetes di Tiller.
failOnStderr
-
errore standard
boolean
. Opzionale. Usare quando command != login && command != logout && command != package && command != save
. Valore predefinito: false
Se questo input è true
, questa attività ha esito negativo se vengono scritti errori nella pipeline di errore o se i dati vengono scritti nel flusso di errore standard. In caso contrario, l'attività si basa sul codice di uscita per determinare l'errore.
failOnStderr
-
errore standard
boolean
. Opzionale. Usare quando command != login && command != logout && command != package
. Valore predefinito: true
Se questo input è true
, questa attività ha esito negativo se vengono scritti errori nella pipeline di errore o se i dati vengono scritti nel flusso di errore standard. In caso contrario, l'attività si basa sul codice di uscita per determinare l'errore.
publishPipelineMetadata
-
Pubblicare i metadati della pipeline
boolean
. Opzionale. Usare quando command != login && command != logout && command != package && command != save
. Valore predefinito: true
Se questo input è true
, l'attività raccoglie e pubblica i metadati di distribuzione.
chartNameForACR
-
nome del grafico per registro Azure Container
string
. Obbligatorio quando command == save
.
Nome del grafico nel Registro Azure Container.
percorso grafico chartPathForACR
- per registro Azure Container
string
. Obbligatorio quando command == save
.
Percorso del file della directory del grafico nel Registro Azure Container.
Opzioni di controllo delle attività
Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di output
Questa attività definisce le variabili di output seguenti , che è possibile utilizzare nei passaggi downstream, nei processi e nelle fasi.
helmExitCode
Codice di uscita generato dall'esecuzione del comando Helm specificato.
helmOutput
L'output generato dall'esecuzione del comando Helm specificato.
Osservazioni:
Usare HelmDeploy@0 per distribuire, configurare o aggiornare un cluster Kubernetes nel servizio Azure Container eseguendo i comandi Helm. Helm è uno strumento che semplifica la distribuzione e la gestione delle app Kubernetes usando un formato di creazione pacchetti denominato grafici.
È possibile definire, versione, condivisione, installare e aggiornare anche l'app Kubernetes più complessa usando Helm.
- Helm consente di combinare più manifesti Kubernetes (yaml), ad esempio servizio, distribuzioni, mappe di configurazione e altro ancora in una singola unità denominata Grafici Helm. Non è necessario inventare o usare una tokenizzazione o uno strumento di creazione modelli.
- I grafici Helm consentono di gestire le dipendenze dell'applicazione e di distribuire e di eseguire il rollback come unità. Sono anche facili da creare, versione, pubblicare e condividere con altri team partner.
Azure Pipelines include il supporto predefinito per i grafici Helm:
- L'attività del programma di installazione dello strumento Helm può essere usata per installare la versione corretta di Helm negli agenti.
- Il pacchetto Helm e l'attività di distribuzione possono essere usati per creare un pacchetto dell'app e distribuirlo in un cluster Kubernetes. È possibile usare l'attività per installare o aggiornare Tiller in uno spazio dei nomi Kubernetes, per connettersi in modo sicuro a Tiller tramite TLS per la distribuzione dei grafici o per eseguire qualsiasi comando Helm, ad esempio lint.
- L'attività Helm supporta la connessione a un servizio Azure Kubernetes usando una connessione al servizio di Azure. È possibile connettersi a qualsiasi cluster Kubernetes usando kubeconfig o un account del servizio.
- Le distribuzioni Helm possono essere integrate usando l'attività Kubectl; ad esempio, creare/aggiornare, imagepullsecret e altri.
Connessione al servizio
HelmDeploy@0 funziona con due tipi di connessione del servizio: di Azure Resource Manager e connessione al servizio Kubernetes. Vedere esempi per esempi sulla configurazione di questi due tipi di connessione.
Nota
Una connessione al servizio non è necessaria se nella fase della pipeline è già stata specificata una risorsa di ambiente che punta a un cluster Kubernetes.
Considerazioni sulla connessione al servizio Kubernetes durante l'accesso al servizio Azure Kubernetes
È possibile creare una connessione al servizio Kubernetes con una delle opzioni seguenti.
- KubeConfig
- Account del servizio
- Sottoscrizione di Azure
Quando si seleziona l'opzione sottoscrizione di Azure, Kubernetes deve essere accessibile ad Azure DevOps in fase di configurazione della connessione al servizio. È possibile che non sia possibile creare una connessione al servizio, ad esempio creato un cluster privato o che il cluster abbia account locali disabilitati. In questi casi, Azure DevOps non riesce a connettersi al cluster in fase di configurazione della connessione al servizio e viene visualizzato un blocco schermata Caricamento di spazi dei nomi.
A partire da Kubernetes 1.24, i token di lunga durata non vengono più creati per impostazione predefinita . Kubernetes consiglia di non usare token di lunga durata. Di conseguenza, le attività che usano una connessione al servizio Kubernetes creata con l'opzione sottoscrizione di Azure non hanno accesso al token permanente necessario per l'autenticazione e non possono accedere al cluster Kubernetes. In questo modo viene visualizzata anche la finestra di dialogo caricamento degli spazi dei nomi bloccata.
Usare la connessione al servizio Azure Resource Manager per accedere al servizio Azure Kubernetes
Per i clienti del servizio Azure Kubernetes, il tipo di connessione del servizio Azure Resource Manager offre il metodo migliore per connettersi a un cluster privato o a un cluster con account locali disabilitati. Questo metodo non dipende dalla connettività del cluster al momento della creazione di una connessione al servizio. L'accesso al servizio Azure Kubernetes viene posticipato al runtime della pipeline, con i vantaggi seguenti:
- L'accesso a un cluster del servizio Azure Kubernetes (privato) può essere eseguito da un agente del set di scalabilità o self-hosted con visibilità al cluster.
- Viene creato un token per ogni attività che usa una connessione al servizio Azure Resource Manager. In questo modo si garantisce la connessione a Kubernetes con un token di breve durata, ovvero la raccomandazione Kubernetes.
- È possibile accedere al servizio Azure Kubernetes anche quando gli account locali sono disabilitati.
Domande frequenti sulla connessione al servizio
Viene visualizzato il messaggio di errore seguente: Impossibile trovare alcun segreto associato all'account del servizio. Cosa sta succedendo?
Si usa l'opzione Connessione al servizio Kubernetes con sottoscrizione di Azure. Questo metodo viene aggiornato per creare token di lunga durata. Questo dovrebbe essere disponibile a metà maggio. È tuttavia consigliabile iniziare a usare il tipo di connessione del servizio di Azure e non usare token di lunga durata in base alle indicazioni di Kubernetes .
Si usa il servizio Azure Kubernetes e non si vuole modificare nulla, è possibile continuare a usare le attività con la connessione al servizio Kubernetes?
Questo metodo viene aggiornato per creare token di lunga durata. Questo dovrebbe essere disponibile a metà maggio. Tuttavia, tenere presente che questo approccio è basato su linee guida di Kubernetes.
Si usano le attività kubernetes e la connessione al servizio Kubernetes, ma non il servizio Azure Kubernetes. Dovrei essere preoccupato?
Le attività continueranno a funzionare come prima.
Il tipo di connessione del servizio Kubernetes verrà rimosso?
Le attività kubernetes funzionano con qualsiasi cluster Kubernetes, indipendentemente dalla posizione in cui sono in esecuzione. La connessione al servizio Kubernetes continuerà a esistere.
Sono un cliente del servizio Azure Kubernetes e tutto funziona correttamente, devo agire?
Non c'è bisogno di cambiare nulla. Se si usa la connessione al servizio Kubernetes e la sottoscrizione di Azure selezionata durante la creazione, è necessario tenere presente le indicazioni su Kubernetes sull'uso di token di lunga durata.
Si sta creando un ambiente Kubernetes e non è possibile usare le connessioni al servizio
Se non è possibile accedere al servizio Azure Kubernetes durante la creazione dell'ambiente, è possibile usare un ambiente vuoto e impostare l'input connectionType
su una connessione al servizio Azure Resource Manager.
Il servizio Azure Kubernetes è configurato con il controllo degli accessi in base al ruolo di Azure Active Directory e la pipeline non funziona. Questi aggiornamenti verranno risolti?
L'accesso a Kubernetes quando il controllo degli accessi in base al ruolo di AAD è abilitato non è correlato alla creazione di token. Per evitare un prompt interattivo, verrà supportato kubelogin in un aggiornamento futuro.
Valori dei comandi
L'input del comando accetta uno dei comandi helm seguenti : create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade. Gli esempi sono disponibili nella sezione esempi di.
Ogni input del comando esegue il mapping a un set di input dell'attività. I comandi di cui viene eseguito il mapping a un input di attività sono designati nel blocco di sintassi YAML e nella tabella degli input dell'attività
Risoluzione dei problemi
L'attività HelmDeploy genera l'errore 'unknown flag: --wait' durante l'esecuzione di 'helm init --wait --client-only' nella versione Helm 3.0.2.
Sono state apportate alcune modifiche di rilievo tra Helm 2 e Helm 3. Uno di essi include la rimozione di tiller e quindi helm init
comando non è più supportato. Comando Remove: init quando si usano le versioni di Helm 3.0+.
Quando si usa Helm 3, se System.debug è impostato su true e l'aggiornamento Helm è il comando usato, la pipeline ha esito negativo anche se l'aggiornamento ha avuto esito positivo.
Si tratta di un problema noto con Helm 3, perché scrive alcuni log in stderr. L'attività Di distribuzione Helm è contrassegnata come non riuscita se sono presenti log per stderr o codice di uscita diverso da zero. Impostare l'input dell'attività failOnStderr: false per ignorare i log stampati in stderr.
Esempi
Azure Resource Manager
Questo esempio YAML illustra come viene usato Azure Resource Manager per fare riferimento al cluster Kubernetes. Viene usato con uno dei comandi helm e i valori appropriati necessari per il comando:
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)
Connessione al servizio Kubernetes
Questo esempio YAML mostra come viene usata la connessione al servizio Kubernetes per fare riferimento al cluster Kubernetes. Viene usato con uno dei comandi helm e i valori appropriati necessari per il comando:
- task: HelmDeploy@0
displayName: Helm deploy
inputs:
connectionType: Kubernetes Service Connection
kubernetesServiceEndpoint: Contoso
Comandi
L'input del comando accetta uno dei comandi helm seguenti : create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.
Questo esempio YAML illustra il comando ls:
- task: HelmDeploy@0
displayName: Helm list
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: ls
arguments: --all
Comando init
Questo esempio YAML illustra il comando init:
- task: HelmDeploy@0
displayName: Helm init
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: init
upgradetiller: true
waitForExecution: true
arguments: --client-only
Comando di installazione
Questo esempio YAML illustra il comando install:
- task: HelmDeploy@0
displayName: Helm install
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: install
chartType: FilePath
chartPath: Application/charts/sampleapp
comando package
Questo esempio YAML illustra il comando pacchetto:
- task: HelmDeploy@0
displayName: Helm package
inputs:
command: package
chartPath: Application/charts/sampleapp
destination: $(Build.ArtifactStagingDirectory)
Comando di aggiornamento
Questo esempio YAML illustra il comando di aggiornamento:
- 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
Comando save
Questo esempio YAML illustra il comando salva:
- 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)
Creare un pacchetto e firmare grafici Helm
In questa sezione si apprenderà come creare un pacchetto e firmare grafici Helm in una pipeline.
Generare una coppia di chiavi pubblica privata per firmare il grafico Helm usando GpG
Scaricare GPG.
Avviare il prompt dei comandi in modalità amministratore. Eseguire il comando seguente per generare una coppia di chiavi pubblica privata per firmare il grafico Helm usando gpg. Durante la creazione della chiave, verrà richiesto il nome utente e l'indirizzo di posta elettronica. L'indirizzo di posta elettronica "nome" viene usato successivamente per assegnare un nome alla coppia di chiavi pubblica privata creata.
gpg --full-generate-key
chiave
Verrà richiesta la passphrase. Assegnare il valore e fare clic su OK.
Dopo aver creato la chiave, è possibile visualizzare l'elenco di chiavi che contiene sia private che pubbliche usando il comando seguente.
Per visualizzare l'elenco delle chiavi private
gpg --list-secret-keys
Per visualizzare l'elenco delle chiavi pubbliche
gpg --list-keys
Archiviare le chiavi private e pubbliche in due file diversi con l'estensione gpg come illustrato di seguito.
- Per una chiave privata
gpg --export-secret-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/privatekeys.gpg
Verrà visualizzato il file privatekeys.gpg esportato nel percorso indicato in precedenza.
- Per una chiave pubblica
gpg --export-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/publickey.gpg
Verrà visualizzato il file publickey.gpg esportato nel percorso indicato in precedenza.
In Azure DevOps salvare il file privatekey.gpg nella libreria file protetti sezione.
Esempio
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)
Requisiti
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Viene eseguito in | Agente, DeploymentGroup |
richieste | Nessuno |
funzionalità di | Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
restrizioni dei comandi | Qualunque |
variabili impostabili | Qualunque |
Versione dell'agente | Tutte le versioni dell'agente supportate. |
Categoria attività | Distribuire |