diff --git a/README.md b/README.md index 794063bd838eb47c963dc848accadc522894a223..b6e7624f916a111246614abb9604556f2d2d8059 100644 --- a/README.md +++ b/README.md @@ -360,57 +360,28 @@ Jsonnet is a turing complete language, any logic can be reflected in it. It also ### Cluster Creation Tools -A common example is that not all Kubernetes clusters are created exactly the same way, meaning the configuration to monitor them may be slightly different. For [kubeadm](examples/jsonnet-snippets/kubeadm.jsonnet), [bootkube](examples/jsonnet-snippets/bootkube.jsonnet), [kops](examples/jsonnet-snippets/kops.jsonnet) and [kubespray](examples/jsonnet-snippets/kubespray.jsonnet) clusters there are mixins available to easily configure these: +A common example is that not all Kubernetes clusters are created exactly the same way, meaning the configuration to monitor them may be slightly different. For the following clusters there are mixins available to easily configure them: -kubeadm: +* aws +* bootkube +* eks +* gke +* kops-coredns +* kubeadm +* kubespray -[embedmd]:# (examples/jsonnet-snippets/kubeadm.jsonnet) -```jsonnet -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/kubeadm.libsonnet') -``` - -bootkube: - -[embedmd]:# (examples/jsonnet-snippets/bootkube.jsonnet) -```jsonnet -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/bootkube.libsonnet') -``` - -kops: - -[embedmd]:# (examples/jsonnet-snippets/kops.jsonnet) -```jsonnet -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/kops.libsonnet') -``` - -kops with CoreDNS: - -If your kops cluster is using CoreDNS, there is an additional mixin to import. +These mixins are selectable via the `platform` field of kubePrometheus: -[embedmd]:# (examples/jsonnet-snippets/kops-coredns.jsonnet) +[embedmd]:# (examples/jsonnet-snippets/platform.jsonnet) ```jsonnet (import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/kops.libsonnet') + -(import 'kube-prometheus/platforms/kops-coredns.libsonnet') -``` - -kubespray: - -[embedmd]:# (examples/jsonnet-snippets/kubespray.jsonnet) -```jsonnet -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/kubespray.libsonnet') -``` - -aws: - -[embedmd]:# (examples/jsonnet-snippets/aws.jsonnet) -```jsonnet -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/aws.libsonnet') +{ + values+:: { + kubePrometheus+: { + platform: 'example-platform', + }, + }, +} ``` ### Internal Registry diff --git a/docs/EKS-cni-support.md b/docs/EKS-cni-support.md index 266d5fcbab1e7402765c8b4f142283b6ba25ca1c..1cd8b146471674287f0c6690e59b93829a7b1f9a 100644 --- a/docs/EKS-cni-support.md +++ b/docs/EKS-cni-support.md @@ -7,12 +7,14 @@ One fatal issue that can occur is that you run out of IP addresses in your eks c You can monitor the `awscni` using kube-promethus with : [embedmd]:# (../examples/eks-cni-example.jsonnet) ```jsonnet -local kp = (import 'kube-prometheus/main.libsonnet') + - (import 'kube-prometheus/platforms/eks.libsonnet') + { +local kp = (import 'kube-prometheus/main.libsonnet') + { values+:: { common+: { namespace: 'monitoring', }, + kubePrometheus+: { + platform: 'eks', + }, }, kubernetesControlPlane+: { prometheusRuleEksCNI+: { diff --git a/examples/eks-cni-example.jsonnet b/examples/eks-cni-example.jsonnet index c92236fe4810a5cbd343e40dd94652cd4209ba1f..1b37af501225eb85a49b1eb40fe55e4aa6b8a62a 100644 --- a/examples/eks-cni-example.jsonnet +++ b/examples/eks-cni-example.jsonnet @@ -1,9 +1,11 @@ -local kp = (import 'kube-prometheus/main.libsonnet') + - (import 'kube-prometheus/platforms/eks.libsonnet') + { +local kp = (import 'kube-prometheus/main.libsonnet') + { values+:: { common+: { namespace: 'monitoring', }, + kubePrometheus+: { + platform: 'eks', + }, }, kubernetesControlPlane+: { prometheusRuleEksCNI+: { diff --git a/examples/jsonnet-snippets/aws.jsonnet b/examples/jsonnet-snippets/aws.jsonnet deleted file mode 100644 index 6eaca09ff8941bfabefc0a963566cc9316f0c395..0000000000000000000000000000000000000000 --- a/examples/jsonnet-snippets/aws.jsonnet +++ /dev/null @@ -1,2 +0,0 @@ -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/aws.libsonnet') diff --git a/examples/jsonnet-snippets/bootkube.jsonnet b/examples/jsonnet-snippets/bootkube.jsonnet deleted file mode 100644 index 3d9f3482f86cdcd48591ed4eb9bbf8d502ad78e6..0000000000000000000000000000000000000000 --- a/examples/jsonnet-snippets/bootkube.jsonnet +++ /dev/null @@ -1,2 +0,0 @@ -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/bootkube.libsonnet') diff --git a/examples/jsonnet-snippets/kops-coredns.jsonnet b/examples/jsonnet-snippets/kops-coredns.jsonnet deleted file mode 100644 index d1af478b73240a1d5585022b34f1b87f512f7023..0000000000000000000000000000000000000000 --- a/examples/jsonnet-snippets/kops-coredns.jsonnet +++ /dev/null @@ -1,3 +0,0 @@ -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/kops.libsonnet') + -(import 'kube-prometheus/platforms/kops-coredns.libsonnet') diff --git a/examples/jsonnet-snippets/kops.jsonnet b/examples/jsonnet-snippets/kops.jsonnet deleted file mode 100644 index 9271b993d38e35c0161e6d88fa1214c6a94e9518..0000000000000000000000000000000000000000 --- a/examples/jsonnet-snippets/kops.jsonnet +++ /dev/null @@ -1,2 +0,0 @@ -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/kops.libsonnet') diff --git a/examples/jsonnet-snippets/kubeadm.jsonnet b/examples/jsonnet-snippets/kubeadm.jsonnet deleted file mode 100644 index 0750b4b39bc1fb9ff6ce064da19cd0555edc60e7..0000000000000000000000000000000000000000 --- a/examples/jsonnet-snippets/kubeadm.jsonnet +++ /dev/null @@ -1,2 +0,0 @@ -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/kubeadm.libsonnet') diff --git a/examples/jsonnet-snippets/kubespray.jsonnet b/examples/jsonnet-snippets/kubespray.jsonnet deleted file mode 100644 index d9bb3bd51f4cd319b401d9d0062a7a38395dc79d..0000000000000000000000000000000000000000 --- a/examples/jsonnet-snippets/kubespray.jsonnet +++ /dev/null @@ -1,2 +0,0 @@ -(import 'kube-prometheus/main.libsonnet') + -(import 'kube-prometheus/platforms/kubespray.libsonnet') diff --git a/examples/jsonnet-snippets/platform.jsonnet b/examples/jsonnet-snippets/platform.jsonnet new file mode 100644 index 0000000000000000000000000000000000000000..a3ad9c3d8f924d7b0051350ab8e19ea6f0122397 --- /dev/null +++ b/examples/jsonnet-snippets/platform.jsonnet @@ -0,0 +1,8 @@ +(import 'kube-prometheus/main.libsonnet') + +{ + values+:: { + kubePrometheus+: { + platform: 'example-platform', + }, + }, +} diff --git a/examples/minikube.jsonnet b/examples/minikube.jsonnet index 87b88d6963625c5c5a03fb2304f4de217e418cff..c5a1bc685f8ebb0a4165571cec87fa8ecbbd64f1 100644 --- a/examples/minikube.jsonnet +++ b/examples/minikube.jsonnet @@ -1,6 +1,5 @@ local kp = (import 'kube-prometheus/main.libsonnet') + - (import 'kube-prometheus/platforms/kubeadm.libsonnet') + // Note that NodePort type services is likely not a good idea for your production use case, it is only used for demonstration purposes here. (import 'kube-prometheus/addons/node-ports.libsonnet') + { @@ -19,6 +18,9 @@ local kp = }, }, }, + kubePrometheus+: { + platform: 'kubeadm', + }, }, // For simplicity, each of the following values for 'externalUrl': diff --git a/jsonnet/kube-prometheus/platforms/README.md b/jsonnet/kube-prometheus/platforms/README.md index 8edeade6915b769ac40bdf84afeb57cafdf0fedd..45eb76d17a7d091c710455b4d8364f3b4668f8b1 100644 --- a/jsonnet/kube-prometheus/platforms/README.md +++ b/jsonnet/kube-prometheus/platforms/README.md @@ -1,18 +1,3 @@ # Adding a new platform specific configuration -Adding a new platform specific configuration requires to update the -[platforms.jsonnet](./platform.jsonnet) file by adding the platform to the list -of existing ones. - -This allow configuring the new platform in the following way: - -```jsonnet -(import 'kube-prometheus/main.libsonnet') + - { - values+:: { - kubePrometheus+: { - platform: 'example-platform', - } - } - } -``` +Adding a new platform specific configuration requires to update the [README](../../../README.md#cluster-creation-tools) and the [platforms.jsonnet](./platform.jsonnet) file by adding the platform to the list of existing ones. This allow the new platform to be discoverable and easily configurable by the users.