HelmDeploy@0 - Helm 차트 v0 작업 패키지 및 배포

이 작업을 사용하여 helm 명령을 실행하여 Azure Container Service에서 Kubernetes 클러스터를 배포, 구성 또는 업데이트할 수 있습니다.

이 작업을 사용하여 helm 명령을 실행하여 Azure Container Service에서 Kubernetes 클러스터를 배포, 구성 또는 업데이트할 수 있습니다.

Syntax

# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package && command != save. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package && command != save. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package && command != save. Namespace. 
  # Azure Container Registry
    #azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == save. Azure subscription for Container Registry. 
    #azureResourceGroupForACR: # string. Required when command == save. Resource group. 
    #azureContainerRegistry: # string. Required when command == save. Azure Container Registry. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'save' | 'upgrade' | 'uninstall'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package || command == install || command == upgrade. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
    #chartNameForACR: # string. Required when command == save. Chart Name For Azure Container Registry. 
    #chartPathForACR: # string. Required when command == save. Chart Path for Azure Container Registry. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package && command != save. Tiller namespace. 
    #failOnStderr: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Fail on Standard Error. Default: false.
    #publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Publish pipeline metadata. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package && command != save. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package && command != save. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package && command != save. Namespace. 
  # Azure Container Registry
    #azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == save. Azure subscription for Container Registry. 
    #azureResourceGroupForACR: # string. Required when command == save. Resource group. 
    #azureContainerRegistry: # string. Required when command == save. Azure Container Registry. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'save' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package || command == install || command == upgrade. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
    #chartNameForACR: # string. Required when command == save. Chart Name For Azure Container Registry. 
    #chartPathForACR: # string. Required when command == save. Chart Path for Azure Container Registry. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package && command != save. Tiller namespace. 
    #failOnStderr: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Fail on Standard Error. Default: false.
    #publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Publish pipeline metadata. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package. Namespace. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package. Tiller namespace. 
    #failOnStderr: true # boolean. Optional. Use when command != login && command != logout && command != package. Fail on Standard Error. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Kubernetes cluster. 
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package. Namespace. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package. Tiller namespace.
# Package and deploy Helm charts v0
# Deploy, configure, update your Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Kubernetes cluster. 
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package. Namespace. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package. Tiller namespace.

입력

connectionType - 연결 형식
string. 필요한 경우 command != logout && command != package && command != save입니다. 허용되는 값: Azure Resource Manager, Kubernetes Service Connection, None. 기본값은 Azure Resource Manager입니다.

연결 형식을 지정합니다.

  • Kubernetes Service Connection- 또는 Azure 서비스 계정을 사용하여 kubeconfig Kubernetes 클러스터에 연결하도록 지정 Kubernetes Service Connection 합니다. KubeConfig 파일을 제공하거나, 서비스 계정을 지정하거나, Azure 구독 옵션을 사용하여 AKS instance 가져올 수 있습니다. Azure 구독 옵션을 사용하여 AKS instance 가져오려면 서비스 연결 구성 시 Kubernetes 클러스터 액세스가 필요합니다.
  • Azure Resource Manager- Azure 서비스 연결을 사용하여 Azure Kubernetes Service 연결하도록 지정 Azure Resource Manager 합니다. 서비스 연결 구성 시간에 Kubernetes 클러스터에 액세스하지 않습니다.
  • None - 로컬에 저장된 미리 만들어진 Kubernetes 구성을 사용합니다.

자세한 내용은 다음 주의 섹션의 서비스 연결을 참조 하세요 .


connectionType - 연결 형식
string. 필요한 경우 command != logout && command != package입니다. 허용되는 값: Azure Resource Manager, Kubernetes Service Connection, None. 기본값은 Azure Resource Manager입니다.

연결 형식을 지정합니다.

  • Kubernetes Service Connection- 또는 Azure 서비스 계정을 사용하여 kubeconfig Kubernetes 클러스터에 연결하도록 지정 Kubernetes Service Connection 합니다. KubeConfig 파일을 제공하거나, 서비스 계정을 지정하거나, Azure 구독 옵션을 사용하여 AKS instance 가져올 수 있습니다. Azure 구독 옵션을 사용하여 AKS instance 가져오려면 서비스 연결 구성 시 Kubernetes 클러스터 액세스가 필요합니다.
  • Azure Resource Manager- Azure 서비스 연결을 사용하여 Azure Kubernetes Service 연결하도록 지정 Azure Resource Manager 합니다. 서비스 연결 구성 시간에 Kubernetes 클러스터에 액세스하지 않습니다.
  • None - 로컬에 저장된 미리 만들어진 Kubernetes 구성을 사용합니다.

