Udostępnij za pośrednictwem


HelmDeploy@0 — pakowanie i wdrażanie zadań charts programu Helm w wersji 0

To zadanie służy do wdrażania, konfigurowania lub aktualizowania klastra Kubernetes w usłudze Azure Container Service, uruchamiając polecenia helm.

Składnia

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

Dane wejściowe

connectionType - typ połączenia
string. Wymagane, gdy command != logout && command != package && command != save. Dozwolone wartości: Azure Resource Manager, Kubernetes Service Connection, None. Wartość domyślna: Azure Resource Manager.

Określa typ połączenia.

  • Kubernetes Service Connection — określ Kubernetes Service Connection, aby nawiązać połączenie z dowolnym klastrem Kubernetes przy użyciu kubeconfig lub konta usługi platformy Azure. Umożliwia podanie pliku KubeConfig, określenie konta usługi lub zaimportowanie wystąpienia usługi AKS przy użyciu opcji subskrypcji platformy Azure. Importowanie wystąpienia usługi AKS przy użyciu opcji subskrypcji platformy Azure wymaga dostępu do klastra Kubernetes w czasie konfiguracji połączenia z usługą.
  • Azure Resource Manager — określ Azure Resource Manager, aby nawiązać połączenie z usługą Azure Kubernetes Service przy użyciu połączenia z usługą platformy Azure. Nie uzyskuje dostępu do klastra Kubernetes w czasie konfiguracji połączenia z usługą.
  • None — użyj wstępnie utworzonej konfiguracji kubernetes przechowywanej lokalnie.

Aby uzyskać więcej informacji, zobacz Service connection w poniższej sekcji Uwagi.


connectionType - typ połączenia
string. Wymagane, gdy command != logout && command != package. Dozwolone wartości: Azure Resource Manager, Kubernetes Service Connection, None. Wartość domyślna: Azure Resource Manager.

Określa typ połączenia.

  • Kubernetes Service Connection — określ Kubernetes Service Connection, aby nawiązać połączenie z dowolnym klastrem Kubernetes przy użyciu kubeconfig lub konta usługi platformy Azure. Umożliwia podanie pliku KubeConfig, określenie konta usługi lub zaimportowanie wystąpienia usługi AKS przy użyciu opcji subskrypcji platformy Azure. Importowanie wystąpienia usługi AKS przy użyciu opcji subskrypcji platformy Azure wymaga dostępu do klastra Kubernetes w czasie konfiguracji połączenia z usługą.
  • Azure Resource Manager — określ Azure Resource Manager, aby nawiązać połączenie z usługą Azure Kubernetes Service przy użyciu połączenia z usługą platformy Azure. Nie uzyskuje dostępu do klastra Kubernetes w czasie konfiguracji połączenia z usługą.
  • None — użyj wstępnie utworzonej konfiguracji kubernetes przechowywanej lokalnie.

Aby uzyskać więcej informacji, zobacz Service connection w poniższej sekcji Uwagi.


subskrypcji platformy Azure
Alias wejściowy: azureSubscriptionEndpoint. string. Wymagane, gdy connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Nazwa połączenia z usługą platformy Azure. Określ subskrypcję platformy Azure, która ma rejestr kontenerów.


subskrypcji platformy Azure
Alias wejściowy: azureSubscriptionEndpoint. string. Wymagane, gdy connectionType = Azure Resource Manager && command != logout && command != package.

Nazwa połączenia z usługą platformy Azure. Określ subskrypcję platformy Azure, która ma rejestr kontenerów.


grupy zasobów azureResourceGroup -
string. Wymagane, gdy connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Nazwa grupy zasobów w ramach subskrypcji. Określ grupę zasobów platformy Azure.


grupy zasobów azureResourceGroup -
string. Wymagane, gdy connectionType = Azure Resource Manager && command != logout && command != package.

Nazwa grupy zasobów w ramach subskrypcji. Określ grupę zasobów platformy Azure.


