HelmDeploy@0 - Helm-grafieken v0-taak verpakken en implementeren
Gebruik deze taak om een Kubernetes-cluster in Azure Container Service te implementeren, configureren of bij te werken door Helm-opdrachten uit te voeren.
Syntaxis
# 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.
Invoer
connectionType
-
verbindingstype
string
. Vereist wanneer command != logout && command != package && command != save
. Toegestane waarden: Azure Resource Manager
, Kubernetes Service Connection
, None
. Standaardwaarde: Azure Resource Manager
.
Hiermee geeft u het verbindingstype op.
-
Kubernetes Service Connection
: geefKubernetes Service Connection
op om verbinding te maken met een Kubernetes-cluster met behulp vankubeconfig
of het Azure-serviceaccount. Hiermee kunt u een KubeConfig-bestand opgeven, een serviceaccount opgeven of een AKS-exemplaar importeren met de optie Azure-abonnement. Voor het importeren van een AKS-exemplaar met de optie Azure-abonnement is kubernetes-clustertoegang vereist tijdens de configuratietijd van de serviceverbinding. -
Azure Resource Manager
- GeefAzure Resource Manager
op om verbinding te maken met een Azure Kubernetes Service met behulp van Azure Service Connection. Heeft geen toegang tot het Kubernetes-cluster tijdens de configuratietijd van de serviceverbinding. -
None
: gebruik een vooraf gemaakte Kubernetes-configuratie die lokaal is opgeslagen.
Zie Serviceverbinding in de volgende sectie Opmerkingen voor meer informatie.
connectionType
-
verbindingstype
string
. Vereist wanneer command != logout && command != package
. Toegestane waarden: Azure Resource Manager
, Kubernetes Service Connection
, None
. Standaardwaarde: Azure Resource Manager
.
Hiermee geeft u het verbindingstype op.
-
Kubernetes Service Connection
: geefKubernetes Service Connection
op om verbinding te maken met een Kubernetes-cluster met behulp vankubeconfig
of het Azure-serviceaccount. Hiermee kunt u een KubeConfig-bestand opgeven, een serviceaccount opgeven of een AKS-exemplaar importeren met de optie Azure-abonnement. Voor het importeren van een AKS-exemplaar met de optie Azure-abonnement is kubernetes-clustertoegang vereist tijdens de configuratietijd van de serviceverbinding. -
Azure Resource Manager
- GeefAzure Resource Manager
op om verbinding te maken met een Azure Kubernetes Service met behulp van Azure Service Connection. Heeft geen toegang tot het Kubernetes-cluster tijdens de configuratietijd van de serviceverbinding. -
None
: gebruik een vooraf gemaakte Kubernetes-configuratie die lokaal is opgeslagen.
Zie Serviceverbinding in de volgende sectie Opmerkingen voor meer informatie.
azureSubscription
-
Azure-abonnement
Invoeralias: azureSubscriptionEndpoint
.
string
. Vereist wanneer connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
De naam van de Azure-serviceverbinding. Geef een Azure-abonnement op met uw containerregister.
azureSubscription
-
Azure-abonnement
Invoeralias: azureSubscriptionEndpoint
.
string
. Vereist wanneer connectionType = Azure Resource Manager && command != logout && command != package
.
De naam van de Azure-serviceverbinding. Geef een Azure-abonnement op met uw containerregister.
azureResourceGroup
-
resourcegroep
string
. Vereist wanneer connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
De naam van de resourcegroep binnen het abonnement. Geef een Azure-resourcegroep op.
azureResourceGroup
-
resourcegroep
string
. Vereist wanneer connectionType = Azure Resource Manager && command != logout && command != package
.
De naam van de resourcegroep binnen het abonnement. Geef een Azure-resourcegroep op.
kubernetesCluster
-
Kubernetes-cluster
string
. Vereist wanneer connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
De naam van het AKS-cluster. Geef een beheerd Azure-cluster op.
kubernetesCluster
-
Kubernetes-cluster
string
. Vereist wanneer connectionType = Azure Resource Manager && command != logout && command != package
.
De naam van het AKS-cluster. Geef een beheerd Azure-cluster op.
useClusterAdmin
-
Referenties van clusterbeheerder gebruiken
boolean
. Facultatief. Gebruiken wanneer connectionType = Azure Resource Manager && command != logout && command != package && command != save
. Standaardwaarde: false
.
Maakt gebruik van clusterbeheerdersreferenties in plaats van standaardreferenties voor clustergebruikers.
useClusterAdmin
-
Referenties van clusterbeheerder gebruiken
boolean
. Facultatief. Gebruiken wanneer connectionType = Azure Resource Manager && command != logout && command != package
. Standaardwaarde: false
.
Maakt gebruik van clusterbeheerdersreferenties in plaats van standaardreferenties voor clustergebruikers.
kubernetesServiceConnection
-
Kubernetes Service Connection
Invoeralias: kubernetesServiceEndpoint
.
string
. Vereist wanneer connectionType = Kubernetes Service Connection && command != logout && command != package && command != save
.
Hiermee geeft u een Kubernetes-serviceverbinding op.
kubernetesServiceConnection
-
Kubernetes Service Connection
Invoeralias: kubernetesServiceEndpoint
.
string
. Vereist wanneer connectionType = Kubernetes Service Connection && command != logout && command != package
.
Hiermee geeft u een Kubernetes-serviceverbinding op.
namespace
-
naamruimte
string
. Facultatief. Gebruiken wanneer command != logout && command != package && command != save
.
De naamruimte waarop u de kubectl
opdrachten uitvoert. Als deze niet is opgegeven, gebruikt de taak de standaardnaamruimte. Geef de Kubernetes-naamruimte op die moet worden gebruikt. U kunt de Tiller-naamruimte opgeven in de geavanceerde sectie van de taak of door de optie --tiller-namespace
door te geven als argument.
namespace
-
naamruimte
string
. Facultatief. Gebruiken wanneer command != logout && command != package
.
De naamruimte waarop u de kubectl
opdrachten uitvoert. Als deze niet is opgegeven, gebruikt de taak de standaardnaamruimte. Geef de Kubernetes-naamruimte op die moet worden gebruikt. U kunt de Tiller-naamruimte opgeven in de geavanceerde sectie van de taak of door de optie --tiller-namespace
door te geven als argument.
azureSubscriptionForACR
-
Azure-abonnement voor Container Registry-
Invoeralias: azureSubscriptionEndpointForACR
.
string
. Vereist wanneer command == save
.
Hiermee geeft u een Azure-abonnement op met uw Azure Container Registry.
azureResourceGroupForACR
-
resourcegroep
string
. Vereist wanneer command == save
.
Hiermee geeft u een Azure-resourcegroep op die uw Container Registry bevat.
azureContainerRegistry
-
Azure Container Registry-
string
. Vereist wanneer command == save
.
Hiermee geeft u een Azure Container Registry moet worden gebruikt voor het pushen van Helm-grafieken.
command
-
opdracht
string
. Verplicht. Toegestane waarden: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
, uninstall
. Standaardwaarde: ls
.
Hiermee geeft u een Helm-opdracht.
command
-
opdracht
string
. Verplicht. Toegestane waarden: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
. Standaardwaarde: ls
.
Hiermee geeft u een Helm-opdracht.
command
-
opdracht
string
. Verplicht. Toegestane waarden: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, upgrade
. Standaardwaarde: ls
.
Hiermee geeft u een Helm-opdracht.
chartType
-
grafiektype
string
. Vereist wanneer command == install || command == upgrade
. Toegestane waarden: Name
, FilePath
(bestandspad). Standaardwaarde: Name
.
Hiermee geeft u op hoe u grafiekgegevens wilt invoeren. U kunt de naam van de grafiek of map/bestandspad opgeven voor de grafiek.
chartName
-
grafieknaam
string
. Vereist wanneer chartType == Name
.
De naam van de grafiekreferentie die moet worden geïnstalleerd. Dit kan een URL of een grafieknaam zijn. Als de grafieknaam bijvoorbeeld is stable/mysql
, wordt de taak uitgevoerd helm install stable/mysql
.
chartPath
-
grafiekpad
string
. Vereist wanneer chartType == FilePath || command == package
.
Het pad naar de grafiek die moet worden geïnstalleerd. Dit kan een pad naar een verpakte grafiek of een pad naar een uitgepakte grafiekmap zijn. Als u bijvoorbeeld ./redis
opgeeft, wordt de taak uitgevoerd helm install ./redis
. Als u een grafiek gebruikt die is gepubliceerd als artefact, wordt het pad $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME
.
chartVersion
-
versie
Invoeralias: version
.
string
. Facultatief. Gebruiken wanneer command == package || command == install || command == upgrade
.
Hiermee geeft u de exacte grafiekversie die moet worden geïnstalleerd. Als u de grafiekversie niet opgeeft, installeert de taak de nieuwste versie. Stel de versie in de grafiek in op deze semver-versie.
chartVersion
-
versie
Invoeralias: version
.
string
. Facultatief. Gebruiken wanneer command == package
.
Hiermee geeft u de exacte grafiekversie die moet worden geïnstalleerd. Als u de grafiekversie niet opgeeft, installeert de taak de nieuwste versie. Stel de versie in de grafiek in op deze semver-versie.
releaseName
-
releasenaam
string
. Facultatief. Gebruiken wanneer command == install || command == upgrade
.
De releasenaam. Als u de releasenaam niet opgeeft, wordt er automatisch een voor u gegenereerd door de taak. De releaseName
-invoer is alleen geldig voor install
en upgrade
opdrachten.
overrideValues
-
Waarden instellen
string
. Facultatief. Gebruiken wanneer command == install || command == upgrade
.
Hiermee geeft u waarden op de opdrachtregel. Met deze invoer kunt u meerdere of afzonderlijke waarden opgeven met komma's: key1=val1,key2=val2
.
U kunt ook meerdere waarden opgeven door ze als volgt te scheiden met een nieuwe regel:
- key1=val1
- key2=val2
Als u een waarde hebt die nieuwe regels bevat, gebruikt u de optie valueFile
. Anders behandelt de taak de nieuwe regel als scheidingsteken. Met de taak wordt de Helm-opdracht samengesteld met behulp van deze setwaarden. U kunt de waarde bijvoorbeeld instellen met behulp van een opdracht zoals hieronder: helm install --set key1=val1 ./redis
.
valueFile
-
waardebestand
string
. Facultatief. Gebruiken wanneer command == install || command == upgrade
.
Hiermee geeft u waarden op in een YAML-bestand of een URL. Als u bijvoorbeeld myvalues.yaml
resultaten opgeeft in helm install --values=myvals.yaml
.
destination
-
Doel-
string
. Facultatief. Gebruiken wanneer command == package
. Standaardwaarde: $(Build.ArtifactStagingDirectory)
.
Hiermee geeft u waarden op in een YAML-bestand of een URL.
canaryimage
-
Canary-installatiekopieënversie gebruiken.
boolean
. Facultatief. Gebruiken wanneer command == init
. Standaardwaarde: false
.
Hiermee geeft u de canary Tiller afbeelding. Gebruik de nieuwste voorlopige versie van Tiller.
upgradetiller
-
Tiller- upgraden
boolean
. Facultatief. Gebruiken wanneer command == init
. Standaardwaarde: true
.
Als true
, wordt Tiller bijgewerkt als Tiller al is geïnstalleerd.
updatedependency
-
Afhankelijkheid bijwerken
boolean
. Facultatief. Gebruiken wanneer command == install || command == package
. Standaardwaarde: false
.
Als true
, wordt met deze invoer een Helm-afhankelijkheidsupdate bijgewerkt voordat u de grafiek installeert. Hiermee worden afhankelijkheden van requirements.yaml
bijgewerkt naar de charts/
map voordat ze worden verpakt.
save
-
opslaan
boolean
. Facultatief. Gebruiken wanneer command == package
. Standaardwaarde: true
.
Slaat de verpakte grafiek op in de opslagplaats voor lokale grafieken wanneer deze is ingesteld op true
.
install
-
installeren als de release niet aanwezig is.
boolean
. Facultatief. Gebruiken wanneer command == upgrade
. Standaardwaarde: true
.
Als er nog geen release met deze naam bestaat, wordt met deze invoer een installatie uitgevoerd.
recreate
-
Pods opnieuw maken.
boolean
. Facultatief. Gebruiken wanneer command == upgrade
. Standaardwaarde: false
.
Voert pods opnieuw op voor de resource, indien van toepassing.
resetValues
-
waarden opnieuw instellen.
boolean
. Facultatief. Gebruiken wanneer command == upgrade
. Standaardwaarde: false
.
Hiermee stelt u de waarden opnieuw in op de waarden die zijn ingebouwd in de grafiek.
force
-
Forceren
boolean
. Facultatief. Gebruiken wanneer command == upgrade
. Standaardwaarde: false
.
Dwingt een resource-update af via een verwijder- of opnieuw maken,indien nodig.
waitForExecution
-
wacht
boolean
. Facultatief. Gebruiken wanneer command == init || command == install || command == upgrade
. Standaardwaarde: true
.
Hiermee blokkeert u de actie totdat de uitvoering van de opdracht is voltooid.
arguments
-
argumenten
string
. Facultatief. Gebruiken wanneer command != login && command != logout
.
De Helm-opdrachtopties.
TLS-inschakelen enableTls
-
boolean
. Facultatief. Gebruiken wanneer command != login && command != logout && command != package && command != save
. Standaardwaarde: false
.
Maakt het gebruik van SSL mogelijk tussen Helm en Tiller.
TLS-inschakelen enableTls
-
boolean
. Facultatief. Gebruiken wanneer command != login && command != logout && command != package
. Standaardwaarde: false
.
Maakt het gebruik van SSL mogelijk tussen Helm en Tiller.
caCert
-
CA-certificaat
string
. Vereist wanneer enableTls == true && command != login && command != logout && command != package && command != save
.
Het CA-certificaat dat wordt gebruikt voor het uitgeven van een certificaat voor de Tiller- en Helm-client.
caCert
-
CA-certificaat
string
. Vereist wanneer enableTls == true && command != login && command != logout && command != package
.
Het CA-certificaat dat wordt gebruikt voor het uitgeven van een certificaat voor de Tiller- en Helm-client.
certificate
-
certificaat
string
. Vereist wanneer enableTls == true && command != login && command != logout && command != package && command != save
.
Geef het Tiller-certificaat of het Helm-clientcertificaat op.
certificate
-
certificaat
string
. Vereist wanneer enableTls == true && command != login && command != logout && command != package
.
Geef het Tiller-certificaat of het Helm-clientcertificaat op.
privatekey
-
Sleutel
string
. Vereist wanneer enableTls == true && command != login && command != logout && command != package && command != save
.
Geef de Tiller-sleutel of de Helm-clientsleutel op.
privatekey
-
Sleutel
string
. Vereist wanneer enableTls == true && command != login && command != logout && command != package
.
Geef de Tiller-sleutel of de Helm-clientsleutel op.
tillernamespace
-
Tiller-naamruimte
string
. Facultatief. Gebruiken wanneer command != login && command != logout && command != package && command != save
.
Geef Tiller's Kubernetes-naamruimte op.
tillernamespace
-
Tiller-naamruimte
string
. Facultatief. Gebruiken wanneer command != login && command != logout && command != package
.
Geef Tiller's Kubernetes-naamruimte op.
failOnStderr
-
mislukt bij standaardfout
boolean
. Facultatief. Gebruiken wanneer command != login && command != logout && command != package && command != save
. Standaardwaarde: false
.
Als deze invoer is true
, mislukt deze taak als er fouten naar de foutpijplijn worden geschreven of als er gegevens naar de standaardfoutstroom worden geschreven. Anders is de taak afhankelijk van de afsluitcode om de fout te bepalen.
failOnStderr
-
mislukt bij standaardfout
boolean
. Facultatief. Gebruiken wanneer command != login && command != logout && command != package
. Standaardwaarde: true
.
Als deze invoer is true
, mislukt deze taak als er fouten naar de foutpijplijn worden geschreven of als er gegevens naar de standaardfoutstroom worden geschreven. Anders is de taak afhankelijk van de afsluitcode om de fout te bepalen.
publishPipelineMetadata
-
metagegevens van pijplijn publiceren
boolean
. Facultatief. Gebruiken wanneer command != login && command != logout && command != package && command != save
. Standaardwaarde: true
.
Als deze invoer is true
, verzamelt en publiceert de taak metagegevens van de implementatie.
chartNameForACR
-
grafieknaam voor Azure Container Registry-
string
. Vereist wanneer command == save
.
De naam van de grafiek in Azure Container Registry.
chartPathForACR
-
grafiekpad voor Azure Container Registry-
string
. Vereist wanneer command == save
.
Het bestandspad naar de grafiekmap in Azure Container Registry.
Opties voor taakbeheer
Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.
Uitvoervariabelen
Deze taak definieert de volgende uitvoervariabelen, die u kunt gebruiken in downstreamstappen, taken en fasen.
helmExitCode
De afsluitcode die wordt verzonden door de uitvoering van de opgegeven Helm-opdracht.
helmOutput
De uitvoer die wordt verzonden door de uitvoering van de opgegeven Helm-opdracht.
Opmerkingen
Gebruik HelmDeploy@0 om een Kubernetes-cluster in Azure Container Service te implementeren, configureren of bij te werken door Helm-opdrachten uit te voeren. Helm is een hulpprogramma dat het implementeren en beheren van Kubernetes-apps stroomlijnt met behulp van een verpakkingsindeling die grafieken wordt genoemd.
U kunt zelfs de meest complexe Kubernetes-app definiëren, versie, delen, installeren en upgraden met behulp van Helm.
- Met Helm kunt u meerdere Kubernetes-manifesten (yaml) combineren, zoals service, implementaties, configuratiekaarten en meer in één eenheid met de naam Helm-grafieken. U hoeft geen tokenisatie of een verleidend hulpmiddel te gebruiken.
- Helm Charts helpt u bij het beheren van toepassingsafhankelijkheden en het implementeren en terugdraaien als een eenheid. Ze zijn ook eenvoudig te maken, versie, publiceren en delen met andere partnerteams.
Azure Pipelines biedt ingebouwde ondersteuning voor Helm-grafieken:
- De Helm Tool-installatietaak kan worden gebruikt om de juiste versie van Helm op de agents te installeren.
- Het Helm-pakket en de implementatietaak kunnen worden gebruikt om de app te verpakken en te implementeren in een Kubernetes-cluster. U kunt de taak gebruiken om Tiller te installeren of bij te werken naar een Kubernetes-naamruimte, om veilig verbinding te maken met Tiller via TLS voor het implementeren van grafieken of om een Helm-opdracht uit te voeren, zoals lint.
- De Helm-taak ondersteunt het maken van verbinding met een Azure Kubernetes Service met behulp van een Azure-serviceverbinding. U kunt verbinding maken met elk Kubernetes-cluster met behulp van kubeconfig- of een serviceaccount.
- Helm-implementaties kunnen worden aangevuld met behulp van de Kubectl- taak; Bijvoorbeeld maken/bijwerken, imagepullsecret en andere.
Serviceverbinding
HelmDeploy@0 werkt met twee serviceverbindingstypen: Azure Resource Manager- en Kubernetes Service Connection. Zie Voorbeelden voor voorbeelden over het configureren van deze twee verbindingstypen.
Notitie
Een serviceverbinding is niet vereist als een omgevingsresource die verwijst naar een Kubernetes-cluster al is opgegeven in de fase van de pijplijn.
Overwegingen voor Kubernetes Service Connection bij het openen van AKS
U kunt een Kubernetes-serviceverbinding maken met een van de volgende opties.
- KubeConfig
- Serviceaccount
- Azure-abonnement
Wanneer u de optie Azure-abonnement selecteert, moet Kubernetes tijdens de configuratietijd van de serviceverbinding toegankelijk zijn voor Azure DevOps. Er kunnen verschillende redenen zijn waarom een serviceverbinding niet kan worden gemaakt, bijvoorbeeld dat u een privécluster hebt gemaakt of dat het cluster lokale accounts heeft uitgeschakeld. In dergelijke gevallen kan Azure DevOps geen verbinding maken met uw cluster tijdens de configuratie van de serviceverbinding en ziet u een vastgelopen Naamruimten laden scherm.
Vanaf Kubernetes 1.24 worden tokens met een lange levensduur niet meer standaardworden gemaakt. Kubernetes raadt aan geen tokens met een lange levensduur te gebruiken. Als gevolg hiervan hebben taken die gebruikmaken van een Kubernetes-serviceverbinding die is gemaakt met de Azure-abonnement optie geen toegang tot het permanente token dat is vereist voor verificatie en geen toegang tot uw Kubernetes-cluster. Dit resulteert ook in het dialoogvenster geblokkeerde Naamruimten laden.
De Azure Resource Manager-serviceverbinding gebruiken om toegang te krijgen tot AKS
Voor AKS-klanten biedt het verbindingstype azure Resource Manager-service de beste methode om verbinding te maken met een privécluster of een cluster waarvoor lokale accounts zijn uitgeschakeld. Deze methode is niet afhankelijk van clusterconnectiviteit op het moment dat u een serviceverbinding maakt. Toegang tot AKS wordt uitgesteld tot pijplijnruntime, met de volgende voordelen:
- Toegang tot een (privé) AKS-cluster kan worden uitgevoerd vanuit een zelf-hostende of schaalsetagent met zicht op het cluster.
- Er wordt een token gemaakt voor elke taak die gebruikmaakt van een Azure Resource Manager-serviceverbinding. Dit zorgt ervoor dat u verbinding maakt met Kubernetes met een kortstondige token. Dit is de Kubernetes-aanbeveling.
- AKS kan worden geopend, zelfs wanneer lokale accounts zijn uitgeschakeld.
Veelgestelde vragen over serviceverbindingen
Ik krijg het volgende foutbericht: Kan geen geheim vinden dat is gekoppeld aan het serviceaccount. Wat gebeurt er?
U gebruikt de Kubernetes-serviceverbinding met de optie Azure-abonnement. We werken deze methode bij om langlevende tokens te maken. Dit is naar verwachting halverwege mei beschikbaar. Het is echter raadzaam om het verbindingstype van de Azure-service te gebruiken en niet om tokens met een lange levensduur te gebruiken volgens Kubernetes-richtlijnen.
Ik gebruik AKS en wil niets wijzigen, kan ik taken blijven gebruiken met de Kubernetes-serviceverbinding?
We werken deze methode bij om langlevende tokens te maken. Dit is naar verwachting halverwege mei beschikbaar. Houd er echter rekening mee dat deze aanpak zich tegen Kubernetes-richtlijnenbevindt.
Ik gebruik de Kubernetes-taken en kubernetes-serviceverbinding, maar niet AKS. Moet ik me zorgen maken?
Uw taken blijven werken zoals voorheen.
Wordt het verbindingstype van de Kubernetes-service verwijderd?
Onze Kubernetes-taken werken met elk Kubernetes-cluster, ongeacht waar ze worden uitgevoerd. De Kubernetes-serviceverbinding blijft bestaan.
Ik ben een AKS-klant en alles werkt prima, moet ik handelen?
U hoeft niets te wijzigen. Als u de Kubernetes-serviceverbinding en het geselecteerde Azure-abonnement gebruikt tijdens het maken, moet u rekening houden met de Kubernetes-richtlijnen voor het gebruik van langlopende tokens.
Ik maak een Kubernetes-omgeving en heb geen optie om serviceverbindingen te gebruiken
Als u geen toegang hebt tot uw AKS tijdens het maken van de omgeving, kunt u een lege omgeving gebruiken en de connectionType
invoer instellen op een Azure Resource Manager-serviceverbinding.
Ik heb AKS geconfigureerd met Azure Active Directory RBAC en mijn pijplijn werkt niet. Zullen deze updates dat oplossen?
Toegang tot Kubernetes wanneer AAD RBAC is ingeschakeld, is niet gerelateerd aan het maken van tokens. Om een interactieve prompt te voorkomen, ondersteunen we kubelogin in een toekomstige update.
Opdrachtwaarden
De opdrachtinvoer accepteert een van de volgende Helm-opdrachten: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade. Voorbeelden vindt u in de sectie Voorbeelden.
Elke opdrachtinvoer wordt toegewezen aan een set taakinvoer. De opdrachten die zijn toegewezen aan een taakinvoer, worden aangewezen in het YAML-syntaxisblok en in de tabel taakinvoer
Problemen oplossen
HelmDeploy-taak genereert de fout 'onbekende vlag: --wait' tijdens het uitvoeren van 'helm init --wait --client-only' op Helm 3.0.2-versie.
Er zijn enkele belangrijke wijzigingen tussen Helm 2 en Helm 3. Een van deze omvat het verwijderen van tiller en daarom wordt helm init
opdracht niet meer ondersteund. Opdracht verwijderen: init wanneer u Helm 3.0+ versies gebruikt.
Als System.debug is ingesteld op True als Helm 3 wordt gebruikt, mislukt de pijplijn, zelfs als de upgrade is geslaagd.
Dit is een bekend probleem met Helm 3, omdat er logboeken naar stderr worden geschreven. Helm Deploy-taak is gemarkeerd als mislukt als er logboeken naar stderr of afsluitcode niet-nul zijn. Stel de taakinvoer failOnStderr in: false om de logboeken te negeren die worden afgedrukt naar stderr.
Voorbeelden
Azure Resource Manager
In dit YAML-voorbeeld ziet u hoe Azure Resource Manager wordt gebruikt om te verwijzen naar het Kubernetes-cluster. Dit wordt gebruikt met een van de helm opdrachten en de juiste waarden die vereist zijn voor de opdracht:
variables:
azureSubscriptionEndpoint: Contoso
azureContainerRegistry: contoso.azurecr.io
azureResourceGroup: Contoso
kubernetesCluster: Contoso
- task: HelmDeploy@0
displayName: Helm deploy
inputs:
connectionType: Azure Resource Manager
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
Kubernetes-serviceverbinding
In dit YAML-voorbeeld ziet u hoe de Kubernetes-serviceverbinding wordt gebruikt om te verwijzen naar het Kubernetes-cluster. Dit wordt gebruikt met een van de helm opdrachten en de juiste waarden die vereist zijn voor de opdracht:
- task: HelmDeploy@0
displayName: Helm deploy
inputs:
connectionType: Kubernetes Service Connection
kubernetesServiceEndpoint: Contoso
Opdrachten
De opdrachtinvoer accepteert een van de volgende Helm-opdrachten: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.
In dit YAML-voorbeeld ziet u de opdracht ls:
- task: HelmDeploy@0
displayName: Helm list
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: ls
arguments: --all
init-opdracht
In dit YAML-voorbeeld ziet u de opdracht init:
- task: HelmDeploy@0
displayName: Helm init
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: init
upgradetiller: true
waitForExecution: true
arguments: --client-only
installatieopdracht
In dit YAML-voorbeeld ziet u de opdracht installeren:
- task: HelmDeploy@0
displayName: Helm install
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: install
chartType: FilePath
chartPath: Application/charts/sampleapp
pakketopdracht
In dit YAML-voorbeeld ziet u de opdracht pakket:
- task: HelmDeploy@0
displayName: Helm package
inputs:
command: package
chartPath: Application/charts/sampleapp
destination: $(Build.ArtifactStagingDirectory)
upgrade-commando
In dit YAML-voorbeeld ziet u de opdracht upgrade:
- 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
opdracht opslaan
In dit YAML-voorbeeld ziet u de opdracht opslaan:
- task: HelmDeploy@0
displayName: Helm save
inputs:
command: save
chartNameForACR: mycontainerregistry.azurecr.io/helm/hello-world:v1
chartPathForACR: Application/charts/sampleapp
azureSubscriptionEndpointForACR: $(azureSubscriptionEndpointForACR)
azureResourceGroupForACR: $(azureResourceGroupForACR)
azureContainerRegistry: $(azureContainerRegistry)
Helm-grafieken verpakken en ondertekenen
In deze sectie leert u hoe u Helm-grafieken in een pijplijn inpakt en ondertekent.
Genereer een persoonlijk openbaar sleutelpaar om de Helm-grafiek te ondertekenen met behulp van GPG
Download GPG-.
Start de opdrachtprompt in een beheerdersmodus. Voer de volgende opdracht uit om een persoonlijk openbaar sleutelpaar te genereren om de Helm-grafiek te ondertekenen met behulp van gpg. Tijdens het maken van de sleutel wordt u gevraagd om de gebruikersnaam en het e-mailadres. Het 'naam-e-mailadres' wordt later gebruikt om het persoonlijke-openbare sleutelpaar te noemen dat is gemaakt.
gpg --full-generate-key
U wordt gevraagd om de wachtwoordzin. Geef de waarde op en klik op OK.
Nadat u de sleutel hebt gemaakt, ziet u de lijst met sleutels die zowel privé als openbaar zijn met behulp van de volgende opdracht.
Lijst met persoonlijke sleutels weergeven
gpg --list-secret-keys
De lijst met openbare sleutels weergeven
gpg --list-keys
Sla de persoonlijke en openbare sleutels op in 2 verschillende bestanden met de extensie gpg zoals hieronder wordt weergegeven.
- Voor een persoonlijke sleutel
gpg --export-secret-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/privatekeys.gpg
U ziet het bestand privatekeys.gpg geëxporteerd naar het pad dat hierboven is vermeld.
- Voor een openbare sleutel
gpg --export-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/publickey.gpg
U ziet de publickey.gpg bestand dat is geëxporteerd naar het pad dat hierboven is vermeld.
Sla in Azure DevOps het bestand privatekey.gpg op in de bibliotheek beveiligde bestanden sectie.
Voorbeeld
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)
Vereisten
Voorwaarde | Beschrijving |
---|---|
Pijplijntypen | YAML, klassieke build, klassieke release |
Wordt uitgevoerd op | Agent, DeploymentGroup |
eisen | Geen |
mogelijkheden | Deze taak voldoet niet aan de vereisten voor volgende taken in de taak. |
opdrachtbeperkingen | Welk dan ook |
variabelen instellen | Welk dan ook |
Agentversie | Alle ondersteunde agentversies. |
Taakcategorie | Implementeren |