GitLab-Grafanaチャートの使い方

gitlab-grafana サブチャートは、Omnibus GitLab インストールと同じレベルの設定でstable/grafanaチャートが正しく動作するように適応します。 さらに、Grafana のインストールにより、エンドユーザが追加のダッシュボードをインストールし、GitLab 提供のダッシュボードに組み込むことができます。

要件

このチャートは、通常GitLab メタチャートによってインストールされるstable/grafana チャートに依存します。さらに、/-/grafana パスを使用して Grafana リクエストを適切にルーティングするには、Kubernetes Ingress サポートが必要です。

デザインの選択

Helmの制限により、初期パスワードのSecretの動的な名前を知っている状態でGrafanaチャートを設定することはできません。 その結果、初期パスワードを含む静的な名前のSecretが作成されます。このSecretの名前はgitlab-grafana-initial-password

同じイシューが、Grafana コンテナに初期パスワードを注入するために使用されるスクリプトを含む ConfigMap にも存在します。 その ConfigMap の名前はgitlab-grafana-import-secretです。

初期パスワードSecretとインポートスクリプトConfigMapの両方がGrafanaコンテナにマウントされ(それぞれ/tmp/initial/tmp/scripts)、コンテナコマンドラインは、初期パスワードをGrafanaサーバに安全に公開するために、これらの両方のオブジェクトを使用するように拡張されます。 コンテナコマンドラインを変更すると、一般的に初期パスワードがGrafanaサーバ環境に注入されるのを防ぐことができます。

設定

必須の設定はありません。すべてのチャートを一緒にデプロイすれば、すぐに動作するはずです。管理者認証情報はshared-secrets チャートで作成され、管理者ユーザー名はrootに設定されています。 Grafana の root ユーザーのパスワードは、次のコマンドで抽出できます:

kubectl get secret gitlab-grafana-initial-password -ojsonpath='{.data.password}' | base64 --decode ; echo

インストールコマンドラインオプション

パラメータ デフォルト 説明
ingress.tls {} GitLab cert managerがインストールされていない場合のIngress TLS設定のハッシュ化
ingress.annotations {} Grafana Ingressリソースに追加するアノテーション

ダッシュボードのサポート

Grafanaのダッシュボードは、デプロイされた名前空間内のConfigMapから自動的に検出されます。 ConfigMapがgitlab_grafana_dashboard ラベルをtrueに設定して作成されている場合、ConfigMap内のJSONエンコードされたダッシュボードがGrafanaにインポートされます。 このインポートは一度だけ行われ(Grafanaが再起動されたとき)、ダッシュボードへの変更はConfigMapに書き戻されません。

ユーザが作成したダッシュボードは、gitlab_grafana_dashboard ラベルを使用して ConfigMap を作成し、ConfigMap を自分で管理することでインポートできます。

データソースのサポート

データソースは、gitlab_grafana_datasource ラベルを追加することで、ダッシュボードと同じ方法で作成できます。このチャートでは、埋め込まれた Prometheus メトリクスを使用するように Grafana に指示する ConfigMap を追加します。