kubernetesCluster - klastra Kubernetes
string. Wymagane, gdy connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Nazwa klastra usługi AKS. Określ klaster zarządzany platformy Azure.


kubernetesCluster - klastra Kubernetes
string. Wymagane, gdy connectionType = Azure Resource Manager && command != logout && command != package.

Nazwa klastra usługi AKS. Określ klaster zarządzany platformy Azure.


useClusterAdmin - Używanie poświadczeń administratora klastra
boolean. Opcjonalny. Użyj polecenia , gdy connectionType = Azure Resource Manager && command != logout && command != package && command != save. Wartość domyślna: false.

Używa poświadczeń administratora klastra zamiast domyślnych poświadczeń użytkownika klastra.


useClusterAdmin - Używanie poświadczeń administratora klastra
boolean. Opcjonalny. Użyj polecenia , gdy connectionType = Azure Resource Manager && command != logout && command != package. Wartość domyślna: false.

Używa poświadczeń administratora klastra zamiast domyślnych poświadczeń użytkownika klastra.


kubernetesServiceConnection - połączenia usługi Kubernetes
Alias wejściowy: kubernetesServiceEndpoint. string. Wymagane, gdy connectionType = Kubernetes Service Connection && command != logout && command != package && command != save.

Określa połączenie usługi Kubernetes.


kubernetesServiceConnection - połączenia usługi Kubernetes
Alias wejściowy: kubernetesServiceEndpoint. string. Wymagane, gdy connectionType = Kubernetes Service Connection && command != logout && command != package.

Określa połączenie usługi Kubernetes.


przestrzeni nazw namespace -
string. Opcjonalny. Użyj polecenia , gdy command != logout && command != package && command != save.

Przestrzeń nazw, w której są uruchamiane polecenia kubectl. Jeśli nie zostanie określony, zadanie używa domyślnej przestrzeni nazw. Określ przestrzeń nazw kubernetes do użycia. Przestrzeń nazw Tiller można określić w sekcji zaawansowanej zadania lub przekazując opcję --tiller-namespace jako argument.


przestrzeni nazw namespace -
string. Opcjonalny. Użyj polecenia , gdy command != logout && command != package.

Przestrzeń nazw, w której są uruchamiane polecenia kubectl. Jeśli nie zostanie określony, zadanie używa domyślnej przestrzeni nazw. Określ przestrzeń nazw kubernetes do użycia. Przestrzeń nazw Tiller można określić w sekcji zaawansowanej zadania lub przekazując opcję --tiller-namespace jako argument.


azureSubscriptionForACR - subskrypcji platformy Azure dla usługi Container Registry
Alias wejściowy: azureSubscriptionEndpointForACR. string. Wymagane, gdy command == save.

Określa subskrypcję platformy Azure, która ma usługę Azure Container Registry.


grupy zasobów azureResourceGroupForACR -
string. Wymagane, gdy command == save.

Określa grupę zasobów platformy Azure, która ma rejestr kontenerów.


azureContainerRegistry - usługi Azure Container Registry
string. Wymagane, gdy command == save.

Określa usługę Azure Container Registry, która ma być używana do wypychania wykresów programu Helm.


command - polecenia
string. To jest wymagane. Dozwolone wartości: create, delete, expose, get, init, install, login, logout, ls, package, rollback, save, upgrade, uninstall. Wartość domyślna: ls.

Określa polecenie programu Helm.


command - polecenia
string. To jest wymagane. Dozwolone wartości: create, delete, expose, get, init, install, login, logout, ls, package, rollback, save, upgrade. Wartość domyślna: ls.

Określa polecenie programu Helm.


command - polecenia
string. To jest wymagane. Dozwolone wartości: create, delete, expose, get, init, install, login, logout, ls, package, rollback, upgrade. Wartość domyślna: ls.

Określa polecenie programu Helm.


typ wykresu chartType -
string. Wymagane, gdy command == install || command == upgrade. Dozwolone wartości: Name, FilePath (ścieżka pliku). Wartość domyślna: Name.

