Dela via


HelmDeploy@0 – Paketera och distribuera Helm-diagram v0-uppgift

Använd den här uppgiften för att distribuera, konfigurera eller uppdatera ett Kubernetes-kluster i Azure Container Service genom att köra helm-kommandon.

Syntax

# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package && command != save. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package && command != save. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package && command != save. Namespace. 
  # Azure Container Registry
    #azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == save. Azure subscription for Container Registry. 
    #azureResourceGroupForACR: # string. Required when command == save. Resource group. 
    #azureContainerRegistry: # string. Required when command == save. Azure Container Registry. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'save' | 'upgrade' | 'uninstall'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package || command == install || command == upgrade. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
    #chartNameForACR: # string. Required when command == save. Chart Name For Azure Container Registry. 
    #chartPathForACR: # string. Required when command == save. Chart Path for Azure Container Registry. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package && command != save. Tiller namespace. 
    #failOnStderr: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Fail on Standard Error. Default: false.
    #publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Publish pipeline metadata. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package && command != save. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package && command != save. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package && command != save. Namespace. 
  # Azure Container Registry
    #azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == save. Azure subscription for Container Registry. 
    #azureResourceGroupForACR: # string. Required when command == save. Resource group. 
    #azureContainerRegistry: # string. Required when command == save. Azure Container Registry. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'save' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package || command == install || command == upgrade. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
    #chartNameForACR: # string. Required when command == save. Chart Name For Azure Container Registry. 
    #chartPathForACR: # string. Required when command == save. Chart Path for Azure Container Registry. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package && command != save. Tiller namespace. 
    #failOnStderr: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Fail on Standard Error. Default: false.
    #publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Publish pipeline metadata. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package. Namespace. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package. Tiller namespace. 
    #failOnStderr: true # boolean. Optional. Use when command != login && command != logout && command != package. Fail on Standard Error. Default: true.

Ingångar

connectionType - anslutningstyp
string. Krävs när command != logout && command != package && command != save. Tillåtna värden: Azure Resource Manager, Kubernetes Service Connection, None. Standardvärde: Azure Resource Manager.

Anger anslutningstyp.

  • Kubernetes Service Connection – Ange Kubernetes Service Connection för att ansluta till ett Kubernetes-kluster med hjälp av kubeconfig eller Azure-tjänstkontot. Gör att du kan ange en KubeConfig-fil, ange ett tjänstkonto eller importera en AKS-instans med alternativet Azure-prenumeration. Om du importerar en AKS-instans med alternativet Azure-prenumeration krävs Kubernetes-klusteråtkomst vid konfigurationstiden för tjänstanslutning.
  • Azure Resource Manager – Ange Azure Resource Manager för att ansluta till en Azure Kubernetes-tjänst med hjälp av Azure Service Connection. Har inte åtkomst till Kubernetes-klustret vid konfigurationstillfället för tjänstanslutning.
  • None – Använd en fördefinierad Kubernetes-konfiguration som lagras lokalt.

Mer information finns i Tjänstanslutning i följande kommentarer avsnittet.


connectionType - anslutningstyp
string. Krävs när command != logout && command != package. Tillåtna värden: Azure Resource Manager, Kubernetes Service Connection, None. Standardvärde: Azure Resource Manager.

Anger anslutningstyp.

  • Kubernetes Service Connection – Ange Kubernetes Service Connection för att ansluta till ett Kubernetes-kluster med hjälp av kubeconfig eller Azure-tjänstkontot. Gör att du kan ange en KubeConfig-fil, ange ett tjänstkonto eller importera en AKS-instans med alternativet Azure-prenumeration. Om du importerar en AKS-instans med alternativet Azure-prenumeration krävs Kubernetes-klusteråtkomst vid konfigurationstiden för tjänstanslutning.
  • Azure Resource Manager – Ange Azure Resource Manager för att ansluta till en Azure Kubernetes-tjänst med hjälp av Azure Service Connection. Har inte åtkomst till Kubernetes-klustret vid konfigurationstillfället för tjänstanslutning.
  • None – Använd en fördefinierad Kubernetes-konfiguration som lagras lokalt.

