Поделиться через


HelmDeploy@0 — задача упаковки и развертывания диаграмм Helm версии 0

Используйте эту задачу для развертывания, настройки или обновления кластера Kubernetes в Службе контейнеров Azure с помощью команд helm.

Используйте эту задачу для развертывания, настройки или обновления кластера Kubernetes в Службе контейнеров Azure с помощью команд helm.

Синтаксис

# 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.
# 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. 
    #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.
# Package and deploy Helm charts v0
# Deploy, configure, update your 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. 
    #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.

Входные данные

connectionType - Тип подключения
string. Требуется, если command != logout && command != package && command != save. Допустимые значения: Azure Resource Manager, Kubernetes Service Connection, None. Значение по умолчанию: Azure Resource Manager.

Определяет тип подключения.

  • Kubernetes Service Connection — Укажите Kubernetes Service Connection для подключения к любому кластеру Kubernetes с помощью kubeconfig или учетной записи службы Azure. Позволяет указать файл KubeConfig, указать учетную запись службы или импортировать экземпляр AKS с параметром "Подписка Azure ". Для импорта экземпляра AKS с параметром "Подписка Azure " требуется доступ к кластеру Kubernetes во время настройки подключения службы.
  • Azure Resource Manager— укажите Azure Resource Manager для подключения к Служба Azure Kubernetes с помощью подключения к службе Azure. Не получает доступ к кластеру Kubernetes во время настройки подключения службы.
  • None — Используйте предварительно созданную конфигурацию Kubernetes, хранящуюся локально.

Дополнительные сведения см. в разделе Подключение к службе в следующем разделе Примечания .


connectionType - Тип подключения
string. Требуется, если command != logout && command != package. Допустимые значения: Azure Resource Manager, Kubernetes Service Connection, None. Значение по умолчанию: Azure Resource Manager.

Определяет тип подключения.

  • Kubernetes Service Connection — Укажите Kubernetes Service Connection для подключения к любому кластеру Kubernetes с помощью kubeconfig или учетной записи службы Azure. Позволяет указать файл KubeConfig, указать учетную запись службы или импортировать экземпляр AKS с параметром "Подписка Azure ". Для импорта экземпляра AKS с параметром "Подписка Azure " требуется доступ к кластеру Kubernetes во время настройки подключения службы.
  • Azure Resource Manager— укажите Azure Resource Manager для подключения к Служба Azure Kubernetes с помощью подключения к службе Azure. Не получает доступ к кластеру Kubernetes во время настройки подключения службы.
  • None — Используйте предварительно созданную конфигурацию Kubernetes, хранящуюся локально.

Дополнительные сведения см. в разделе Подключение к службе в следующем разделе Примечания .


azureSubscription - Подписка Azure
Входной псевдоним: azureSubscriptionEndpoint. string. Требуется, если connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Имя подключения службы Azure. Укажите подписку Azure с реестром контейнеров.


azureSubscription - Подписка Azure
Входной псевдоним: azureSubscriptionEndpoint. string. Требуется, если connectionType = Azure Resource Manager && command != logout && command != package.

Имя подключения службы Azure. Укажите подписку Azure с реестром контейнеров.


azureResourceGroup - Группа ресурсов
string. Требуется, если connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Имя группы ресурсов в подписке. Укажите группу ресурсов Azure.


azureResourceGroup - Группа ресурсов
string. Требуется, если connectionType = Azure Resource Manager && command != logout && command != package.

Имя группы ресурсов в подписке. Укажите группу ресурсов Azure.


kubernetesCluster - Кластер Kubernetes
string. Требуется, если connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Имя кластера AKS. Укажите Управляемый кластер Azure.


kubernetesCluster - Кластер Kubernetes
string. Требуется, если connectionType = Azure Resource Manager && command != logout && command != package.

Имя кластера AKS. Укажите Управляемый кластер Azure.


useClusterAdmin - Использование учетных данных администратора кластера
boolean. Необязательный элемент. Используйте при connectionType = Azure Resource Manager && command != logout && command != package && command != save. Значение по умолчанию: false.

Использует учетные данные администратора кластера вместо учетных данных пользователя кластера по умолчанию.


useClusterAdmin - Использование учетных данных администратора кластера
boolean. Необязательный элемент. Используйте при connectionType = Azure Resource Manager && command != logout && command != package. Значение по умолчанию: false.