Określa sposób wprowadzania informacji o wykresie. Możesz podać nazwę wykresu lub ścieżkę folderu/pliku do wykresu.


nazwa wykresu chartName -
string. Wymagane, gdy chartType == Name.

Nazwa odwołania do wykresu do zainstalowania. Może to być adres URL lub nazwa wykresu. Jeśli na przykład nazwa wykresu to stable/mysql, zadanie zostanie uruchomione helm install stable/mysql.


chartPath - ścieżka wykresu
string. Wymagane, gdy chartType == FilePath || command == package.

Ścieżka do wykresu do zainstalowania. Może to być ścieżka do spakowanego wykresu lub ścieżki do rozpakowanego katalogu wykresu. Jeśli na przykład określisz ./redis, zadanie zostanie uruchomione helm install ./redis. Jeśli używasz wykresu opublikowanego jako artefakt, ścieżka będzie $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME.


chartVersion - wersja
Alias wejściowy: version. string. Opcjonalny. Użyj polecenia , gdy command == package || command == install || command == upgrade.

Określa dokładną wersję wykresu do zainstalowania. Jeśli nie określisz wersji wykresu, zadanie zainstaluje najnowszą wersję. Ustaw wersję na wykresie na tę wersję programu semver.


chartVersion - wersja
Alias wejściowy: version. string. Opcjonalny. Użyj polecenia , gdy command == package.

Określa dokładną wersję wykresu do zainstalowania. Jeśli nie określisz wersji wykresu, zadanie zainstaluje najnowszą wersję. Ustaw wersję na wykresie na tę wersję programu semver.


releaseName - nazwa wydania
string. Opcjonalny. Użyj polecenia , gdy command == install || command == upgrade.

Nazwa wydania. Jeśli nie określisz nazwy wydania, zadanie automatycznie je generuje. Dane wejściowe releaseName są prawidłowe tylko w przypadku poleceń install i upgrade.


overrideValues - ustawianie wartości
string. Opcjonalny. Użyj polecenia , gdy command == install || command == upgrade.

Określa wartości w wierszu polecenia. Te dane wejściowe mogą określać wiele lub oddzielne wartości przecinkami: key1=val1,key2=val2.

Można również określić wiele wartości, rozdzielając je nowym wierszem w następujący sposób:

  • key1=val1
  • key2=val2

Jeśli masz wartość zawierającą nowe wiersze, użyj opcji valueFile. W przeciwnym razie zadanie traktuje nowy wiersz jako ogranicznik. Zadanie konstruuje polecenie Helm przy użyciu tych ustawionych wartości. Można na przykład ustawić wartość przy użyciu polecenia podobnego do następującego: helm install --set key1=val1 ./redis.


pliku wartości valueFile -
string. Opcjonalny. Użyj polecenia , gdy command == install || command == upgrade.

Określa wartości w pliku YAML lub adresIE URL. Na przykład określenie myvalues.yaml powoduje helm install --values=myvals.yaml.


destination - docelowa
string. Opcjonalny. Użyj polecenia , gdy command == package. Wartość domyślna: $(Build.ArtifactStagingDirectory).

Określa wartości w pliku YAML lub adresIE URL.


canaryimage - Użyj wersji obrazu kanarowego.
boolean. Opcjonalny. Użyj polecenia , gdy command == init. Wartość domyślna: false.

Określa obraz kanarnika Tiller. Użyj najnowszej wersji wstępnej tillera.


upgradetiller - Upgrade Tiller
boolean. Opcjonalny. Użyj polecenia , gdy command == init. Wartość domyślna: true.

Jeśli true, te dane wejściowe uaktualnia Tiller, jeśli tiller jest już zainstalowany.


updatedependency - Update Dependency
boolean. Opcjonalny. Użyj polecenia , gdy command == install || command == package. Wartość domyślna: false.