자세한 내용은 다음 주의 섹션의 서비스 연결을 참조 하세요 .


azureSubscription - Azure 구독
입력 별칭: azureSubscriptionEndpoint. string. 필요한 경우 connectionType = Azure Resource Manager && command != logout && command != package && command != save입니다.

Azure 서비스 연결의 이름입니다. 컨테이너 레지스트리가 있는 Azure 구독을 지정합니다.


azureSubscription - Azure 구독
입력 별칭: azureSubscriptionEndpoint. string. 필요한 경우 connectionType = Azure Resource Manager && command != logout && command != package입니다.

Azure 서비스 연결의 이름입니다. 컨테이너 레지스트리가 있는 Azure 구독을 지정합니다.


azureResourceGroup - 리소스 그룹
string. 필요한 경우 connectionType = Azure Resource Manager && command != logout && command != package && command != save입니다.

구독 내 리소스 그룹의 이름입니다. Azure 리소스 그룹을 지정합니다.


azureResourceGroup - 리소스 그룹
string. 필요한 경우 connectionType = Azure Resource Manager && command != logout && command != package입니다.

구독 내 리소스 그룹의 이름입니다. Azure 리소스 그룹을 지정합니다.


kubernetesCluster - Kubernetes 클러스터
string. 필요한 경우 connectionType = Azure Resource Manager && command != logout && command != package && command != save입니다.

AKS 클러스터의 이름입니다. Azure Managed Cluster를 지정합니다.


kubernetesCluster - Kubernetes 클러스터
string. 필요한 경우 connectionType = Azure Resource Manager && command != logout && command != package입니다.

AKS 클러스터의 이름입니다. Azure Managed Cluster를 지정합니다.


useClusterAdmin - 클러스터 관리자 자격 증명 사용
boolean. 선택 사항입니다. 을 사용할 때 connectionType = Azure Resource Manager && command != logout && command != package && command != save사용합니다. 기본값은 false입니다.

기본 클러스터 사용자 자격 증명 대신 클러스터 관리자 자격 증명을 사용합니다.


useClusterAdmin - 클러스터 관리자 자격 증명 사용
boolean. 선택 사항입니다. 을 사용할 때 connectionType = Azure Resource Manager && command != logout && command != package사용합니다. 기본값은 false입니다.

기본 클러스터 사용자 자격 증명 대신 클러스터 관리자 자격 증명을 사용합니다.


kubernetesServiceConnection - Kubernetes 서비스 연결
입력 별칭: kubernetesServiceEndpoint. string. 필요한 경우 connectionType = Kubernetes Service Connection && command != logout && command != package && command != save입니다.

Kubernetes 서비스 연결을 지정합니다.


kubernetesServiceConnection - Kubernetes 서비스 연결
입력 별칭: kubernetesServiceEndpoint. string. 필요한 경우 connectionType = Kubernetes Service Connection && command != logout && command != package입니다.

Kubernetes 서비스 연결을 지정합니다.


namespace - 네임 스페이스
string. 선택 사항입니다. 을 사용할 때 command != logout && command != package && command != save사용합니다.

명령을 실행하는 네임스페이 kubectl 스입니다. 지정하지 않으면 작업은 기본 네임스페이스를 사용합니다. 사용할 Kubernetes 네임스페이스를 지정합니다. 작업의 고급 섹션에서 또는 옵션을 인수로 전달하여 Tiller 네임스페이 --tiller-namespace 스를 지정할 수 있습니다.


namespace - 네임 스페이스
string. 선택 사항입니다. 을 사용할 때 command != logout && command != package사용합니다.

명령을 실행하는 네임스페이 kubectl 스입니다. 지정하지 않으면 작업은 기본 네임스페이스를 사용합니다. 사용할 Kubernetes 네임스페이스를 지정합니다. 작업의 고급 섹션에서 또는 옵션을 인수로 전달하여 Tiller 네임스페이 --tiller-namespace 스를 지정할 수 있습니다.