Использует учетные данные администратора кластера вместо учетных данных пользователя кластера по умолчанию.


kubernetesServiceConnection - Подключение к службе Kubernetes
Входной псевдоним: kubernetesServiceEndpoint. string. Требуется, если connectionType = Kubernetes Service Connection && command != logout && command != package && command != save.

Указывает подключение службы Kubernetes.


kubernetesServiceConnection - Подключение к службе Kubernetes
Входной псевдоним: kubernetesServiceEndpoint. string. Требуется, если connectionType = Kubernetes Service Connection && command != logout && command != package.

Указывает подключение службы Kubernetes.


namespace - Пространства имен
string. Необязательный элемент. Используйте при command != logout && command != package && command != save.

Пространство имен, в котором выполняются kubectl команды. Если значение не указано, задача использует пространство имен по умолчанию. Укажите пространство имен Kubernetes для использования. Пространство имен Tiller можно указать в расширенном разделе задачи или путем передачи параметра в --tiller-namespace качестве аргумента.


namespace - Пространства имен
string. Необязательный элемент. Используйте при command != logout && command != package.

Пространство имен, в котором выполняются kubectl команды. Если значение не указано, задача использует пространство имен по умолчанию. Укажите пространство имен Kubernetes для использования. Пространство имен Tiller можно указать в расширенном разделе задачи или путем передачи параметра в --tiller-namespace качестве аргумента.


azureSubscriptionForACR - Подписка Azure для Реестра контейнеров
Входной псевдоним: azureSubscriptionEndpointForACR. string. Требуется, если command == save.

Указывает подписку Azure с вашим Реестр контейнеров Azure.


azureResourceGroupForACR - Группа ресурсов
string. Требуется, если command == save.

Указывает группу ресурсов Azure с реестром контейнеров.


azureContainerRegistry - Реестр контейнеров Azure
string. Требуется, если command == save.

Указывает Реестр контейнеров Azure, который будет использоваться для отправки диаграмм Helm.


command - Команды
string. Обязательный. Допустимые значения: create, delete, expose, get, installinit, login, logout, , ls, , package, rollback, save, upgrade. uninstall Значение по умолчанию: ls.

Указывает команду Helm.


command - Команды
string. Обязательный. Допустимые значения: create, delete, expose, get, installinit, , logoutlogin, , ls, , package, rollback, save. upgrade Значение по умолчанию: ls.

Указывает команду Helm.


command - Команды
string. Обязательный. Допустимые значения: create, delete, expose, get, installinit, , logoutlogin, , ls, , package, rollback, . upgrade Значение по умолчанию: ls.

Указывает команду Helm.


chartType - Тип диаграммы
string. Требуется при .command == install || command == upgrade Допустимые значения: Name, FilePath (Путь к файлу). Значение по умолчанию: Name.

Указывает способ ввода сведений о диаграмме. Можно указать имя диаграммы или путь к папке или файлу диаграммы.


chartName - Имя диаграммы
string. Требуется при .chartType == Name

Имя устанавливаемой ссылки на диаграмму. Это может быть URL-адрес или имя диаграммы. Например, если диаграмма называется stable/mysql, задача выполняется helm install stable/mysql.


chartPath - Путь к диаграмме
string. Требуется при .chartType == FilePath || command == package

Путь к устанавливаемой диаграмме. Это может быть путь к упаковаемой диаграмме или путь к каталогу неупакованных диаграмм. Например, если указать ./redis, задача выполняется helm install ./redis. Если вы используете диаграмму, опубликованную в виде артефакта, путь будет иметь значение $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME.


chartVersion - Версия
Входной псевдоним: version. string. Необязательный элемент. Используйте при command == package || command == install || command == upgrade.

Указывает точную версию диаграммы для установки. Если не указать версию диаграммы, задача установит последнюю версию. Присвойте на диаграмме версию этой версии semver.


chartVersion - Версия
Входной псевдоним: version. string. Необязательный элемент. Используйте при command == package.

Указывает точную версию диаграммы для установки. Если не указать версию диаграммы, задача установит последнюю версию. Присвойте на диаграмме версию этой версии semver.


releaseName - Название выпуска
string. Необязательный элемент. Используйте при command == install || command == upgrade.

