diff --git a/services/monitoring/deploy/prometheus/helm-release.yaml b/services/monitoring/deploy/prometheus/helm-release.yaml new file mode 100644 index 0000000..7535402 --- /dev/null +++ b/services/monitoring/deploy/prometheus/helm-release.yaml @@ -0,0 +1,19 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: prometheus +spec: + releaseName: prometheus + interval: 1m + chart: + spec: + chart: kube-prometheus-stack + version: 86.x.x + sourceRef: + kind: HelmRepository + name: prometheus + interval: 40h + valuesFrom: + - kind: Secret + name: prometheus-stack-helm-values + valuesKey: values.yaml diff --git a/services/monitoring/deploy/prometheus/helm/helm-repo.yaml b/services/monitoring/deploy/prometheus/helm-repo.yaml similarity index 100% rename from services/monitoring/deploy/prometheus/helm/helm-repo.yaml rename to services/monitoring/deploy/prometheus/helm-repo.yaml diff --git a/services/monitoring/deploy/prometheus/helm/04-kubelet.yaml b/services/monitoring/deploy/prometheus/helm-values.yaml similarity index 65% rename from services/monitoring/deploy/prometheus/helm/04-kubelet.yaml rename to services/monitoring/deploy/prometheus/helm-values.yaml index 39fdf3c..27dd590 100644 --- a/services/monitoring/deploy/prometheus/helm/04-kubelet.yaml +++ b/services/monitoring/deploy/prometheus/helm-values.yaml @@ -1,5 +1,63 @@ -# Used file to testing new options and configurations -# Should be the laste file to be loaded +# values.yaml to install only Prometheus Operator and CRDs + +# Disable all components except the operator +defaultRules: + create: false + +alertmanager: + enabled: false + +grafana: + enabled: false + +kubeStateMetrics: + enabled: true + +nodeExporter: + enabled: true +prometheus-node-exporter: + prometheus: + monitor: + enabled: true + relabelings: + # https://github.com/dotdc/grafana-dashboards-kubernetes + - action: replace + sourceLabels: [__meta_kubernetes_pod_node_name] + targetLabel: nodename + +prometheus: + enabled: false + +coreDns: + enabled: false + +kubeControllerManager: + enabled: false + +kubeEtcd: + enabled: false + +kubeProxy: + enabled: false + +kubeScheduler: + enabled: false + + +prometheusOperator: + kubeletService: + enabled: true + enabled: true + createCustomResource: true + tls: + enabled: false + admissionWebhooks: + enabled: false + cleanupCustomResource: false + serviceMonitor: + selfMonitor: false + + kubelet: enabled: true namespace: kube-system @@ -8,13 +66,10 @@ kubelet: enabled: true ## Enable scraping /metrics from kubelet's service kubelet: true - cAdvisor: true - additionalLabels: - app.kubernetes.io/name: prometheus-kubelet # !important: selector used by agent - + probesMetricRelabelings: - targetLabel: cluster - replacement: casa + replacement: icarus - sourceLabels: [__name__, image] separator: ; @@ -34,9 +89,6 @@ kubelet: # # metrics_path is required to match upstream rules and charts cAdvisorRelabelings: - - targetLabel: cluster - replacement: casa - - action: replace sourceLabels: [__metrics_path__] targetLabel: metrics_path @@ -52,10 +104,6 @@ kubelet: # # probesRelabelings: - - - targetLabel: cluster - replacement: casa - - action: replace sourceLabels: [__metrics_path__] targetLabel: metrics_path @@ -68,9 +116,6 @@ kubelet: action: replace resourceRelabelings: - - - targetLabel: cluster - replacement: casa - action: replace sourceLabels: [__metrics_path__] diff --git a/services/monitoring/deploy/prometheus/helm/01-only-crd-and-operator.yaml b/services/monitoring/deploy/prometheus/helm/01-only-crd-and-operator.yaml deleted file mode 100644 index 388e3a7..0000000 --- a/services/monitoring/deploy/prometheus/helm/01-only-crd-and-operator.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# values.yaml to install only Prometheus Operator and CRDs - -# Disable all components except the operator -defaultRules: - create: false - -alertmanager: - enabled: false - -grafana: - enabled: false - -kubeStateMetrics: - enabled: false - -nodeExporter: - enabled: false - -prometheus: - enabled: false - -coreDns: - enabled: false - -kubeControllerManager: - enabled: false - -kubeEtcd: - enabled: false - -kubeProxy: - enabled: false - -kubeScheduler: - enabled: false - -prometheusOperator: - enabled: true - createCustomResource: true - tls: - enabled: false - admissionWebhooks: - enabled: false - cleanupCustomResource: false - serviceMonitor: - selfMonitor: false - kubeletService: - enabled: true - # requires manual creation of service #prom-kublet-service - nodeSelector: - role: worker-node - -# global: -# nodeSelector: -# dedicated: worker-node diff --git a/services/monitoring/deploy/prometheus/helm/02-kube-metrics.yaml b/services/monitoring/deploy/prometheus/helm/02-kube-metrics.yaml deleted file mode 100644 index a50aee6..0000000 --- a/services/monitoring/deploy/prometheus/helm/02-kube-metrics.yaml +++ /dev/null @@ -1,36 +0,0 @@ -kubeStateMetrics: - enabled: true - -kube-state-metrics: # ok tested! - podLabels: - role: worker-node - nodeSelector: - role: worker-node - prometheus: - monitor: - interval: "60s" - relabelings: - - targetLabel: cluster - replacement: casa - additionalLabels: - app.kubernetes.io/name: prometheus-kube-state-metrics # !important: selector used by agent - - -coreDns: # ok tested! - enabled: true - serviceMonitor: - relabelings: - - targetLabel: cluster - replacement: casa - additionalLabels: - app.kubernetes.io/name: prometheus-stack-coredns # !important: selector used by agent - -kubeApiServer: # ok tested! - enabled: true - serviceMonitor: - relabelings: - - targetLabel: cluster - replacement: casa - additionalLabels: - app.kubernetes.io/name: prometheus-stack-apiserver # !important: selector used by agent - diff --git a/services/monitoring/deploy/prometheus/helm/03-node-exporter.yaml b/services/monitoring/deploy/prometheus/helm/03-node-exporter.yaml deleted file mode 100644 index 562f04c..0000000 --- a/services/monitoring/deploy/prometheus/helm/03-node-exporter.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# Deploy node exporter as a daemonset to all nodes -nodeExporter: - enabled: true - - -# job node exporter -prometheus-node-exporter: - prometheus: - monitor: - enabled: true - interval: "60s" - relabelings: - # https://github.com/dotdc/grafana-dashboards-kubernetes - - action: replace - sourceLabels: [__meta_kubernetes_pod_node_name] - targetLabel: nodename - - # identification of cluster - - targetLabel: cluster - replacement: casa - - # it seams to be an timestamp can not be an label! - - action: labeldrop - regex: __meta_kubernetes_endpoints_annotation_endpoints_kubernetes_io_last_change_trigger_time - diff --git a/services/monitoring/deploy/prometheus/helm/helm-release.yaml b/services/monitoring/deploy/prometheus/helm/helm-release.yaml deleted file mode 100644 index 1094e4d..0000000 --- a/services/monitoring/deploy/prometheus/helm/helm-release.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2 -kind: HelmRelease -metadata: - name: prometheus-stack -spec: - releaseName: prometheus-stack - interval: 1m - chart: - spec: - chart: kube-prometheus-stack - version: 86.x.x - sourceRef: - kind: HelmRepository - name: prometheus-stack - interval: 40h - valuesFrom: - - kind: Secret - name: prometheus-stack-helm-values - valuesKey: 01-only-crd-and-operator.yaml - - kind: Secret - name: prometheus-stack-helm-values - valuesKey: 02-kube-metrics.yaml - - kind: Secret - name: prometheus-stack-helm-values - valuesKey: 03-node-exporter.yaml - - kind: Secret - name: prometheus-stack-helm-values - valuesKey: 04-kubelet.yaml \ No newline at end of file diff --git a/services/monitoring/deploy/prometheus/kustomization.yaml b/services/monitoring/deploy/prometheus/kustomization.yaml index 62ff0ef..82f93f9 100644 --- a/services/monitoring/deploy/prometheus/kustomization.yaml +++ b/services/monitoring/deploy/prometheus/kustomization.yaml @@ -2,15 +2,12 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: monitoring resources: - - helm/helm-repo.yaml - - helm/helm-release.yaml + - helm-repo.yaml + - helm-release.yaml - prometheus-agent.yaml generatorOptions: disableNameSuffixHash: true secretGenerator: - name: prometheus-stack-helm-values files: - - 01-only-crd-and-operator.yaml=helm/01-only-crd-and-operator.yaml - - 02-kube-metrics.yaml=helm/02-kube-metrics.yaml - - 03-node-exporter.yaml=helm/03-node-exporter.yaml - - 04-kubelet.yaml=helm/04-kubelet.yaml + - values.yaml=helm-values.yaml diff --git a/services/monitoring/deploy/prometheus/helm/original-values.yaml b/services/monitoring/deploy/prometheus/original-values.yaml similarity index 100% rename from services/monitoring/deploy/prometheus/helm/original-values.yaml rename to services/monitoring/deploy/prometheus/original-values.yaml diff --git a/services/monitoring/deploy/prometheus/prometheus-agent.yaml b/services/monitoring/deploy/prometheus/prometheus-agent.yaml index 19c31ff..71d442a 100644 --- a/services/monitoring/deploy/prometheus/prometheus-agent.yaml +++ b/services/monitoring/deploy/prometheus/prometheus-agent.yaml @@ -22,14 +22,18 @@ spec: replicas: 1 remoteWrite: - url: https://prometheus.monitoring.limbosolutions.com/api/v1/write - scrapeInterval: 60s + writeRelabelConfigs: + - action: replace + targetLabel: cluster + replacement: casa + scrapeInterval: 2s resources: requests: cpu: 100m memory: 128Mi limits: cpu: 200m - memory: 300Mi + memory: 256Mi serviceAccountName: prometheus-agent nodeSelector: role: worker-node