Helm:在父图表 configmap 中显示子图表版本
Helm: Show subchart version in parent chart configmap
我希望在我的伞形图中创建一个配置映射,包括我所有依赖关系图的版本。
UmbrellaChart (version: 1.0.0-rc.0)
|
|--- microservice1Chart (1.2.3-rc.1)
|--- microservice2Chart (3.2.1-rc.2)
配置图:
apiVersion: v1
kind: ConfigMap
metadata:
name: versionInfo
data:
versionInfo.js: |
window.versionInfo = {
app: '{{ .Chart.Version | default "unknown" }}',
service1: '{{ ??? }}',
service2: '{{ ??? }}',
};
我应该用什么代替???能够包含我的子图表的版本。我希望只在 Chart.yaml 中保留我的图表的版本定义,而不必在更多地方更改它(否则我可以只复制子图表的值文件中的信息)。
似乎无法引用 .Chart.Dependencies
(否则它们会在主图表中指定)。不知道能不能参考子图Chart.yaml info.
仔细看官方文档,有使用built-in对象Chart的方法helm,这里注意:
The built-in values always begin with a CAPITAL letter.
所以正确的用法如下:
Chart.yaml
apiVersion: v2
name: UmbrellaChart
description: A Helm chart for Kubernetes
type: application
version: 1.0.0-rc.0
appVersion: "1.16.0"
dependencies:
- name: microservice1Chart
repository: xxx
version: 1.2.3-rc.1
- name: microservice2Chart
repository: xxx
version: 3.2.1-rc.2
templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: versionInfo
data:
versionInfo.js: |
window.versionInfo = {
app: '{{ .Chart.Version | default "unknown" }}',
{{- range $i, $dep := .Chart.Dependencies }}
{{- if eq $dep.Name "microservice1Chart" }}
service1: '{{ $dep.Version }}',
{{- end }}
{{- if eq $dep.Name "microservice2Chart" }}
service2: '{{ $dep.Version }}',
{{- end }}
{{- end }}
};
输出:
apiVersion: v1
kind: ConfigMap
metadata:
name: versionInfo
data:
versionInfo.js: |
window.versionInfo = {
app: '1.0.0-rc.0',
service1: '1.2.3-rc.1',
service2: '3.2.1-rc.2',
};
我希望在我的伞形图中创建一个配置映射,包括我所有依赖关系图的版本。
UmbrellaChart (version: 1.0.0-rc.0)
|
|--- microservice1Chart (1.2.3-rc.1)
|--- microservice2Chart (3.2.1-rc.2)
配置图:
apiVersion: v1
kind: ConfigMap
metadata:
name: versionInfo
data:
versionInfo.js: |
window.versionInfo = {
app: '{{ .Chart.Version | default "unknown" }}',
service1: '{{ ??? }}',
service2: '{{ ??? }}',
};
我应该用什么代替???能够包含我的子图表的版本。我希望只在 Chart.yaml 中保留我的图表的版本定义,而不必在更多地方更改它(否则我可以只复制子图表的值文件中的信息)。
似乎无法引用 .Chart.Dependencies
(否则它们会在主图表中指定)。不知道能不能参考子图Chart.yaml info.
仔细看官方文档,有使用built-in对象Chart的方法helm,这里注意:
The built-in values always begin with a CAPITAL letter.
所以正确的用法如下:
Chart.yaml
apiVersion: v2
name: UmbrellaChart
description: A Helm chart for Kubernetes
type: application
version: 1.0.0-rc.0
appVersion: "1.16.0"
dependencies:
- name: microservice1Chart
repository: xxx
version: 1.2.3-rc.1
- name: microservice2Chart
repository: xxx
version: 3.2.1-rc.2
templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: versionInfo
data:
versionInfo.js: |
window.versionInfo = {
app: '{{ .Chart.Version | default "unknown" }}',
{{- range $i, $dep := .Chart.Dependencies }}
{{- if eq $dep.Name "microservice1Chart" }}
service1: '{{ $dep.Version }}',
{{- end }}
{{- if eq $dep.Name "microservice2Chart" }}
service2: '{{ $dep.Version }}',
{{- end }}
{{- end }}
};
输出:
apiVersion: v1
kind: ConfigMap
metadata:
name: versionInfo
data:
versionInfo.js: |
window.versionInfo = {
app: '1.0.0-rc.0',
service1: '1.2.3-rc.1',
service2: '3.2.1-rc.2',
};