diff --git a/charts/pga/Chart.lock b/charts/pga/Chart.lock new file mode 100644 index 00000000..f4b9c4bc --- /dev/null +++ b/charts/pga/Chart.lock @@ -0,0 +1,18 @@ +dependencies: +- name: kube-prometheus-stack + repository: https://prometheus-community.github.io/helm-charts/ + version: 61.3.1 +- name: kube-prometheus-stack + repository: https://prometheus-community.github.io/helm-charts/ + version: 61.3.1 +- name: prometheus-adapter + repository: https://prometheus-community.github.io/helm-charts/ + version: 4.10.0 +- name: prometheus-pushgateway + repository: https://prometheus-community.github.io/helm-charts/ + version: 2.14.0 +- name: prometheus-blackbox-exporter + repository: https://prometheus-community.github.io/helm-charts/ + version: 8.17.0 +digest: sha256:fc4b5d1a68181468fa2ec35ef9307c470a68bfb0b4d46a191c772a82f85f70e7 +generated: "2024-07-12T21:49:05.791141+05:30" diff --git a/charts/pga/Chart.yaml b/charts/pga/Chart.yaml new file mode 100644 index 00000000..f0ee7d14 --- /dev/null +++ b/charts/pga/Chart.yaml @@ -0,0 +1,45 @@ +apiVersion: v2 +name: pga +description: A Helm chart for prometheus, grafana and alertmanager +type: application +version: 1.0.0 +appVersion: 1.0.0 +dependencies: + - name: kube-prometheus-stack + version: ~61 + repository: https://prometheus-community.github.io/helm-charts/ + alias: app + tags: + - monitoring + condition: app.enabled + + - name: kube-prometheus-stack + version: ~61 + repository: https://prometheus-community.github.io/helm-charts/ + alias: kube + tags: + - monitoring + + - name: prometheus-adapter + version: ~4 + repository: https://prometheus-community.github.io/helm-charts/ + tags: + - monitoring + alias: adapter + condition: adapter.enabled + + - name: prometheus-pushgateway + version: ~2 + repository: https://prometheus-community.github.io/helm-charts/ + tags: + - monitoring + alias: pushgateway + condition: pushgateway.enabled + + - name: prometheus-blackbox-exporter + version: ~8 + repository: https://prometheus-community.github.io/helm-charts/ + tags: + - blackbox + alias: blackbox + condition: blackbox.enabled \ No newline at end of file diff --git a/charts/pga/values.yaml b/charts/pga/values.yaml new file mode 100644 index 00000000..8beeb523 --- /dev/null +++ b/charts/pga/values.yaml @@ -0,0 +1,293 @@ +app: + enabled: false + fullnameOverride: app + commonLabels: + prometheus: app + defaultRules: + create: false + alertmanager: + enabled: false + grafana: + enabled: false + kubeApiServer: + enabled: false + kubelet: + enabled: false + kubeControllerManager: + enabled: false + coreDns: + enabled: false + kubeEtcd: + enabled: false + kubeScheduler: + enabled: false + kubeProxy: + enabled: false + kubeStateMetrics: + enabled: false + kube-state-metrics: + enabled: false + nodeExporter: + enabled: false + prometheusOperator: + enabled: false + admissionWebhooks: + enabled: false + configReloaderCpu: 300m + configReloaderMemory: 300Mi + prometheus: + enabled: true + prometheusSpec: + # nodeSelector: + # appType: monitoring + # tolerations: + # - key: "appType" + # operator: "Equal" + # value: "monitoring" + # effect: "NoSchedule" + retention: 30d + replicas: 1 + # externalUrl: "" + resources: + requests: + cpu: "1" + memory: 1Gi + limits: + cpu: "1" + memory: 1Gi + storageSpec: + volumeClaimTemplate: + spec: + # storageClassName: encrypted-gp3 + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: 1Gi + alertingEndpoints: + - name: kube-alertmanager + namespace: monitoring + port: web + pathPrefix: / + apiVersion: v2 + serviceMonitorSelector: + matchExpressions: + - { key: prometheus, operator: In, values: [ app ] } + podMonitorSelector: + matchExpressions: + - { key: prometheus, operator: In, values: [ app ] } + ruleSelector: + matchLabels: + prometheus: app + additionalScrapeConfigs: + - job_name: kubernets-servics-probe + metrics_path: /probe + params: + module: [ http_2xx ] + kubernetes_sd_configs: + - role: service + scrape_interval: 30s + scrape_timeout: 25s + relabel_configs: + - source_labels: [ __meta_kubernetes_service_annotation_prometheus_io_probe ] + regex: true + action: keep + - source_labels: [ __meta_kubernetes_service_name ] + target_label: service + - source_labels: [ __address__,__meta_kubernetes_service_annotation_prometheus_io_path] + regex: (.+);(.+) + target_label: __param_target + replacement: ${1}${2} + - source_labels: [ __param_target ] + target_label: instance + - source_labels: [] + target_label: __address__ + replacement: monitoring-prometheus-blackbox-exporter:9115 + service: + name: app-prometheus + +kube: + fullnameOverride: kube + commonLabels: + prometheus: kube + defaultRules: + create: false + alertmanager: + enabled: true + alertmanagerSpec: + retention: 240h + resources: + requests: + cpu: 250m + memory: 500Mi + limits: + cpu: 250m + memory: 500Mi + storage: + volumeClaimTemplate: + spec: + # storageClassName: encrypted-gp3 + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 1Gi + grafana: + enabled: false + kubeApiServer: + enabled: true + kubelet: + enabled: true + namespace: kube-system + kubeControllerManager: + enabled: false + coreDns: + enabled: true + kubeEtcd: + enabled: false + kubeScheduler: + enabled: false + kubeProxy: + enabled: false + kubeStateMetrics: + enabled: true + kube-state-metrics: + customLabels: + prometheus: kube + enabled: true + podSecurityPolicy: + enabled: false + resources: + requests: + cpu: 250m + memory: 500Mi + limits: + cpu: 250m + memory: 500Mi + nodeExporter: + enabled: true + prometheus-node-exporter: + prometheus: + monitor: + additionalLabels: + prometheus: kube + # rbac: + # pspEnabled: false + # image: + # repository: + # tag: latest + # pullPolicy: Always + prometheusOperator: + enabled: true + admissionWebhooks: + enabled: false + deployment: + enabled: true + tls: + enabled: false + prometheus: + enabled: true + prometheusSpec: + # nodeSelector: + # appType: monitoring + # tolerations: + # - key: "appType" + # operator: "Equal" + # value: "monitoring" + # effect: "NoSchedule" +# remoteWrite: +# - url: https://app.last9.io/jupiter/prometheus/write +# basicAuth: +# username: +# name: promsecret +# key: username +# password: +# name: promsecret +# key: password +## # Do not add the writeRelabelConfigs section if you want to +## # send all metrics via remote write +## writeRelabelConfigs: +# - sourceLabels: [ __name__ ] +# regex: 'istio*' +# action: keep + # image: + # tag: v2.41.0 + retention: 30d + replicas: 1 + # externalUrl: "http://kube-opstree.prod.internal/" + resources: + requests: + cpu: "500m" + memory: 500Mi + limits: + cpu: "500m" + memory: 500Mi + storageSpec: + volumeClaimTemplate: + spec: + # storageClassName: encrypted-gp3 + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: 1Gi + serviceMonitorSelector: + matchExpressions: + - key: prometheus + operator: In + values: + - kube + podMonitorSelector: + matchExpressions: + - key: prometheus + operator: In + values: + - kube + ruleSelector: + matchLabels: + prometheus: kube + service: + name: kube-prometheus + +pushgateway: + enabled: false + serviceMonitor: + enabled: true + namespace: monitoring + additionalLabels: + prometheus: app + extraArgs: + - --log.level=debug + - --push.disable-consistency-check + resources: + limits: + cpu: 1 + memory: 4096Mi + requests: + cpu: 500m + memory: 4096Mi + +blackbox: + enabled: false + serviceMonitor: + enabled: true + defaults: + additionalMetricsRelabels: {} + labels: + prometheus: app + interval: 30s + scrapeTimeout: 30s + module: http_2xx + config: + modules: + http_2xx: + prober: http + timeout: 5s + http: + valid_http_versions: [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0" ] + no_follow_redirects: false + preferred_ip_protocol: "ip4" + fail_if_ssl: false + fail_if_not_ssl: false + +adapter: + enabled: false \ No newline at end of file