我有一个总括图,它有一个几乎所有子图DeploymentConfig的模板。如何从子图中获取基本图表版本。
也许一个解决方案是覆盖子图表chart.yaml版本,但是我也尝试这样做而没有成功。
我在基本图表上尝试了_helpers.tpl 并在基本图表的_deployment-config.yaml上进行定义
{{- define "bitcore.deployment" -}}
{{- $common := dict "Values" .Values.bitcore -}}
{{- $noCommon := omit .Values "bitcore" -}}
{{- $overrides := dict "Values" $noCommon -}}
{{- $noValues := omit . "Values" -}}
{{- with merge $noValues $overrides $common -}}
apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
labels:
app: ## here i need base chart version ##
name: {{ .Chart.Name }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
app: {{ .Chart.Name }}
deploymentconfig: {{ .Chart.Name }}
strategy:
activeDeadlineSeconds: 21600
recreateParams:
timeoutSeconds: 600
resources: {}
type: Recreate
template:
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
labels:
app: {{ .Chart.Name }}
deploymentconfig: {{ .Chart.Name }}
test: required
spec:
containers:
- image: "{{ .Values.image.repository }}:xy"
imagePullPolicy: {{ .Values.global.image.pullPolicy }}
env:
- name: BIT_CORE_RUNTIME_PROFILE
value: '{{ required "Please provide runtime profile" .Values.global.runtimeProfile }}'
- name: JAVA_OPTS
value: '{{ required "Please provide Java Ops." .Values.global.javaOpts }}'
livenessProbe:
httpGet:
path: management/health
port: 1489
initialDelaySeconds: 30
periodSeconds: 60
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 10
name: {{ .Chart.Name }}
ports:
- containerPort: 1480
protocol: TCP
readinessProbe:
httpGet:
path: management/health
port: 1489
initialDelaySeconds: 10
timeoutSeconds: 10
periodSeconds: 60
successThreshold: 1
failureThreshold: 10
resources:
{{- toYaml .Values.global.resources | nindent 12 }}
volumeMounts:
- mountPath: /logs
name: {{ .Chart.Name }}-volume-1
terminationMessagePath: /dev/termination-log
dnsPolicy: ClusterFirst
restartPolicy: Always
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: {{ .Chart.Name }}-volume-1
emptyDir: {}
test: false
{{- end -}}
{{- end -}}
我期望使用复杂的版本(7.0.0-snapshot-dev-872),但是我获得了子图版本0.1.0
答案 0 :(得分:0)
我认为您无法在任何地方以任何方式访问超级图表的.Chart
。毕竟,子图应该仍然可以独立运行。
使用头盔2最好的办法是将版本放在.Values.global
部分中。
在头盔2中,您必须将其写入生成版本的脚本的顶级values.yaml
中,因为那里没有任何代码。我相信在头盔3中应该可以通过脚本生成值。
答案 1 :(得分:0)
您只需在主图表内的values.yaml文件中为子图表定义版本值。
在我看来,没有必要创建具有相同版本的多个子图表,您只需将它们作为普通图表运行即可。伞形图的主要目标是部署带有大量参数的更多/大型应用程序-通常情况有所不同。因此,如果您的子图表具有类似的参数,例如。同一版本,请尝试分别部署它们。
有用的文档:subcharts,charts-subcharts。
有用的文章:helm。