Jeśli true, te dane wejściowe aktualizują aktualizację zależności programu Helm przed zainstalowaniem wykresu. Aktualizuje zależności od requirements.yaml do katalogu charts/ przed opakowaniem.


save - Zapisz
boolean. Opcjonalny. Użyj polecenia , gdy command == package. Wartość domyślna: true.

Zapisuje spakowany wykres w lokalnym repozytorium wykresów po ustawieniu wartości true​.


install - Zainstaluj, jeśli wersja nie istnieje.
boolean. Opcjonalny. Użyj polecenia , gdy command == upgrade. Wartość domyślna: true.

Jeśli wersja o tej nazwie jeszcze nie istnieje, te dane wejściowe uruchamiają instalację.


recreate - ponownie utworzyć zasobniki.
boolean. Opcjonalny. Użyj polecenia , gdy command == upgrade. Wartość domyślna: false.

Wykonuje ponowne uruchamianie zasobników dla zasobu, jeśli ma to zastosowanie.


resetValues - resetuj wartości.
boolean. Opcjonalny. Użyj polecenia , gdy command == upgrade. Wartość domyślna: false.

Resetuje wartości do wartości wbudowanych w wykres.


force - Wymuszanie
boolean. Opcjonalny. Użyj polecenia , gdy command == upgrade. Wartość domyślna: false.

W razie potrzeby wymusza aktualizację zasobu za pomocą akcji usuwania lub ponownego tworzenia.


waitForExecution - wait
boolean. Opcjonalny. Użyj polecenia , gdy command == init || command == install || command == upgrade. Wartość domyślna: true.

Blokuje akcję do momentu zakończenia wykonywania polecenia.


arguments - argumenty
string. Opcjonalny. Użyj polecenia , gdy command != login && command != logout.

Opcje polecenia programu Helm.


enableTls - włączanie TLS
boolean. Opcjonalny. Użyj polecenia , gdy command != login && command != logout && command != package && command != save. Wartość domyślna: false.

Umożliwia korzystanie z protokołu SSL między programem Helm i tiller.


enableTls - włączanie TLS
boolean. Opcjonalny. Użyj polecenia , gdy command != login && command != logout && command != package. Wartość domyślna: false.

Umożliwia korzystanie z protokołu SSL między programem Helm i tiller.


caCert - certyfikatu urzędu certyfikacji
string. Wymagane, gdy enableTls == true && command != login && command != logout && command != package && command != save.

Certyfikat urzędu certyfikacji używany do wystawiania certyfikatu dla klienta Tiller i Helm.


caCert - certyfikatu urzędu certyfikacji
string. Wymagane, gdy enableTls == true && command != login && command != logout && command != package.

Certyfikat urzędu certyfikacji używany do wystawiania certyfikatu dla klienta Tiller i Helm.


certificate - certyfikatów
string. Wymagane, gdy enableTls == true && command != login && command != logout && command != package && command != save.

Określ certyfikat Tiller lub certyfikat klienta programu Helm.


certificate - certyfikatów
string. Wymagane, gdy enableTls == true && command != login && command != logout && command != package.

Określ certyfikat Tiller lub certyfikat klienta programu Helm.


klucza privatekey -
string. Wymagane, gdy enableTls == true && command != login && command != logout && command != package && command != save.

Określ klucz Tiller lub klucz klienta programu Helm.


klucza privatekey -
string. Wymagane, gdy enableTls == true && command != login && command != logout && command != package.

Określ klucz Tiller lub klucz klienta programu Helm.


tillernamespace - przestrzeni nazw Tiller
string. Opcjonalny. Użyj polecenia , gdy command != login && command != logout && command != package && command != save.

Określ przestrzeń nazw Platformy Kubernetes platformy Tiller.


tillernamespace - przestrzeni nazw Tiller
string. Opcjonalny. Użyj polecenia , gdy command != login && command != logout && command != package.

Określ przestrzeń nazw Platformy Kubernetes platformy Tiller.


