【问题标题】:How do I mount a ConfigMap volume for VMWare's fluentd operator?如何为 VMWare 的 fluentd 操作符挂载 ConfigMap 卷?
【发布时间】:2020-08-24 20:06:21
【问题描述】:

我正在尝试为 VMWare 的 Fluentd 运算符 [1] 安装 Kubernetes configmap。我检查了文档,掌舵图表明您必须指定一个额外的卷作为参数,称为fluentd.extraVolumeMounts

我用来安装算子的舵图如下:


#!/bin/sh
# helmenv set to helm3

CHART_URL='https://github.com/vmware/kube-fluentd-operator/releases/download/v1.12.0/log-router-0.3.3.tgz'

# Set environment variables.
REGION='us-east-1'
CLUSTER='dev'
ENV='dev'
IMAGE_TAG='v1.12.0'

VOLUME_MOUNT="
- name: fluentd-es-templates
  mountPath: /templates"

EXTRA_VOLUME="
- name: fluentd-es-templates
  configMap:
    name: fluentd-es-templates"

# Install the fluentd operator in kube-system.
# helm install kfo ${CHART_URL} \
helm upgrade --install kfo ${CHART_URL} \
  --set meta.key=metadata \
  --set meta.values.region=${REGION} \
  --set meta.values.env=${ENV} \
  --set meta.values.cluster=${CLUSTER} \
  --set rbac.create=true \
  --set image.tag=${IMAGE_TAG} \
  --set image.repository=vmware/kube-fluentd-operator \
# --set fluentd.extraVolumeMounts=[$EXTRA_VOLUME]
# --set extraVolumes=[${EXTRA_VOLUME}]

当我取消注释设置卷的行时,helm 脚本失败。我的问题是,如何使用正确的 json 或 yaml 填充 VOLUME_MOUNTEXTRA_VOLUME 变量? 我正在尝试在一个文件中完成所有操作,并且不想将内容拆分为多个文件。

【问题讨论】:

  • 你是受限于 sh 还是可以使用 bash?
  • @jordanm bash 很好。

标签: amazon-web-services kubernetes amazon-ec2 fluentd amazon-eks


【解决方案1】:

您仍然可以通过进程替换在 shell 脚本中使用值文件。这是一个例子:

#!/usr/bin/env bash
CHART_URL='https://github.com/vmware/kube-fluentd-operator/releases/download/v1.12.0/log-router-0.3.3.tgz'

read -r -d '' values << EOF
meta:
  key: metadata
  values:
    region: "us-east-1"
    env: "dev"
    cluster: "dev"
rbac:
  create: true
image:
  repository: vmware/kube-fluentd-operator
  tag: "v1.12.0"
fluentd:
  extraVolumeMounts:
    - name: fluentd-es-templates
      mountPath: /fluentd/etc/mappings
extraVolumes:
  - name: fluentd-es-templates
    configMap:
      name: fluentd-es-templates
EOF

helm upgrade --install kfo "$CHART_URL" -f <(printf '%s' "$values")

在后台,这会创建一个命名管道并将一个文件描述符(例如 /dev/fd/123)传递给 helm install 命令。此功能在某些 shell 中不可用,例如 dash(在 Debian 和 Ubuntu 中为/bin/sh)。

【讨论】:

  • 非常感谢您的回复。我现在就试一试。
  • 错误:无法解析 /dev/fd/63:将 YAML 转换为 JSON 时出错:yaml:第 14 行:未找到预期的“-”指示符。执行舵图时出现此错误。
猜你喜欢
  • 2020-05-30
  • 2022-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多