使用 GitLab-Grafana chart
gitlab-grafana
子 chart 改编了 grafana/grafana
chart 以便正常运行,使用与 Omnibus GitLab 安装实例相同级别的配置。此外,安装 Grafana 允许最终用户安装额外的仪表盘,并纳入极狐GitLab 提供的仪表盘。
要求
此 chart 依赖于通常由 GitLab meta chart
安装的 grafana/grafana
chart。This chart depends on the grafana/grafana
chart。此外需要 Kubernetes Ingress 支持,使用 /-/grafana
路径正确路由 Grafana 请求。
设计选择
由于 Helm 的限制,无法在知道初始密码 Secret 的动态名称的情况下配置 Grafana chart。结果创建了一个静态命名的 Secret 来包含初始密码。这个 Secret 命名为 gitlab-grafana-initial-password
。
对于包含将初始密码注入 Grafana 容器的脚本的 ConfigMap,也存在同样的问题。该 ConfigMap 命名为 gitlab-grafana-import-secret
。
初始密码 Secret 和导入脚本 ConfigMap 都挂载到 Grafana 容器中(分别是 /tmp/initial
和 /tmp/scripts
),并且容器命令行被扩充,使用这两个对象来安全地向 Grafana 服务器公开初始密码。
修改容器命令行一般会阻止初始密码被注入到 Grafana 服务器环境中。
配置
没有必需的设置,如果您将所有 chart 部署在一起,它应该是开箱即用的。管理员凭据由 shared-secrets
作业创建,管理员用户名设置为 root
。
Grafana 的 root 用户密码可以通过以下命令提取:
kubectl get secret gitlab-grafana-initial-password -ojsonpath='{.data.password}' | base64 --decode ; echo
安装命令行选项
参数 | 默认值 | 说明 |
---|---|---|
common.labels
| {}
| 此 chart 创建的适用于所有对象的补充标签。 |
ingress.apiVersion
| 在 apiVersion 字段中使用的值。
| |
ingress.tls
| {}
| 如果未安装 GitLab cert manager,Ingress TLS 设置的哈希值 |
ingress.annotations
| {}
| 添加到 Grafana Ingress 资源的额外的 annotation。 |
仪表盘支持
Grafana 仪表盘从已部署命名空间中的 ConfigMap 中自动发现。如果创建的 ConfigMap 将 gitlab_grafana_dashboard
标签设置为 true
,那么ConfigMap 中的 JSON 编码仪表盘将被导入到 Grafana 中。此导入发生一次(当 Grafana 重新启动时)并且对仪表盘的任何更改都不会写回 ConfigMap。当前没有在安装 chart 时创建仪表盘。 任何用户创建的仪表盘都可以通过使用 gitlab_grafana_dashboard
标签创建一个 ConfigMap,并自己管理 ConfigMap 来导入。
数据源支持
可以通过添加 gitlab_grafana_datasource
标签,与仪表盘相同的方式创建数据源。此 chart 将添加一个 ConfigMap 引导 Grafana 使用嵌入式 Prometheus 指标。