failOnStderr - niepowodzenie w błędu standardowego
boolean. Opcjonalny. Użyj polecenia , gdy command != login && command != logout && command != package && command != save. Wartość domyślna: false.

Jeśli te dane wejściowe są true, to zadanie kończy się niepowodzeniem, jeśli jakiekolwiek błędy są zapisywane w potoku błędów lub jeśli jakiekolwiek dane są zapisywane w strumieniu błędu standardowego. W przeciwnym razie zadanie opiera się na kodzie zakończenia w celu określenia błędu.


failOnStderr - niepowodzenie w błędu standardowego
boolean. Opcjonalny. Użyj polecenia , gdy command != login && command != logout && command != package. Wartość domyślna: true.

Jeśli te dane wejściowe są true, to zadanie kończy się niepowodzeniem, jeśli jakiekolwiek błędy są zapisywane w potoku błędów lub jeśli jakiekolwiek dane są zapisywane w strumieniu błędu standardowego. W przeciwnym razie zadanie opiera się na kodzie zakończenia w celu określenia błędu.


publishPipelineMetadata - publikowanie metadanych potoku
boolean. Opcjonalny. Użyj polecenia , gdy command != login && command != logout && command != package && command != save. Wartość domyślna: true.

Jeśli te dane wejściowe są true, zadanie zbiera i publikuje metadane wdrożenia.


nazwa wykresu chartNameForACR - dla usługi Azure Container Registry
string. Wymagane, gdy command == save.

Nazwa wykresu w usłudze Azure Container Registry.


ścieżka wykresu chartPathForACR - dla usługi Azure Container Registry
string. Wymagane, gdy command == save.

Ścieżka pliku do katalogu chart w usłudze Azure Container Registry.


Opcje sterowania zadaniami

Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.

Zmienne wyjściowe

To zadanie definiuje następujące zmienne wyjściowe , które można używać w krokach podrzędnych, zadaniach i etapach.

helmExitCode
Kod zakończenia emitowany z wykonania określonego polecenia programu Helm.

helmOutput
Dane wyjściowe emitowane z wykonania określonego polecenia programu Helm.

Uwagi

Użyj HelmDeploy@0, aby wdrożyć, skonfigurować lub zaktualizować klaster Kubernetes w usłudze Azure Container Service, uruchamiając polecenia programu Helm. Helm to narzędzie usprawniające wdrażanie aplikacji Kubernetes i zarządzanie nimi przy użyciu formatu pakietów nazywanego wykresami.

Możesz zdefiniować, wersję, udostępnić, zainstalować i uaktualnić nawet najbardziej złożoną aplikację Kubernetes przy użyciu programu Helm.

  • Narzędzie Helm ułatwia łączenie wielu manifestów kubernetes (yaml), takich jak usługa, wdrożenia, mapy konfiguracji i nie tylko w jedną jednostkę o nazwie Charts programu Helm. Nie musisz wymyślać ani używać tokenizacji ani narzędzia do tworzenia szablonów.
  • Wykresy helm ułatwiają zarządzanie zależnościami aplikacji i wdrażaniem, a także wycofywaniem w ramach lekcji. Są one również łatwe do tworzenia, wersji, publikowania i udostępniania innym zespołom partnerskim.

Usługa Azure Pipelines ma wbudowaną obsługę wykresów helm:

  • Zadanie instalatora narzędzia helm można użyć do zainstalowania poprawnej wersji programu Helm na agentach.
  • Za pomocą pakietu Helm i wdrożenia można spakować aplikację i wdrożyć ją w klastrze Kubernetes. Za pomocą zadania można zainstalować lub zaktualizować Tiller do przestrzeni nazw kubernetes, aby bezpiecznie nawiązać połączenie z usługą Tiller za pośrednictwem protokołu TLS na potrzeby wdrażania wykresów lub uruchomić dowolne polecenie programu Helm, takie jak lint.
  • Zadanie helm obsługuje nawiązywanie połączenia z usługą Azure Kubernetes Service przy użyciu połączenia z usługą platformy Azure. Możesz nawiązać połączenie z dowolnym klastrem Kubernetes przy użyciu kubeconfig lub konta usługi.
  • Wdrożenia programu Helm można uzupełniać przy użyciu zadania Kubectl; na przykład create/update, imagepullsecret i inne.