Mer information finns i Tjänstanslutning i följande kommentarer avsnittet.


azureSubscription - Azure-prenumeration
Indataalias: azureSubscriptionEndpoint. string. Krävs när connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Namnet på Azure-tjänstanslutningen. Ange en Azure-prenumeration som har ditt containerregister.


azureSubscription - Azure-prenumeration
Indataalias: azureSubscriptionEndpoint. string. Krävs när connectionType = Azure Resource Manager && command != logout && command != package.

Namnet på Azure-tjänstanslutningen. Ange en Azure-prenumeration som har ditt containerregister.


azureResourceGroup - resursgrupp
string. Krävs när connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Namnet på resursgruppen i prenumerationen. Ange en Azure-resursgrupp.


azureResourceGroup - resursgrupp
string. Krävs när connectionType = Azure Resource Manager && command != logout && command != package.

Namnet på resursgruppen i prenumerationen. Ange en Azure-resursgrupp.


kubernetesCluster - Kubernetes-kluster
string. Krävs när connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Namnet på AKS-klustret. Ange ett Azure-hanterat kluster.


kubernetesCluster - Kubernetes-kluster
string. Krävs när connectionType = Azure Resource Manager && command != logout && command != package.

Namnet på AKS-klustret. Ange ett Azure-hanterat kluster.


useClusterAdmin - Använd autentiseringsuppgifter för klusteradministratör
boolean. Valfritt. Använd när connectionType = Azure Resource Manager && command != logout && command != package && command != save. Standardvärde: false.

Använder autentiseringsuppgifter för klusteradministratör i stället för standardautentiseringsuppgifter för klusteranvändare.


useClusterAdmin - Använd autentiseringsuppgifter för klusteradministratör
boolean. Valfritt. Använd när connectionType = Azure Resource Manager && command != logout && command != package. Standardvärde: false.

Använder autentiseringsuppgifter för klusteradministratör i stället för standardautentiseringsuppgifter för klusteranvändare.


kubernetesServiceConnection - Kubernetes-tjänstanslutning
Indataalias: kubernetesServiceEndpoint. string. Krävs när connectionType = Kubernetes Service Connection && command != logout && command != package && command != save.

Anger en Kubernetes-tjänstanslutning.


kubernetesServiceConnection - Kubernetes-tjänstanslutning
Indataalias: kubernetesServiceEndpoint. string. Krävs när connectionType = Kubernetes Service Connection && command != logout && command != package.

Anger en Kubernetes-tjänstanslutning.


namespace - namnområde
string. Valfritt. Använd när command != logout && command != package && command != save.

Namnområdet där du kör kubectl kommandon. Om den inte anges använder aktiviteten standardnamnområdet. Ange det Kubernetes-namnområde som ska användas. Du kan ange Tiller-namnområdet i det avancerade avsnittet i uppgiften eller genom att skicka alternativet --tiller-namespace som ett argument.


namespace - namnområde
string. Valfritt. Använd när command != logout && command != package.

Namnområdet där du kör kubectl kommandon. Om den inte anges använder aktiviteten standardnamnområdet. Ange det Kubernetes-namnområde som ska användas. Du kan ange Tiller-namnområdet i det avancerade avsnittet i uppgiften eller genom att skicka alternativet --tiller-namespace som ett argument.


azureSubscriptionForACR - Azure-prenumeration för Container Registry
Indataalias: azureSubscriptionEndpointForACR. string. Krävs när command == save.

Anger en Azure-prenumeration som har ditt Azure Container Registry.


azureResourceGroupForACR - resursgrupp
string. Krävs när command == save.

Anger en Azure-resursgrupp som har containerregistret.


azureContainerRegistry - Azure Container Registry
string. Krävs när command == save.

Anger ett Azure Container Registry som ska användas för att push-överföra Helm-diagram.


command - kommando
string. Obligatoriskt. Tillåtna värden: create, delete, expose, get, init, install, login, logout, ls, package, rollback, save, upgrade, uninstall. Standardvärde: ls.