azureSubscriptionForACR - Container Registry에 대한 Azure 구독
입력 별칭: azureSubscriptionEndpointForACR. string. 필요한 경우 command == save입니다.

Azure Container Registry 있는 Azure 구독을 지정합니다.


azureResourceGroupForACR - 리소스 그룹
string. 필요한 경우 command == save입니다.

Container Registry가 있는 Azure 리소스 그룹을 지정합니다.


azureContainerRegistry - Azure Container Registry
string. 필요한 경우 command == save입니다.

Helm 차트를 푸시하는 데 사용할 Azure Container Registry 지정합니다.


command - 명령
string. 필수 요소. 허용되는 값: create, , delete, expose, get, initinstall, , loginlogout, ls, , package, rollback, save, , upgrade, . uninstall 기본값은 ls입니다.

Helm 명령을 지정합니다.


command - 명령
string. 필수 요소. 허용되는 값: create, , delete, expose, get, initinstall, , loginlogout, , ls, package, rollback, , save, . upgrade 기본값은 ls입니다.

Helm 명령을 지정합니다.


command - 명령
string. 필수 요소. 허용되는 값: create, , delete, expose, getinit, install, , loginlogout, , ls, package, rollback, , upgrade. 기본값은 ls입니다.

Helm 명령을 지정합니다.


chartType - 차트 종류
string. 필요한 경우 command == install || command == upgrade입니다. 허용되는 값: Name, FilePath (파일 경로). 기본값은 Name입니다.

차트 정보를 입력하는 방법을 지정합니다. 차트의 이름이나 차트의 폴더/파일 경로를 제공할 수 있습니다.


chartName - 차트 이름
string. 필요한 경우 chartType == Name입니다.

설치할 차트 참조의 이름입니다. URL 또는 차트 이름일 수 있습니다. 예를 들어 차트 이름이 인 stable/mysql경우 태스크는 를 실행합니다 helm install stable/mysql.


chartPath - 차트 경로
string. 필요한 경우 chartType == FilePath || command == package입니다.

설치할 차트의 경로입니다. 패키지된 차트의 경로 또는 패키지되지 않은 차트 디렉터리의 경로일 수 있습니다. 예를 들어 를 지정 ./redis하면 태스크가 를 실행합니다 helm install ./redis. 아티팩트로 게시된 차트를 사용하는 경우 경로는 입니다 $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME.


chartVersion - 버전
입력 별칭: version. string. 선택 사항입니다. 을 사용할 때 command == package || command == install || command == upgrade사용합니다.

설치할 정확한 차트 버전을 지정합니다. 차트 버전을 지정하지 않으면 작업에서 최신 버전을 설치합니다. 차트의 버전을 이 셈버 버전으로 설정합니다.


chartVersion - 버전
입력 별칭: version. string. 선택 사항입니다. 을 사용할 때 command == package사용합니다.

설치할 정확한 차트 버전을 지정합니다. 차트 버전을 지정하지 않으면 작업에서 최신 버전을 설치합니다. 차트의 버전을 이 셈버 버전으로 설정합니다.


releaseName - 릴리스 이름
string. 선택 사항입니다. 을 사용할 때 command == install || command == upgrade사용합니다.

릴리스 이름입니다. 릴리스 이름을 지정하지 않으면 작업이 자동으로 생성됩니다. 입력은 releaseNameupgrade 명령에만 유효 install 합니다.


overrideValues - 값 설정
string. 선택 사항입니다. 을 사용할 때 command == install || command == upgrade사용합니다.

명령줄의 값을 지정합니다. 이 입력은 쉼표로 여러 값 또는 별도의 값을 지정할 수 있습니다. key1=val1,key2=val2

다음과 같이 여러 값을 새 줄로 구분하여 지정할 수도 있습니다.

  • key1=val1
  • key2=val2

새 줄이 포함된 값이 있는 경우 옵션을 사용합니다 valueFile . 그렇지 않으면 작업은 새 줄을 구분 기호로 처리합니다. 태스크는 이러한 집합 값을 사용하여 Helm 명령을 생성합니다. 예를 들어 다음과 helm install --set key1=val1 ./redis같은 명령을 사용하여 값을 설정할 수 있습니다.


valueFile - 값 파일
string. 선택 사항입니다. 을 사용할 때 command == install || command == upgrade사용합니다.