Podłączenie usługi

HelmDeploy@0 współpracuje z dwoma typami połączeń usługi: azure Resource Manager i połączenia usługi Kubernetes Service. Zobacz Przykłady, aby zapoznać się z przykładami dotyczącymi konfigurowania tych dwóch typów połączeń.

Uwaga

Połączenie z usługą nie jest wymagane, jeśli zasób środowiska wskazujący klaster Kubernetes został już określony na etapie potoku.

Zagadnienia dotyczące połączenia z usługą Kubernetes podczas uzyskiwania dostępu do usługi AKS

Możesz utworzyć połączenie usługi Kubernetes z dowolną z poniższych opcji.

  • KubeConfig
  • Konto usługi
  • Subskrypcja platformy Azure

Zrzut ekranu przedstawiający wybieranie metody uwierzytelniania połączenia z usługą Kubernetes.

Podczas wybierania opcji subskrypcji platformy Azure platforma Kubernetes musi być dostępna dla usługi Azure DevOps w czasie konfiguracji połączenia z usługą. Nie można utworzyć połączenia z usługą z różnych powodów, na przykład utworzenia klastra prywatnego lub klaster ma wyłączone konta lokalne . W takich przypadkach usługa Azure DevOps nie może nawiązać połączenia z klastrem w czasie konfiguracji połączenia z usługą i zostanie wyświetlony zablokowany ładowanie przestrzeni nazw ekranu.

Zrzut ekranu przedstawiający wybieranie okna dialogowego uwierzytelniania połączenia usługi Kubernetes zablokowanego podczas ładowania przestrzeni nazw.

Począwszy od platformy Kubernetes 1.24, długotrwałe tokeny nie są już tworzone domyślnie. Platforma Kubernetes zaleca, aby nie używać tokenów długotrwałych. W związku z tym zadania korzystające z połączenia usługi Kubernetes utworzonego z opcją subskrypcji platformy Azure nie mają dostępu do tokenu trwałego wymaganego do uwierzytelniania i nie mogą uzyskać dostępu do klastra Kubernetes. Spowoduje to również zablokowanie ładowanie przestrzeni nazw okno dialogowe.

Uzyskiwanie dostępu do usługi AKS przy użyciu połączenia usługi Azure Resource Manager

W przypadku klientów usługi AKS typ połączenia usługi Azure Resource Manager zapewnia najlepszą metodę nawiązywania połączenia z klastrem prywatnym lub klastrem, który ma wyłączone konta lokalne. Ta metoda nie jest zależna od łączności klastra podczas tworzenia połączenia z usługą. Dostęp do usługi AKS jest odroczony do środowiska uruchomieniowego potoku, co ma następujące zalety:

  • Dostęp do klastra usługi AKS (prywatnego) można wykonać z własnego agenta zestawu skalowania z widokiem do klastra.
  • Token jest tworzony dla każdego zadania korzystającego z połączenia usługi Azure Resource Manager. Dzięki temu nawiąższ połączenie z platformą Kubernetes przy użyciu krótkotrwałego tokenu, który jest zaleceniem Kubernetes.
  • Dostęp do usługi AKS można uzyskać nawet wtedy, gdy konta lokalne są wyłączone.

Często zadawane pytania dotyczące połączenia z usługą

Otrzymuję następujący komunikat o błędzie: Nie można odnaleźć żadnego wpisu tajnego skojarzonego z kontem usługi. Co się dzieje?

Używasz połączenia usługi Kubernetes z opcją Subskrypcja platformy Azure. Aktualizujemy tę metodę w celu utworzenia długotrwałych tokenów. Oczekuje się, że będzie to dostępne w połowie maja. Zaleca się jednak rozpoczęcie korzystania z typu połączenia z usługą platformy Azure, a nie używanie tokenów długotrwałych zgodnie ze wskazówkami dotyczącymi platformy Kubernetes .