Anger ett Helm-kommando.


command - kommando
string. Obligatoriskt. Tillåtna värden: create, delete, expose, get, init, install, login, logout, ls, package, rollback, save, upgrade. Standardvärde: ls.

Anger ett Helm-kommando.


command - kommando
string. Obligatoriskt. Tillåtna värden: create, delete, expose, get, init, install, login, logout, ls, package, rollback, upgrade. Standardvärde: ls.

Anger ett Helm-kommando.


chartType - diagramtyp
string. Krävs när command == install || command == upgrade. Tillåtna värden: Name, FilePath (filsökväg). Standardvärde: Name.

Anger hur du vill ange diagraminformation. Du kan antingen ange namnet på diagrammet eller mapp-/filsökvägen till diagrammet.


chartName - diagramnamn
string. Krävs när chartType == Name.

Namnet på diagramreferensen som ska installeras. Det kan vara en URL eller ett diagramnamn. Om diagramnamnet till exempel är stable/mysqlkörs aktiviteten helm install stable/mysql.


chartPath - diagramsökväg
string. Krävs när chartType == FilePath || command == package.

Sökvägen till diagrammet som ska installeras. Det kan vara en sökväg till ett paketerat diagram eller en sökväg till en uppackad diagramkatalog. Om du till exempel anger ./rediskörs aktiviteten helm install ./redis. Om du använder ett diagram som publiceras som en artefakt blir sökvägen $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME.


chartVersion - version
Indataalias: version. string. Valfritt. Använd när command == package || command == install || command == upgrade.

Anger den exakta diagramversion som ska installeras. Om du inte anger diagramversionen installerar uppgiften den senaste versionen. Ange versionen i diagrammet till den här semverversionen.


chartVersion - version
Indataalias: version. string. Valfritt. Använd när command == package.

Anger den exakta diagramversion som ska installeras. Om du inte anger diagramversionen installerar uppgiften den senaste versionen. Ange versionen i diagrammet till den här semverversionen.


releaseName - versionsnamn
string. Valfritt. Använd när command == install || command == upgrade.

Versionsnamnet. Om du inte anger versionsnamnet genereras en uppgift automatiskt åt dig. Indata för releaseName är endast giltiga för kommandona install och upgrade.


overrideValues - ange värden
string. Valfritt. Använd när command == install || command == upgrade.

Anger värden på kommandoraden. Dessa indata kan ange flera eller separata värden med kommatecken: key1=val1,key2=val2.

Du kan också ange flera värden genom att avgränsa dem med en ny rad enligt följande:

  • key1=val1
  • key2=val2

Om du har ett värde som innehåller nya rader använder du alternativet valueFile. Annars behandlar aktiviteten den nya raden som en avgränsare. Uppgiften konstruerar Helm-kommandot med hjälp av dessa uppsättningsvärden. Du kan till exempel ange värdet med hjälp av ett kommando som följande: helm install --set key1=val1 ./redis.


valueFile - värdefil
string. Valfritt. Använd när command == install || command == upgrade.

Anger värden i en YAML-fil eller en URL. Om du till exempel anger myvalues.yaml resulterar det i helm install --values=myvals.yaml.


destination - mål
string. Valfritt. Använd när command == package. Standardvärde: $(Build.ArtifactStagingDirectory).

Anger värden i en YAML-fil eller en URL.


canaryimage - Använd kanariebildversion.
boolean. Valfritt. Använd när command == init. Standardvärde: false.

Anger canary Tiller-avbildningen. Använd den senaste förhandsversionen av Tiller.


upgradetiller - Upgrade Tiller
boolean. Valfritt. Använd när command == init. Standardvärde: true.

Om trueuppgraderar indata Tiller om Tiller redan är installerat.


updatedependency - Uppdatera beroende
boolean. Valfritt. Använd när command == install || command == package. Standardvärde: false.

Om trueuppdaterar den här indatan en Helm-beroendeuppdatering innan diagrammet installeras. Uppdaterar beroenden från requirements.yaml till katalogen charts/ innan paketering.


