HelmDeploy@0: empaquetar e implementar la tarea gráficos de Helm v0
Use esta tarea para implementar, configurar o actualizar un clúster de Kubernetes en Azure Container Service mediante la ejecución de comandos de Helm.
Sintaxis
# 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.
Entradas
connectionType
-
tipo de conexión
string
. Obligatorio cuando command != logout && command != package && command != save
. Valores permitidos: Azure Resource Manager
, Kubernetes Service Connection
, None
. Valor predeterminado: Azure Resource Manager
.
Especifica el tipo de conexión.
-
Kubernetes Service Connection
: especifiqueKubernetes Service Connection
para conectarse a cualquier clúster de Kubernetes mediantekubeconfig
o la cuenta de servicio de Azure. Permite proporcionar un archivo KubeConfig, especificar una cuenta de servicio o importar una instancia de AKS con la opción suscripción de Azure. La importación de una instancia de AKS con la opción suscripción de Azure requiere acceso al clúster de Kubernetes en el momento de configuración de la conexión de servicio. -
Azure Resource Manager
: especifiqueAzure Resource Manager
para conectarse a una instancia de Azure Kubernetes Service mediante la conexión de servicio de Azure. No tiene acceso al clúster de Kubernetes en el momento de configuración de la conexión de servicio. -
None
: use una configuración de Kubernetes creada previamente almacenada localmente.
Para obtener más información, consulte de conexión de servicio en la siguiente sección Comentarios.
connectionType
-
tipo de conexión
string
. Obligatorio cuando command != logout && command != package
. Valores permitidos: Azure Resource Manager
, Kubernetes Service Connection
, None
. Valor predeterminado: Azure Resource Manager
.
Especifica el tipo de conexión.
-
Kubernetes Service Connection
: especifiqueKubernetes Service Connection
para conectarse a cualquier clúster de Kubernetes mediantekubeconfig
o la cuenta de servicio de Azure. Permite proporcionar un archivo KubeConfig, especificar una cuenta de servicio o importar una instancia de AKS con la opción suscripción de Azure. La importación de una instancia de AKS con la opción suscripción de Azure requiere acceso al clúster de Kubernetes en el momento de configuración de la conexión de servicio. -
Azure Resource Manager
: especifiqueAzure Resource Manager
para conectarse a una instancia de Azure Kubernetes Service mediante la conexión de servicio de Azure. No tiene acceso al clúster de Kubernetes en el momento de configuración de la conexión de servicio. -
None
: use una configuración de Kubernetes creada previamente almacenada localmente.
Para obtener más información, consulte de conexión de servicio en la siguiente sección Comentarios.
azureSubscription
-
de suscripción de Azure
Alias de entrada: azureSubscriptionEndpoint
.
string
. Obligatorio cuando connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
Nombre de la conexión de servicio de Azure. Especifique una suscripción de Azure que tenga el registro de contenedor.
azureSubscription
-
de suscripción de Azure
Alias de entrada: azureSubscriptionEndpoint
.
string
. Obligatorio cuando connectionType = Azure Resource Manager && command != logout && command != package
.
Nombre de la conexión de servicio de Azure. Especifique una suscripción de Azure que tenga el registro de contenedor.
del grupo de recursos de azureResourceGroup
-
string
. Obligatorio cuando connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
Nombre del grupo de recursos dentro de la suscripción. Especifique un grupo de recursos de Azure.
del grupo de recursos de azureResourceGroup
-
string
. Obligatorio cuando connectionType = Azure Resource Manager && command != logout && command != package
.
Nombre del grupo de recursos dentro de la suscripción. Especifique un grupo de recursos de Azure.
kubernetesCluster
-
del clúster de Kubernetes
string
. Obligatorio cuando connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
Nombre del clúster de AKS. Especifique un clúster administrado de Azure.
kubernetesCluster
-
del clúster de Kubernetes
string
. Obligatorio cuando connectionType = Azure Resource Manager && command != logout && command != package
.
Nombre del clúster de AKS. Especifique un clúster administrado de Azure.
useClusterAdmin
-
Uso de credenciales de administrador de clústeres
boolean
. Opcional. Use cuando connectionType = Azure Resource Manager && command != logout && command != package && command != save
. Valor predeterminado: false
.
Usa credenciales de administrador de clúster en lugar de credenciales de usuario de clúster predeterminadas.
useClusterAdmin
-
Uso de credenciales de administrador de clústeres
boolean
. Opcional. Use cuando connectionType = Azure Resource Manager && command != logout && command != package
. Valor predeterminado: false
.
Usa credenciales de administrador de clúster en lugar de credenciales de usuario de clúster predeterminadas.
kubernetesServiceConnection
-
de conexión de Kubernetes Service
Alias de entrada: kubernetesServiceEndpoint
.
string
. Obligatorio cuando connectionType = Kubernetes Service Connection && command != logout && command != package && command != save
.
Especifica una conexión de Kubernetes Service.
kubernetesServiceConnection
-
de conexión de Kubernetes Service
Alias de entrada: kubernetesServiceEndpoint
.
string
. Obligatorio cuando connectionType = Kubernetes Service Connection && command != logout && command != package
.
Especifica una conexión de Kubernetes Service.
namespace
-
espacio de nombres
string
. Opcional. Use cuando command != logout && command != package && command != save
.
Espacio de nombres en el que se ejecutan los comandos kubectl
. Si no se especifica, la tarea usa el espacio de nombres predeterminado. Especifique el espacio de nombres de Kubernetes que se va a usar. Puede especificar el espacio de nombres Tiller en la sección avanzada de la tarea o pasando la opción --tiller-namespace
como argumento.
namespace
-
espacio de nombres
string
. Opcional. Use cuando command != logout && command != package
.
Espacio de nombres en el que se ejecutan los comandos kubectl
. Si no se especifica, la tarea usa el espacio de nombres predeterminado. Especifique el espacio de nombres de Kubernetes que se va a usar. Puede especificar el espacio de nombres Tiller en la sección avanzada de la tarea o pasando la opción --tiller-namespace
como argumento.
azureSubscriptionForACR
-
suscripción de Azure para container Registry
Alias de entrada: azureSubscriptionEndpointForACR
.
string
. Obligatorio cuando command == save
.
Especifica una suscripción de Azure que tiene Azure Container Registry.
del grupo de recursos de azureResourceGroupForACR
-
string
. Obligatorio cuando command == save
.
Especifica un grupo de recursos de Azure que tiene container Registry.
azureContainerRegistry
-
azure Container Registry
string
. Obligatorio cuando command == save
.
Especifica una instancia de Azure Container Registry que se va a usar para insertar gráficos de Helm.
command
-
comando
string
. Obligatorio. Valores permitidos: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
, uninstall
. Valor predeterminado: ls
.
Especifica un comando de Helm.
command
-
comando
string
. Obligatorio. Valores permitidos: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
upgrade
. Valor predeterminado: ls
.
Especifica un comando de Helm.
command
-
comando
string
. Obligatorio. Valores permitidos: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, upgrade
. Valor predeterminado: ls
.
Especifica un comando de Helm.
tipo de gráfico de chartType
-
string
. Obligatorio cuando command == install || command == upgrade
. Valores permitidos: Name
, FilePath
(ruta de acceso del archivo). Valor predeterminado: Name
.
Especifica cómo desea escribir la información del gráfico. Puede proporcionar el nombre del gráfico o la ruta de acceso de carpeta o archivo al gráfico.
nombre del gráfico de chartName
-
string
. Obligatorio cuando chartType == Name
.
Nombre de la referencia del gráfico que se va a instalar. Puede ser una dirección URL o un nombre de gráfico. Por ejemplo, si el nombre del gráfico es stable/mysql
, la tarea se ejecuta helm install stable/mysql
.
chartPath
-
ruta de acceso del gráfico
string
. Obligatorio cuando chartType == FilePath || command == package
.
Ruta de acceso al gráfico que se va a instalar. Puede ser una ruta de acceso a un gráfico empaquetado o una ruta de acceso a un directorio de gráficos desempaquetado. Por ejemplo, si especifica ./redis
, la tarea se ejecuta helm install ./redis
. Si usa un gráfico que se publica como un artefacto, la ruta de acceso se $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME
.
chartVersion
-
versión
Alias de entrada: version
.
string
. Opcional. Use cuando command == package || command == install || command == upgrade
.
Especifica la versión exacta del gráfico que se va a instalar. Si no especifica la versión del gráfico, la tarea instala la versión más reciente. Establezca la versión del gráfico en esta versión del servidor.
chartVersion
-
versión
Alias de entrada: version
.
string
. Opcional. Use cuando command == package
.
Especifica la versión exacta del gráfico que se va a instalar. Si no especifica la versión del gráfico, la tarea instala la versión más reciente. Establezca la versión del gráfico en esta versión del servidor.
nombre de la versión de releaseName
-
string
. Opcional. Use cuando command == install || command == upgrade
.
Nombre de la versión. Si no especifica el nombre de la versión, la tarea genera automáticamente una automáticamente. La entrada releaseName
solo es válida para comandos install
y upgrade
.
overrideValues
-
establecer valores
string
. Opcional. Use cuando command == install || command == upgrade
.
Especifica valores en la línea de comandos. Esta entrada puede especificar varios valores o independientes con comas: key1=val1,key2=val2
.
También puede especificar varios valores delimitándolos con una nueva línea, como se indica a continuación:
- key1=val1
- key2=val2
Si tiene un valor que contiene nuevas líneas, use la opción valueFile
. De lo contrario, la tarea trata la nueva línea como delimitador. La tarea construye el comando helm mediante estos valores establecidos. Por ejemplo, puede establecer el valor mediante un comando como el siguiente: helm install --set key1=val1 ./redis
.
archivo de valor de valueFile
-
string
. Opcional. Use cuando command == install || command == upgrade
.
Especifica los valores de un archivo YAML o una dirección URL. Por ejemplo, especificar myvalues.yaml
da como resultado helm install --values=myvals.yaml
.
de destino de destination
-
string
. Opcional. Use cuando command == package
. Valor predeterminado: $(Build.ArtifactStagingDirectory)
.
Especifica los valores de un archivo YAML o una dirección URL.
canaryimage
-
Usar la versión de imagen de valor controlado.
boolean
. Opcional. Use cuando command == init
. Valor predeterminado: false
.
Especifica la imagen canary Tiller. Use la versión preliminar más reciente de Tiller.
upgradetiller
-
actualizar tiller
boolean
. Opcional. Use cuando command == init
. Valor predeterminado: true
.
Si true
, esta entrada actualiza Tiller si Tiller ya está instalado.
updatedependency
-
actualizar de dependencias
boolean
. Opcional. Use cuando command == install || command == package
. Valor predeterminado: false
.
Si true
, esta entrada actualiza una actualización de dependencia de Helm antes de instalar el gráfico. Actualiza las dependencias de requirements.yaml
al directorio charts/
antes del empaquetado.
save
-
Guardar
boolean
. Opcional. Use cuando command == package
. Valor predeterminado: true
.
Guarda el gráfico empaquetado en el repositorio de gráficos locales cuando se establece en true
.
install
-
Instalar si la versión no está presente.
boolean
. Opcional. Use cuando command == upgrade
. Valor predeterminado: true
.
Si aún no existe una versión con este nombre, esta entrada ejecuta una instalación.
recreate
-
Volver a crear pods.
boolean
. Opcional. Use cuando command == upgrade
. Valor predeterminado: false
.
Realiza el reinicio de pods para el recurso, si procede.
resetValues
-
Restablecer valores.
boolean
. Opcional. Use cuando command == upgrade
. Valor predeterminado: false
.
Restablece los valores a los valores integrados en el gráfico.
force
-
Force
boolean
. Opcional. Use cuando command == upgrade
. Valor predeterminado: false
.
Fuerza una actualización de recursos a través de una acción de eliminación o recreación, si es necesario.
waitForExecution
-
esperar
boolean
. Opcional. Use cuando command == init || command == install || command == upgrade
. Valor predeterminado: true
.
Bloquea la acción hasta que se complete la ejecución del comando.
argumentos de
string
. Opcional. Use cuando command != login && command != logout
.
Opciones de comando de Helm.
enableTls
-
Habilitar TLS
boolean
. Opcional. Use cuando command != login && command != logout && command != package && command != save
. Valor predeterminado: false
.
Habilita el uso de SSL entre Helm y Tiller.
enableTls
-
Habilitar TLS
boolean
. Opcional. Use cuando command != login && command != logout && command != package
. Valor predeterminado: false
.
Habilita el uso de SSL entre Helm y Tiller.
de certificados de entidad de certificación de caCert
-
string
. Obligatorio cuando enableTls == true && command != login && command != logout && command != package && command != save
.
El certificado de ENTIDAD de certificación usado para emitir un certificado para el cliente Tiller y Helm.
de certificados de entidad de certificación de caCert
-
string
. Obligatorio cuando enableTls == true && command != login && command != logout && command != package
.
El certificado de ENTIDAD de certificación usado para emitir un certificado para el cliente Tiller y Helm.
certificate
-
certificado
string
. Obligatorio cuando enableTls == true && command != login && command != logout && command != package && command != save
.
Especifique el certificado Tiller o el certificado de cliente de Helm.
certificate
-
certificado
string
. Obligatorio cuando enableTls == true && command != login && command != logout && command != package
.
Especifique el certificado Tiller o el certificado de cliente de Helm.
de clave de privatekey
-
string
. Obligatorio cuando enableTls == true && command != login && command != logout && command != package && command != save
.
Especifique la clave Tiller o la clave de cliente de Helm.
de clave de privatekey
-
string
. Obligatorio cuando enableTls == true && command != login && command != logout && command != package
.
Especifique la clave Tiller o la clave de cliente de Helm.
tillernamespace
-
de espacio de nombres Tiller
string
. Opcional. Use cuando command != login && command != logout && command != package && command != save
.
Especifique el espacio de nombres de Kubernetes de Tiller.
tillernamespace
-
de espacio de nombres Tiller
string
. Opcional. Use cuando command != login && command != logout && command != package
.
Especifique el espacio de nombres de Kubernetes de Tiller.
failOnStderr
-
error en la de error estándar
boolean
. Opcional. Use cuando command != login && command != logout && command != package && command != save
. Valor predeterminado: false
.
Si esta entrada es true
, se produce un error en esta tarea si se escriben errores en la canalización de errores o si se escribe algún dato en el flujo de error estándar. De lo contrario, la tarea se basa en el código de salida para determinar el error.
failOnStderr
-
error en la de error estándar
boolean
. Opcional. Use cuando command != login && command != logout && command != package
. Valor predeterminado: true
.
Si esta entrada es true
, se produce un error en esta tarea si se escriben errores en la canalización de errores o si se escribe algún dato en el flujo de error estándar. De lo contrario, la tarea se basa en el código de salida para determinar el error.
publishPipelineMetadata
-
publicación de metadatos de canalización
boolean
. Opcional. Use cuando command != login && command != logout && command != package && command != save
. Valor predeterminado: true
.
Si esta entrada es true
, la tarea recopila y publica metadatos de implementación.
nombre del gráfico de chartNameForACR
- para azure Container Registry
string
. Obligatorio cuando command == save
.
Nombre del gráfico en Azure Container Registry.
ruta de acceso del gráfico de chartPathForACR
- para azure Container Registry
string
. Obligatorio cuando command == save
.
Ruta de acceso del archivo al directorio del gráfico en Azure Container Registry.
Opciones de control de tareas
Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.
Variables de salida
Esta tarea define las siguientes variables de salida , que puede consumir en pasos, trabajos y fases de bajada.
helmExitCode
El código de salida emitido a partir de la ejecución del comando de Helm especificado.
helmOutput
Salida emitida a partir de la ejecución del comando de Helm especificado.
Observaciones
Use HelmDeploy@0 para implementar, configurar o actualizar un clúster de Kubernetes en Azure Container Service mediante la ejecución de comandos de Helm. Helm es una herramienta que simplifica la implementación y administración de aplicaciones de Kubernetes mediante un formato de empaquetado denominado gráficos.
Puede definir, versión, recurso compartido, instalación e actualización incluso la aplicación de Kubernetes más compleja mediante Helm.
- Helm le ayuda a combinar varios manifiestos de Kubernetes (yaml), como service, deployments, configmaps, etc. en una sola unidad denominada Helm Charts. No es necesario inventar ni usar una herramienta de creación de tokens ni plantillas.
- Los gráficos de Helm le ayudan a administrar las dependencias de la aplicación e implementar, así como la reversión como una unidad. También son fáciles de crear, publicar y compartir con otros equipos asociados.
Azure Pipelines tiene compatibilidad integrada con gráficos de Helm:
- La tarea del instalador de la herramienta de Helm se puede usar para instalar la versión correcta de Helm en los agentes.
- El paquete de Helm y la tarea de implementación se pueden usar para empaquetar la aplicación e implementarlo en un clúster de Kubernetes. Puede usar la tarea para instalar o actualizar Tiller a un espacio de nombres de Kubernetes, para conectarse de forma segura a Tiller a través de TLS para implementar gráficos, o para ejecutar cualquier comando de Helm, como lint.
- La tarea de Helm admite la conexión a una instancia de Azure Kubernetes Service mediante una conexión de servicio de Azure. Puede conectarse a cualquier clúster de Kubernetes mediante kubeconfig o una cuenta de servicio.
- Las implementaciones de Helm se pueden complementar mediante la tarea de kubectl de; por ejemplo, create/update, imagepullsecret y otros.
Conexión de servicio
HelmDeploy@0 funciona con dos tipos de conexión de servicio: de Azure Resource Manager y conexión de Kubernetes Service. Consulte Ejemplos para obtener ejemplos sobre cómo configurar estos dos tipos de conexión.
Nota:
Una conexión de servicio no es necesaria si ya se ha especificado un recurso de entorno que apunte a un clúster de Kubernetes en la fase de la canalización.
Consideraciones sobre la conexión de Kubernetes Service al acceder a AKS
Puede crear una conexión de servicio de Kubernetes con cualquiera de las opciones siguientes.
- KubeConfig
- Cuenta de servicio
- Suscripción a Azure
Al seleccionar la opción suscripción de Azure, Kubernetes debe ser accesible para Azure DevOps en el momento de la configuración de la conexión del servicio. Puede haber varias razones por las que no se puede crear una conexión de servicio; por ejemplo, crea un clúster privado o el clúster tiene cuentas locales deshabilitadas. En estos casos, Azure DevOps no se puede conectar al clúster en el momento de la configuración de la conexión de servicio y verá una pantalla de Carga de espacios de nombres.
A partir de Kubernetes 1.24, los tokens de larga duración ya no se crean de forma predeterminada. Kubernetes recomienda no usar tokens de larga duración. Como resultado, las tareas que usan una conexión de servicio de Kubernetes creada con la opción suscripción de Azure no tienen acceso al token permanente necesario para autenticarse y no pueden acceder al clúster de Kubernetes. Esto también da como resultado el cuadro de diálogo inmovilizado Carga de espacios de nombres.
Uso de la conexión de servicio de Azure Resource Manager para acceder a AKS
Para los clientes de AKS, el tipo de conexión de servicio de Azure Resource Manager proporciona el mejor método para conectarse a un clúster privado o un clúster que tenga deshabilitadas las cuentas locales. Este método no depende de la conectividad del clúster en el momento de crear una conexión de servicio. El acceso a AKS se aplaza al entorno de ejecución de canalización, que tiene las siguientes ventajas:
- El acceso a un clúster de AKS (privado) se puede realizar desde un agente de conjunto de escalado o autohospedado con línea de visión al clúster.
- Se crea un token para cada tarea que usa una conexión de servicio de Azure Resource Manager. Esto garantiza que se conecta a Kubernetes con un token de corta duración, que es la recomendación de Kubernetes.
- Se puede acceder a AKS incluso cuando se deshabilitan las cuentas locales.
Preguntas más frecuentes sobre la conexión de servicio
Recibo el siguiente mensaje de error: No se encontró ningún secreto asociado a la cuenta de servicio. ¿Qué pasa?
Está usando la conexión del servicio Kubernetes con la opción Suscripción de Azure. Estamos actualizando este método para crear tokens de larga duración. Se espera que esté disponible a mediados de mayo. Sin embargo, se recomienda empezar a usar el tipo de conexión de servicio de Azure y no usar tokens de larga duración según guía de Kubernetes.
Uso AKS y no quiero cambiar nada, ¿puedo seguir usando tareas con la conexión del servicio Kubernetes?
Estamos actualizando este método para crear tokens de larga duración. Se espera que esté disponible a mediados de mayo. Sin embargo, tenga en cuenta que este enfoque está en contra de guía de Kubernetes.
Uso las tareas de Kubernetes y la conexión del servicio Kubernetes, pero no AKS. ¿Debería preocuparme?
Las tareas seguirán funcionando como antes.
¿Se quitará el tipo de conexión del servicio Kubernetes?
Nuestras tareas de Kubernetes funcionan con cualquier clúster de Kubernetes, independientemente de dónde se ejecuten. La conexión del servicio Kubernetes seguirá existiendo.
Soy un cliente de AKS y todo funciona bien, ¿debo actuar?
No es necesario cambiar nada. Si usa la conexión del servicio Kubernetes y la suscripción de Azure seleccionada durante la creación, debe tener en cuenta las instrucciones de Kubernetes sobre el uso de tokens de larga duración.
Estoy creando un entorno de Kubernetes y no tengo ninguna opción para usar conexiones de servicio.
En caso de que no pueda acceder a AKS durante el tiempo de creación del entorno, puede usar un entorno vacío y establecer la entrada connectionType
en una conexión de servicio de Azure Resource Manager.
Tengo AKS configurado con RBAC de Azure Active Directory y mi canalización no funciona. ¿Resolverán estas actualizaciones?
El acceso a Kubernetes cuando AAD RBAC está habilitado no está relacionado con la creación de tokens. Para evitar un aviso interactivo, se admitirá kubelogin en una actualización futura.
Valores de comando
La entrada del comando acepta uno de los siguientes comandos helm: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade. En la sección Ejemplos de se proporcionan ejemplos de.
Cada entrada de comando se asigna a un conjunto de entradas de tarea. Los comandos que se asignan a una entrada de tarea se designan en el bloque de sintaxis YAML y en la tabla de entradas de tareas.
Solución de problemas
La tarea HelmDeploy produce el error "marca desconocida: --wait" al ejecutar "helm init --wait --client-only" en la versión de Helm 3.0.2.
Hay algunos cambios importantes entre Helm 2 y Helm 3. Uno de ellos incluye la eliminación de tiller y, por lo tanto, ya no se admite helm init
comando. Comando Remove: init cuando se usan versiones de Helm 3.0+.
Al usar Helm 3, si System.debug está establecido en true y la actualización de Helm es el comando que se está usando, se produce un error en la canalización aunque la actualización se haya realizado correctamente.
Se trata de un problema conocido con Helm 3, ya que escribe algunos registros en stderr. La tarea de implementación de Helm se marca como errónea si hay registros en stderr o código de salida es distinto de cero. Establezca la entrada de tarea failOnStderr: false para omitir los registros impresos en stderr.
Ejemplos
Azure Resource Manager
En este ejemplo de YAML se muestra cómo se usa Azure Resource Manager para hacer referencia al clúster de Kubernetes. Esto se usa con uno de los comandos helm y los valores adecuados necesarios para el comando:
variables:
azureSubscriptionEndpoint: Contoso
azureContainerRegistry: contoso.azurecr.io
azureResourceGroup: Contoso
kubernetesCluster: Contoso
- task: HelmDeploy@0
displayName: Helm deploy
inputs:
connectionType: Azure Resource Manager
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
Conexión de Kubernetes Service
En este ejemplo de YAML se muestra cómo se usa la conexión del servicio Kubernetes para hacer referencia al clúster de Kubernetes. Esto se usa con uno de los comandos helm y los valores adecuados necesarios para el comando:
- task: HelmDeploy@0
displayName: Helm deploy
inputs:
connectionType: Kubernetes Service Connection
kubernetesServiceEndpoint: Contoso
Comandos:
La entrada del comando acepta uno de los siguientes comandos helm: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.
En este ejemplo de YAML se muestra el comando ls:
- task: HelmDeploy@0
displayName: Helm list
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: ls
arguments: --all
comando init
En este ejemplo de YAML se muestra el comando init:
- task: HelmDeploy@0
displayName: Helm init
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: init
upgradetiller: true
waitForExecution: true
arguments: --client-only
comando instalar
En este ejemplo de YAML se muestra el comando instalar:
- task: HelmDeploy@0
displayName: Helm install
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: install
chartType: FilePath
chartPath: Application/charts/sampleapp
comando package
En este ejemplo de YAML se muestra el comando paquete de:
- task: HelmDeploy@0
displayName: Helm package
inputs:
command: package
chartPath: Application/charts/sampleapp
destination: $(Build.ArtifactStagingDirectory)
Comando de actualización
En este ejemplo de YAML se muestra el comando actualizar:
- task: HelmDeploy@0
displayName: Helm upgrade
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: upgrade
chartType: filepath
chartPath: $(Build.ArtifactStagingDirectory)/sampleapp-v0.2.0.tgz
releaseName: azuredevopsdemo
install: true
waitForExecution: false
comando save
En este ejemplo de YAML se muestra el comando guardar:
- 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)
Empaquetar y firmar gráficos de Helm
En esta sección aprenderá a empaquetar y firmar gráficos de Helm en una canalización.
Generación de un par de claves pública-privada para firmar el gráfico de Helm mediante GPG
Descargue gpG.
Inicie el símbolo del sistema en un modo de administrador. Ejecute el siguiente comando para generar un par de claves pública privada para firmar el gráfico de Helm mediante gpg. Al crear la clave, se le pedirá el nombre de usuario y la dirección de correo electrónico. La "dirección de correo electrónico de nombre" se usa más adelante para asignar un nombre al par de claves pública privada que se crea.
gpg --full-generate-key
de claves
Se le pedirá la frase de contraseña. Asigne el valor y haga clic en Aceptar.
Después de crear la clave, puede ver la lista de claves que contiene tanto privada como pública mediante el comando siguiente.
Para ver la lista de claves privadas
gpg --list-secret-keys
Para ver la lista de claves públicas
gpg --list-keys
de claves públicas
Almacene las claves privadas y públicas en 2 archivos diferentes con la extensión gpg como se muestra a continuación.
- Para una clave privada
gpg --export-secret-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/privatekeys.gpg
Verá el archivo privatekeys.gpg exportado a la ruta de acceso que se mencionó anteriormente.
- Para una clave pública
gpg --export-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/publickey.gpg
Verá el archivo publickey.gpg exportado a la ruta de acceso que se mencionó anteriormente.
En Azure DevOps, guarde el archivo privatekey.gpg en la biblioteca archivos seguros sección.
Ejemplo
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)
Requisitos
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica, versión clásica |
Se ejecuta en | Agente, DeploymentGroup |
demandas | Ninguno |
funcionalidades de |
Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
restricciones de comandos | Cualquiera |
variables settable | Cualquiera |
Versión del agente | Todas las versiones de agente admitidas. |
Categoría de tarea | Desplegar |