mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
[stable/prometheus-operator] Update defaults for scraping cluster components (#12292)
* Update defaults for scraping cluster components Signed-off-by: Vasily <vasily.sliouniaev@jet.com> * Remove custom scrape intervals These were not consistent in some cases (kubelet http vs https configuration). The best-practice for this is to allow the config to come from prometheus's default. Added configuration options to specify custom durations if overrides are desired Signed-off-by: Vasily <vasily.sliouniaev@jet.com> * Fix kubelet secure configuration relabellings Signed-off-by: Vasily <vasily.sliouniaev@jet.com> * Add hack/minikube Signed-off-by: Vasily <vasily.sliouniaev@jet.com> * Update README.md with changes to defaults Signed-off-by: Vasily <vasily.sliouniaev@jet.com> * chmod Signed-off-by: Vasily <vasily.sliouniaev@jet.com> * Fix up minikube Signed-off-by: Vasily <vasily.sliouniaev@jet.com> * Fix monitors when using defaults Signed-off-by: Vasily <vasily.sliouniaev@jet.com> * Update contributing.md Signed-off-by: Vasily <vasily.sliouniaev@jet.com>
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
50dee22585
commit
894bbe0ebf
@@ -1,8 +1,11 @@
|
||||
# Contributing Guidelines
|
||||
## How to contribute to this chart
|
||||
1. Fork this repository, develop and test your Chart.
|
||||
## How to contribute to this chart
|
||||
1. Fork this repository, develop and test your Chart.
|
||||
1. Bump the chart version for every change.
|
||||
1. Ensure PR title has the prefix `[stable/prometheus-operator]`
|
||||
1. When making changes to values.yaml, update the files in `ci/` by running `hack/update-ci.sh`
|
||||
1. When making changes to rules or dashboards, see the README.md section on how to sync data from upstream repositories
|
||||
1. Check the `hack/minikube` folder has scripts to set up minikube and components of this chart that will allow all components to be scraped. You can use this configuration when validating your changes.
|
||||
1. Check for changes of RBAC rules.
|
||||
1. Check for changes in CRD specs.
|
||||
1. PR must pass the linter (`helm lint`)
|
||||
@@ -9,7 +9,7 @@ name: prometheus-operator
|
||||
sources:
|
||||
- https://github.com/coreos/prometheus-operator
|
||||
- https://coreos.com/operators/prometheus
|
||||
version: 4.3.6
|
||||
version: 5.0.0
|
||||
appVersion: 0.29.0
|
||||
home: https://github.com/coreos/prometheus-operator
|
||||
keywords:
|
||||
|
||||
@@ -139,6 +139,7 @@ The following tables list the configurable parameters of the prometheus-operator
|
||||
| `prometheusOperator.kubeletService.enabled` | If true, the operator will create and maintain a service for scraping kubelets | `true` |
|
||||
| `prometheusOperator.kubeletService.namespace` | Namespace to deploy kubelet service | `kube-system` |
|
||||
| `prometheusOperator.serviceMonitor.selfMonitor` | Enable monitoring of prometheus operator | `true` |
|
||||
| `prometheus.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `prometheusOperator.service.type` | Prometheus operator service type | `ClusterIP` |
|
||||
| `prometheusOperator.service.clusterIP` | Prometheus operator service clusterIP IP | `""` |
|
||||
| `prometheusOperator.service.nodePort` | Port to expose prometheus operator service on each node | `38080` |
|
||||
@@ -170,6 +171,7 @@ The following tables list the configurable parameters of the prometheus-operator
|
||||
| ----- | ----------- | ------ |
|
||||
| `prometheus.enabled` | Deploy prometheus | `true` |
|
||||
| `prometheus.serviceMonitor.selfMonitor` | Create a `serviceMonitor` to automatically monitor the prometheus instance | `true` |
|
||||
| `prometheus.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `prometheus.serviceAccount.create` | Create a default serviceaccount for prometheus to use | `true` |
|
||||
| `prometheus.serviceAccount.name` | Name for prometheus serviceaccount | `""` |
|
||||
| `prometheus.rbac.roleNamespaces` | Create role bindings in the specified namespaces, to allow Prometheus monitoring a role binding in the release namespace will always be created. | `["kube-system"]` |
|
||||
@@ -238,6 +240,7 @@ The following tables list the configurable parameters of the prometheus-operator
|
||||
| ----- | ----------- | ------ |
|
||||
| `alertmanager.enabled` | Deploy alertmanager | `true` |
|
||||
| `alertmanager.serviceMonitor.selfMonitor` | Create a `serviceMonitor` to automatically monitor the alartmanager instance | `true` |
|
||||
| `alertmanager.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `alertmanager.serviceAccount.create` | Create a `serviceAccount` for alertmanager | `true` |
|
||||
| `alertmanager.serviceAccount.name` | Name for Alertmanager service account | `""` |
|
||||
| `alertmanager.podDisruptionBudget.enabled` | If true, create a pod disruption budget for Alertmanager pods. The created resource cannot be modified once created - it must be deleted to perform a change | `true` |
|
||||
@@ -308,46 +311,55 @@ The following tables list the configurable parameters of the prometheus-operator
|
||||
| `kubeApiServer.tlsConfig.serverName` | Name of the server to use when validating TLS certificate | `kubernetes` |
|
||||
| `kubeApiServer.tlsConfig.insecureSkipVerify` | Skip TLS certificate validation when scraping | `false` |
|
||||
| `kubeApiServer.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus | `component` |
|
||||
| `kubeApiServer.serviceMonitor.selector` | The service selector | `{"matchLabels":{"component":"apiserver","provider":"kubernetes"}}`
|
||||
| `kubeApiServer.serviceMonitor.selector` | The service selector | `{"matchLabels":{"component":"apiserver","provider":"kubernetes"}}` |
|
||||
| `kubeApiServer.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `kubelet.enabled` | Deploy servicemonitor to scrape the kubelet service. See also `prometheusOperator.kubeletService` | `true` |
|
||||
| `kubelet.namespace` | Namespace where the kubelet is deployed. See also `prometheusOperator.kubeletService.namespace` | `kube-system` |
|
||||
| `kubelet.serviceMonitor.https` | Enable scraping of the kubelet over HTTPS. For more information, see https://github.com/coreos/prometheus-operator/issues/926 | `false` |
|
||||
| `kubelet.serviceMonitor.https` | Enable scraping of the kubelet over HTTPS. For more information, see https://github.com/coreos/prometheus-operator/issues/926 | `true` |
|
||||
| `kubelet.serviceMonitor.cAdvisorMetricRelabelings` | The `metric_relabel_configs` for scraping cAdvisor. | `` |
|
||||
| `kubelet.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `kubeControllerManager.enabled` | Deploy a `service` and `serviceMonitor` to scrape the Kubernetes controller-manager | `true` |
|
||||
| `kubeControllerManager.endpoints` | Endpoints where Controller-manager runs. Provide this if running Controller-manager outside the cluster | `[]` |
|
||||
| `kubeControllermanager.service.port` | Controller-manager port for the service runs on | `10252` |
|
||||
| `kubeControllermanager.service.targetPort` | Controller-manager targetPort for the service runs on | `10252` |
|
||||
| `kubeControllermanager.service.selector` | Controller-manager service selector | `{"k8s-app" : "kube-controller-manager" }` |
|
||||
| `kubeControllermanager.service.selector` | Controller-manager service selector | `{"component" : "kube-controller-manager" }` |
|
||||
| `kubeControllermanager.serviceMonitor.https` | Controller-manager service scrape over https | `false` |
|
||||
| `kubeControllermanager.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `coreDns.enabled` | Deploy coreDns scraping components. Use either this or kubeDns | true |
|
||||
| `coreDns.service.port` | CoreDns port | `9153` |
|
||||
| `coreDns.service.targetPort` | CoreDns targetPort | `9153` |
|
||||
| `coreDns.service.selector` | CoreDns service selector | `{"k8s-app" : "coredns" }`
|
||||
| `coreDns.service.selector` | CoreDns service selector | `{"k8s-app" : "kube-dns" }` |
|
||||
| `coreDns.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `kubeDns.enabled` | Deploy kubeDns scraping components. Use either this or coreDns| `false` |
|
||||
| `kubeDns.service.selector` | kubeDns service selector | `{"k8s-app" : "kube-dns" }` |
|
||||
| `kubeDns.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `kubeEtcd.enabled` | Deploy components to scrape etcd | `true` |
|
||||
| `kubeEtcd.endpoints` | Endpoints where etcd runs. Provide this if running etcd outside the cluster | `[]` |
|
||||
| `kubeEtcd.service.port` | Etcd port | `4001` |
|
||||
| `kubeEtcd.service.targetPort` | Etcd targetPort | `4001` |
|
||||
| `kubeEtcd.service.selector` | Selector for etcd if running inside the cluster | `{"k8s-app":"etcd-server"}` |
|
||||
| `kubeEtcd.service.selector` | Selector for etcd if running inside the cluster | `{"component":"etcd"}` |
|
||||
| `kubeEtcd.serviceMonitor.scheme` | Etcd servicemonitor scheme | `http` |
|
||||
| `kubeEtcd.serviceMonitor.insecureSkipVerify` | Skip validating etcd TLS certificate when scraping | `false` |
|
||||
| `kubeEtcd.serviceMonitor.serverName` | Etcd server name to validate certificate against when scraping | `""` |
|
||||
| `kubeEtcd.serviceMonitor.caFile` | Certificate authority file to use when connecting to etcd. See `prometheus.prometheusSpec.secrets` | `""` |
|
||||
| `kubeEtcd.serviceMonitor.certFile` | Client certificate file to use when connecting to etcd. See `prometheus.prometheusSpec.secrets` | `""` |
|
||||
| `kubeEtcd.serviceMonitor.keyFile` | Client key file to use when connecting to etcd. See `prometheus.prometheusSpec.secrets` | `""` |
|
||||
| `kubeEtcd.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `kubeScheduler.enabled` | Deploy a `service` and `serviceMonitor` to scrape the Kubernetes scheduler | `true` |
|
||||
| `kubeScheduler.endpoints` | Endpoints where scheduler runs. Provide this if running scheduler outside the cluster | `[]` |
|
||||
| `kubeScheduler.service.port` | Scheduler port for the service runs on | `10251` |
|
||||
| `kubeScheduler.service.targetPort` | Scheduler targetPort for the service runs on | `10251` |
|
||||
| `kubeScheduler.service.selector` | Scheduler service selector | `{"k8s-app" : "kube-scheduler" }` |
|
||||
| `kubeScheduler.service.selector` | Scheduler service selector | `{"component" : "kube-scheduler" }` |
|
||||
| `kubeScheduler.serviceMonitor.https` | Scheduler service scrape over https | `false` |
|
||||
| `kubeScheduler.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `kubeStateMetrics.enabled` | Deploy the `kube-state-metrics` chart and configure a servicemonitor to scrape | `true` |
|
||||
| `kubeStateMetrics.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `kube-state-metrics.rbac.create` | Create RBAC components in kube-state-metrics. See `global.rbac.create` | `true` |
|
||||
| `kube-state-metrics.podSecurityPolicy.enabled` | Create pod security policy resource for kube-state-metrics. | `true` |
|
||||
| `nodeExporter.enabled` | Deploy the `prometheus-node-exporter` and scrape it | `true` |
|
||||
| `nodeExporter.jobLabel` | The name of the label on the target service to use as the job name in prometheus. See `prometheus-node-exporter.podLabels.jobLabel=node-exporter` default | `jobLabel` |
|
||||
| `nodeExporter.serviceMonitor.metricRelabelings` | Metric relablings for the `prometheus-node-exporter` ServiceMonitor | `[]` |
|
||||
| `nodeExporter.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `nil` |
|
||||
| `prometheus-node-exporter.podLabels` | Additional labels for pods in the DaemonSet | `{"jobLabel":"node-exporter"}` |
|
||||
| `prometheus-node-exporter.extraArgs` | Additional arguments for the node exporter container | `["--collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+)($|/)", "--collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$"]` |
|
||||
|
||||
|
||||
@@ -176,6 +176,9 @@ alertmanager:
|
||||
## If true, create a serviceMonitor for alertmanager
|
||||
##
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
selfMonitor: true
|
||||
|
||||
## Settings affecting alertmanagerSpec
|
||||
@@ -357,14 +360,8 @@ grafana:
|
||||
# configMap: certs-configmap
|
||||
# readOnly: true
|
||||
|
||||
## If true, create a serviceMonitor for grafana
|
||||
##
|
||||
serviceMonitor:
|
||||
selfMonitor: true
|
||||
|
||||
## Configure additional grafana datasources
|
||||
## ref: http://docs.grafana.org/administration/provisioning/#datasources
|
||||
##
|
||||
additionalDataSources: []
|
||||
# - name: prometheus-sample
|
||||
# access: proxy
|
||||
@@ -379,6 +376,13 @@ grafana:
|
||||
# url: https://prometheus.svc:9090
|
||||
# version: 1
|
||||
|
||||
## If true, create a serviceMonitor for grafana
|
||||
##
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
selfMonitor: true
|
||||
|
||||
## Component scraping the kube api server
|
||||
##
|
||||
@@ -401,6 +405,9 @@ kubeApiServer:
|
||||
# replacement: kubernetes.default.svc:443
|
||||
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
jobLabel: component
|
||||
selector:
|
||||
matchLabels:
|
||||
@@ -414,11 +421,18 @@ kubelet:
|
||||
namespace: kube-system
|
||||
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
|
||||
## Enable scraping the kubelet over https. For requirements to enable this see
|
||||
## https://github.com/coreos/prometheus-operator/issues/926
|
||||
##
|
||||
https: false
|
||||
# cAdvisorMetricRelabelings:
|
||||
https: true
|
||||
|
||||
## Metric relabellings to apply to samples before ingestion
|
||||
##
|
||||
cAdvisorMetricRelabelings: []
|
||||
# - sourceLabels: [__name__, image]
|
||||
# separator: ;
|
||||
# regex: container_([a-z_]+);
|
||||
@@ -449,7 +463,18 @@ kubeControllerManager:
|
||||
port: 10252
|
||||
targetPort: 10252
|
||||
selector:
|
||||
k8s-app: kube-controller-manager
|
||||
component: kube-controller-manager
|
||||
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
|
||||
## Enable scraping kube-controller-manager over https.
|
||||
## Requires proper certs (not self-signed) and delegated authentication/authorization checks
|
||||
##
|
||||
https: false
|
||||
|
||||
## Component scraping coreDns. Use either this or kubeDns
|
||||
##
|
||||
coreDns:
|
||||
@@ -458,7 +483,11 @@ coreDns:
|
||||
port: 9153
|
||||
targetPort: 9153
|
||||
selector:
|
||||
k8s-app: coredns
|
||||
k8s-app: kube-dns
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
|
||||
## Component scraping kubeDns. Use either this or coreDns
|
||||
##
|
||||
@@ -467,6 +496,10 @@ kubeDns:
|
||||
service:
|
||||
selector:
|
||||
k8s-app: kube-dns
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
## Component scraping etcd
|
||||
##
|
||||
kubeEtcd:
|
||||
@@ -482,10 +515,10 @@ kubeEtcd:
|
||||
## Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used
|
||||
##
|
||||
service:
|
||||
port: 4001
|
||||
targetPort: 4001
|
||||
port: 2379
|
||||
targetPort: 2379
|
||||
selector:
|
||||
k8s-app: etcd-server
|
||||
component: etcd
|
||||
|
||||
## Configure secure access to the etcd cluster by loading a secret into prometheus and
|
||||
## specifying security configuration below. For example, with a secret named etcd-client-cert
|
||||
@@ -499,6 +532,9 @@ kubeEtcd:
|
||||
## keyFile: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
|
||||
##
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
scheme: http
|
||||
insecureSkipVerify: false
|
||||
serverName: ""
|
||||
@@ -525,12 +561,25 @@ kubeScheduler:
|
||||
port: 10251
|
||||
targetPort: 10251
|
||||
selector:
|
||||
k8s-app: kube-scheduler
|
||||
component: kube-scheduler
|
||||
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
## Enable scraping kube-controller-manager over https.
|
||||
## Requires proper certs (not self-signed) and delegated authentication/authorization checks
|
||||
##
|
||||
https: false
|
||||
|
||||
## Component scraping kube state metrics
|
||||
##
|
||||
kubeStateMetrics:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
|
||||
## Configuration for kube-state-metrics subchart
|
||||
##
|
||||
@@ -549,10 +598,14 @@ nodeExporter:
|
||||
##
|
||||
jobLabel: jobLabel
|
||||
|
||||
serviceMonitor: {}
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
|
||||
## metric relabel configs to apply to samples before ingestion.
|
||||
##
|
||||
# metricRelabelings:
|
||||
metricRelabelings: []
|
||||
# - sourceLabels: [__name__]
|
||||
# separator: ;
|
||||
# regex: ^node_mountstats_nfs_(event|operations|transport)_.+
|
||||
@@ -653,6 +706,9 @@ prometheusOperator:
|
||||
## Create a servicemonitor for the operator
|
||||
##
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
selfMonitor: true
|
||||
|
||||
## Resource limits & requests
|
||||
@@ -812,6 +868,9 @@ prometheus:
|
||||
# - prometheus.example.com
|
||||
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
selfMonitor: true
|
||||
|
||||
## Settings affecting prometheusSpec
|
||||
@@ -885,7 +944,6 @@ prometheus:
|
||||
## QuerySpec defines the query command line flags when starting Prometheus.
|
||||
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#queryspec
|
||||
##
|
||||
|
||||
query: {}
|
||||
|
||||
## Namespaces to be selected for PrometheusRules discovery.
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
The configuration in this folder lets you locally test the setup on minikube. Use cmd.sh to set up components and hack a working etcd scrape configuration. Run the commands in the sequence listed in the script to get a local working minikube cluster.
|
||||
|
||||
If you're using windows, there's a commented-out section that you should add to the minikube command.
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
HELM_RELEASE_NAME=prom-op
|
||||
CHART=./
|
||||
NAMESPACE=monitoring
|
||||
VALUES_FILES=./hack/minikube/values.yaml
|
||||
|
||||
if [ "$1" = "reset-minikube" ]; then
|
||||
minikube delete
|
||||
minikube start \
|
||||
#--vm-driver hyperv --hyperv-virtual-switch "Default Switch" \
|
||||
--kubernetes-version=v1.13.3 \
|
||||
--memory=4096 --bootstrapper=kubeadm \
|
||||
--extra-config=kubelet.authentication-token-webhook=true \
|
||||
--extra-config=kubelet.authorization-mode=Webhook \
|
||||
--extra-config=scheduler.address=0.0.0.0 \
|
||||
--extra-config=controller-manager.address=0.0.0.0
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "init-helm" ]; then
|
||||
helm init
|
||||
helm repo update
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "init-etcd-secret" ]; then
|
||||
kubectl create namespace monitoring
|
||||
kubectl delete secret etcd-certs -nmonitoring
|
||||
kubectl create secret generic etcd-certs -nmonitoring \
|
||||
--from-literal=ca.crt="$(kubectl exec kube-apiserver-minikube -nkube-system -- cat /var/lib/minikube/certs/etcd/ca.crt)" \
|
||||
--from-literal=client.crt="$(kubectl exec kube-apiserver-minikube -nkube-system -- cat /var/lib/minikube/certs/apiserver-etcd-client.crt)" \
|
||||
--from-literal=client.key="$(kubectl exec kube-apiserver-minikube -nkube-system -- cat /var/lib/minikube/certs/apiserver-etcd-client.key)"
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
if [ "$1" = "prometheus-operator" ]; then
|
||||
helm upgrade $HELM_RELEASE_NAME $CHART \
|
||||
--namespace $NAMESPACE \
|
||||
--values $VALUES_FILES \
|
||||
--set grafana.podAnnotations.redeploy-hack="$(cat /proc/sys/kernel/random/uuid)" \
|
||||
--install --debug
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "port-forward" ]; then
|
||||
killall kubectl &>/dev/null
|
||||
kubectl port-forward service/prom-op-prometheus-operato-prometheus 9090 &>/dev/null &
|
||||
kubectl port-forward service/prom-op-prometheus-operato-alertmanager 9093 &>/dev/null &
|
||||
kubectl port-forward service/prom-op-grafana 3000:80 &>/dev/null &
|
||||
echo "Started port-forward commands"
|
||||
echo "localhost:9090 - prometheus"
|
||||
echo "localhost:9093 - alertmanager"
|
||||
echo "localhost:3000 - grafana"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
Usage:
|
||||
install.sh <COMMAND>
|
||||
|
||||
Commands:
|
||||
reset-minikube - resets minikube with values suitable for running prometheus operator
|
||||
the normal installation will not allow scraping of the kubelet,
|
||||
scheduler or controller-manager components
|
||||
init-helm - initialize helm and update repository so that we can install
|
||||
the prometheus-operator chart. This has to be run only once after
|
||||
a minikube installation is done
|
||||
init-etcd-secret - pulls the certs used to access etcd from the api server and creates
|
||||
a secret in the monitoring namespace with them. The values files
|
||||
in the install command assume that this secret exists and is valid.
|
||||
If not, then prometheus will not start
|
||||
prometheus-operator - install or upgrade the prometheus operator chart in the cluster
|
||||
port-forward - starts port-forwarding for prometheus, alertmanager, grafana
|
||||
localhost:9090 - prometheus
|
||||
localhost:9093 - alertmanager
|
||||
localhost:3000 - grafana
|
||||
EOF
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
prometheus:
|
||||
prometheusSpec:
|
||||
secrets: [etcd-certs]
|
||||
kubeEtcd:
|
||||
serviceMonitor:
|
||||
scheme: https
|
||||
caFile: /etc/prometheus/secrets/etcd-certs/ca.crt
|
||||
certFile: /etc/prometheus/secrets/etcd-certs/client.crt
|
||||
keyFile: /etc/prometheus/secrets/etcd-certs/client.key
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
cat values.yaml | sed 's/cleanupCustomResource: false/cleanupCustomResource: true/' > ci/test-values.yaml
|
||||
@@ -16,6 +16,8 @@ spec:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: web
|
||||
interval: 30s
|
||||
{{- if .Values.alertmanager.serviceMonitor.interval }}
|
||||
interval: {{ .Values.alertmanager.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
path: "{{ trimSuffix "/" .Values.alertmanager.alertmanagerSpec.routePrefix }}/metrics"
|
||||
{{- end }}
|
||||
|
||||
@@ -17,6 +17,8 @@ spec:
|
||||
- "kube-system"
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
interval: 15s
|
||||
{{- if .Values.coreDns.serviceMonitor.interval}}
|
||||
interval: {{ .Values.coreDns.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
||||
{{- end }}
|
||||
|
||||
@@ -9,7 +9,9 @@ metadata:
|
||||
spec:
|
||||
endpoints:
|
||||
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
||||
interval: 30s
|
||||
{{- if .Values.kubeApiServer.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubeApiServer.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
port: https
|
||||
scheme: https
|
||||
{{- if .Values.kubeApiServer.relabelings }}
|
||||
|
||||
+3
-1
@@ -17,7 +17,9 @@ spec:
|
||||
- "kube-system"
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
interval: 15s
|
||||
{{- if .Values.kubeControllerManager.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubeControllerManager.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
||||
{{- if .Values.kubeControllerManager.serviceMonitor.https }}
|
||||
scheme: https
|
||||
|
||||
@@ -17,9 +17,13 @@ spec:
|
||||
- "kube-system"
|
||||
endpoints:
|
||||
- port: http-metrics-dnsmasq
|
||||
interval: 15s
|
||||
{{- if .Values.kubeDns.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubeDns.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
||||
- port: http-metrics-skydns
|
||||
interval: 15s
|
||||
{{- if .Values.kubeDns.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubeDns.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
||||
{{- end }}
|
||||
|
||||
@@ -17,7 +17,9 @@ spec:
|
||||
- "kube-system"
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
interval: 15s
|
||||
{{- if .Values.kubeEtcd.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubeEtcd.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
||||
{{- if eq .Values.kubeEtcd.serviceMonitor.scheme "https" }}
|
||||
scheme: https
|
||||
|
||||
@@ -17,7 +17,9 @@ spec:
|
||||
- "kube-system"
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
interval: 15s
|
||||
{{- if .Values.kubeScheduler.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubeScheduler.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
||||
{{- if .Values.kubeScheduler.serviceMonitor.https }}
|
||||
scheme: https
|
||||
|
||||
+4
-2
@@ -9,8 +9,10 @@ metadata:
|
||||
spec:
|
||||
jobLabel: app
|
||||
endpoints:
|
||||
- interval: 30s
|
||||
port: http
|
||||
- port: http
|
||||
{{- if .Values.kubeStateMetrics.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubeStateMetrics.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
honorLabels: true
|
||||
selector:
|
||||
matchLabels:
|
||||
|
||||
@@ -11,7 +11,9 @@ spec:
|
||||
{{- if .Values.kubelet.serviceMonitor.https }}
|
||||
- port: https-metrics
|
||||
scheme: https
|
||||
interval: 15s
|
||||
{{- if .Values.kubelet.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubelet.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
tlsConfig:
|
||||
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
||||
insecureSkipVerify: true
|
||||
@@ -20,19 +22,29 @@ spec:
|
||||
- port: https-metrics
|
||||
scheme: https
|
||||
path: /metrics/cadvisor
|
||||
interval: 30s
|
||||
{{- if .Values.kubelet.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubelet.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
honorLabels: true
|
||||
tlsConfig:
|
||||
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
||||
insecureSkipVerify: true
|
||||
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
||||
{{- if .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{ toYaml .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings | indent 4 }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
- port: http-metrics
|
||||
interval: 30s
|
||||
{{- if .Values.kubelet.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubelet.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
honorLabels: true
|
||||
- port: http-metrics
|
||||
path: /metrics/cadvisor
|
||||
interval: 30s
|
||||
{{- if .Values.kubelet.serviceMonitor.interval }}
|
||||
interval: {{ .Values.kubelet.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
honorLabels: true
|
||||
{{- if .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings }}
|
||||
metricRelabelings:
|
||||
|
||||
@@ -14,7 +14,9 @@ spec:
|
||||
release: {{ .Release.Name }}
|
||||
endpoints:
|
||||
- port: metrics
|
||||
interval: 30s
|
||||
{{- if .Values.nodeExporter.serviceMonitor.interval }}
|
||||
interval: {{ .Values.nodeExporter.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.nodeExporter.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{ toYaml .Values.nodeExporter.serviceMonitor.metricRelabelings | indent 4 }}
|
||||
|
||||
@@ -16,6 +16,8 @@ spec:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: service
|
||||
interval: 30s
|
||||
{{- if .Values.grafana.serviceMonitor.interval }}
|
||||
interval: {{ .Values.grafana.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
path: "{{ trimSuffix "/" .Values.grafana.ingress.path }}/metrics"
|
||||
{{- end }}
|
||||
|
||||
@@ -10,6 +10,9 @@ spec:
|
||||
endpoints:
|
||||
- port: http
|
||||
honorLabels: true
|
||||
{{- if .Values.prometheusOperator.serviceMonitor.interval }}
|
||||
interval: {{ .Values.prometheusOperator.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "prometheus-operator.name" . }}-operator
|
||||
|
||||
@@ -16,6 +16,8 @@ spec:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: web
|
||||
interval: 30s
|
||||
{{- if .Values.prometheus.serviceMonitor.interval }}
|
||||
interval: {{ .Values.prometheus.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
path: "{{ trimSuffix "/" .Values.prometheus.prometheusSpec.routePrefix }}/metrics"
|
||||
{{- end }}
|
||||
|
||||
@@ -176,6 +176,9 @@ alertmanager:
|
||||
## If true, create a serviceMonitor for alertmanager
|
||||
##
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
selfMonitor: true
|
||||
|
||||
## Settings affecting alertmanagerSpec
|
||||
@@ -376,6 +379,9 @@ grafana:
|
||||
## If true, create a serviceMonitor for grafana
|
||||
##
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
selfMonitor: true
|
||||
|
||||
## Component scraping the kube api server
|
||||
@@ -399,6 +405,9 @@ kubeApiServer:
|
||||
# replacement: kubernetes.default.svc:443
|
||||
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
jobLabel: component
|
||||
selector:
|
||||
matchLabels:
|
||||
@@ -412,11 +421,18 @@ kubelet:
|
||||
namespace: kube-system
|
||||
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
|
||||
## Enable scraping the kubelet over https. For requirements to enable this see
|
||||
## https://github.com/coreos/prometheus-operator/issues/926
|
||||
##
|
||||
https: false
|
||||
# cAdvisorMetricRelabelings:
|
||||
https: true
|
||||
|
||||
## Metric relabellings to apply to samples before ingestion
|
||||
##
|
||||
cAdvisorMetricRelabelings: []
|
||||
# - sourceLabels: [__name__, image]
|
||||
# separator: ;
|
||||
# regex: container_([a-z_]+);
|
||||
@@ -447,9 +463,13 @@ kubeControllerManager:
|
||||
port: 10252
|
||||
targetPort: 10252
|
||||
selector:
|
||||
k8s-app: kube-controller-manager
|
||||
component: kube-controller-manager
|
||||
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
|
||||
## Enable scraping kube-controller-manager over https.
|
||||
## Requires proper certs (not self-signed) and delegated authentication/authorization checks
|
||||
##
|
||||
@@ -463,7 +483,11 @@ coreDns:
|
||||
port: 9153
|
||||
targetPort: 9153
|
||||
selector:
|
||||
k8s-app: coredns
|
||||
k8s-app: kube-dns
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
|
||||
## Component scraping kubeDns. Use either this or coreDns
|
||||
##
|
||||
@@ -472,6 +496,10 @@ kubeDns:
|
||||
service:
|
||||
selector:
|
||||
k8s-app: kube-dns
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
## Component scraping etcd
|
||||
##
|
||||
kubeEtcd:
|
||||
@@ -487,10 +515,10 @@ kubeEtcd:
|
||||
## Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used
|
||||
##
|
||||
service:
|
||||
port: 4001
|
||||
targetPort: 4001
|
||||
port: 2379
|
||||
targetPort: 2379
|
||||
selector:
|
||||
k8s-app: etcd-server
|
||||
component: etcd
|
||||
|
||||
## Configure secure access to the etcd cluster by loading a secret into prometheus and
|
||||
## specifying security configuration below. For example, with a secret named etcd-client-cert
|
||||
@@ -504,6 +532,9 @@ kubeEtcd:
|
||||
## keyFile: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
|
||||
##
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
scheme: http
|
||||
insecureSkipVerify: false
|
||||
serverName: ""
|
||||
@@ -530,9 +561,12 @@ kubeScheduler:
|
||||
port: 10251
|
||||
targetPort: 10251
|
||||
selector:
|
||||
k8s-app: kube-scheduler
|
||||
component: kube-scheduler
|
||||
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
## Enable scraping kube-controller-manager over https.
|
||||
## Requires proper certs (not self-signed) and delegated authentication/authorization checks
|
||||
##
|
||||
@@ -542,6 +576,10 @@ kubeScheduler:
|
||||
##
|
||||
kubeStateMetrics:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
|
||||
## Configuration for kube-state-metrics subchart
|
||||
##
|
||||
@@ -560,10 +598,14 @@ nodeExporter:
|
||||
##
|
||||
jobLabel: jobLabel
|
||||
|
||||
serviceMonitor: {}
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
|
||||
## metric relabel configs to apply to samples before ingestion.
|
||||
##
|
||||
# metricRelabelings:
|
||||
metricRelabelings: []
|
||||
# - sourceLabels: [__name__]
|
||||
# separator: ;
|
||||
# regex: ^node_mountstats_nfs_(event|operations|transport)_.+
|
||||
@@ -664,6 +706,9 @@ prometheusOperator:
|
||||
## Create a servicemonitor for the operator
|
||||
##
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
selfMonitor: true
|
||||
|
||||
## Resource limits & requests
|
||||
@@ -823,6 +868,9 @@ prometheus:
|
||||
# - prometheus.example.com
|
||||
|
||||
serviceMonitor:
|
||||
## Scrape interval. If not set, the Prometheus default scrape interval is used.
|
||||
##
|
||||
interval: ""
|
||||
selfMonitor: true
|
||||
|
||||
## Settings affecting prometheusSpec
|
||||
|
||||
Reference in New Issue
Block a user