如何在git属性文件中使用管道变量

时间:2019-06-26 10:11:44

标签: kubernetes azure-devops azure-pipelines azure-pipelines-release-pipeline azure-kubernetes

在Azure管道中,我下载kubernetes部署文件。yml属性文件,其中包含以下内容。

spec:
  imagePullSecrets:
  - name: some-secret
  containers:
  - name: container-name
    image: pathtoimage/data-processor:$(releaseVersion)
    imagePullPolicy: Always
    ports:
    - containerPort: 8088
    env:

我的意图是从管道变量$(releaseVersion)中获取值。但是似乎kubernetes任务不允许从管道变量访问此值。

我尝试使用内联配置类型,并且可以使用。这意味着,如果将与内联内容相同的配置复制到kubernetes任务配置中,则可以使用。

无论如何,我可以通过文件使它适用于配置吗?

2 个答案:

答案 0 :(得分:1)

您应该将其作为管道的一部分,以替换部署模板中的环境变量

类似的东西:

- sed -i "s/$(releaseVersion)/${RELEASE_VERSION_IN_BUILD_RUNNER}/" deployment.yml
- kubectl apply -f deployment.yml

您可以在管道中设置变量。 https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch

答案 1 :(得分:1)

据我了解,您可能希望在执行构建时替换Deployment.yml文件内容的变量。

您可以使用一个名为 Replace Tokens task 的任务(注意:此任务名称下的令牌与PAToken不同)。设置VSTS Build / Release流程时,该任务支持使用环境变量替换项目中文件的值。

首先从市场上安装替换令牌,然后将替换令牌任务添加到管道中。

在Root目录中配置.yml文件路径。对我来说,我的目标文件位于本地文件的Drop文件夹下。然后,指出要操作和替换的文件。

enter image description here

有关配置的更多参数,您可以查看我曾经参考过的以下文档:https://github.com/qetza/vsts-replacetokens-task#readme

注意:请先执行此任务,然后再将其部署到Kubernetes任务,以便将更改应用于Kubernetes集群。

这里还有另外一个sample blog供您参考。