Имя выпуска. Если не указать имя выпуска, задача автоматически создает его. Входные releaseName данные допустимы только для install команд и upgrade .


overrideValues - Задать значения
string. Необязательный элемент. Используйте при command == install || command == upgrade.

Задает значения в командной строке. Эти входные данные могут указывать несколько или отдельные значения с запятыми: key1=val1,key2=val2.

Можно также указать несколько значений, разделив их новой строкой следующим образом:

  • key1=val1
  • key2=val2

Если у вас есть значение, содержащее новые строки, используйте valueFile параметр . В противном случае задача обрабатывает новую строку как разделитель. Задача создает команду Helm, используя эти заданные значения. Например, можно задать значение с помощью следующей команды: helm install --set key1=val1 ./redis.


valueFile - Файл значений
string. Необязательный элемент. Используйте при command == install || command == upgrade.

Задает значения в YAML-файле или URL-адресе. Например, при указании myvalues.yaml результатов в helm install --values=myvals.yaml.


destination - Назначения
string. Необязательный элемент. Используйте при command == package. Значение по умолчанию: $(Build.ArtifactStagingDirectory).

Задает значения в YAML-файле или URL-адресе.


canaryimage - Используйте версию канареечного образа.
boolean. Необязательный элемент. Используйте при command == init. Значение по умолчанию: false.

Указывает канаречного изображения Тиллера. Используйте последнюю предварительную версию Tiller.


upgradetiller - Обновление Tiller
boolean. Необязательный элемент. Используйте при command == init. Значение по умолчанию: true.

Если trueзадано значение , эти входные данные обновляют Tiller, если Tiller уже установлен.


updatedependency - Обновление зависимости
boolean. Необязательный элемент. Используйте при command == install || command == package. Значение по умолчанию: false.

Если trueзадано значение , то перед установкой диаграммы эти входные данные обновляют зависимостей Helm. Обновления зависимости из requirements.yaml в каталог перед упаковкойcharts/.


save - Сохранить
boolean. Необязательный элемент. Используйте при command == package. Значение по умолчанию: true.

Сохраняет упаковаемую диаграмму в локальный репозиторий диаграмм, если задано значение true​.


install - Установите, если выпуска нет.
boolean. Необязательный элемент. Используйте при command == upgrade. Значение по умолчанию: true.

Если выпуск с таким именем еще не существует, на входных данных запускается установка.


recreate - Повторно создайте модули Pod.
boolean. Необязательный элемент. Используйте при command == upgrade. Значение по умолчанию: false.

Выполняет перезапуск pod для ресурса, если применимо.


resetValues - Сброс значений.
boolean. Необязательный элемент. Используйте при command == upgrade. Значение по умолчанию: false.

Сбрасывает значения до значений, встроенных в диаграмму.


force - Силы
boolean. Необязательный элемент. Используйте при command == upgrade. Значение по умолчанию: false.

При необходимости выполняет принудительное обновление ресурса с помощью действия удаления или повторного создания.


waitForExecution - Подожди
boolean. Необязательный элемент. Используйте при command == init || command == install || command == upgrade. Значение по умолчанию: true.

Блокирует действие до завершения выполнения команды.


arguments - Аргументы
string. Необязательный элемент. Используйте при command != login && command != logout.

Параметры команды Helm.


enableTls - Включение TLS
boolean. Необязательный элемент. Используйте при command != login && command != logout && command != package && command != save. Значение по умолчанию: false.

Включает использование SSL между Helm и Tiller.


enableTls - Включение TLS
boolean. Необязательный элемент. Используйте при command != login && command != logout && command != package. Значение по умолчанию: false.

Включает использование SSL между Helm и Tiller.


caCert - Сертификат ЦС
string. Требуется при .enableTls == true && command != login && command != logout && command != package && command != save

Сертификат ЦС, используемый для выдачи сертификата для клиента Tiller и Helm.


caCert - Сертификат ЦС
string. Требуется при .enableTls == true && command != login && command != logout && command != package

Сертификат ЦС, используемый для выдачи сертификата для клиента Tiller и Helm.


certificate - Сертификат
string. Требуется при .enableTls == true && command != login && command != logout && command != package && command != save

Укажите сертификат Tiller или сертификат клиента Helm.


certificate - Сертификат
string. Требуется при .enableTls == true && command != login && command != logout && command != package

