yaml 配置中的 kubernetes configmap 从文件设置
kubernetes configmap set from-file in yaml configuration
如何以 yaml 格式描述此命令?
kubectl create configmap somename --from-file=./conf/nginx.conf
我希望执行类似以下 yaml 的操作,但它不起作用
apiVersion: v1
kind: ConfigMap
metadata:
name: somename
namespace: default
fromfile: ./conf/nginx.conf
有什么想法吗?
那是行不通的,因为 kubernetes 不知道本地文件的路径。您可以通过执行以下操作来模拟它:
kubectl create configmap --dry-run=client somename --from-file=./conf/nginx.conf --output yaml
--dry-run
标志只会在标准输出上显示您的更改,而不会在服务器上进行更改。这将输出一个有效的 configmap,所以如果你将它传输到一个文件,你可以使用它:
kubectl create configmap --dry-run=client somename --from-file=./conf/nginx.conf --output yaml | tee somename.yaml
您可以使用 kustomize,它不仅可以轻松管理配置映射,还可以轻松管理其他资源。我认为您想从 yaml 中的文件创建 configmap,因此您可以在 kustomization.yaml 文件中执行类似以下操作:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
configMapGenerator:
- files:
- ./conf/nginx.conf
name: nginx-config
此外,kustomize 可以非常方便地管理所有部署(特别是对于声明式管理非常方便),您可以将所有内容都放在一个 kustomize 文件中,如下所示:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
secretGenerator:
- envs:
- .env
name: my-secrets
configMapGenerator:
- files:
- ./conf/nginx.conf
name: nginx-config
resources:
- ./nginx-deployment.yaml
部署你能部署的一切运行它是这样的:
$ kustomize build | kubectl apply -f -
更多信息请参考here
将近 3 年的问题和可接受的答案,但仅适用于那些正在访问的新人。
这也可以通过 helm chart 来实现。如果您使用的是 helm 图表,您可以将这些文件放在图表中的 files/
目录下,并从 YAML 中引用这些文件作为
{{ .Files.Get "files/filename.ext" }}
这个包含也可以根据go中可用的函数进行编码,比如
{{ .Files.Get "files/filename.ext" | b64enc }}
如何以 yaml 格式描述此命令?
kubectl create configmap somename --from-file=./conf/nginx.conf
我希望执行类似以下 yaml 的操作,但它不起作用
apiVersion: v1
kind: ConfigMap
metadata:
name: somename
namespace: default
fromfile: ./conf/nginx.conf
有什么想法吗?
那是行不通的,因为 kubernetes 不知道本地文件的路径。您可以通过执行以下操作来模拟它:
kubectl create configmap --dry-run=client somename --from-file=./conf/nginx.conf --output yaml
--dry-run
标志只会在标准输出上显示您的更改,而不会在服务器上进行更改。这将输出一个有效的 configmap,所以如果你将它传输到一个文件,你可以使用它:
kubectl create configmap --dry-run=client somename --from-file=./conf/nginx.conf --output yaml | tee somename.yaml
您可以使用 kustomize,它不仅可以轻松管理配置映射,还可以轻松管理其他资源。我认为您想从 yaml 中的文件创建 configmap,因此您可以在 kustomization.yaml 文件中执行类似以下操作:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
configMapGenerator:
- files:
- ./conf/nginx.conf
name: nginx-config
此外,kustomize 可以非常方便地管理所有部署(特别是对于声明式管理非常方便),您可以将所有内容都放在一个 kustomize 文件中,如下所示:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
secretGenerator:
- envs:
- .env
name: my-secrets
configMapGenerator:
- files:
- ./conf/nginx.conf
name: nginx-config
resources:
- ./nginx-deployment.yaml
部署你能部署的一切运行它是这样的:
$ kustomize build | kubectl apply -f -
更多信息请参考here
将近 3 年的问题和可接受的答案,但仅适用于那些正在访问的新人。
这也可以通过 helm chart 来实现。如果您使用的是 helm 图表,您可以将这些文件放在图表中的 files/
目录下,并从 YAML 中引用这些文件作为
{{ .Files.Get "files/filename.ext" }}
这个包含也可以根据go中可用的函数进行编码,比如
{{ .Files.Get "files/filename.ext" | b64enc }}