3

正如标题所示,我正在尝试使用带有数据源的 helmfile 通过值设置 grafana。

我可以在这里找到文档,但遗憾的是我的知识太有限,无法使其发挥作用。

我的 helmfile 的相关部分在这里

releases:
...
  - name: grafana
    namespace: grafana
    chart: stable/grafana
    values:
      - datasources:
        - name: Prometheus
          type: prometheus
          url: http://prometheus-server.prometheus.svc.cluster.local

我偶然发现了这一点,似乎我也可以通过环境变量来做到这一点,但我似乎找不到在我的 helmfile 中进行设置的简单方法。

如果对 helmfile、json 和诸如此类的东西有更好理解的人可以向我展示或引导我朝着正确的方向前进,将不胜感激。

更新:感谢@WindyFields,我的最终解决方案如下

releases:
...
  - name: grafana
    namespace: grafana
    chart: stable/grafana
    values:
      - datasources:
          datasources.yaml:
            apiVersion: 1
            datasources:
              - name: Prometheus
                type: prometheus
                access: proxy
                url: http://prometheus-server.prometheus.svc.cluster.local
                isDefault: true
4

1 回答 1

4

回答

只需将以下内容直接添加到values.yaml

datasources:
  datasources.yaml:
    apiVersion: 1
    datasources:
    - name: Prometheus
      type: prometheus
      url: http://prometheus-server.prometheus.svc.cluster.local

细节

Helm 渲染模板后,将生成以下 configmap:

# Source: grafana/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: RELEASE-NAME-grafana
  labels:
    app: grafana
    chart: grafana-1.20.0
    release: RELEASE-NAME
    heritage: Tiller
data:
  grafana.ini: |
    ...
  datasources.yaml: |
    apiVersion: 1
    datasources:
    - name: Prometheus
      type: prometheus
      url: http://prometheus-server.prometheus.svc.cluster.local 

Helms 安装图表后,k8s 将从以下路径获取数据源配置datatsources.yamlconfig.yaml挂载它,/etc/grafana/provisioning/datasources/datasources.yamlGrafana 应用程序将在该路径中获取它。

请参阅 Grafana数据源配置文档

提示:查看渲染的 Helm 模板使用helm template <path_to_chart>

于 2019-01-12T13:28:33.910 回答