Używam usługi AKS i nie chcę nic zmieniać. Czy mogę nadal używać zadań z połączeniem usługi Kubernetes?

Aktualizujemy tę metodę w celu utworzenia długotrwałych tokenów. Oczekuje się, że będzie to dostępne w połowie maja. Należy jednak pamiętać, że takie podejście jest sprzeczne z wskazówki dotyczące platformy Kubernetes.

Używam zadań platformy Kubernetes i połączenia usługi Kubernetes, ale nie usługi AKS. Czy powinienem się martwić?

Zadania będą nadal działać tak jak wcześniej.

Czy typ połączenia usługi Kubernetes zostanie usunięty?

Nasze zadania kubernetes działają z dowolnym klastrem Kubernetes, niezależnie od tego, gdzie są uruchomione. Połączenie usługi Kubernetes będzie nadal istnieć.

Jestem klientem usługi AKS i wszystko działa prawidłowo, czy powinienem działać?

Nie trzeba nic zmieniać. Jeśli używasz połączenia usługi Kubernetes i wybranej subskrypcji platformy Azure podczas tworzenia, należy pamiętać o wskazówkach dotyczących platformy Kubernetes dotyczących korzystania z tokenów długotrwałych.

Tworzysz środowisko Kubernetes i nie mam możliwości korzystania z połączeń usług

Jeśli nie możesz uzyskać dostępu do usługi AKS w czasie tworzenia środowiska, możesz użyć pustego środowiska i ustawić connectionType dane wejściowe na połączenie usługi Azure Resource Manager.

Mam skonfigurowaną usługę AKS z kontrolą dostępu opartą na rolach usługi Azure Active Directory, a mój potok nie działa. Czy te aktualizacje rozwiążą ten problem?

Uzyskiwanie dostępu do platformy Kubernetes w przypadku włączenia kontroli dostępu opartej na rolach usługi AAD nie jest związane z tworzeniem tokenu. Aby zapobiec monitowi interakcyjnemu, będziemy obsługiwać kubelogin w przyszłej aktualizacji.

Wartości poleceń

Dane wejściowe polecenia akceptują jedno z następujących poleceń helm: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade. Przykłady znajdują się w sekcji Przykłady.

Każde polecenie wejściowe mapuje zestaw danych wejściowych zadań. Polecenia mapowane na dane wejściowe zadania są wyznaczone w bloku składni YAML i w tabeli danych wejściowych zadań

Rozwiązywanie problemów

Zadanie HelmDeploy zgłasza błąd "nieznana flaga: --wait" podczas uruchamiania polecenia "helm init --wait --client-only" w programie Helm 3.0.2.

Istnieją pewne zmiany powodujące niezgodność między programem Helm 2 i programem Helm 3. Jeden z nich obejmuje usunięcie tiller, a tym samym helm init polecenie nie jest już obsługiwane. Usuń polecenie: inicjowanie w przypadku korzystania z programu Helm w wersji 3.0 lub nowszej.

W przypadku korzystania z programu Helm 3, jeśli parametr System.debug jest ustawiony na wartość true, a uaktualnienie programu Helm jest używane, potok kończy się niepowodzeniem, mimo że uaktualnienie zakończyło się pomyślnie.

Jest to znany problem z programem Helm 3, ponieważ zapisuje niektóre dzienniki w programie stderr. Zadanie wdrażania programu Helm jest oznaczone jako nieudane, jeśli istnieją dzienniki do narzędzia stderr lub kod zakończenia jest inny niż zero. Ustaw dane wejściowe zadania failOnStderr: false, aby zignorować dzienniki wydrukowane na stderr.

Przykłady

Azure Resource Manager