save - Spara
boolean. Valfritt. Använd när command == package. Standardvärde: true.

Sparar det paketerade diagrammet på lagringsplatsen för det lokala diagrammet när det är inställt på true​.


install - Installera om versionen inte finns.
boolean. Valfritt. Använd när command == upgrade. Standardvärde: true.

Om det inte redan finns någon version med det här namnet kör den här indatan en installation.


recreate - Återskapa poddar.
boolean. Valfritt. Använd när command == upgrade. Standardvärde: false.

Utför omstart av poddar för resursen, om tillämpligt.


resetValues - Återställ värden.
boolean. Valfritt. Använd när command == upgrade. Standardvärde: false.

Återställer värdena till de värden som är inbyggda i diagrammet.


force - Framtvinga
boolean. Valfritt. Använd när command == upgrade. Standardvärde: false.

Tvingar fram en resursuppdatering genom en åtgärd för att ta bort eller återskapa vid behov.


waitForExecution - Vänta
boolean. Valfritt. Använd när command == init || command == install || command == upgrade. Standardvärde: true.

Blockerar åtgärden tills kommandokörningen har slutförts.


arguments - argument
string. Valfritt. Använd när command != login && command != logout.

Helm-kommandoalternativen.


enableTls - Aktivera TLS-
boolean. Valfritt. Använd när command != login && command != logout && command != package && command != save. Standardvärde: false.

Aktiverar användning av SSL mellan Helm och Tiller.


enableTls - Aktivera TLS-
boolean. Valfritt. Använd när command != login && command != logout && command != package. Standardvärde: false.

Aktiverar användning av SSL mellan Helm och Tiller.


caCert - CA-certifikat
string. Krävs när enableTls == true && command != login && command != logout && command != package && command != save.

Certifikatutfärdarcertifikatet som används för att utfärda ett certifikat för Tiller- och Helm-klienten.


caCert - CA-certifikat
string. Krävs när enableTls == true && command != login && command != logout && command != package.

Certifikatutfärdarcertifikatet som används för att utfärda ett certifikat för Tiller- och Helm-klienten.


certificate - certifikat
string. Krävs när enableTls == true && command != login && command != logout && command != package && command != save.

Ange Tiller-certifikatet eller Helm-klientcertifikatet.


certificate - certifikat
string. Krävs när enableTls == true && command != login && command != logout && command != package.

Ange Tiller-certifikatet eller Helm-klientcertifikatet.


privatekey - nyckel
string. Krävs när enableTls == true && command != login && command != logout && command != package && command != save.

Ange Tiller-nyckeln eller Helm-klientnyckeln.


privatekey - nyckel
string. Krävs när enableTls == true && command != login && command != logout && command != package.

Ange Tiller-nyckeln eller Helm-klientnyckeln.


tillernamespace - Tiller-namnområde
string. Valfritt. Använd när command != login && command != logout && command != package && command != save.

Ange Tiller:s Kubernetes-namnområde.


tillernamespace - Tiller-namnområde
string. Valfritt. Använd när command != login && command != logout && command != package.

Ange Tiller:s Kubernetes-namnområde.


failOnStderr - fel vid standardfel
boolean. Valfritt. Använd när command != login && command != logout && command != package && command != save. Standardvärde: false.

Om den här indatan är truemisslyckas den här aktiviteten om några fel skrivs till felpipelinen eller om några data skrivs till standardfelströmmen. Annars förlitar sig uppgiften på slutkoden för att fastställa felet.


failOnStderr - fel vid standardfel
boolean. Valfritt. Använd när command != login && command != logout && command != package. Standardvärde: true.

Om den här indatan är truemisslyckas den här aktiviteten om några fel skrivs till felpipelinen eller om några data skrivs till standardfelströmmen. Annars förlitar sig uppgiften på slutkoden för att fastställa felet.


publishPipelineMetadata - Publicera pipelinemetadata
boolean. Valfritt. Använd när command != login && command != logout && command != package && command != save. Standardvärde: true.

Om den här indatan är truesamlar uppgiften in och publicerar distributionsmetadata.