YAML 파일 또는 URL의 값을 지정합니다. 예를 들어 에서 결과를 helm install --values=myvals.yaml지정합니다myvalues.yaml.


destination - 대상
string. 선택 사항입니다. 을 사용할 때 command == package사용합니다. 기본값은 $(Build.ArtifactStagingDirectory)입니다.

YAML 파일 또는 URL의 값을 지정합니다.


canaryimage - 카나리아 이미지 버전을 사용합니다.
boolean. 선택 사항입니다. 을 사용할 때 command == init사용합니다. 기본값은 false입니다.

카나리아 Tiller 이미지를 지정합니다. 최신 시험판 버전의 Tiller를 사용합니다.


upgradetiller - Tiller 업그레이드
boolean. 선택 사항입니다. 을 사용할 때 command == init사용합니다. 기본값은 true입니다.

이면 trueTiller가 이미 설치된 경우 이 입력이 Tiller를 업그레이드합니다.


updatedependency - 종속성 업데이트
boolean. 선택 사항입니다. 을 사용할 때 command == install || command == package사용합니다. 기본값은 false입니다.

이면 true이 입력은 차트를 설치하기 전에 Helm 종속성 업데이트를 업데이트합니다. 패키징하기 전에 에서 requirements.yaml 디렉터리로 charts/ 종속성을 업데이트.


save - 저장
boolean. 선택 사항입니다. 을 사용할 때 command == package사용합니다. 기본값은 true입니다.

로 설정하면 패키지된 차트를 로컬 차트 리포지토리에 true​저장합니다.


install - 릴리스가 없는 경우 설치합니다.
boolean. 선택 사항입니다. 을 사용할 때 command == upgrade사용합니다. 기본값은 true입니다.

이 이름의 릴리스가 아직 없는 경우 이 입력은 설치를 실행합니다.


recreate - Pod를 다시 만듭니다.
boolean. 선택 사항입니다. 을 사용할 때 command == upgrade사용합니다. 기본값은 false입니다.

해당하는 경우 리소스에 대한 Pod 다시 시작을 수행합니다.


resetValues - 값을 다시 설정합니다.
boolean. 선택 사항입니다. 을 사용할 때 command == upgrade사용합니다. 기본값은 false입니다.

값을 차트에 기본 제공되는 값으로 다시 설정합니다.


force - 강제로
boolean. 선택 사항입니다. 을 사용할 때 command == upgrade사용합니다. 기본값은 false입니다.

필요한 경우 삭제 또는 다시 만들기 작업을 통해 리소스 업데이트를 강제로 수행합니다.


waitForExecution - 기다릴
boolean. 선택 사항입니다. 을 사용할 때 command == init || command == install || command == upgrade사용합니다. 기본값은 true입니다.

명령 실행이 완료될 때까지 작업을 차단합니다.


arguments - 인수
string. 선택 사항입니다. 을 사용할 때 command != login && command != logout사용합니다.

Helm 명령 옵션입니다.


enableTls - TLS 사용
boolean. 선택 사항입니다. 을 사용할 때 command != login && command != logout && command != package && command != save사용합니다. 기본값은 false입니다.

Helm과 Tiller 간에 SSL을 사용하도록 설정합니다.


enableTls - TLS 사용
boolean. 선택 사항입니다. 을 사용할 때 command != login && command != logout && command != package사용합니다. 기본값은 false입니다.

Helm과 Tiller 간에 SSL을 사용하도록 설정합니다.


caCert - CA 인증서
string. 필요한 경우 enableTls == true && command != login && command != logout && command != package && command != save입니다.

Tiller 및 Helm 클라이언트에 대한 인증서를 발급하는 데 사용되는 CA 인증서입니다.


caCert - CA 인증서
string. 필요한 경우 enableTls == true && command != login && command != logout && command != package입니다.

Tiller 및 Helm 클라이언트에 대한 인증서를 발급하는 데 사용되는 CA 인증서입니다.


certificate - 인증서
string. 필요한 경우 enableTls == true && command != login && command != logout && command != package && command != save입니다.

Tiller 인증서 또는 Helm 클라이언트 인증서를 지정합니다.


certificate - 인증서
string. 필요한 경우 enableTls == true && command != login && command != logout && command != package입니다.

Tiller 인증서 또는 Helm 클라이언트 인증서를 지정합니다.


privatekey -
string. 필요한 경우 enableTls == true && command != login && command != logout && command != package && command != save입니다.

