我需要一个帮助。我实施掌舵图时遇到困难。
场景:我需要通过CLI将值传递给values.yaml
文件。以下是示例代码。
values.yaml
# Default values for miqp-ui-dep.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
##################Names of files and Applications################
Depname: miqp-server-dep
Appname: miqp-server
Svcname: miqp-server-svc
Ingname: miqp-ing
#################################################################
replicaCount: 2
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
minReadySeconds: 5
nodeSelector:
role: nginxplus
image:
repository: xxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/miqp-devops
tag: miqpserver_2sep
pullPolicy: IfNotPresent
service:
name: miqp-ui-svc
externalPort: 80
internalPort: 8081
volumeMounts:
name: ebs-pvc
ingress:
enabled: true
hosts:
- kubernetes-miq.xxxxxx.com
tls:
- secretName: default-token-k33w6
hosts:
- kubernetes-xxxxxx.com
persistence:
enabled: true
volume:
accessModes: ReadWriteOnce
pvcName: ebs-pvc
storageClass: standard
storageSize: 20G
ingress.yaml
{{- if .Values.ingress.enabled -}}
{{- $serviceName := .Values.service.name -}}
{{- $servicePort := .Values.service.externalPort -}}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Values.Ingname }}
namespace: {{ .Release.Namespace }}
spec:
rules:
{{- range $host := .Values.ingress.hosts }}
- host: {{ $host }}
http:
paths:
- path:
backend:
serviceName: {{ $serviceName }}
servicePort: {{ $servicePort }}
- path: /api/
backend:
serviceName: {{ $serviceName }}
servicePort: {{ $servicePort }}
{{- end -}}
{{- if .Values.ingress.tls}}
tls:
{{ toYaml .Values.ingress.tls | indent 4 }}
{{- end -}}
{{- end -}}
现在我可以使用--set
选项设置values.yml参数的值,但是如果我们必须以下面的方式替换参数呢?
ingress:
enabled: true
hosts:
- kubernetes-miq.xxxxxx.com
tls:
- secretName: default-token-k33w6
hosts:
- kubernetes-miq.xxxxxx.com
我必须替换 - secretName值的值,即default-token-k33w6和hosts,即kubernetes-miq.xxxxxx.com
先谢谢。
答案 0 :(得分:1)
您可以随时执行helm upgrade --reuse-values --set ingress.enabled=false
之类的操作,对于更复杂的问题,您可以执行helm upgrade --reuse-values -f <filename>
,其中您的文件包含类似示例的内容:
ingress:
enabled: true
hosts:
- kubernetes-miq.xxxxxx.com
关于通过--set
运行更复杂的结构,请查看https://github.com/kubernetes/helm/blob/master/docs/using_helm.md#the-format-and-limitations-of---set,其中包含以下方式:
--set key={a,b,c}
或
--set name.key1=a,name.key2=b