chartNameForACR - diagramnamn för Azure Container Registry
string. Krävs när command == save.

Diagrammets namn i Azure Container Registry.


chartPathForACR - diagramsökväg för Azure Container Registry
string. Krävs när command == save.

Filsökvägen till diagramkatalogen i Azure Container Registry.


Kontrollalternativ för aktivitet

Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Den här uppgiften definierar följande utdatavariabler, som du kan använda i underordnade steg, jobb och steg.

helmExitCode
Slutkoden som genereras från körningen av det angivna Helm-kommandot.

helmOutput
Utdata som genereras från körningen av det angivna Helm-kommandot.

Anmärkningar

Använd HelmDeploy@0 för att distribuera, konfigurera eller uppdatera ett Kubernetes-kluster i Azure Container Service genom att köra Helm-kommandon. Helm är ett verktyg som effektiviserar distributionen och hanteringen av Kubernetes-appar med ett paketeringsformat som kallas diagram.

Du kan definiera, version, dela, installera och uppgradera även den mest komplexa Kubernetes-appen med hjälp av Helm.

  • Helm hjälper dig att kombinera flera Kubernetes-manifest (yaml) som tjänst, distributioner, konfigurationsmappar med mera i en enda enhet som kallas Helm-diagram. Du behöver inte antingen uppfinna eller använda en tokenisering eller ett mallverktyg.
  • Helm-diagram hjälper dig att hantera programberoenden och distribuera samt återställning som en enhet. De är också enkla att skapa, version, publicera och dela med andra partnerteam.

Azure Pipelines har inbyggt stöd för Helm-diagram:

  • Installationsuppgiften Helm Tool kan användas för att installera rätt version av Helm på agenterna.
  • Helm-paketet och distributionsuppgiften kan användas för att paketera appen och distribuera den till ett Kubernetes-kluster. Du kan använda uppgiften för att installera eller uppdatera Tiller till ett Kubernetes-namnområde, för att på ett säkert sätt ansluta till Tiller via TLS för distribution av diagram eller för att köra ett Helm-kommando, till exempel lint.
  • Helm-uppgiften stöder anslutning till en Azure Kubernetes Service med hjälp av en Azure-tjänstanslutning. Du kan ansluta till valfritt Kubernetes-kluster med hjälp av kubeconfig- eller ett tjänstkonto.
  • Helm-distributioner kan kompletteras med hjälp av uppgiften Kubectl. till exempel skapa/uppdatera, imagepullsecret och andra.

Tjänstanslutning

HelmDeploy@0 fungerar med två tjänstanslutningstyper: Azure Resource Manager och Kubernetes Service Connection. Se Exempel för exempel på hur du konfigurerar dessa två anslutningstyper.

Anmärkning

En tjänstanslutning krävs inte om en miljöresurs som pekar på ett Kubernetes-kluster redan har angetts i pipelinens fas.

Överväganden för Kubernetes-tjänstanslutning vid åtkomst till AKS

Du kan skapa en Kubernetes-tjänstanslutning med något av följande alternativ.

  • KubeConfig
  • Tjänstkonto
  • Azure-prenumeration

Skärmbild av att välja en Kubernetes-tjänstanslutningsautentiseringsmetod.

När du väljer alternativet Azure-prenumeration måste Kubernetes vara tillgängligt för Azure DevOps vid tjänstanslutningskonfigurationen. Det kan finnas olika orsaker till att det inte går att skapa en tjänstanslutning, till exempel att du skapat ett privat kluster eller att klustret har lokala konton inaktiverade. I dessa fall kan Azure DevOps inte ansluta till klustret vid konfigurationstiden för tjänstanslutning och du ser en fastnad Skärmen Läser in namnområden.

Skärmbild av att välja en dialogruta för Kubernetes-tjänstanslutningsautentisering som fastnat vid inläsning av namnområden.

Från och med Kubernetes 1.24 skapas inte längre långlivade token som standard. Kubernetes rekommenderar att du inte använder långlivade token. Det innebär att uppgifter som använder en Kubernetes-tjänstanslutning som skapats med alternativet Azure-prenumeration inte har åtkomst till den permanenta token som krävs för att autentisera och inte kan komma åt ditt Kubernetes-kluster. Detta resulterar också i dialogrutan frozen Loading namespaces .