Tiller 키 또는 Helm 클라이언트 키를 지정합니다.


privatekey -
string. 필요한 경우 enableTls == true && command != login && command != logout && command != package입니다.

Tiller 키 또는 Helm 클라이언트 키를 지정합니다.


tillernamespace - Tiller 네임스페이스
string. 선택 사항입니다. 을 사용할 때 command != login && command != logout && command != package && command != save사용합니다.

Tiller의 Kubernetes 네임스페이스를 지정합니다.


tillernamespace - Tiller 네임스페이스
string. 선택 사항입니다. 을 사용할 때 command != login && command != logout && command != package사용합니다.

Tiller의 Kubernetes 네임스페이스를 지정합니다.


failOnStderr - 표준 오류 발생 시 실패
boolean. 선택 사항입니다. 을 사용할 때 command != login && command != logout && command != package && command != save사용합니다. 기본값은 false입니다.

이 입력이 true이면 오류 파이프라인에 오류가 기록되거나 표준 오류 스트림에 데이터가 기록되면 이 작업이 실패합니다. 그렇지 않으면 태스크가 종료 코드를 사용하여 실패를 확인합니다.


failOnStderr - 표준 오류 발생 시 실패
boolean. 선택 사항입니다. 을 사용할 때 command != login && command != logout && command != package사용합니다. 기본값은 true입니다.

이 입력이 true이면 오류 파이프라인에 오류가 기록되거나 표준 오류 스트림에 데이터가 기록되면 이 작업이 실패합니다. 그렇지 않으면 태스크가 종료 코드를 사용하여 실패를 확인합니다.


publishPipelineMetadata - 파이프라인 메타데이터 게시
boolean. 선택 사항입니다. 을 사용할 때 command != login && command != logout && command != package && command != save사용합니다. 기본값은 true입니다.

이 입력이 이 true면 태스크는 배포 메타데이터를 수집하고 게시합니다.


chartNameForACR - Azure Container Registry 차트 이름
string. 필요한 경우 command == save입니다.

Azure Container Registry 차트의 이름입니다.


chartPathForACR - Azure Container Registry 차트 경로
string. 필요한 경우 command == save입니다.

Azure Container Registry 차트 디렉터리에 대한 파일 경로입니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.

출력 변수

이 작업은 다운스트림 단계, 작업 및 단계에서 사용할 수 있는 다음 출력 변수를 정의합니다.

helmExitCode
지정된 Helm 명령의 실행에서 내보낸 종료 코드입니다.

helmOutput
지정된 Helm 명령의 실행에서 내보낸 출력입니다.

없음

설명

HelmDeploy@0 사용하여 Helm 명령을 실행하여 Azure Container Service에서 Kubernetes 클러스터를 배포, 구성 또는 업데이트합니다. Helm은 차트라는 패키징 형식을 사용하여 Kubernetes 앱 배포 및 관리를 간소화하는 도구입니다.

Helm을 사용하여 가장 복잡한 Kubernetes 앱도 정의, 버전 지정, 공유, 설치 및 업그레이드할 수 있습니다.

  • Helm을 사용하면 서비스, 배포, 구성맵 등과 같은 여러 Kubernetes 매니페스트(yaml)를 Helm 차트라는 단일 단위로 결합할 수 있습니다. 토큰화 또는 템플릿 도구를 발명하거나 사용할 필요가 없습니다.
  • Helm 차트는 애플리케이션 종속성을 관리하고 한 단위로 롤백할 뿐만 아니라 배포하는 데 도움이 됩니다. 또한 다른 파트너 팀과 쉽게 만들고, 버전 지정하고, 게시하고, 공유할 수 있습니다.

Azure Pipelines는 Helm 차트를 기본적으로 지원합니다.

  • Helm 도구 설치 관리자 작업을 사용하여 에이전트에 올바른 버전의 Helm을 설치할 수 있습니다.
  • Helm 패키지 및 배포 작업을 사용하여 앱을 패키지하고 Kubernetes 클러스터에 배포할 수 있습니다. 이 작업을 사용하여 Tiller를 Kubernetes 네임스페이스에 설치하거나 업데이트하거나, 차트를 배포하기 위해 TLS를 통해 Tiller에 안전하게 연결하거나, Lint와 같은 Helm 명령을 실행할 수 있습니다.
  • Helm 작업은 Azure 서비스 연결을 사용하여 Azure Kubernetes Service 연결을 지원합니다. kubeconfig 또는 서비스 계정을 사용하여 모든 Kubernetes 클러스터에 연결할 수 있습니다.
  • Helm 배포는 Kubectl 작업을 사용하여 보완할 수 있습니다. 예를 들어 create/update, imagepullsecret 등입니다.

