问题描述
目前我正在通过执行以下命令从文件 config.json 创建一个 configmap:
At present I am creating a configmap from the file config.json by executing:
kubectl create configmap jksconfig --from-file=config.json
我希望将 ConfigMap 作为部署的一部分创建并尝试这样做:
I would want the ConfigMap to be created as part of the deployment and tried to do this:
apiVersion: v1
kind: ConfigMap
metadata:
name: jksconfig
data:
config.json: |-
{{ .Files.Get "config.json" | indent 4 }}
但似乎不起作用.什么应该进入 configmap.yaml 以便创建相同的 configmap?
But doesn't seem to work. What should be going into configmap.yaml so that the same configmap is created?
---更新---
当我进行 helm install 试运行时:
when I do a helm install dry run:
# Source: mychartv2/templates/jks-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: jksconfig
data:
config.json: |
注意:我使用 minikube 作为我的 kubernetes 集群
Note: I am using minikube as my kubernetes cluster
推荐答案
你的 config.json
文件应该在你的 mychart/ 目录中,而不是在 mychart 中/模板
Your config.json
file should be inside your mychart/ directory, not inside mychart/templates
configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
config.json: |-
{{ .Files.Get "config.json" | indent 4}}
config.json
{
"val": "key"
}
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"
}
但我希望从 values.yaml 获取 config.json 文件中的值.这可能吗?
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}}
}
values.yaml
json:
key1: val1
key2: val2
key3: val3
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"
}
这篇关于Kubernetes - 如何定义使用 yaml 中的文件构建的 ConfigMap?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!