agents.volumes 参数应该如何在 Datadog Helm Chart 中工作

How does the agents.volumes parameter supposed to work in Datadog Helm Chart

我正在尝试将文件路径挂载到我的 datadog 代理容器中,该容器正通过 Datadog Helm Chart.

配置到 kubernetes 集群中

我正在使用 agents.volumes 值传入。文档将其描述为“指定要安装在 dd-agent 容器中的附加卷”。

基于 Datadog/helm-charts repo 中的语法 - 我正在使用:

  agents:
    volumes:
      - hostPath:
          path: /var/log/cloud-init.log
        name: cloud-init

但是当我将该更改应用于我的集群时,我没有看到任何证据表明此路径已安装在我的代理容器上的任何位置。我没有看到任何关于将卷从我的主机容器装入 datadog 代理容器的很好的解释。

我看到该值仅用于在 DaemonSet pod 定义上声明卷,而不用于挂载它们。

agents.volumes 用于在代理上定义自定义卷,但这用于 DaemonSet 定义,特别是 spec.template.spec.volumes look here.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: {{ template "datadog.fullname" . }}
  namespace: {{ .Release.Namespace }}
  ...
spec:
    ...
    spec:
      ...
      volumes:
      ...
{{- if .Values.agents.volumes }}
{{ toYaml .Values.agents.volumes | indent 6 }}
{{- end }}

要实际使用这些卷,您必须定义变量 agents.volumeMounts which is used here

{{- define "container-agent" -}}
- name: agent
  image: "{{ include "image-path" (dict "root" .Values "image" .Values.agents.image) }}"
  ...
  volumeMounts:
    ...
{{- if .Values.agents.volumeMounts }}
{{ toYaml .Values.agents.volumeMounts | indent 4 }}
{{- end }}
...
{{- end -}}

所以您很可能想这样定义您的价值观:

agents:
  volumes:
    - hostPath:
        path: /var/log/cloud-init.log
      name: cloud-init
  volumeMounts:
    - name: cloud-init
      mountPath: /some/path
      readOnly: true