【问题标题】:Display completed Kubernetes ConfigMap显示完成的 Kubernetes ConfigMap
【发布时间】:2021-09-13 01:45:27
【问题描述】:

我已经使用我的 Kubernetes DameonSet resource 部署了以下 ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: fluentd-config
  namespace: fluentd
data:
  source: "#{ENV['MY_SOURCE']}"

我如何知道 source 在部署 DameonSet 时的评估结果?

我尝试了以下方法,但没有帮助:

kubectl describe configmaps fluentd-config

输出只显示模板化的 ConfigMap:

Name:         fluentd-config
Namespace:    fluentd
Labels:       <none>
Annotations:  <none>

Data
====
source: "#{ENV['MY_SOURCE']}"

【问题讨论】:

  • 它将被视为字符串并保持原样。您可能需要使用 helm 或类似的东西进行模板化。查看learnk8s.io/templating-yaml-with-code 了解一些解决方案。
  • @P.... 您介意发表您的评论作为答案吗?
  • @jakub siemaszko 完成

标签: kubernetes configmap


【解决方案1】:

默认情况下,您不能对 kubernetes yaml 清单文件进行模板化。你必须使用像helm 这样的工具,还有更多的工具。

为了说明这个问题,如果你对下面的文件执行kubectl create -f,它不会将$HOME 变量插入到/home/ps,文字字符串$HOME 将是 分配在home-dir

apiVersion: v1
data:
  home-dir: $HOME
kind: ConfigMap
metadata:
  creationTimestamp: null
  name: my-data-1

但是,如果您要强制执行此操作,则可以对变量进行插值。

kubectl create  cm my-data-2 --from-literal=home-dir="$HOME" --dry-run=client -o yaml
apiVersion: v1
data:
  home-dir: /home/ps
kind: ConfigMap
metadata:
  creationTimestamp: null
  name: my-data-2

你也可以做如下的变量扩展:

cat << EOF |kubectl create -f -
apiVersion: v1
data:
  user-name: $USER
kind: ConfigMap
metadata:
  creationTimestamp: null
  name: my-data-3
EOF

【讨论】:

    猜你喜欢
    • 2019-11-26
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 2019-03-31
    • 2018-06-01
    • 1970-01-01
    相关资源
    最近更新 更多