Använda Azure Resource Manager-tjänstanslutningen för att få åtkomst till AKS

För AKS-kunder är Anslutningstypen för Azure Resource Manager-tjänsten den bästa metoden för att ansluta till ett privat kluster eller ett kluster som har inaktiverat lokala konton. Den här metoden är inte beroende av klusteranslutningen när du skapar en tjänstanslutning. Åtkomsten till AKS skjuts upp till pipelinekörning, vilket har följande fördelar:

  • Åtkomst till ett (privat) AKS-kluster kan utföras från en lokalt installerad agent eller skalningsuppsättningsagent med siktlinje till klustret.
  • En token skapas för varje uppgift som använder en Azure Resource Manager-tjänstanslutning. Detta säkerställer att du ansluter till Kubernetes med en kortlivad token, vilket är Kubernetes-rekommendationen.
  • AKS kan nås även när lokala konton är inaktiverade.

Vanliga frågor och svar om tjänstanslutning

Jag får följande felmeddelande: Det gick inte att hitta någon hemlighet som är associerad med tjänstkontot. Vad händer?

Du använder kubernetes-tjänstanslutningen med azure-prenumerationsalternativet. Vi uppdaterar den här metoden för att skapa långlivade token. Detta förväntas vara tillgängligt i mitten av maj. Vi rekommenderar dock att du börjar använda Anslutningstypen för Azure-tjänsten och inte o använda långlivade token enligt Kubernetes-vägledning.

Jag använder AKS och vill inte ändra något, kan jag fortsätta att använda uppgifter med Kubernetes-tjänstanslutningen?

Vi uppdaterar den här metoden för att skapa långlivade token. Detta förväntas vara tillgängligt i mitten av maj. Tänk dock på att den här metoden är emot Kubernetes-vägledning.

Jag använder Kubernetes-uppgifter och Kubernetes-tjänstanslutning men inte AKS. Borde jag vara orolig?

Aktiviteterna fortsätter att fungera som tidigare.

Kommer Kubernetes-tjänstanslutningstypen att tas bort?

Våra Kubernetes-uppgifter fungerar med alla Kubernetes-kluster, oavsett var de körs. Kubernetes-tjänstanslutningen fortsätter att finnas.

Jag är AKS-kund och allt fungerar bra, ska jag agera?

Det finns inget behov av att ändra något. Om du använder Kubernetes-tjänstanslutningen och valde Azure-prenumeration när du skapade den bör du känna till Kubernetes-vägledningen om hur du använder långlivade token.

Jag skapar en Kubernetes-miljö och har inget alternativ för att använda tjänstanslutningar

Om du inte kan komma åt din AKS när miljön skapas kan du använda en tom miljö och ange connectionType indata till en Azure Resource Manager-tjänstanslutning.

Jag har AKS konfigurerat med Azure Active Directory RBAC och min pipeline fungerar inte. Löser de här uppdateringarna det?

Åtkomst till Kubernetes när AAD RBAC är aktiverat är inte relaterat till att skapa token. För att förhindra en interaktiv fråga stöder vi kubelogin- i en framtida uppdatering.

Kommandovärden

Kommandoindata accepterar något av följande helm-kommandon: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade. Exempel finns i avsnittet Exempel.

Varje kommandoindata mappas till en uppsättning aktivitetsindata. Kommandona som mappas till en aktivitetsinmatning anges i YAML-syntaxblocket och i tabellen för uppgiftsindata

Felsökning

HelmDeploy-aktiviteten genererar felet "okänd flagga: --wait" när du kör "helm init --wait --client-only" på Helm 3.0.2-versionen.

Det finns några icke-bakåtkompatibla ändringar mellan Helm 2 och Helm 3. En av dem omfattar borttagning av tiller och därför stöds inte längre helm init kommando. Ta bort kommando: init när du använder Helm 3.0+-versioner.

