使用 helm 在 pom 中更新版本
Posted
技术标签:
【中文标题】使用 helm 在 pom 中更新版本【英文标题】:Update version in pom with helm 【发布时间】:2021-01-01 02:42:58 【问题描述】:我希望只更新一个应用程序版本字段。 目前在 maven 的 pom.xml 中,我有像往常一样的版本:
<version>1.1.0</version>
我希望该字段继承自 Helm 的 Chart.yaml appVersion 属性。
appVersion: 1.1.0
这可以通过 Helm 模板或其他方式完成吗?
【问题讨论】:
【参考方案1】:您可以在此处的验证阶段使用 maven-resources-plugin 将掌舵图从一个文件夹复制到另一个文件夹。假设您在模板文件夹中有带有占位符的 helm chart,并且在运行 helm 命令时您可以指向 app 文件夹。
因此模板文件夹中的值文件可以包含占位符
image:
tag: application-$project.version
pom.xml 应该包含一个启用过滤的 maven-resources-plugin。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<goals>
<goal>resources</goal>
</goals>
<executions>
<execution>
<id>copy-resources-helm-deployment</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>k8s/app</outputDirectory>
<resources>
<resource>
<directory>k8s/app/values_templates</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
当执行 mvn clean process-resources 时,它将复制 k8s/app(输出目录)中的值文件,并将项目版本替换为 pom 版本。
有关 maven 资源插件 https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html 的更多信息,请参阅这里
【讨论】:
以上是关于使用 helm 在 pom 中更新版本的主要内容,如果未能解决你的问题,请参考以下文章