서비스 연결

HelmDeploy@0 Azure Resource ManagerKubernetes Service Connection의 두 가지 서비스 연결 유형에서 작동합니다. 이러한 두 연결 형식을 구성하는 예제는 예제 를 참조하세요.

참고

Kubernetes 클러스터를 가리키는 환경 리소스가 파이프라인의 단계에서 이미 지정된 경우 서비스 연결이 필요하지 않습니다.

AKS에 액세스할 때 Kubernetes Service 연결 고려 사항

다음 옵션 중 원하는 옵션을 사용하여 Kubernetes 서비스 연결을 만들 수 있습니다.

  • KubeConfig
  • 서비스 계정
  • Azure 구독

Kubernetes 서비스 연결 인증 방법을 선택하는 스크린샷

Azure 구독 옵션을 선택할 때 서비스 연결 구성 시 Azure DevOps에서 Kubernetes에 액세스할 수 있어야 합니다. 예를 들어 프라이빗 클러스터를 만들거나 클러스터로컬 계정을 사용하지 않도록 설정한 경우와 같이 서비스 연결을 만들 수 없는 여러 가지 이유가 있을 수 있습니다. 이러한 경우 Azure DevOps는 서비스 연결 구성 시 클러스터에 연결할 수 없으며 중단된 로딩 네임스페이스 화면이 표시됩니다.

네임스페이스를 로드할 때 중단된 Kubernetes 서비스 연결 인증 대화 상자를 선택하는 스크린샷

Kubernetes 1.24부터 수명이 긴 토큰은 기본적으로 더 이상 만들어지지 않습니다. Kubernetes는 수명이 긴 토큰을 사용하지 않는 것이 좋습니다. 따라서 Azure 구독 옵션을 사용하여 만든 Kubernetes 서비스 연결을 사용하는 작업은 인증에 필요한 영구 토큰에 액세스할 수 없으며 Kubernetes 클러스터에 액세스할 수 없습니다. 이로 인해 고정된 로딩 네임스페이스 대화 상자도 생성됩니다 .

Azure Resource Manager 서비스 연결을 사용하여 AKS에 액세스

AKS 고객의 경우 Azure Resource Manager 서비스 연결 유형은 프라이빗 클러스터 또는 로컬 계정이 비활성화된 클러스터에 연결하는 가장 좋은 방법을 제공합니다. 이 메서드는 서비스 연결을 만들 때 클러스터 연결에 종속되지 않습니다. AKS에 대한 액세스는 파이프라인 런타임으로 지연되며 다음과 같은 이점이 있습니다.

  • (프라이빗) AKS 클러스터에 대한 액세스는 클러스터에 대한 가시선이 있는 자체 호스팅 또는 확장 집합 에이전트에서 수행할 수 있습니다.
  • Azure Resource Manager 서비스 연결을 사용하는 모든 작업에 대해 토큰이 만들어집니다. 이렇게 하면 Kubernetes 권장 사항인 수명이 짧은 토큰을 사용하여 Kubernetes에 연결할 수 있습니다.
  • 로컬 계정을 사용하지 않도록 설정한 경우에도 AKS에 액세스할 수 있습니다.

서비스 연결 FAQ

다음 오류 메시지가 표시됩니다. 서비스 계정과 연결된 비밀을 찾을 수 없습니다. 설명

Azure 구독과 Kubernetes 서비스 연결을 사용하고 있습니다. 이 메서드를 업데이트하여 수명이 긴 토큰을 만듭니다. 이는 5월 중순에 출시될 예정입니다. 그러나 Kubernetes 지침에 따라 수명이 긴 토큰을 사용하지 않고 Azure 서비스 연결 형식 사용을 시작하는 것이 좋습니다.

AKS를 사용 중이며 아무것도 변경하지 않으려는 경우 Kubernetes 서비스 연결에서 작업을 계속 사용할 수 있나요?