När du använder Helm 3, om System.debug är inställt på sant och Helm-uppgraderingen är kommandot som används, misslyckas pipelinen trots att uppgraderingen lyckades.

Det här är ett känt problem med Helm 3 eftersom det skriver några loggar till stderr. Helm Deploy-uppgiften markeras som misslyckad om det finns loggar till stderr eller om slutkoden inte är noll. Ange uppgiftens indata failOnStderr: false för att ignorera loggarna som skrivs ut till stderr.

Exempel

Azure Resource Manager

Det här YAML-exemplet visar hur Azure Resource Manager används för att referera till Kubernetes-klustret. Detta används med ett av helm-kommandon och lämpliga värden som krävs för kommandot:

variables:
  azureSubscriptionEndpoint: Contoso
  azureContainerRegistry: contoso.azurecr.io
  azureResourceGroup: Contoso
  kubernetesCluster: Contoso

- task: HelmDeploy@0
  displayName: Helm deploy
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)

Kubernetes-tjänstanslutning

Det här YAML-exemplet visar hur Kubernetes-tjänstanslutning används för att referera till Kubernetes-klustret. Detta används med ett av helm-kommandon och lämpliga värden som krävs för kommandot:

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

Kommandon

Kommandoindata accepterar något av följande helm-kommandon: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.

Det här YAML-exemplet visar kommandot ls:

- task: HelmDeploy@0
  displayName: Helm list
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: ls
    arguments: --all

init-kommando

Det här YAML-exemplet visar kommandot init:

- task: HelmDeploy@0
  displayName: Helm init
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: init
    upgradetiller: true
    waitForExecution: true
    arguments: --client-only

installera kommando

Det här YAML-exemplet visar kommandot installera:

- task: HelmDeploy@0
  displayName: Helm install
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: install
    chartType: FilePath
    chartPath: Application/charts/sampleapp

paketkommando

Det här YAML-exemplet visar kommandot paket:

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

uppgraderingskommando

Det här YAML-exemplet visar kommandot uppgradera:

- 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

spara kommando

Det här YAML-exemplet visar kommandot spara:

- 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)

Paketera och signera Helm-diagram

I det här avsnittet får du lära dig att paketera och signera Helm-diagram i en pipeline.

Generera ett privat-offentligt nyckelpar för att signera helm-diagrammet med GPG

  1. Ladda ned GPG-.

  2. Starta kommandotolken i administratörsläge. Kör följande kommando för att generera ett privat-offentligt nyckelpar för att signera helm-diagrammet med hjälp av gpg. När du skapar nyckeln uppmanas du att ange användarnamnet och e-postadressen. "Namn-e-postadressen" används senare för att namnge det privata-offentliga nyckelpar som skapas.

    gpg --full-generate-key
    

    Generera nyckel

  3. Du uppmanas att ange lösenfrasen. Ge värdet och klicka på OK.

    Skärmbild som visar hur du ger lösenfrasen.

  4. När du har skapat nyckeln kan du se listan över nycklar som innehåller både privat och offentlig med hjälp av följande kommando.

    • Så här visar du en lista över privata nycklar

      gpg --list-secret-keys
      

      privata nycklar

    • Så här ser du listan över offentliga nycklar

      gpg --list-keys
      

      offentliga nycklar

  5. Lagra de privata och offentliga nycklarna i 2 olika filer med tillägget gpg enligt nedan.

    • För en privat nyckel
    gpg --export-secret-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/privatekeys.gpg
    

    Du ser privatekeys.gpg fil som exporterats till sökvägen som nämndes ovan.

    • För en offentlig nyckel
    gpg --export-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/publickey.gpg
    

    Du ser publickey.gpg fil som exporterats till sökvägen som nämndes ovan.

Spara filen privatekey.gpg i biblioteket säkra filer i Azure DevOps.

Exempel

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)

Krav

Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Agent, DeploymentGroup
kräver Ingen
funktioner Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Vilken som helst
variabler som kan Vilken som helst
Agentversion Alla agentversioner som stöds.
Aktivitetskategori Gruppera