Chi*_*lax 8 kubernetes minikube kubernetes-helm configmap
目前,我正在通过执行以下操作从文件config.json创建一个configmap:
kubectl create configmap jksconfig --from-file=config.json
Run Code Online (Sandbox Code Playgroud)
我希望将ConfigMap 创建为部署的一部分,并尝试执行以下操作:
apiVersion: v1
kind: ConfigMap
metadata:
name: jksconfig
data:
config.json: |-
{{ .Files.Get "config.json" | indent 4 }}
Run Code Online (Sandbox Code Playgroud)
但似乎不起作用。应该怎么做才能进入configmap.yaml,以便创建相同的configmap?
-更新-
当我执行头盔安装空运行时:
# Source: mychartv2/templates/jks-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: jksconfig
data:
config.json: |
Run Code Online (Sandbox Code Playgroud)
注意:我正在使用minikube作为我的kubernetes集群
edb*_*ead 11
您的config.json文件应该在mychart /目录中,而不是在 mychart / templates中
configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
config.json: |-
{{ .Files.Get "config.json" | indent 4}}
Run Code Online (Sandbox Code Playgroud)
config.json
{
"val": "key"
}
Run Code Online (Sandbox Code Playgroud)
helm install --dry-run --debug mychart
[debug] Created tunnel using local port: '52091'
[debug] SERVER: "127.0.0.1:52091"
...
NAME: dining-saola
REVISION: 1
RELEASED: Fri Nov 23 15:06:17 2018
CHART: mychart-0.1.0
USER-SUPPLIED VALUES:
{}
...
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: dining-saola-configmap
data:
config.json: |-
{
"val": "key"
}
Run Code Online (Sandbox Code Playgroud)
编辑:
但是我希望config.json文件中的值取自values.yaml。那可能吗?
configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
config.json: |-
{
{{- range $key, $val := .Values.json }}
{{ $key | quote | indent 6}}: {{ $val | quote }}
{{- end}}
}
Run Code Online (Sandbox Code Playgroud)
values.yaml
json:
key1: val1
key2: val2
key3: val3
Run Code Online (Sandbox Code Playgroud)
helm install --dry-run --debug mychart
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mangy-hare-configmap
data:
config.json: |-
{
"key1": "val1"
"key2": "val2"
"key3": "val3"
}
Run Code Online (Sandbox Code Playgroud)
下面是一个ConfigMap附加到 a的示例Deployment:
配置映射:
---
apiVersion: v1
kind: ConfigMap
metadata:
name: jksconfig
data:
config.json: |-
{{ .Files.Get "config.json" | indent 4 }}
Run Code Online (Sandbox Code Playgroud)
部署:
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: jksapp
labels:
app: jksapp
spec:
selector:
matchLabels:
app: jksapp
template:
metadata:
labels:
app: jksapp
containers:
- name: jksapp
image: jksapp:1.0.0
ports:
- containerPort: 8080
volumeMounts:
- name: config #The name(key) value must match pod volumes name(key) value
mountPath: /path/to/config.json
volumes:
- name: config
configMap:
name: jksconfig
Run Code Online (Sandbox Code Playgroud)
索尔恩01:
config.json文件内容插入模板中data对抗中config.json$ helm install命令最后,
{{define "config"}}
{
"a": "A",
"b": {
"b1": 1
}
}
{{end}}
apiVersion: v1
kind: ConfigMap
metadata:
name: jksconfig
labels:
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
app: "my-app"
heritage: "{{ .Release.Service }}"
release: "{{ .Release.Name }}"
data:
config.json: {{ (include "config" .) | trim | quote }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9290 次 |
| 最近记录: |