이 메서드를 업데이트하여 수명이 긴 토큰을 만듭니다. 이는 5월 중순에 출시될 예정입니다. 그러나 이 방법은 Kubernetes 지침에 위배된다는 점에 유의하세요.

Kubernetes 작업 및 Kubernetes 서비스 연결을 사용하지만 AKS는 사용하지 않습니다. 걱정해야 하나요?

작업은 이전과 같이 계속 작동합니다.

Kubernetes 서비스 연결 형식이 제거되나요?

Kubernetes 작업은 실행 중인 위치에 관계없이 모든 Kubernetes 클러스터에서 작동합니다. Kubernetes 서비스 연결은 계속 존재합니다.

나는 AKS 고객이고 모든 것이 잘 실행되고, 내가 행동해야합니까?

아무것도 변경할 필요가 없습니다. Kubernetes 서비스 연결을 사용하고 만드는 동안 Azure 구독을 선택한 경우 수명이 긴 토큰 사용에 대한 Kubernetes 지침을 알고 있어야 합니다.

Kubernetes 환경을 만들고 있으며 서비스 연결을 사용할 수 있는 옵션이 없습니다.

환경을 만드는 동안 AKS에 액세스할 수 없는 경우 빈 환경을 사용하고 입력을 connectionType Azure Resource Manager 서비스 연결로 설정할 수 있습니다.

AZURE Active Directory RBAC로 구성된 AKS가 있고 파이프라인이 작동하지 않습니다. 이러한 업데이트가 resolve 있나요?

AAD RBAC를 사용할 때 Kubernetes에 액세스하는 것은 토큰 생성과 관련이 없습니다. 대화형 프롬프트를 방지하기 위해 향후 업데이트에서 kubelogin 을 지원합니다.

명령 값

명령 입력은 create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade와 같은 helm 명령 중 하나를 허용합니다. 예제 섹션에 예제가 제공됩니다.

각 명령 입력은 작업 입력 집합에 매핑됩니다. 작업 입력에 매핑되는 명령은 YAML 구문 블록 및 작업 입력 테이블에 지정됩니다.

문제 해결

HelmDeploy 작업은 Helm 3.0.2 버전에서 'helm init --wait --client-only'를 실행하는 동안 '알 수 없는 플래그: --wait' 오류를 throw합니다.

Helm 2와 Helm 3 사이에는 몇 가지 주요 변경 내용이 있습니다. 그 중 하나는 tiller의 제거를 포함하므로 helm init 명령은 더 이상 지원되지 않습니다. Helm 3.0 이상 버전을 사용하는 경우 init 명령을 제거합니다.

Helm 3을 사용할 때 System.debug가 true로 설정되어 있고 Helm 업그레이드가 사용 중인 명령인 경우 업그레이드가 성공하더라도 파이프라인이 실패합니다.

이는 stderr에 일부 로그를 기록하기 때문에 발생하는 Helm 3의 알려진 문제입니다. stderr에 로그가 있거나 종료 코드가 0이 아닌 경우 Helm 배포 작업이 실패로 표시됩니다. 작업 입력 failOnStderr: false를 설정하여 stderr에 인쇄된 로그를 무시합니다.

예제

Azure Resource Manager

이 YAML 예제에서는 Azure Resource Manager Kubernetes 클러스터를 참조하는 데 사용되는 방법을 보여줍니다. 이는 helm 명령 중 하나와 명령에 필요한 적절한 값과 함께 사용됩니다.

variables:
  azureSubscriptionEndpoint: Contoso
  azureContainerRegistry: contoso.azurecr.io
  azureResourceGroup: Contoso
  kubernetesCluster: Contoso

- task: HelmDeploy@0
  displayName: Helm deploy
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)

Kubernetes 서비스 연결

이 YAML 예제에서는 Kubernetes 서비스 연결을 사용하여 Kubernetes 클러스터를 참조하는 방법을 보여줍니다. 이는 helm 명령 중 하나와 명령에 필요한 적절한 값과 함께 사용됩니다.

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

명령

명령 입력은 create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade와 같은 helm 명령 중 하나를 허용합니다.

이 YAML 예제에서는 ls 명령을 보여 줍니다.

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

init 명령

이 YAML 예제에서는 init 명령을 보여 줍니다.

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

install 명령

이 YAML 예제에서는 설치 명령을 보여 줍니다.

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

package 명령

이 YAML 예제에서는 패키지 명령을 보여 줍니다.

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