Укажите сертификат Tiller или сертификат клиента Helm.


privatekey - Ключ
string. Требуется при .enableTls == true && command != login && command != logout && command != package && command != save

Укажите ключ Tiller или ключ клиента Helm.


privatekey - Ключ
string. Требуется при .enableTls == true && command != login && command != logout && command != package

Укажите ключ Tiller или ключ клиента Helm.


tillernamespace - Пространство имен Tiller
string. Необязательный элемент. Используйте при command != login && command != logout && command != package && command != save.

Укажите пространство имен Kubernetes Tiller.


tillernamespace - Пространство имен Tiller
string. Необязательный элемент. Используйте при command != login && command != logout && command != package.

Укажите пространство имен Kubernetes Tiller.


failOnStderr - Сбой при стандартной ошибке
boolean. Необязательный элемент. Используйте при command != login && command != logout && command != package && command != save. Значение по умолчанию: false.

Если это входные данные , эта задача завершается trueсбоем, если какие-либо ошибки записываются в конвейер ошибок или если какие-либо данные записываются в поток стандартных ошибок. В противном случае задача использует код выхода для определения сбоя.


failOnStderr - Сбой при стандартной ошибке
boolean. Необязательный элемент. Используйте при command != login && command != logout && command != package. Значение по умолчанию: true.

Если это входные данные , эта задача завершается trueсбоем, если какие-либо ошибки записываются в конвейер ошибок или если какие-либо данные записываются в поток стандартных ошибок. В противном случае задача использует код выхода для определения сбоя.


publishPipelineMetadata - Публикация метаданных конвейера
boolean. Необязательный элемент. Используйте при command != login && command != logout && command != package && command != save. Значение по умолчанию: true.

Если это входные данные true, задача собирает и публикует метаданные развертывания.


chartNameForACR - Имя диаграммы для Реестр контейнеров Azure
string. Требуется при .command == save

Имя диаграммы в Реестр контейнеров Azure.


chartPathForACR - Путь к диаграмме для Реестр контейнеров Azure
string. Требуется при .command == save

Путь к файлу к каталогу диаграммы в Реестр контейнеров Azure.


Параметры управления задачами

Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задачи.

Выходные переменные

Эта задача определяет следующие выходные переменные, которые можно использовать в последующих шагах, заданиях и этапах.

helmExitCode
Код выхода, полученный при выполнении указанной команды Helm.

helmOutput
Выходные данные, полученные при выполнении указанной команды Helm.

Нет.

Remarks

Используйте HelmDeploy@0 для развертывания, настройки или обновления кластера Kubernetes в Службе контейнеров Azure, выполнив команды Helm. Helm — это средство, которое упрощает развертывание приложений Kubernetes и управление ими с помощью формата упаковки, называемого диаграммами.

С помощью Helm вы можете определить, использовать, установить и обновить даже самое сложное приложение Kubernetes, а также установить его версию.

  • Helm помогает объединить несколько манифестов Kubernetes (yaml), таких как службы, развертывания, configmap и многое другое, в единое целое, называемое диаграммами Helm. Вам не нужно изобретать или использовать токенизацию или инструмент создания шаблонов.
  • Диаграммы Helm помогают управлять зависимостями приложений и развертывать их, а также выполнять откат как единое целое. Кроме того, их можно легко создавать, использовать, публиковать, а также делиться ими с другими командами партнеров.

Azure Pipelines имеет встроенную поддержку диаграмм Helm:

  • Задачу установщика helm Tool можно использовать для установки правильной версии Helm на агенты.
  • Пакет Helm и задача развертывания можно использовать для упаковки приложения и его развертывания в кластере Kubernetes. Задачу можно использовать для установки или обновления Tiller до пространства имен Kubernetes, безопасного подключения к Tiller по протоколу TLS для развертывания диаграмм или для выполнения любой команды Helm, например lint.
  • Задача Helm поддерживает подключение к Служба Azure Kubernetes с помощью подключения к службе Azure. Вы можете подключиться к любому кластеру Kubernetes с помощью kubeconfig или учетной записи службы.
  • Развертывания Helm можно дополнить с помощью задачи Kubectl ; например, create/update, imagepullsecret и другие.

Подключение к службе

HelmDeploy@0 работает с двумя типами подключений к службам: Azure Resource Manager и подключением службы Kubernetes. Примеры настройки этих двух типов подключений см. в разделе Примеры .

