#azure-devops #azure-pipelines #kubernetes-helm
#azure-devops #azure-конвейеры #kubernetes-helm
Вопрос:
У меня есть конвейер Azure, который создает контейнер Docker и загружает его в реестр контейнеров Azure.
Диаграмма исходного кода упаковывается, развертывается по временному пути артефакта, а затем развертывается в Kubernetes с помощью команд Helm 3.
- task: HelmDeploy@0
inputs:
command: 'package'
chartPath: Server/charts/server
destination: $(Build.ArtifactStagingDirectory)
- task: HelmDeploy@0
inputs:
connectionType: 'Kubernetes Service Connection'
kubernetesServiceConnection: 'Staging12602128'
namespace: 'staging'
command: 'upgrade'
chartType: 'FilePath'
chartPath: '$(Build.ArtifactStagingDirectory)/server-0.0.1.tgz' <<== How to select latest version?
releaseName: 'server'
Пункт назначения в команде package использует последнюю версию диаграммы, и она выглядит так /home/vsts/work/1 / a/server-0.1.1.tgz
Для chartPath команды обновления во всех примерах требуется точная версия пакета tgz. Как мне автоматически вставлять последнюю версию диаграммы в «chartPath» в задаче обновления, чтобы мне не приходилось изменять ее вручную при каждом обновлении?
Я безуспешно пытался:
chartPath: '$(Build.ArtifactStagingDirectory)/server-*.tgz'
chartPath: '$(Build.ArtifactStagingDirectory)/*.tgz'
chartPath: '$(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).tgz'
chartPath: '$(Build.ArtifactStagingDirectory)/server-$(Build.DefinitionName).tgz'
Комментарии:
1. Как насчет проблемы? Разрешен ли приведенный ниже ответ на ваш вопрос, если нет, не могли бы вы сообщить мне последнюю информацию об этой проблеме?
2. @FrancesoCristallo можете ли вы проголосовать за мой ответ, если это было полезно для вас?
Ответ №1:
Я не уверен, откуда взят ваш номер версии, но даже без этого вы можете попробовать этот подход:
- task: HelmDeploy@0
inputs:
command: 'package'
chartPath: Server/charts/server
destination: $(Build.ArtifactStagingDirectory)
- pwsh: |
$charts = Get-ChildItem
$sorted = $charts | sort -Descending
$latest = $sorted[0]
Write-Host "##vso[task.setvariable variable=chartName;]$latest"
workingDirectory: '$(Build.ArtifactStagingDirectory)'
- task: HelmDeploy@0
inputs:
connectionType: 'Kubernetes Service Connection'
kubernetesServiceConnection: 'Staging12602128'
namespace: 'staging'
command: 'upgrade'
chartType: 'FilePath'
chartPath: '$(Build.ArtifactStagingDirectory)/$(chartName)' <<== How to select latest version?
releaseName: 'server'