在 yaml 文件中使用环境变量作为整数
Use an environment variable as integer in yaml file
我在一个容器中有一个应用程序,它读取一个 YAML 文件,其中包含像
这样的数据
initializationCount=0
port=980
现在我想删除应用程序中的那些硬编码值并将它们从容器中取出。因此,我创建了一个包含所有配置值的 configMap。我在部署 pod 时使用配置映射键作为环境变量。
我的问题是,如果我想在我的 yaml 文件中使用这些环境变量,例如
initializationCount=${iCount}
port=${port}
读取此 YAML 文件的 API 抛出数字格式异常,因为环境变量始终是字符串。我无法控制读取我的 yaml 文件的 API。
我试过了
initializationCount=!!int ${iCount}
但它不起作用。
与其将 configmap 值作为环境变量引入,不如尝试在运行时将 configmap 安装为卷。
configmap 应该有一个键,它是您的 YAML 文件的名称。该键的值应该是文件的内容。
当 pod 初始化时,这些数据将被挂载到容器的文件系统。这样您的应用程序将以与以前相同的方式读取配置 YAML,但值将在配置映射中外部化。
像这样:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-app
image: my-app:latest
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: app-config
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
config.yaml: |
initializationCount=0
port=980
Kubernetes 文档 here
我在一个容器中有一个应用程序,它读取一个 YAML 文件,其中包含像
这样的数据 initializationCount=0
port=980
现在我想删除应用程序中的那些硬编码值并将它们从容器中取出。因此,我创建了一个包含所有配置值的 configMap。我在部署 pod 时使用配置映射键作为环境变量。
我的问题是,如果我想在我的 yaml 文件中使用这些环境变量,例如
initializationCount=${iCount}
port=${port}
读取此 YAML 文件的 API 抛出数字格式异常,因为环境变量始终是字符串。我无法控制读取我的 yaml 文件的 API。
我试过了
initializationCount=!!int ${iCount}
但它不起作用。
与其将 configmap 值作为环境变量引入,不如尝试在运行时将 configmap 安装为卷。
configmap 应该有一个键,它是您的 YAML 文件的名称。该键的值应该是文件的内容。
当 pod 初始化时,这些数据将被挂载到容器的文件系统。这样您的应用程序将以与以前相同的方式读取配置 YAML,但值将在配置映射中外部化。
像这样:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-app
image: my-app:latest
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: app-config
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
config.yaml: |
initializationCount=0
port=980
Kubernetes 文档 here