Примечание

Подключение к службе не требуется, если ресурс среды, указывающий на кластер Kubernetes, уже указан на этапе конвейера.

Рекомендации по подключению службы Kubernetes при доступе к AKS

Подключение к службе Kubernetes можно создать с помощью любого из следующих вариантов.

  • KubeConfig
  • Учетная запись службы
  • Подписка Azure

Снимок экрана: выбор метода проверки подлинности подключения к службе Kubernetes.

При выборе параметра Подписка Azure Kubernetes должен быть доступен для Azure DevOps во время настройки подключения службы. Подключение к службе не может быть создано по разным причинам, например вы создали частный кластер или в кластере отключены локальные учетные записи. В таких случаях Azure DevOps не может подключиться к кластеру во время настройки подключения службы, и вы увидите зависание экрана Загрузка пространств имен .

Снимок экрана: диалоговое окно проверки подлинности подключения службы Kubernetes зависло при загрузке пространств имен.

Начиная с Kubernetes 1.24, долгоживущие маркеры больше не создаются по умолчанию. Kubernetes не рекомендует использовать маркеры с длительным сроком действия. В результате задачи, использующие подключение службы Kubernetes, созданное с помощью подписки Azure , не имеют доступа к постоянному маркеру, необходимому для проверки подлинности, и не могут получить доступ к кластеру Kubernetes. Это также приводит к закреплению диалогового окна Загрузка пространств имен .

Использование подключения службы azure Resource Manager для доступа к AKS

Для клиентов AKS тип подключения службы Azure Resource Manager является лучшим способом подключения к частному кластеру или кластеру с отключенными локальными учетными записями. Этот метод не зависит от подключения к кластеру во время создания подключения службы. Доступ к AKS откладывается в среду выполнения конвейера, которая имеет следующие преимущества:

  • Доступ к (частному) кластеру AKS можно осуществлять из локального агента или агента масштабируемого набора с прямой видимости кластера.
  • Маркер создается для каждой задачи, которая использует подключение службы azure Resource Manager. Это гарантирует, что вы подключаетесь к Kubernetes с помощью короткого маркера, который является рекомендацией Kubernetes.
  • Доступ к AKS можно получить, даже если локальные учетные записи отключены.

Часто задаваемые вопросы о подключении службы

Появляется следующее сообщение об ошибке: Не удалось найти секрет, связанный с учетной записью службы. Что происходит?

Вы используете параметр Подключение к службе Kubernetes с подпиской Azure. Мы обновляем этот метод для создания токенов с длительным сроком действия. Ожидается, что он будет доступен в середине мая. Однако рекомендуется начать использовать тип подключения службы Azure, а не использовать маркеры с длительным сроком существования, как указано в руководстве Kubernetes.

Я использую AKS и не хочу ничего менять. Могу ли я продолжать использовать задачи с подключением к службе Kubernetes?

Мы обновляем этот метод для создания токенов с длительным сроком действия. Ожидается, что он будет доступен в середине мая. Однако имейте в виду, что этот подход противоречит рекомендациям Kubernetes.

Я использую задачи Kubernetes и подключение службы Kubernetes, но не AKS. Стоит ли мне беспокоиться?

Задачи будут продолжать работать, как и раньше.

Будет ли удален тип подключения к службе Kubernetes?

Наши задачи Kubernetes работают с любым кластером Kubernetes независимо от того, где они выполняются. Подключение к службе Kubernetes будет продолжать существовать.

Я клиент AKS, и все работает нормально, должен ли я действовать?

Нет необходимости ничего менять. Если вы используете подключение к службе Kubernetes и выбрали подписку Azure во время создания, следует учитывать руководство Kubernetes по использованию маркеров с длительным сроком действия.

Я создаю среду Kubernetes и не могу использовать подключения служб

Если вы не можете получить доступ к AKS во время создания среды, можно использовать пустую среду и задать connectionType входные данные для подключения службы azure Resource Manager.

У меня есть AKS, настроенная с azure Active Directory RBAC, и мой конвейер не работает. Будут ли эти обновления устранять это?

Доступ к Kubernetes при включении AAD RBAC не связан с созданием маркера. Чтобы предотвратить интерактивный запрос, мы будем поддерживать kubelogin в будущем обновлении.

