やりたいこと
Operator版のPrometheusにて利用されているスクレイプ構成をデフォルト状態から変更する。
尚、デフォルト構成ファイルの実体はPrometheusのPodが展開されているnamespaceのsecretで定義されている。
環境情報
quay.io/prometheus/prometheus uay.io/prometheus-operator/prometheus-config-reloader:v0.47.0
やり方
Additional Scrape Configurationを利用する。
以下コマンドでデフォルトに入っている設定を確認した上で
$ oc extract secret/prometheus-test --confirm
追加する部分を表現した以下のようなYAMLを用意して
$ cat prometheus-additional.yaml - job_name: openshift-monitoring/node-exporter/0 honor_labels: false kubernetes_sd_configs: - role: endpoints ...
このファイルをSecret化し、そのSecretをnameで指定する。
kind: Prometheus ... spec: additionalScrapeConfigs: name: additional-scrape-configs key: prometheus-additional.yaml
Podを再起動すると設定が反映され、PrometheusのサービスからStatus→ConfigrationとGUI操作をすると変更点が追記された構成が確認できる。
以下、補足です。
補足
以下コマンドで設定ファイルを取り出した後に
$ oc extract secret/prometheus-test --confirm
同ファイルに追記をした上でSecretとして再作成しても自動的に書き戻されてしまいます。
$ oc create secret generic prometheus-test --from-file prometheus.yaml.gz
これはOpenshiftのGUI上から操作をすると一目瞭然で以下のようにPrometheus側にて強制的に書き換えを戻していることが原因です。
This resource is managed by Prometheus xx and any modifications may be overwritten. Edit the managing resource to preserve changes.
よって同じようにSecretを削除しても自動的に復旧します。
以上、ご参考になれば幸いです。