Kri*_*a D 8 environment-variables kubernetes kustomize
我正在尝试设置多行值(ca 证书文件的内容)来为特定密钥设置 kustomize 环境文件,如下面的代码所示。有办法实现这一点吗?
注意:向 some_params.env 中的值添加引号不起作用。
kustomize.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
commonLabels:
role: authentication
bases:
- ./somebase
configMapGenerator:
- name: some-parameters
env: some_params.env
vars:
- name: ca_contents
objref:
kind: ConfigMap
name: some-parameters
apiVersion: v1
fieldref:
fieldpath: data.ca_contents
configurations:
- some_params.yaml
Run Code Online (Sandbox Code Playgroud)
some_params.yaml
varReference:
- path: data/ca.pem
kind: ConfigMap
Run Code Online (Sandbox Code Playgroud)
some_params.env
ca_contents= |
-----BEGIN CERTIFICATE-----
YOUR CA CERTIFICATE CONTENTS
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
运行以下命令:
kustomize build base
返回:
Error: NewResMapFromConfigMapArgs: NewResMapFromConfigMapArgs: env source file: some_params.env: "-----BEGIN CERTIFICATE-----" is not a valid key name: a valid environment variable name must consist of alphabetic characters, digits, '_', '-', or '.', and must not start with a digit (e.g. 'my.env-name', or 'MY_ENV.NAME', or 'MyEnvName1', regex used for validation is '[-._a-zA-Z][-._a-zA-Z0-9]*')
我认为你的问题是缩进。Kustomize 认为您的some_params.env文件仅由键组成。为了符合 YAML 规范,多行字符串需要按一个制表符缩进。所以some_params.env应该是这样的:
ca_contents= |
-----BEGIN CERTIFICATE-----
YOUR CA CERTIFICATE CONTENTS
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
如果您想了解有关多行字符串的更多详细信息,请查看以下来源:
| 归档时间: |
|
| 查看次数: |
5899 次 |
| 最近记录: |