Значения команд

Входные данные команды принимают одну из следующих команд helm: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade. Примеры приведены в разделе Примеры .

Каждый вход команды сопоставляется с набором входных данных задачи. Команды, которые сопоставляются с входными данными задачи, обозначены в блоке синтаксиса YAML и в таблице входных данных задачи.

Устранение неполадок

Задача HelmDeploy выдает ошибку "неизвестный флаг: --wait" при выполнении "helm init --wait --client-only" в версии Helm 3.0.2.

Есть некоторые критические изменения между Helm 2 и Helm 3. Один из них включает удаление tiller, поэтому helm init команда больше не поддерживается. Удалите команду init при использовании Helm версий 3.0+.

Если при использовании Helm 3 для параметра System.debug задано значение true, а helm upgrade — это используемая команда, конвейер завершается ошибкой, даже если обновление прошло успешно.

Это известная проблема с пакетом Helm 3, так как он записывает некоторые журналы в stderr. Задача развертывания Helm считается неудачной, если в stderr есть журналы или код выхода имеет ненулевое значение. Задайте входные данные задачи failOnStderr: false, чтобы пропускать журналы, показанные в stderr.

Примеры

Azure Resource Manager

В этом примере YAML показано, как Resource Manager Azure используется для ссылки на кластер Kubernetes. Используется с одной из команд helm и соответствующими значениями , необходимыми для команды:

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

В этом примере YAML показано, как подключение службы Kubernetes используется для ссылки на кластер Kubernetes. Используется с одной из команд helm и соответствующими значениями , необходимыми для команды:

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

Команды

Входные данные команды принимают одну из следующих команд helm: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.

В этом примере YAML демонстрируется команда ls :

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

Команда init

В этом примере YAML демонстрируется команда init :

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

Команда install

В этом примере YAML демонстрируется команда install :

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

команда package

В этом примере YAML демонстрируется команда package :

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

Команда upgrade

В этом примере YAML демонстрируется команда обновления :

- 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

Команда save

В этом примере YAML демонстрируется команда сохранения :

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

Упаковка и подписание диаграмм Helm

В этом разделе вы узнаете, как упаковывать и подписывать диаграммы Helm в конвейере.

Создание пары закрытых и открытых ключей для подписания диаграммы helm с помощью GPG

  1. Скачайте GPG.

  2. Запустите командную строку в режиме администратора. Выполните следующую команду, чтобы создать пару закрытых и открытых ключей, чтобы подписать диаграмму helm с помощью gpg. При создании ключа вам будет предложено ввести имя пользователя и адрес электронной почты. Позже имя адреса электронной почты используется для присвоения имени созданной паре закрытых и открытых ключей.

    gpg --full-generate-key
    

    Создание ключа

  3. Вам будет предложено ввести парольную фразу. Присвойте значение и нажмите кнопку ОК.

    Снимок экрана: предоставление парольной фразы.

  4. После создания ключа можно просмотреть список ключей, содержащих как закрытые, так и открытые, с помощью следующей команды.

    • Просмотр списка закрытых ключей

      gpg --list-secret-keys
      

      Закрытые ключи

    • Просмотр списка открытых ключей

      gpg --list-keys
      

      Открытые ключи

  5. Сохраните закрытый и открытый ключи в двух разных файлах с расширением gpg , как показано ниже.

    • Для закрытого ключа
    gpg --export-secret-key 94325E18E53EDD99DD8339C3CFD9DAF0707CB788 contoso@microsoft.com > C:/somepath/privatekeys.gpg
    

    Вы увидите файл privatekeys.gpg , экспортируемый по указанному выше пути.

    • Для открытого ключа
    gpg --export-key 94325E18E53EDD99DD8339C3CFD9DAF0707CB788 contoso@microsoft.com > C:/somepath/publickey.gpg
    

    Вы увидите файл publickey.gpg , экспортируемый по указанному выше пути.

В Azure DevOps сохраните файл privatekey.gpg в разделе защищенных файлов библиотеки.

Пример

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)

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Агент, DeploymentGroup
Требования Нет
Capabilities Эта задача не удовлетворяет требованиям для последующих задач в задании.
Ограничения команд Любой
Устанавливаемые переменные Любой
Версия агента Все поддерживаемые версии агента.
Категория задач Развертывание