带有 if-else 条件的 Kubernetes YAML 文件
Kubernetes YAML file with if-else condition
我有用于在所有环境中部署我的应用程序的 yaml 文件。我只想为测试环境添加一些 JVM args。无论如何我可以在 YAML 文件中做到这一点吗?
这是 yaml
apiVersion: v1
kind: Pod
metadata:
name: rss-site
labels:
app: web
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80
- name: rss-reader
image: nickchase/rss-php-nginx:v1
ports:
- containerPort: 88
env:
- name: JAVA_OPTS
value: "
-Dlog4j.configurationFile=log4j2.xml
-Denable.scan=true
"
这里我希望 -Denable.scan=true
是有条件的,应该只为测试环境添加。
我尝试了以下方法,但它不起作用,并且 kubernete 抛出错误 error converting YAML to JSON: yaml: line 53: did not find expected key
尝试过:-
apiVersion: v1
kind: Pod
metadata:
name: rss-site
labels:
app: web
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80
- name: rss-reader
image: nickchase/rss-php-nginx:v1
ports:
- containerPort: 88
env:
- name: JAVA_OPTS
value: "
-Dlog4j.configurationFile=log4j2.xml
${{if eq "TEST" "TEST" }} # just sample condition , it will change
-Denable.scan=true
${{end }}
"
helm
会这样做。事实上,语法几乎与您输入的相同,并且是这样的:
env:
- name: JAVA_OPTS
value: "
-Dlog4j.configurationFile=log4j2.xml
{{- if eq .Values.profile "TEST" }}
-Denable.scan=true
{{- end }}
"
然后您通过安装包(称为图表)声明您要使用哪个配置文件(即您设置 .Values.profile
值)
您可以查看 https://helm.sh/ 了解详细信息和示例
我有用于在所有环境中部署我的应用程序的 yaml 文件。我只想为测试环境添加一些 JVM args。无论如何我可以在 YAML 文件中做到这一点吗?
这是 yaml
apiVersion: v1
kind: Pod
metadata:
name: rss-site
labels:
app: web
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80
- name: rss-reader
image: nickchase/rss-php-nginx:v1
ports:
- containerPort: 88
env:
- name: JAVA_OPTS
value: "
-Dlog4j.configurationFile=log4j2.xml
-Denable.scan=true
"
这里我希望 -Denable.scan=true
是有条件的,应该只为测试环境添加。
我尝试了以下方法,但它不起作用,并且 kubernete 抛出错误 error converting YAML to JSON: yaml: line 53: did not find expected key
尝试过:-
apiVersion: v1
kind: Pod
metadata:
name: rss-site
labels:
app: web
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80
- name: rss-reader
image: nickchase/rss-php-nginx:v1
ports:
- containerPort: 88
env:
- name: JAVA_OPTS
value: "
-Dlog4j.configurationFile=log4j2.xml
${{if eq "TEST" "TEST" }} # just sample condition , it will change
-Denable.scan=true
${{end }}
"
helm
会这样做。事实上,语法几乎与您输入的相同,并且是这样的:
env:
- name: JAVA_OPTS
value: "
-Dlog4j.configurationFile=log4j2.xml
{{- if eq .Values.profile "TEST" }}
-Denable.scan=true
{{- end }}
"
然后您通过安装包(称为图表)声明您要使用哪个配置文件(即您设置 .Values.profile
值)
您可以查看 https://helm.sh/ 了解详细信息和示例