HelmDeploy@0 . Упаковка и развертывание задач Helm chart v0
Используйте эту задачу для развертывания, настройки или обновления кластера 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.
Входные данные
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 с реестром контейнеров.
группы ресурсов
string
. Требуется, если connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
Имя группы ресурсов в подписке. Укажите группу ресурсов Azure.
группы ресурсов
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
.
Использует учетные данные администратора кластера вместо учетных данных пользователя кластера по умолчанию.
подключения службы Kubernetes kubernetesServiceConnection
-
Псевдоним ввода: kubernetesServiceEndpoint
.
string
. Требуется, если connectionType = Kubernetes Service Connection && command != logout && command != package && command != save
.
Указывает подключение службы Kubernetes.
подключения службы Kubernetes kubernetesServiceConnection
-
Псевдоним ввода: 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.
группы ресурсов
string
. Требуется, если command == save
.
Указывает группу ресурсов Azure с реестром контейнеров.
реестра контейнеров Azure azureContainerRegistry
-
string
. Требуется, если command == save
.
Указывает реестр контейнеров Azure, используемый для отправки диаграмм Helm.
Команда command
-
string
. Обязательное. Допустимые значения: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
, uninstall
. Значение по умолчанию: ls
.
Задает команду Helm.
Команда command
-
string
. Обязательное. Допустимые значения: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
. Значение по умолчанию: ls
.
Задает команду Helm.
Команда command
-
string
. Обязательное. Допустимые значения: create
, delete
, expose
, get
, init
, install
, login
, logout
, 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
.
Указывает канареарный образ Тиллера. Используйте последнюю предварительную версию Тиллера.
upgradetiller
-
Обновление Тиллера
boolean
. Необязательно. Используется при command == init
. Значение по умолчанию: true
.
Если true
, входные данные обновляют Тиллер, если Тиллер уже установлен.
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
-
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 и Тиллером.
enableTls
-
включить TLS
boolean
. Необязательно. Используется при command != login && command != logout && command != package
. Значение по умолчанию: false
.
Включает использование SSL между Helm и Тиллером.
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
.
Укажите сертификат Тиллера или сертификат клиента Helm.
certificate
-
сертификатов
string
. Требуется, если enableTls == true && command != login && command != logout && command != package
.
Укажите сертификат Тиллера или сертификат клиента Helm.
privatekey
-
ключ
string
. Требуется, если enableTls == true && command != login && command != logout && command != package && command != save
.
Укажите ключ Тиллера или ключ клиента Helm.
privatekey
-
ключ
string
. Требуется, если enableTls == true && command != login && command != logout && command != package
.
Укажите ключ Тиллера или ключ клиента Helm.
tillernamespace
-
пространство имен Тиллера
string
. Необязательно. Используется при command != login && command != logout && command != package && command != save
.
Укажите пространство имен Kubernetes Тиллера.
tillernamespace
-
пространство имен Тиллера
string
. Необязательно. Используется при command != login && command != logout && command != package
.
Укажите пространство имен Kubernetes Тиллера.
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.
Замечания
Используйте HelmDeploy@0 для развертывания, настройки или обновления кластера Kubernetes в службе контейнеров Azure, выполнив команды Helm. Helm — это средство, которое упрощает развертывание приложений Kubernetes и управление ими с помощью формата упаковки, называемого диаграммами.
Вы можете определить, версию, поделиться, установить и обновить даже самое сложное приложение Kubernetes с помощью Helm.
- Helm помогает объединить несколько манифестов Kubernetes (yaml), таких как служба, развертывания, конфигурации и многое другое в одном модуле с именем Helm Chart. Вам не нужно либо изобретать, либо использовать маркеризацию или инструмент шаблонирования.
- Helm Chart помогает управлять зависимостями приложений и развертывать, а также откат как единицу. Они также легко создавать, версии, публиковать и предоставлять общий доступ другим командам партнеров.
Azure Pipelines поддерживает встроенные диаграммы Helm:
- Задачу установщика программы Helm можно использовать для установки правильной версии Helm на агенты.
- Пакет Helm и задача развертывания можно использовать для упаковки приложения и развертывания в кластере Kubernetes. Задачу можно использовать для установки или обновления Тиллера в пространстве имен Kubernetes, безопасного подключения к Тиллеру по протоколу 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
При выборе параметра подписки Azure kubernetes необходимо получить доступ к Azure DevOps во время настройки подключения службы. Могут возникнуть различные причины, по которым невозможно создать подключение к службе, например, вы создали частный кластер или кластер имеет локальных учетных записей, отключенных. В этих случаях Azure DevOps не может подключиться к кластеру во время настройки подключения к службе, и вы увидите зависшие экране загрузки пространств имен.
Начиная с 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/ls/package/rollback/upgrade. Примеры приведены в разделе Примеры.
Все входные данные команды сопоставляются с набором входных данных задач. Команды, сопоставленные с входными данными задачи, назначаются в блоке синтаксиса YAML и в таблице входных данных задачи
Устранение неполадок
Задача HelmDeploy выдает ошибку "неизвестный флаг: --wait" при выполнении "helm init --wait --client-only" в Helm 3.0.2 версии.
Есть некоторые критические изменения между Helm 2 и Helm 3. Одна из них включает удаление тиллера, поэтому helm init
команда больше не поддерживается. Удалите команду: инициализация при использовании версий Helm 3.0+ .
При использовании Helm 3, если system.debug имеет значение true, и используется команда Helm, конвейер завершается ошибкой, даже если обновление выполнено успешно.
Это известная проблема с Helm 3, как она записывает некоторые журналы в stderr. Задача развертывания Helm помечается как неудачная, если есть журналы для stderr или кода выхода ненулевых. Задайте входные данные задачи failOnStderr: false, чтобы игнорировать журналы, напечатанные на stderr.
Примеры
Azure Resource Manager
В этом примере YAML показано, как Azure Resource Manager используется для ссылки на кластер 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/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
Команда установки
В этом примере YAML демонстрируется команда установки :
- task: HelmDeploy@0
displayName: Helm install
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: install
chartType: FilePath
chartPath: Application/charts/sampleapp
Команда пакета
В этом примере YAML демонстрируется команда пакета:
- task: HelmDeploy@0
displayName: Helm package
inputs:
command: package
chartPath: Application/charts/sampleapp
destination: $(Build.ArtifactStagingDirectory)
Команда модернизации
В этом примере 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
Запустите командную строку в режиме администратора. Выполните следующую команду, чтобы создать пару закрытого ключа, чтобы подписать диаграмму helm с помощью gpg. При создании ключа вам будет предложено указать имя пользователя и адрес электронной почты. Позже имя адреса электронной почты используется для имени созданной пары закрытых ключей.
gpg --full-generate-key
Вам будет предложено ввести парольную фразу. Присвойте значение и нажмите кнопку "ОК".
После создания ключа можно просмотреть список ключей, содержащих как закрытые, так и открытые, с помощью следующей команды.
Просмотр списка закрытых ключей
gpg --list-secret-keys
Просмотр списка открытых ключей
gpg --list-keys
Сохраните закрытые и открытые ключи в 2 разных файлах с расширением gpg, как показано ниже.
- Для закрытого ключа
gpg --export-secret-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/privatekeys.gpg
Вы увидите файл privatekeys.gpg, экспортируемый в путь, упомянутый выше.
- Для открытого ключа
gpg --export-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 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 |
требования | Нет |
возможностей | Эта задача не удовлетворяет требованиям к последующим задачам в задании. |
ограничения команд | Любое |
переменные settable | Любое |
Версия агента | Все поддерживаемые версии агента. |
Категория задач | Внедрять |