Condividi tramite


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: specificare Kubernetes Service Connection per connettersi a qualsiasi cluster Kubernetes usando kubeconfig 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: specificare Azure 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: specificare Kubernetes Service Connection per connettersi a qualsiasi cluster Kubernetes usando kubeconfig 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: specificare Azure 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

Screenshot della scelta di un metodo di autenticazione della connessione al servizio Kubernetes.

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.

Screenshot della scelta di una finestra di dialogo di autenticazione della connessione al servizio Kubernetes bloccata durante il caricamento degli 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

  1. Scaricare GPG.

  2. 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
    

    Generare chiave

  3. Verrà richiesta la passphrase. Assegnare il valore e fare clic su OK.

    Screenshot che mostra la passphrase.

  4. 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
      

      chiavi private

    • Per visualizzare l'elenco delle chiavi pubbliche

      gpg --list-keys
      

      chiavi pubbliche

  5. 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