HelmDeploy@0 - Helm 차트 v0 작업 패키지 및 배포
이 작업을 사용하여 Helm 명령을 실행하여 Azure Container Service에서 Kubernetes 클러스터를 배포, 구성 또는 업데이트할 수 있습니다.
구문론
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
inputs:
# Kubernetes Cluster
#connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package && command != save. Connection Type. Default: Azure Resource Manager.
#azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Azure subscription.
#azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Resource group.
#kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Kubernetes cluster.
#useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Use cluster admin credentials. Default: false.
#kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package && command != save. Kubernetes Service Connection.
#namespace: # string. Optional. Use when command != logout && command != package && command != save. Namespace.
# Azure Container Registry
#azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == save. Azure subscription for Container Registry.
#azureResourceGroupForACR: # string. Required when command == save. Resource group.
#azureContainerRegistry: # string. Required when command == save. Azure Container Registry.
# Commands
command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'save' | 'upgrade' | 'uninstall'. Required. Command. Default: ls.
#chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
chartName: # string. Required when chartType == Name. Chart Name.
#chartPath: # string. Required when chartType == FilePath || command == package. Chart Path.
#chartVersion: # string. Alias: version. Optional. Use when command == package || command == install || command == upgrade. Version.
#releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name.
#overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values.
#valueFile: # string. Optional. Use when command == install || command == upgrade. Value File.
#destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
#canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
#upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
#updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
#save: true # boolean. Optional. Use when command == package. Save. Default: true.
#install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
#recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
#resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
#force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
#waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
#arguments: # string. Optional. Use when command != login && command != logout. Arguments.
#chartNameForACR: # string. Required when command == save. Chart Name For Azure Container Registry.
#chartPathForACR: # string. Required when command == save. Chart Path for Azure Container Registry.
# TLS
#enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Enable TLS. Default: false.
#caCert: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. CA certificate.
#certificate: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Certificate.
#privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Key.
# Advanced
#tillernamespace: # string. Optional. Use when command != login && command != logout && command != package && command != save. Tiller namespace.
#failOnStderr: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Fail on Standard Error. Default: false.
#publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Publish pipeline metadata. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
inputs:
# Kubernetes Cluster
#connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package && command != save. Connection Type. Default: Azure Resource Manager.
#azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Azure subscription.
#azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Resource group.
#kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Kubernetes cluster.
#useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Use cluster admin credentials. Default: false.
#kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package && command != save. Kubernetes Service Connection.
#namespace: # string. Optional. Use when command != logout && command != package && command != save. Namespace.
# Azure Container Registry
#azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == save. Azure subscription for Container Registry.
#azureResourceGroupForACR: # string. Required when command == save. Resource group.
#azureContainerRegistry: # string. Required when command == save. Azure Container Registry.
# Commands
command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'save' | 'upgrade'. Required. Command. Default: ls.
#chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
chartName: # string. Required when chartType == Name. Chart Name.
#chartPath: # string. Required when chartType == FilePath || command == package. Chart Path.
#chartVersion: # string. Alias: version. Optional. Use when command == package || command == install || command == upgrade. Version.
#releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name.
#overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values.
#valueFile: # string. Optional. Use when command == install || command == upgrade. Value File.
#destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
#canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
#upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
#updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
#save: true # boolean. Optional. Use when command == package. Save. Default: true.
#install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
#recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
#resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
#force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
#waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
#arguments: # string. Optional. Use when command != login && command != logout. Arguments.
#chartNameForACR: # string. Required when command == save. Chart Name For Azure Container Registry.
#chartPathForACR: # string. Required when command == save. Chart Path for Azure Container Registry.
# TLS
#enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Enable TLS. Default: false.
#caCert: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. CA certificate.
#certificate: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Certificate.
#privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Key.
# Advanced
#tillernamespace: # string. Optional. Use when command != login && command != logout && command != package && command != save. Tiller namespace.
#failOnStderr: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Fail on Standard Error. Default: false.
#publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Publish pipeline metadata. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
inputs:
# Kubernetes Cluster
#connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package. Connection Type. Default: Azure Resource Manager.
#azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package. Azure subscription.
#azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Resource group.
#kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Kubernetes cluster.
#useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package. Use cluster admin credentials. Default: false.
#kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package. Kubernetes Service Connection.
#namespace: # string. Optional. Use when command != logout && command != package. Namespace.
# Commands
command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'upgrade'. Required. Command. Default: ls.
#chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
chartName: # string. Required when chartType == Name. Chart Name.
#chartPath: # string. Required when chartType == FilePath || command == package. Chart Path.
#chartVersion: # string. Alias: version. Optional. Use when command == package. Version.
#releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name.
#overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values.
#valueFile: # string. Optional. Use when command == install || command == upgrade. Value File.
#destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
#canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
#upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
#updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
#save: true # boolean. Optional. Use when command == package. Save. Default: true.
#install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
#recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
#resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
#force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
#waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
#arguments: # string. Optional. Use when command != login && command != logout. Arguments.
# TLS
#enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package. Enable TLS. Default: false.
#caCert: # string. Required when enableTls == true && command != login && command != logout && command != package. CA certificate.
#certificate: # string. Required when enableTls == true && command != login && command != logout && command != package. Certificate.
#privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package. Key.
# Advanced
#tillernamespace: # string. Optional. Use when command != login && command != logout && command != package. Tiller namespace.
#failOnStderr: true # boolean. Optional. Use when command != login && command != logout && command != package. Fail on Standard Error. Default: true.
입력
connectionType
-
연결 형식
string
;
command != logout && command != package && command != save
때 필요합니다. 허용되는 값: Azure Resource Manager
, Kubernetes Service Connection
, None
. 기본값은 Azure Resource Manager
입니다.
연결 유형을 지정합니다.
-
Kubernetes Service Connection
-kubeconfig
또는 Azure 서비스 계정을 사용하여 Kubernetes 클러스터에 연결할Kubernetes Service Connection
지정합니다. KubeConfig 파일을 제공하거나, 서비스 계정을 지정하거나, Azure 구독 옵션을 사용하여 AKS 인스턴스를 가져올 수 있습니다. Azure 구독 옵션을 사용하여 AKS 인스턴스를 가져오려면 서비스 연결 구성 시 Kubernetes 클러스터 액세스가 필요합니다. -
Azure Resource Manager
- Azure 서비스 연결을 사용하여 Azure Kubernetes Service에 연결할Azure Resource Manager
지정합니다. 서비스 연결 구성 시 Kubernetes 클러스터에 액세스하지 않습니다. -
None
- 로컬에 저장된 미리 생성된 Kubernetes 구성을 사용합니다.
자세한 내용은 다음 설명 섹션의 Service 연결 참조하세요.
connectionType
-
연결 형식
string
;
command != logout && command != package
때 필요합니다. 허용되는 값: Azure Resource Manager
, Kubernetes Service Connection
, None
. 기본값은 Azure Resource Manager
입니다.
연결 유형을 지정합니다.
-
Kubernetes Service Connection
-kubeconfig
또는 Azure 서비스 계정을 사용하여 Kubernetes 클러스터에 연결할Kubernetes Service Connection
지정합니다. KubeConfig 파일을 제공하거나, 서비스 계정을 지정하거나, Azure 구독 옵션을 사용하여 AKS 인스턴스를 가져올 수 있습니다. Azure 구독 옵션을 사용하여 AKS 인스턴스를 가져오려면 서비스 연결 구성 시 Kubernetes 클러스터 액세스가 필요합니다. -
Azure Resource Manager
- Azure 서비스 연결을 사용하여 Azure Kubernetes Service에 연결할Azure Resource Manager
지정합니다. 서비스 연결 구성 시 Kubernetes 클러스터에 액세스하지 않습니다. -
None
- 로컬에 저장된 미리 생성된 Kubernetes 구성을 사용합니다.
자세한 내용은 다음 설명 섹션의 Service 연결 참조하세요.
Azure 구독
입력 별칭: azureSubscriptionEndpoint
.
string
;
connectionType = Azure Resource Manager && command != logout && command != package && command != save
때 필요합니다.
Azure 서비스 연결의 이름입니다. 컨테이너 레지스트리가 있는 Azure 구독을 지정합니다.
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 리소스 그룹을 지정합니다.
Kubernetes 클러스터kubernetesCluster
-
string
;
connectionType = Azure Resource Manager && command != logout && command != package && command != save
때 필요합니다.
AKS 클러스터의 이름입니다. Azure Managed Cluster를 지정합니다.
Kubernetes 클러스터kubernetesCluster
-
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
입니다.
기본 클러스터 사용자 자격 증명 대신 클러스터 관리자 자격 증명을 사용합니다.
Kubernetes Service 연결kubernetesServiceConnection
-
입력 별칭: kubernetesServiceEndpoint
.
string
;
connectionType = Kubernetes Service Connection && command != logout && command != package && command != save
때 필요합니다.
Kubernetes 서비스 연결을 지정합니다.
Kubernetes Service 연결kubernetesServiceConnection
-
입력 별칭: kubernetesServiceEndpoint
.
string
;
connectionType = Kubernetes Service Connection && command != logout && command != package
때 필요합니다.
Kubernetes 서비스 연결을 지정합니다.
namespace
-
네임스페이스
string
; 선택 사항.
command != logout && command != package && command != save
때 사용합니다.
kubectl
명령을 실행하는 네임스페이스입니다. 지정하지 않으면 태스크에서 기본 네임스페이스를 사용합니다. 사용할 Kubernetes 네임스페이스를 지정합니다. 작업의 고급 섹션에서 또는 인수로 --tiller-namespace
옵션을 전달하여 Tiller 네임스페이스를 지정할 수 있습니다.
namespace
-
네임스페이스
string
; 선택 사항.
command != logout && command != package
때 사용합니다.
kubectl
명령을 실행하는 네임스페이스입니다. 지정하지 않으면 태스크에서 기본 네임스페이스를 사용합니다. 사용할 Kubernetes 네임스페이스를 지정합니다. 작업의 고급 섹션에서 또는 인수로 --tiller-namespace
옵션을 전달하여 Tiller 네임스페이스를 지정할 수 있습니다.
Container Registry대한 Azure 구독 azureSubscriptionForACR
-
입력 별칭: azureSubscriptionEndpointForACR
.
string
;
command == save
때 필요합니다.
Azure Container Registry가 있는 Azure 구독을 지정합니다.
azureResourceGroupForACR
-
리소스 그룹
string
;
command == save
때 필요합니다.
Container Registry가 있는 Azure 리소스 그룹을 지정합니다.
Azure Container RegistryazureContainerRegistry
-
string
;
command == save
때 필요합니다.
Helm 차트를 푸시하는 데 사용할 Azure Container Registry를 지정합니다.
command
-
명령
string
; 필수 사항입니다. 허용되는 값: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
, uninstall
. 기본값은 ls
입니다.
Helm 명령을 지정합니다.
command
-
명령
string
; 필수 사항입니다. 허용되는 값: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
. 기본값은 ls
입니다.
Helm 명령을 지정합니다.
command
-
명령
string
; 필수 사항입니다. 허용되는 값: create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, upgrade
. 기본값은 ls
입니다.
Helm 명령을 지정합니다.
chartType
-
차트 종류
string
;
command == install || command == upgrade
때 필요합니다. 허용되는 값: Name
, FilePath
(파일 경로). 기본값은 Name
입니다.
차트 정보를 입력하는 방법을 지정합니다. 차트의 이름이나 차트의 폴더/파일 경로를 제공할 수 있습니다.
chartName
-
차트 이름
string
;
chartType == Name
때 필요합니다.
설치할 차트 참조의 이름입니다. URL 또는 차트 이름일 수 있습니다. 예를 들어 차트 이름이 stable/mysql
경우 작업이 helm install stable/mysql
실행됩니다.
chartPath
-
차트 경로
string
;
chartType == FilePath || command == package
때 필요합니다.
설치할 차트의 경로입니다. 패키지된 차트의 경로 또는 패키지되지 않은 차트 디렉터리의 경로일 수 있습니다. 예를 들어 ./redis
지정하면 작업이 helm install ./redis
실행됩니다. 아티팩트로 게시된 차트를 사용하는 경우 경로가 $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME
.
chartVersion
-
버전
입력 별칭: version
.
string
; 선택 사항.
command == package || command == install || command == upgrade
때 사용합니다.
설치할 정확한 차트 버전을 지정합니다. 차트 버전을 지정하지 않으면 태스크에서 최신 버전을 설치합니다. 차트의 버전을 이 셈버 버전으로 설정합니다.
chartVersion
-
버전
입력 별칭: version
.
string
; 선택 사항.
command == package
때 사용합니다.
설치할 정확한 차트 버전을 지정합니다. 차트 버전을 지정하지 않으면 태스크에서 최신 버전을 설치합니다. 차트의 버전을 이 셈버 버전으로 설정합니다.
releaseName
-
릴리스 이름
string
; 선택 사항.
command == install || command == upgrade
때 사용합니다.
릴리스 이름입니다. 릴리스 이름을 지정하지 않으면 작업이 자동으로 생성됩니다.
releaseName
입력은 install
및 upgrade
명령에만 유효합니다.
overrideValues
-
값 설정
string
; 선택 사항.
command == install || command == upgrade
때 사용합니다.
명령줄의 값을 지정합니다. 이 입력은 쉼표로 여러 값 또는 별도의 값을 지정할 수 있습니다. key1=val1,key2=val2
.
다음과 같이 여러 값을 새 줄로 구분하여 지정할 수도 있습니다.
- key1=val1
- key2=val2
새 줄이 포함된 값이 있는 경우 valueFile
옵션을 사용합니다. 그렇지 않으면 작업은 새 줄을 구분 기호로 처리합니다. 태스크는 이러한 집합 값을 사용하여 Helm 명령을 생성합니다. 예를 들어 다음과 같은 명령을 사용하여 값을 설정할 수 있습니다. helm install --set key1=val1 ./redis
.
valueFile
-
값 파일
string
; 선택 사항.
command == install || command == upgrade
때 사용합니다.
YAML 파일 또는 URL의 값을 지정합니다. 예를 들어 myvalues.yaml
지정하면 helm install --values=myvals.yaml
.
destination
-
대상
string
; 선택 사항.
command == package
때 사용합니다. 기본값은 $(Build.ArtifactStagingDirectory)
입니다.
YAML 파일 또는 URL의 값을 지정합니다.
canaryimage
-
카나리아 이미지 버전을 사용합니다.
boolean
; 선택 사항.
command == init
때 사용합니다. 기본값은 false
입니다.
카나리아 Tiller 이미지를 지정합니다. 최신 시험판 버전의 Tiller를 사용합니다.
upgradetiller
-
업그레이드 Tiller
boolean
; 선택 사항.
command == init
때 사용합니다. 기본값은 true
입니다.
true
경우 이 입력은 Tiller가 이미 설치된 경우 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 명령 옵션입니다.
TLS사용하도록 enableTls
-
boolean
; 선택 사항.
command != login && command != logout && command != package && command != save
때 사용합니다. 기본값은 false
입니다.
Helm과 Tiller 간에 SSL을 사용할 수 있습니다.
TLS사용하도록 enableTls
-
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
오류 파이프라인에 오류가 기록되거나 표준 오류 스트림에 데이터가 기록되면 이 작업이 실패합니다. 그렇지 않으면 태스크는 종료 코드를 사용하여 오류를 확인합니다.
파이프라인 메타데이터 게시
boolean
; 선택 사항.
command != login && command != logout && command != package && command != save
때 사용합니다. 기본값은 true
입니다.
이 입력이 true
경우 태스크는 배포 메타데이터를 수집하고 게시합니다.
Azure Container Registry대한 chartNameForACR
- 차트 이름
string
;
command == save
때 필요합니다.
Azure Container Registry의 차트 이름입니다.
Azure Container Registry대한 chartPathForACR
- 차트 경로
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 Manager Kubernetes Service 연결 두 가지 서비스 연결 형식으로 작동합니다. 이러한 두 연결 형식을 구성하는 예제는 예제 참조하세요.
비고
Kubernetes 클러스터를 가리키는 환경 리소스가 파이프라인의 단계에서 이미 지정된 경우 서비스 연결이 필요하지 않습니다.
AKS에 액세스할 때 Kubernetes Service 연결 고려 사항
다음 옵션 중 원하는 옵션을 사용하여 Kubernetes 서비스 연결을 만들 수 있습니다.
- KubeConfig
- 서비스 계정
- Azure 구독
Azure 구독 옵션을 선택할 때 서비스 연결 구성 시 Azure DevOps에서 Kubernetes에 액세스할 수 있어야 합니다. 서비스 연결을 만들 수 없는 여러 가지 이유가 있을 수 있습니다. 예를 들어 프라이빗 클러스터 만들거나 클러스터에 로컬 계정이 비활성화된 있습니다. 이러한 경우 Azure DevOps는 서비스 연결 구성 시 클러스터에 연결할 수 없으며 네임스페이스 로드 중단된 것을 볼 수 있습니다.
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를 구성했는데 파이프라인이 작동하지 않습니다. 이러한 업데이트가 해결될까요?
AAD RBAC를 사용할 때 Kubernetes에 액세스하는 것은 토큰 생성과 관련이 없습니다. 대화형 프롬프트를 방지하기 위해 향후 업데이트에서 kubelogin 지원합니다.
명령 값
명령 입력은 다음 helm 명령중 하나를 허용합니다. create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade. 예제는 예제 섹션에 제공됩니다.
각 명령 입력은 작업 입력 집합에 매핑됩니다. 작업 입력에 매핑되는 명령은 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를 설정합니다. stderr에 인쇄된 로그를 무시하려면 false입니다.
예시
Azure 리소스 관리자
이 YAML 예제에서는 Azure Resource Manager를 사용하여 Kubernetes 클러스터를 참조하는 방법을 보여줍니다. 이는 helm 명령 중 하나와 명령에 필요한 적절한 값과 함께 사용됩니다.
variables:
azureSubscriptionEndpoint: Contoso
azureContainerRegistry: contoso.azurecr.io
azureResourceGroup: Contoso
kubernetesCluster: Contoso
- task: HelmDeploy@0
displayName: Helm deploy
inputs:
connectionType: Azure Resource Manager
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
Kubernetes 서비스 연결
이 YAML 예제에서는 Kubernetes 서비스 연결을 사용하여 Kubernetes 클러스터를 참조하는 방법을 보여줍니다. 이는 helm 명령 중 하나와 명령에 필요한 적절한 값과 함께 사용됩니다.
- task: HelmDeploy@0
displayName: Helm deploy
inputs:
connectionType: Kubernetes Service Connection
kubernetesServiceEndpoint: Contoso
명령어
명령 입력은 다음 helm 명령중 하나를 허용합니다. create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.
이 YAML 예제에서는 ls 명령을 보여 줍니다.
- task: HelmDeploy@0
displayName: Helm list
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: ls
arguments: --all
init 명령
이 YAML 예제에서는 init 명령을 보여 줍니다.
- task: HelmDeploy@0
displayName: Helm init
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: init
upgradetiller: true
waitForExecution: true
arguments: --client-only
설치 명령
이 YAML 예제에서는 설치 명령을 보여 줍니다.
- task: HelmDeploy@0
displayName: Helm install
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: install
chartType: FilePath
chartPath: Application/charts/sampleapp
패키지 명령
이 YAML 예제에서는 패키지 명령을 보여 줍니다.
- task: HelmDeploy@0
displayName: Helm package
inputs:
command: package
chartPath: Application/charts/sampleapp
destination: $(Build.ArtifactStagingDirectory)
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 차트에 서명하는 프라이빗-퍼블릭 키 쌍 생성
GPG다운로드합니다.
관리자 모드에서 명령 프롬프트를 시작합니다. 다음 명령을 실행하여 gpg를 사용하여 helm 차트에 서명하는 프라이빗-퍼블릭 키 쌍을 생성합니다. 키를 만드는 동안 사용자 이름 및 전자 메일 주소를 묻는 메시지가 표시됩니다. "이름 전자 메일 주소"는 나중에 만들어진 프라이빗-공개 키 쌍의 이름을 지정하는 데 사용됩니다.
gpg --full-generate-key
키
암호를 입력하라는 메시지가 표시됩니다. 값을 지정하고 확인을 클릭합니다.
암호를 제공하는
키를 만든 후 다음 명령을 사용하여 프라이빗 및 퍼블릭을 모두 포함하는 키 목록을 볼 수 있습니다.
프라이빗 키 목록을 보려면
gpg --list-secret-keys
프라이빗 키
공개 키 목록을 보려면
gpg --list-keys
공개 키
아래와 같이 확장명 gpg 있는 2개의 다른 파일에 프라이빗 및 퍼블릭 키를 저장합니다.
- 프라이빗 키의 경우
gpg --export-secret-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/privatekeys.gpg
위에서 언급한 경로로 내보낸 privatekeys.gpg 파일이 표시됩니다.
- 공개 키의 경우
gpg --export-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/publickey.gpg
위에서 언급한 경로로 내보낸 publickey.gpg 파일이 표시됩니다.
Azure DevOps에서 라이브러리 보안 파일 섹션에 privatekey.gpg 파일을 저장합니다.
예시
pool:
name: Hosted Ubuntu 1604
variables:
# The below variable should be secure
HelmKeyPassphrase: contoso@123
keyName: contoso contoso@microsoft.com
azureSubscriptionEndpoint: contoso
azureResourceGroup: contoso
kubernetesCluster: contoso
steps:
- task: DownloadSecureFile@1
displayName: Download Secure file
inputs:
secureFile: privatekey.gpg
name: privateKeyRing
- task: HelmInstaller@0
displayName: Install Helm 2.12.0
inputs:
helmVersion: 2.12.0
- task: HelmDeploy@0
displayName: helm init
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: init
arguments: --client-only
- task: HelmDeploy@0
displayName: helm package
inputs:
command: package
chartPath: Application/charts/sampleapp
arguments: --sign --key "$(keyName)" --keyring $(privateKeyRing.secureFilePath)
env:
HelmKeyPassphrase: $(HelmKeyPassphrase)