W tym przykładzie YAML pokazano, jak usługa Azure Resource Manager jest używana do odwoływania się do klastra Kubernetes. Jest to używane z jednym z poleceń helm i odpowiednimi wartościami wymaganymi dla polecenia:

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)

Połączenie usługi Kubernetes

W tym przykładzie YAML pokazano, jak jest używane połączenie usługi Kubernetes w celu odwoływania się do klastra Kubernetes. Jest to używane z jednym z poleceń helm i odpowiednimi wartościami wymaganymi dla polecenia:

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

Polecenia

Dane wejściowe polecenia akceptują jedno z następujących poleceń helm: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.

W tym przykładzie YAML pokazano polecenie ls:

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

init , polecenie

W tym przykładzie YAML pokazano polecenie inicjowania:

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

polecenie instalacji

W tym przykładzie YAML pokazano polecenie install:

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

package , polecenie

W tym przykładzie YAML pokazano polecenie pakietu:

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

upgrade - komenda

W tym przykładzie YAML pokazano polecenie uaktualniania:

- 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

zapisz polecenie

W tym przykładzie YAML pokazano polecenie save:

- task: HelmDeploy@0
  displayName: Helm save
  inputs:
    command: save
    chartNameForACR: mycontainerregistry.azurecr.io/helm/hello-world:v1
    chartPathForACR: Application/charts/sampleapp
    azureSubscriptionEndpointForACR: $(azureSubscriptionEndpointForACR)
    azureResourceGroupForACR: $(azureResourceGroupForACR)
    azureContainerRegistry: $(azureContainerRegistry)

Tworzenie pakietów i podpisywanie wykresów programu Helm

W tej sekcji dowiesz się, jak spakować i podpisywać wykresy Helm w potoku.

Generowanie pary kluczy prywatnych i publicznych w celu podpisania wykresu helm przy użyciu grupy zasad grupy

  1. Pobierz gpg.

  2. Uruchom wiersz polecenia w trybie administratora. Uruchom następujące polecenie, aby wygenerować parę kluczy prywatnych i publicznych w celu podpisania wykresu helm przy użyciu gpg. Podczas tworzenia klucza zostanie wyświetlony monit o podanie nazwy użytkownika i adresu e-mail. Nazwa adresu e-mail jest później używana do nazywania utworzonej pary kluczy prywatnych.

    gpg --full-generate-key
    

    Generowanie klucza

  3. Zostanie wyświetlony monit o podanie hasła. Nadaj wartość i kliknij przycisk OK.

    Zrzut ekranu przedstawiający podanie hasła.

  4. Po utworzeniu klucza można zobaczyć listę kluczy, które zawierają zarówno prywatne, jak i publiczne, przy użyciu następującego polecenia.

    • Aby wyświetlić listę kluczy prywatnych

      gpg --list-secret-keys
      

      kluczy prywatnych

    • Aby wyświetlić listę kluczy publicznych

      gpg --list-keys
      

      kluczy publicznych

  5. Zapisz prywatne i publiczne klucze w 2 różnych plikach z rozszerzeniem gpg, jak pokazano poniżej.

    • W przypadku klucza prywatnego
    gpg --export-secret-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/privatekeys.gpg
    

    Zobaczysz plik privatekeys.gpg wyeksportowany do ścieżki, która została wymieniona powyżej.

    • Klucz publiczny
    gpg --export-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/publickey.gpg
    

    Zobaczysz plik publickey.gpg wyeksportowany do ścieżki, która została wymieniona powyżej.

W usłudze Azure DevOps zapisz plik privatekey.gpg w sekcji secure files biblioteki.

Przykład

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)

Wymagania

Wymaganie Opis
Typy potoków YAML, klasyczna kompilacja, wersja klasyczna
Działa na Agent, DeploymentGroup
Wymagania Żaden
możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
ograniczenia poleceń Jakikolwiek
zmienne ustawiane Jakikolwiek
Wersja agenta Wszystkie obsługiwane wersje agentów.
Kategoria zadań Zastosuj