Compartir a través de


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: especifique Kubernetes Service Connection para conectarse a cualquier clúster de Kubernetes mediante kubeconfig 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: especifique Azure 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: especifique Kubernetes Service Connection para conectarse a cualquier clúster de Kubernetes mediante kubeconfig 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: especifique Azure 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, saveupgrade. 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

Captura de pantalla de la elección de un método de autenticación de conexión de servicio de Kubernetes.

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.

Captura de pantalla de cómo elegir un cuadro de diálogo de autenticación de conexión de servicio de Kubernetes bloqueado al cargar 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

  1. Descargue gpG.

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

    Generar de claves

  3. Se le pedirá la frase de contraseña. Asigne el valor y haga clic en Aceptar.

    Captura de pantalla que muestra la frase de contraseña.

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

      claves privadas

    • Para ver la lista de claves públicas

      gpg --list-keys
      

      de claves públicas

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