upgrade 명령

이 YAML 예제에서는 업그레이드 명령을 보여 줍니다.

- task: HelmDeploy@0
  displayName: Helm upgrade
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: upgrade
    chartType: filepath
    chartPath: $(Build.ArtifactStagingDirectory)/sampleapp-v0.2.0.tgz
    releaseName: azuredevopsdemo
    install: true
    waitForExecution: false

save 명령

이 YAML 예제에서는 저장 명령을 보여 줍니다.

- task: HelmDeploy@0
  displayName: Helm save
  inputs:
    command: save
    chartNameForACR: mycontainerregistry.azurecr.io/helm/hello-world:v1
    chartPathForACR: Application/charts/sampleapp
    azureSubscriptionEndpointForACR: $(azureSubscriptionEndpointForACR)
    azureResourceGroupForACR: $(azureResourceGroupForACR)
    azureContainerRegistry: $(azureContainerRegistry)

Helm 차트 패키지 및 서명

이 섹션에서는 파이프라인에서 Helm 차트를 패키지하고 서명하는 방법을 알아봅니다.

GPG를 사용하여 helm 차트에 서명하는 프라이빗-퍼블릭 키 쌍 생성

  1. GPG를 다운로드합니다.

  2. 관리자 모드에서 명령 프롬프트를 시작합니다. 다음 명령을 실행하여 gpg를 사용하여 helm 차트에 서명하는 프라이빗-퍼블릭 키 쌍을 생성합니다. 키를 만드는 동안 사용자 이름 및 전자 메일 주소를 묻는 메시지가 표시됩니다. "이름 전자 메일 주소"는 나중에 만들어진 프라이빗-공개 키 쌍의 이름을 지정하는 데 사용됩니다.

    gpg --full-generate-key
    

    키 생성

  3. 암호를 입력하라는 메시지가 표시됩니다. 값을 지정하고 확인을 클릭합니다.

    암호를 제공하는 것을 보여 주는 스크린샷

  4. 키를 만든 후 다음 명령을 사용하여 프라이빗 및 퍼블릭을 모두 포함하는 키 목록을 볼 수 있습니다.

    • 프라이빗 키 목록을 보려면

      gpg --list-secret-keys
      

      프라이빗 키

    • 공개 키 목록을 보려면

      gpg --list-keys
      

      공개 키

  5. 아래와 같이 확장 gpg 를 사용하여 프라이빗 및 퍼블릭 키를 2개의 다른 파일에 저장합니다.

    • 프라이빗 키의 경우
    gpg --export-secret-key 94325E18E53EDD99DD8339C3CFD9DAF0707CB788 contoso@microsoft.com > C:/somepath/privatekeys.gpg
    

    위에서 언급한 경로로 내 보낸 privatekeys.gpg 파일이 표시됩니다.

    • 공개 키의 경우
    gpg --export-key 94325E18E53EDD99DD8339C3CFD9DAF0707CB788 contoso@microsoft.com > C:/somepath/publickey.gpg
    

    위에서 언급한 경로로 내보낸 publickey.gpg 파일이 표시됩니다.

Azure DevOps에서 privatekey.gpg 파일을 라이브러리 보안 파일 섹션에 저장합니다.

예제

pool:
  name: Hosted Ubuntu 1604

variables:
  # The below variable should be secure
  HelmKeyPassphrase: contoso@123
  keyName: contoso contoso@microsoft.com
  azureSubscriptionEndpoint: contoso
  azureResourceGroup: contoso
  kubernetesCluster: contoso

steps:
- task: DownloadSecureFile@1
  displayName: Download Secure file
  inputs:
    secureFile: privatekey.gpg
  name: privateKeyRing

- task: HelmInstaller@0
  displayName: Install Helm 2.12.0
  inputs:
    helmVersion: 2.12.0

- task: HelmDeploy@0
  displayName: helm init
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: init
    arguments: --client-only

- task: HelmDeploy@0
  displayName: helm package
  inputs:
    command: package
    chartPath: Application/charts/sampleapp
    arguments: --sign --key "$(keyName)" --keyring $(privateKeyRing.secureFilePath)
  env:
    HelmKeyPassphrase: $(HelmKeyPassphrase)

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
설정 가능한 변수 모두
에이전트 버전 지원되는 모든 에이전트 버전.
작업 범주 배포