diff --git a/README.md b/README.md index bbc0d0a76dcdc9cdf2ab550422cd048eeccc9692..83b1a6359ea532d57004c995e3b465f9bac72f8f 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,8 @@ In order to update the kube-prometheus dependency, simply use the jsonnet-bundle e.g. of how to compile the manifests: `./build.sh example.jsonnet` +> before compiling, install `gojsontoyaml` tool with `go get github.com/brancz/gojsontoyaml` + Here's [example.jsonnet](example.jsonnet): [embedmd]:# (example.jsonnet) @@ -279,6 +281,7 @@ These are the available fields with their respective default values: names: 'k8s', replicas: 2, rules: {}, + enableAdminApi: 'true', }, alertmanager+:: { diff --git a/example.jsonnet b/example.jsonnet index 2a10509c18e5087cf16939eaa9e9534932a50008..aa4c50f1e2aa0e97c88a28b01f8e75bc5b76648c 100644 --- a/example.jsonnet +++ b/example.jsonnet @@ -2,6 +2,10 @@ local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + { _config+:: { namespace: 'monitoring', }, + prometheus+:: { + name: 'k8s', + enableAdminApi: 'true', + }, }; { ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } + diff --git a/jsonnet/kube-prometheus/kube-prometheus.libsonnet b/jsonnet/kube-prometheus/kube-prometheus.libsonnet index 7dae5f38bd0587b5472f6aef8a4ec9e85aeaedf2..915d363f8b29305da94e63a1ee6c5ea9de53e81b 100644 --- a/jsonnet/kube-prometheus/kube-prometheus.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus.libsonnet @@ -82,6 +82,8 @@ local configMapList = k.core.v1.configMapList; prometheusSelector: 'job="prometheus-k8s"', prometheusOperatorSelector: 'job="prometheus-operator"', + enableAdminApi: 'true', + jobs: { Kubelet: $._config.kubeletSelector, KubeScheduler: $._config.kubeSchedulerSelector, @@ -97,6 +99,7 @@ local configMapList = k.core.v1.configMapList; prometheus+:: { rules: $.prometheusRules + $.prometheusAlerts, + enableAdminApi: $._config.enableAdminApi, }, grafana+:: { diff --git a/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet b/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet index 89d55bcc8abe0b540b3bebb0c0498bb8dcd8fec8..047a6dd072889ae6366231ebb14aa8d5c30fc034 100644 --- a/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet +++ b/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet @@ -18,6 +18,7 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet'; prometheus+:: { name: 'k8s', + enableAdminApi: 'true', replicas: 2, rules: {}, renderedRules: {}, @@ -168,6 +169,7 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet'; replicas: $._config.prometheus.replicas, version: $._config.versions.prometheus, baseImage: $._config.imageRepos.prometheus, + enableAdminApi: $._config.prometheus.enableAdminApi, serviceAccountName: 'prometheus-' + $._config.prometheus.name, serviceMonitorSelector: {}, serviceMonitorNamespaceSelector: {}, diff --git a/manifests/0prometheus-operator-0prometheusCustomResourceDefinition.yaml b/manifests/0prometheus-operator-0prometheusCustomResourceDefinition.yaml index 627ce96d4be312855b1265ef59dc52008562215b..a9b3cdfa68166fd1881843deaab0a8934b3c59c0 100644 --- a/manifests/0prometheus-operator-0prometheusCustomResourceDefinition.yaml +++ b/manifests/0prometheus-operator-0prometheusCustomResourceDefinition.yaml @@ -1538,6 +1538,9 @@ spec: required: - name type: array + enableAdminApi: + description: Enable access to prometheus web admin API. More info: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis + type: boolean evaluationInterval: description: Interval between consecutive evaluations. type: string diff --git a/manifests/prometheus-prometheus.yaml b/manifests/prometheus-prometheus.yaml index c16914b09a4bf8dbd1b368f52d96c4cd8db93832..18bdcf748aeb844770c7ec04283e3e43c336c97d 100644 --- a/manifests/prometheus-prometheus.yaml +++ b/manifests/prometheus-prometheus.yaml @@ -12,6 +12,7 @@ spec: namespace: monitoring port: web baseImage: quay.io/prometheus/prometheus + enableAdminApi: true nodeSelector: beta.kubernetes.io/os: linux replicas: 2