diff --git a/helm-overrides/k8s-admin-prd-ase1/node-exporter/custom-values.yaml b/helm-overrides/k8s-admin-prd-ase1/node-exporter/custom-values.yaml new file mode 100644 index 0000000..317966a --- /dev/null +++ b/helm-overrides/k8s-admin-prd-ase1/node-exporter/custom-values.yaml @@ -0,0 +1,16 @@ +prometheus-node-exporter: + # Same resource trim this ran with as a subchart of the (now removed) + # prometheus server chart. One DaemonSet pod, hostNetwork, light enough + # that this is the whole footprint regardless of which TSDB scrapes it. + resources: + requests: + cpu: 20m + memory: 32Mi + limits: + memory: 64Mi + + # rbac.pspEnabled defaults false already (no PodSecurityPolicy on this + # cluster) — nothing to override here. The chart's own Service carries + # `prometheus.io/scrape: true` by default, which is what vmagent's + # already-enabled kubernetes-service-endpoints job picks up — no + # separate scrape config needed on either side. diff --git a/helm-overrides/k8s-admin-prd-ase1/prometheus/custom-values.yaml b/helm-overrides/k8s-admin-prd-ase1/prometheus/custom-values.yaml deleted file mode 100644 index 9d06397..0000000 --- a/helm-overrides/k8s-admin-prd-ase1/prometheus/custom-values.yaml +++ /dev/null @@ -1,66 +0,0 @@ -prometheus: - # alertmanager/kube-state-metrics/node-exporter/pushgateway are all - # enabled by default in this chart. None of the four are needed for - # what actually consumes this deployment — toolshed's per-app CPU/memory - # come straight from kubelet's own cAdvisor endpoint (the - # kubernetes-nodes-cadvisor scrape job below, built into the server - # itself) — but node-exporter earns its keep separately: this box is an - # 8GB single node already near its ceiling, and node-exporter is the one - # thing here that would actually say so (host disk/memory/load, not - # per-container usage cAdvisor already covers). One DaemonSet pod on one - # node, hostNetwork rather than a Service — light enough to justify on - # its own. - # - # alertmanager/kube-state-metrics/pushgateway stay off: nothing here - # defines alerting rules to route (alertmanager), nothing needs - # deployment/rollout-status metrics yet as opposed to raw resource usage - # (kube-state-metrics), and nothing is a short-lived batch job pushing - # its own metrics (pushgateway). Each is a real pod this node has no - # spare room for — turn one on when something concrete needs it, not - # preemptively. - alertmanager: - enabled: false - kube-state-metrics: - enabled: false - prometheus-node-exporter: - enabled: true - resources: - requests: - cpu: 20m - memory: 32Mi - limits: - memory: 64Mi - prometheus-pushgateway: - enabled: false - - server: - persistentVolume: - # local-path-provisioner, this cluster's default StorageClass — - # installed right after Cilium precisely because kubeadm ships no - # default (unlike k3s). 3Gi rather than the chart's 8Gi default: - # `retention: 7d` below on one small cluster's worth of series - # comfortably fits, and the node has no room to spare. Not - # resizable in place with this provisioner, so sized deliberately - # rather than grown later. - size: 3Gi - storageClass: local-path - - # 7 days, not the chart's 15-day default — a homelab whose entire - # purpose is proving a CI/CD pipeline has no use for a month of - # historical series, and every extra day is disk this node does not - # have spare. - retention: 7d - - resources: - requests: - cpu: 50m - memory: 128Mi - limits: - memory: 512Mi - - # The default kubernetes-nodes-cadvisor job (scheme https, bearer token - # from the pod's own ServiceAccount, metrics_path /metrics/cadvisor) is - # left exactly as the chart ships it — this is what - # container_cpu_usage_seconds_total and container_memory_working_set_bytes - # come from, and toolshed's metrics connection (internal/metrics) - # queries exactly those two, summed by namespace. diff --git a/helm-overrides/k8s-admin-prd-ase1/victoria-metrics-single/custom-values.yaml b/helm-overrides/k8s-admin-prd-ase1/victoria-metrics-single/custom-values.yaml new file mode 100644 index 0000000..51cf699 --- /dev/null +++ b/helm-overrides/k8s-admin-prd-ase1/victoria-metrics-single/custom-values.yaml @@ -0,0 +1,24 @@ +victoria-metrics-single: + server: + # 7 days, not the chart's month-long default — a homelab whose entire + # purpose is proving a CI/CD pipeline has no use for that much + # history, and every extra day is disk this node does not have spare. + retentionPeriod: "7d" + + persistentVolume: + # local-path-provisioner, this cluster's default StorageClass — + # installed right after Cilium precisely because kubeadm ships no + # default (unlike k3s). 3Gi, not the chart's 16Gi default: VM's own + # compression is the whole reason it replaced Prometheus here, and + # this cluster's metric volume at a 7-day retention comfortably + # fits well inside that. Not resizable in place with this + # provisioner, so sized deliberately rather than grown later. + storageClassName: local-path + size: 3Gi + + resources: + requests: + cpu: 50m + memory: 128Mi + limits: + memory: 512Mi diff --git a/helm-overrides/k8s-admin-prd-ase1/vmagent/custom-values.yaml b/helm-overrides/k8s-admin-prd-ase1/vmagent/custom-values.yaml new file mode 100644 index 0000000..7c89d79 --- /dev/null +++ b/helm-overrides/k8s-admin-prd-ase1/vmagent/custom-values.yaml @@ -0,0 +1,28 @@ +victoria-metrics-agent: + # Ships to victoria-metrics-single. The write path is /api/v1/write, + # the same endpoint any Prometheus remote_write client uses — this is + # the one config line that actually wires the two components together; + # the chart names don't imply it on their own. + # + # Cluster-internal Service DNS: this call happens from a pod, so + # CoreDNS resolves it. Same reasoning as everywhere else in this + # project that a Service name (not an Ingress hostname) is correct + # here — see claude.md's registry-hostname convention for the one case + # where cluster DNS specifically does NOT work (a node-level pull), + # which does not apply to this pod-to-pod write. + remoteWrite: + - url: http://victoria-metrics-single-server.monitoring.svc.cluster.local:8428/api/v1/write + + # config.scrape_configs is left at the chart's own default — it already + # includes kubernetes-nodes-cadvisor (kubelet's cAdvisor endpoint, + # comment literally says "COPY from Prometheus helm chart") and + # kubernetes-service-endpoints (the prometheus.io/scrape annotation + # convention node-exporter's Service carries). Nothing here needs a + # scrape target the chart doesn't already define out of the box. + + resources: + requests: + cpu: 25m + memory: 64Mi + limits: + memory: 192Mi diff --git a/helm-templates/node-exporter/Chart.lock b/helm-templates/node-exporter/Chart.lock new file mode 100644 index 0000000..cc99f4b --- /dev/null +++ b/helm-templates/node-exporter/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: prometheus-node-exporter + repository: https://prometheus-community.github.io/helm-charts + version: 4.56.3 +digest: sha256:d82c5d706aab138aaf362814f8bc6f49baf3b8d7b1df751f152902a6940258fd +generated: "2026-09-06T08:31:01.815023+05:30" diff --git a/helm-templates/node-exporter/Chart.yaml b/helm-templates/node-exporter/Chart.yaml new file mode 100644 index 0000000..76d9e28 --- /dev/null +++ b/helm-templates/node-exporter/Chart.yaml @@ -0,0 +1,13 @@ +apiVersion: v2 +name: node-exporter +version: 1.0.0 +dependencies: + - name: prometheus-node-exporter + # Same official chart this ran as a subchart of the (now removed) + # prometheus server chart — vendored standalone here since it exposes + # host metrics over HTTP for any scraper to pull, independent of + # which TSDB stores them. vmagent scrapes it via the + # prometheus.io/scrape annotation this chart's Service carries, + # exactly as the Prometheus server used to. + version: 4.56.3 + repository: https://prometheus-community.github.io/helm-charts diff --git a/helm-templates/node-exporter/charts/prometheus-node-exporter-4.56.3.tgz b/helm-templates/node-exporter/charts/prometheus-node-exporter-4.56.3.tgz new file mode 100644 index 0000000..04442da Binary files /dev/null and b/helm-templates/node-exporter/charts/prometheus-node-exporter-4.56.3.tgz differ diff --git a/helm-templates/prometheus/Chart.lock b/helm-templates/prometheus/Chart.lock deleted file mode 100644 index e19a075..0000000 --- a/helm-templates/prometheus/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: prometheus - repository: https://prometheus-community.github.io/helm-charts - version: 29.27.1 -digest: sha256:1cd0daed07160b46100e5cccade430dadcd2f9a3974bd3667a09787c603a6ad0 -generated: "2026-09-06T07:25:57.847789+05:30" diff --git a/helm-templates/prometheus/Chart.yaml b/helm-templates/prometheus/Chart.yaml deleted file mode 100644 index acee77a..0000000 --- a/helm-templates/prometheus/Chart.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v2 -name: prometheus -version: 1.0.0 -dependencies: - - name: prometheus - # Pinned to the latest stable at the time this was vendored (2026-09). - # Bump deliberately later, with a changelog read first, same as any - # other chart bump in this repo. - version: 29.27.1 - repository: https://prometheus-community.github.io/helm-charts diff --git a/helm-templates/prometheus/charts/prometheus-29.27.1.tgz b/helm-templates/prometheus/charts/prometheus-29.27.1.tgz deleted file mode 100644 index 1659762..0000000 Binary files a/helm-templates/prometheus/charts/prometheus-29.27.1.tgz and /dev/null differ diff --git a/helm-templates/victoria-metrics-single/.helmignore b/helm-templates/victoria-metrics-single/.helmignore deleted file mode 100644 index 50af031..0000000 --- a/helm-templates/victoria-metrics-single/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/helm-templates/victoria-metrics-single/Chart.lock b/helm-templates/victoria-metrics-single/Chart.lock new file mode 100644 index 0000000..51049c7 --- /dev/null +++ b/helm-templates/victoria-metrics-single/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: victoria-metrics-single + repository: https://victoriametrics.github.io/helm-charts + version: 0.45.0 +digest: sha256:5c84351c76bb8a825b95a11a90cf86f8cd2f2b4565135b1241b35dfa9b4e392e +generated: "2026-09-06T08:34:56.682089+05:30" diff --git a/helm-templates/victoria-metrics-single/Chart.yaml b/helm-templates/victoria-metrics-single/Chart.yaml index 8788843..a0f2956 100644 --- a/helm-templates/victoria-metrics-single/Chart.yaml +++ b/helm-templates/victoria-metrics-single/Chart.yaml @@ -1,30 +1,21 @@ -apiVersion: v1 -appVersion: v1.101.0 -description: Victoria Metrics Single version - high-performance, cost-effective and scalable TSDB, long-term remote storage for Prometheus +apiVersion: v2 name: victoria-metrics-single -version: 0.9.24 -appVersion: v1.101.0 -sources: - - https://github.com/VictoriaMetrics/helm-charts -kubeVersion: ">=1.23.0-0" -keywords: - - victoriametrics - - vmsingle - - single - - monitoring - - kubernetes - - observability - - tsdb - - metrics - - metricsql - - timeseries -annotations: - artifacthub.io/license: Apache-2.0 - artifacthub.io/category: "monitoring-logging" - artifacthub.io/links: | - - name: Sources - url: https://github.com/VictoriaMetrics/helm-charts - - name: Charts repo - url: https://victoriametrics.github.io/helm-charts/ - - name: Docs - url: https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html +version: 1.0.0 +dependencies: + - name: victoria-metrics-single + # Pinned to the latest stable at the time this was vendored (2026-09). + # Bump deliberately later, with a changelog read first, same as any + # other chart bump in this repo. + # + # This directory already existed in this repo before this — a + # leftover from the original Meesho monorepo import (commit b8575bb), + # with its own vendored templates/values.yaml for a different, + # GKE-targeted deployment of this same chart. That entire tree was + # removed rather than adapted (same reasoning as the ~35 charts + # removed outright in devops-helm-charts's own prune — see claude.md) + # and replaced with this thin wrapper, matching every other + # official-chart component in this repo (vault, postgresql's sibling + # entries, etc.): a Chart.yaml dependency plus a committed .tgz, no + # local templates of its own. + version: 0.45.0 + repository: https://victoriametrics.github.io/helm-charts diff --git a/helm-templates/victoria-metrics-single/README.md b/helm-templates/victoria-metrics-single/README.md deleted file mode 100644 index 058dbe4..0000000 --- a/helm-templates/victoria-metrics-single/README.md +++ /dev/null @@ -1,244 +0,0 @@ -# Victoria Metrics Helm Chart for Single Version - - ![Version: 0.9.23](https://img.shields.io/badge/Version-0.9.23-informational?style=flat-square) -[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/victoriametrics)](https://artifacthub.io/packages/helm/victoriametrics/victoria-metrics-single) - -Victoria Metrics Single version - high-performance, cost-effective and scalable TSDB, long-term remote storage for Prometheus - -## Prerequisites - -* Install the follow packages: ``git``, ``kubectl``, ``helm``, ``helm-docs``. See this [tutorial](../../REQUIREMENTS.md). -* PV support on underlying infrastructure. - -## Chart Details - -This chart will do the following: - -* Rollout Victoria Metrics Single. - -## How to install - -Access a Kubernetes cluster. - -Add a chart helm repository with follow commands: - -```console -helm repo add vm https://victoriametrics.github.io/helm-charts/ - -helm repo update -``` - -List versions of ``vm/victoria-metrics-single`` chart available to installation: - -```console -helm search repo vm/victoria-metrics-single -l -``` - -Export default values of ``victoria-metrics-single`` chart to file ``values.yaml``: - -```console -helm show values vm/victoria-metrics-single > values.yaml -``` - -Change the values according to the need of the environment in ``values.yaml`` file. - -Test the installation with command: - -```console -helm install vmsingle vm/victoria-metrics-single -f values.yaml -n NAMESPACE --debug --dry-run -``` - -Install chart with command: - -```console -helm install vmsingle vm/victoria-metrics-single -f values.yaml -n NAMESPACE -``` - -Get the pods lists by running this commands: - -```console -kubectl get pods -A | grep 'single' -``` - -Get the application by running this command: - -```console -helm list -f vmsingle -n NAMESPACE -``` - -See the history of versions of ``vmsingle`` application with command. - -```console -helm history vmsingle -n NAMESPACE -``` - -## How to uninstall - -Remove application with command. - -```console -helm uninstall vmsingle -n NAMESPACE -``` - -## Documentation of Helm Chart - -Install ``helm-docs`` following the instructions on this [tutorial](../../REQUIREMENTS.md). - -Generate docs with ``helm-docs`` command. - -```bash -cd charts/victoria-metrics-single - -helm-docs -``` - -The markdown generation is entirely go template driven. The tool parses metadata from charts and generates a number of sub-templates that can be referenced in a template file (by default ``README.md.gotmpl``). If no template file is provided, the tool has a default internal template that will generate a reasonably formatted README. - -## Parameters - -The following tables lists the configurable parameters of the chart and their default values. - -Change the values according to the need of the environment in ``victoria-metrics-single/values.yaml`` file. - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| automountServiceAccountToken | bool | `true` | | -| extraObjects | list | `[]` | Add extra specs dynamically to this chart | -| global.compatibility.openshift.adaptSecurityContext | string | `"auto"` | | -| license | object | `{"key":"","secret":{"key":"","name":""}}` | Enterprise license key configuration for VictoriaMetrics enterprise. Required only for VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html, for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/ Supported starting from VictoriaMetrics v1.94.0 | -| license.key | string | `""` | License key | -| license.secret | object | `{"key":"","name":""}` | Use existing secret with license key | -| license.secret.key | string | `""` | Key in secret with license key | -| license.secret.name | string | `""` | Existing secret name | -| podDisruptionBudget.enabled | bool | `false` | See `kubectl explain poddisruptionbudget.spec` for more. Ref: [https://kubernetes.io/docs/tasks/run-application/configure-pdb/](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) | -| podDisruptionBudget.extraLabels | object | `{}` | | -| printNotes | bool | `true` | Print chart notes | -| rbac.create | bool | `true` | | -| rbac.extraLabels | object | `{}` | | -| rbac.namespaced | bool | `false` | | -| rbac.pspEnabled | bool | `true` | | -| server.affinity | object | `{}` | Pod affinity | -| server.containerWorkingDir | string | `""` | Container workdir | -| server.enabled | bool | `true` | Enable deployment of server component. Deployed as StatefulSet | -| server.env | list | `[]` | Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables | -| server.envFrom | list | `[]` | | -| server.extraArgs."envflag.enable" | string | `"true"` | | -| server.extraArgs."envflag.prefix" | string | `"VM_"` | | -| server.extraArgs.loggerFormat | string | `"json"` | | -| server.extraContainers | list | `[]` | | -| server.extraHostPathMounts | list | `[]` | | -| server.extraLabels | object | `{}` | Sts/Deploy additional labels | -| server.extraVolumeMounts | list | `[]` | | -| server.extraVolumes | list | `[]` | | -| server.fullnameOverride | string | `nil` | Overrides the full name of server component | -| server.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | -| server.image.repository | string | `"victoriametrics/victoria-metrics"` | Image repository | -| server.image.tag | string | `""` | Image tag | -| server.image.variant | string | `""` | | -| server.ingress.annotations | object | `{}` | Ingress annotations | -| server.ingress.enabled | bool | `false` | Enable deployment of ingress for server component | -| server.ingress.extraLabels | object | `{}` | Ingress extra labels | -| server.ingress.hosts | list | `[]` | Array of host objects | -| server.ingress.pathType | string | `"Prefix"` | pathType is only for k8s >= 1.1= | -| server.ingress.tls | list | `[]` | Array of TLS objects | -| server.initContainers | list | `[]` | | -| server.livenessProbe.failureThreshold | int | `10` | | -| server.livenessProbe.httpGet.path | string | `"/health"` | | -| server.livenessProbe.httpGet.port | int | `8428` | | -| server.livenessProbe.httpGet.scheme | string | `"HTTP"` | | -| server.livenessProbe.initialDelaySeconds | int | `30` | | -| server.livenessProbe.periodSeconds | int | `30` | | -| server.livenessProbe.timeoutSeconds | int | `5` | | -| server.name | string | `"server"` | Server container name | -| server.nodeSelector | object | `{}` | Pod's node selector. Ref: [https://kubernetes.io/docs/user-guide/node-selection/](https://kubernetes.io/docs/user-guide/node-selection/) | -| server.persistentVolume.accessModes | list | `["ReadWriteOnce"]` | Array of access modes. Must match those of existing PV or dynamic provisioner. Ref: [http://kubernetes.io/docs/user-guide/persistent-volumes/](http://kubernetes.io/docs/user-guide/persistent-volumes/) | -| server.persistentVolume.annotations | object | `{}` | Persistant volume annotations | -| server.persistentVolume.enabled | bool | `true` | Create/use Persistent Volume Claim for server component. Empty dir if false | -| server.persistentVolume.existingClaim | string | `""` | Existing Claim name. If defined, PVC must be created manually before volume will be bound | -| server.persistentVolume.matchLabels | object | `{}` | Bind Persistent Volume by labels. Must match all labels of targeted PV. | -| server.persistentVolume.mountPath | string | `"/storage"` | Mount path. Server data Persistent Volume mount root path. | -| server.persistentVolume.size | string | `"16Gi"` | Size of the volume. Should be calculated based on the metrics you send and retention policy you set. | -| server.persistentVolume.storageClass | string | `""` | StorageClass to use for persistent volume. Requires server.persistentVolume.enabled: true. If defined, PVC created automatically | -| server.persistentVolume.subPath | string | `""` | Mount subpath | -| server.podAnnotations | object | `{}` | Pod's annotations | -| server.podLabels | object | `{}` | Pod's additional labels | -| server.podManagementPolicy | string | `"OrderedReady"` | Pod's management policy | -| server.podSecurityContext | object | `{"enabled":true}` | Pod's security context. Ref: [https://kubernetes.io/docs/tasks/configure-pod-container/security-context/](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) | -| server.priorityClassName | string | `""` | Name of Priority Class | -| server.readinessProbe.failureThreshold | int | `3` | | -| server.readinessProbe.httpGet.path | string | `"/health"` | | -| server.readinessProbe.httpGet.port | string | `"http"` | | -| server.readinessProbe.initialDelaySeconds | int | `5` | | -| server.readinessProbe.periodSeconds | int | `15` | | -| server.readinessProbe.timeoutSeconds | int | `5` | | -| server.resources | object | `{}` | Resource object. Ref: [http://kubernetes.io/docs/user-guide/compute-resources/](http://kubernetes.io/docs/user-guide/compute-resources/ | -| server.retentionPeriod | int | `1` | Data retention period in month | -| server.scrape | object | `{"config":{"global":{"scrape_interval":"15s"},"scrape_configs":[{"job_name":"victoriametrics","static_configs":[{"targets":["localhost:8428"]}]},{"bearer_token_file":"/var/run/secrets/kubernetes.io/serviceaccount/token","job_name":"kubernetes-apiservers","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"keep","regex":"default;kubernetes;https","source_labels":["__meta_kubernetes_namespace","__meta_kubernetes_service_name","__meta_kubernetes_endpoint_port_name"]}],"scheme":"https","tls_config":{"ca_file":"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt","insecure_skip_verify":true}},{"bearer_token_file":"/var/run/secrets/kubernetes.io/serviceaccount/token","job_name":"kubernetes-nodes","kubernetes_sd_configs":[{"role":"node"}],"relabel_configs":[{"action":"labelmap","regex":"__meta_kubernetes_node_label_(.+)"},{"replacement":"kubernetes.default.svc:443","target_label":"__address__"},{"regex":"(.+)","replacement":"/api/v1/nodes/$1/proxy/metrics","source_labels":["__meta_kubernetes_node_name"],"target_label":"__metrics_path__"}],"scheme":"https","tls_config":{"ca_file":"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt","insecure_skip_verify":true}},{"bearer_token_file":"/var/run/secrets/kubernetes.io/serviceaccount/token","honor_timestamps":false,"job_name":"kubernetes-nodes-cadvisor","kubernetes_sd_configs":[{"role":"node"}],"relabel_configs":[{"action":"labelmap","regex":"__meta_kubernetes_node_label_(.+)"},{"replacement":"kubernetes.default.svc:443","target_label":"__address__"},{"regex":"(.+)","replacement":"/api/v1/nodes/$1/proxy/metrics/cadvisor","source_labels":["__meta_kubernetes_node_name"],"target_label":"__metrics_path__"}],"scheme":"https","tls_config":{"ca_file":"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt","insecure_skip_verify":true}},{"job_name":"kubernetes-service-endpoints","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scrape"]},{"action":"replace","regex":"(https?)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scheme"],"target_label":"__scheme__"},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_service_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"},{"action":"replace","source_labels":["__meta_kubernetes_pod_node_name"],"target_label":"kubernetes_node"}]},{"job_name":"kubernetes-service-endpoints-slow","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scrape_slow"]},{"action":"replace","regex":"(https?)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scheme"],"target_label":"__scheme__"},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_service_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"},{"action":"replace","source_labels":["__meta_kubernetes_pod_node_name"],"target_label":"kubernetes_node"}],"scrape_interval":"5m","scrape_timeout":"30s"},{"job_name":"kubernetes-services","kubernetes_sd_configs":[{"role":"service"}],"metrics_path":"/probe","params":{"module":["http_2xx"]},"relabel_configs":[{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_probe"]},{"source_labels":["__address__"],"target_label":"__param_target"},{"replacement":"blackbox","target_label":"__address__"},{"source_labels":["__param_target"],"target_label":"instance"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"}]},{"job_name":"kubernetes-pods","kubernetes_sd_configs":[{"role":"pod"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_scrape"]},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_pod_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_pod_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_pod_name"],"target_label":"kubernetes_pod_name"}]}]},"configMap":"","enabled":false,"extraScrapeConfigs":[]}` | Scrape configuration for victoriametrics | -| server.scrape.config | object | `{"global":{"scrape_interval":"15s"},"scrape_configs":[{"job_name":"victoriametrics","static_configs":[{"targets":["localhost:8428"]}]},{"bearer_token_file":"/var/run/secrets/kubernetes.io/serviceaccount/token","job_name":"kubernetes-apiservers","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"keep","regex":"default;kubernetes;https","source_labels":["__meta_kubernetes_namespace","__meta_kubernetes_service_name","__meta_kubernetes_endpoint_port_name"]}],"scheme":"https","tls_config":{"ca_file":"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt","insecure_skip_verify":true}},{"bearer_token_file":"/var/run/secrets/kubernetes.io/serviceaccount/token","job_name":"kubernetes-nodes","kubernetes_sd_configs":[{"role":"node"}],"relabel_configs":[{"action":"labelmap","regex":"__meta_kubernetes_node_label_(.+)"},{"replacement":"kubernetes.default.svc:443","target_label":"__address__"},{"regex":"(.+)","replacement":"/api/v1/nodes/$1/proxy/metrics","source_labels":["__meta_kubernetes_node_name"],"target_label":"__metrics_path__"}],"scheme":"https","tls_config":{"ca_file":"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt","insecure_skip_verify":true}},{"bearer_token_file":"/var/run/secrets/kubernetes.io/serviceaccount/token","honor_timestamps":false,"job_name":"kubernetes-nodes-cadvisor","kubernetes_sd_configs":[{"role":"node"}],"relabel_configs":[{"action":"labelmap","regex":"__meta_kubernetes_node_label_(.+)"},{"replacement":"kubernetes.default.svc:443","target_label":"__address__"},{"regex":"(.+)","replacement":"/api/v1/nodes/$1/proxy/metrics/cadvisor","source_labels":["__meta_kubernetes_node_name"],"target_label":"__metrics_path__"}],"scheme":"https","tls_config":{"ca_file":"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt","insecure_skip_verify":true}},{"job_name":"kubernetes-service-endpoints","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scrape"]},{"action":"replace","regex":"(https?)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scheme"],"target_label":"__scheme__"},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_service_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"},{"action":"replace","source_labels":["__meta_kubernetes_pod_node_name"],"target_label":"kubernetes_node"}]},{"job_name":"kubernetes-service-endpoints-slow","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scrape_slow"]},{"action":"replace","regex":"(https?)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scheme"],"target_label":"__scheme__"},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_service_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"},{"action":"replace","source_labels":["__meta_kubernetes_pod_node_name"],"target_label":"kubernetes_node"}],"scrape_interval":"5m","scrape_timeout":"30s"},{"job_name":"kubernetes-services","kubernetes_sd_configs":[{"role":"service"}],"metrics_path":"/probe","params":{"module":["http_2xx"]},"relabel_configs":[{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_probe"]},{"source_labels":["__address__"],"target_label":"__param_target"},{"replacement":"blackbox","target_label":"__address__"},{"source_labels":["__param_target"],"target_label":"instance"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"}]},{"job_name":"kubernetes-pods","kubernetes_sd_configs":[{"role":"pod"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_scrape"]},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_pod_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_pod_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_pod_name"],"target_label":"kubernetes_pod_name"}]}]}` | Scrape config | -| server.scrape.config.scrape_configs | list | `[{"job_name":"victoriametrics","static_configs":[{"targets":["localhost:8428"]}]},{"bearer_token_file":"/var/run/secrets/kubernetes.io/serviceaccount/token","job_name":"kubernetes-apiservers","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"keep","regex":"default;kubernetes;https","source_labels":["__meta_kubernetes_namespace","__meta_kubernetes_service_name","__meta_kubernetes_endpoint_port_name"]}],"scheme":"https","tls_config":{"ca_file":"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt","insecure_skip_verify":true}},{"bearer_token_file":"/var/run/secrets/kubernetes.io/serviceaccount/token","job_name":"kubernetes-nodes","kubernetes_sd_configs":[{"role":"node"}],"relabel_configs":[{"action":"labelmap","regex":"__meta_kubernetes_node_label_(.+)"},{"replacement":"kubernetes.default.svc:443","target_label":"__address__"},{"regex":"(.+)","replacement":"/api/v1/nodes/$1/proxy/metrics","source_labels":["__meta_kubernetes_node_name"],"target_label":"__metrics_path__"}],"scheme":"https","tls_config":{"ca_file":"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt","insecure_skip_verify":true}},{"bearer_token_file":"/var/run/secrets/kubernetes.io/serviceaccount/token","honor_timestamps":false,"job_name":"kubernetes-nodes-cadvisor","kubernetes_sd_configs":[{"role":"node"}],"relabel_configs":[{"action":"labelmap","regex":"__meta_kubernetes_node_label_(.+)"},{"replacement":"kubernetes.default.svc:443","target_label":"__address__"},{"regex":"(.+)","replacement":"/api/v1/nodes/$1/proxy/metrics/cadvisor","source_labels":["__meta_kubernetes_node_name"],"target_label":"__metrics_path__"}],"scheme":"https","tls_config":{"ca_file":"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt","insecure_skip_verify":true}},{"job_name":"kubernetes-service-endpoints","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scrape"]},{"action":"replace","regex":"(https?)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scheme"],"target_label":"__scheme__"},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_service_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"},{"action":"replace","source_labels":["__meta_kubernetes_pod_node_name"],"target_label":"kubernetes_node"}]},{"job_name":"kubernetes-service-endpoints-slow","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scrape_slow"]},{"action":"replace","regex":"(https?)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scheme"],"target_label":"__scheme__"},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_service_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"},{"action":"replace","source_labels":["__meta_kubernetes_pod_node_name"],"target_label":"kubernetes_node"}],"scrape_interval":"5m","scrape_timeout":"30s"},{"job_name":"kubernetes-services","kubernetes_sd_configs":[{"role":"service"}],"metrics_path":"/probe","params":{"module":["http_2xx"]},"relabel_configs":[{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_probe"]},{"source_labels":["__address__"],"target_label":"__param_target"},{"replacement":"blackbox","target_label":"__address__"},{"source_labels":["__param_target"],"target_label":"instance"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"}]},{"job_name":"kubernetes-pods","kubernetes_sd_configs":[{"role":"pod"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_scrape"]},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_pod_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_pod_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_pod_name"],"target_label":"kubernetes_pod_name"}]}]` | Scrape targets | -| server.scrape.config.scrape_configs[0] | object | `{"job_name":"victoriametrics","static_configs":[{"targets":["localhost:8428"]}]}` | Scrape rule for scrape victoriametrics | -| server.scrape.config.scrape_configs[4] | object | `{"job_name":"kubernetes-service-endpoints","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scrape"]},{"action":"replace","regex":"(https?)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scheme"],"target_label":"__scheme__"},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_service_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"},{"action":"replace","source_labels":["__meta_kubernetes_pod_node_name"],"target_label":"kubernetes_node"}]}` | Scrape rule using kubernetes service discovery for endpoints | -| server.scrape.config.scrape_configs[5] | object | `{"job_name":"kubernetes-service-endpoints-slow","kubernetes_sd_configs":[{"role":"endpoints"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scrape_slow"]},{"action":"replace","regex":"(https?)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_scheme"],"target_label":"__scheme__"},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_service_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_service_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"},{"action":"replace","source_labels":["__meta_kubernetes_pod_node_name"],"target_label":"kubernetes_node"}],"scrape_interval":"5m","scrape_timeout":"30s"}` | Scrape config for slow service endpoints; same as above, but with a larger timeout and a larger interval The relabeling allows the actual service scrape endpoint to be configured via the following annotations: * `prometheus.io/scrape-slow`: Only scrape services that have a value of `true` * `prometheus.io/scheme`: If the metrics endpoint is secured then you will need to set this to `https` & most likely set the `tls_config` of the scrape config. * `prometheus.io/path`: If the metrics path is not `/metrics` override this. * `prometheus.io/port`: If the metrics are exposed on a different port to the service then set this appropriately. | -| server.scrape.config.scrape_configs[6] | object | `{"job_name":"kubernetes-services","kubernetes_sd_configs":[{"role":"service"}],"metrics_path":"/probe","params":{"module":["http_2xx"]},"relabel_configs":[{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_service_annotation_prometheus_io_probe"]},{"source_labels":["__address__"],"target_label":"__param_target"},{"replacement":"blackbox","target_label":"__address__"},{"source_labels":["__param_target"],"target_label":"instance"},{"action":"labelmap","regex":"__meta_kubernetes_service_label_(.+)"},{"source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"source_labels":["__meta_kubernetes_service_name"],"target_label":"kubernetes_name"}]}` | Example scrape config for probing services via the Blackbox Exporter. The relabeling allows the actual service scrape endpoint to be configured via the following annotations: * `prometheus.io/probe`: Only probe services that have a value of `true` | -| server.scrape.config.scrape_configs[7] | object | `{"job_name":"kubernetes-pods","kubernetes_sd_configs":[{"role":"pod"}],"relabel_configs":[{"action":"drop","regex":true,"source_labels":["__meta_kubernetes_pod_container_init"]},{"action":"keep_if_equal","source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_port","__meta_kubernetes_pod_container_port_number"]},{"action":"keep","regex":true,"source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_scrape"]},{"action":"replace","regex":"(.+)","source_labels":["__meta_kubernetes_pod_annotation_prometheus_io_path"],"target_label":"__metrics_path__"},{"action":"replace","regex":"([^:]+)(?::\\d+)?;(\\d+)","replacement":"$1:$2","source_labels":["__address__","__meta_kubernetes_pod_annotation_prometheus_io_port"],"target_label":"__address__"},{"action":"labelmap","regex":"__meta_kubernetes_pod_label_(.+)"},{"action":"replace","source_labels":["__meta_kubernetes_namespace"],"target_label":"kubernetes_namespace"},{"action":"replace","source_labels":["__meta_kubernetes_pod_name"],"target_label":"kubernetes_pod_name"}]}` | Example scrape config for pods The relabeling allows the actual pod scrape endpoint to be configured via the following annotations: * `prometheus.io/scrape`: Only scrape pods that have a value of `true` * `prometheus.io/path`: If the metrics path is not `/metrics` override this. * `prometheus.io/port`: Scrape the pod on the indicated port instead of the default of `9102`. | -| server.scrape.configMap | string | `""` | Use existing configmap if specified otherwise .config values will be used | -| server.scrape.enabled | bool | `false` | If true scrapes targets, creates config map or use specified one with scrape targets | -| server.scrape.extraScrapeConfigs | list | `[]` | Extra scrape configs that will be appended to `server.scrape.config` | -| server.securityContext | object | `{"enabled":true}` | Security context to be added to server pods | -| server.service.annotations | object | `{}` | Service annotations | -| server.service.clusterIP | string | `""` | Service ClusterIP | -| server.service.externalIPs | list | `[]` | Service External IPs. Ref: [https://kubernetes.io/docs/user-guide/services/#external-ips]( https://kubernetes.io/docs/user-guide/services/#external-ips) | -| server.service.labels | object | `{}` | Service labels | -| server.service.loadBalancerIP | string | `""` | Service load balacner IP | -| server.service.loadBalancerSourceRanges | list | `[]` | Load balancer source range | -| server.service.servicePort | int | `8428` | Service port | -| server.service.type | string | `"ClusterIP"` | Service type | -| server.serviceMonitor.annotations | object | `{}` | Service Monitor annotations | -| server.serviceMonitor.enabled | bool | `false` | Enable deployment of Service Monitor for server component. This is Prometheus operator object | -| server.serviceMonitor.extraLabels | object | `{}` | Service Monitor labels | -| server.serviceMonitor.metricRelabelings | list | `[]` | Service Monitor metricRelabelings | -| server.serviceMonitor.relabelings | list | `[]` | Service Monitor relabelings | -| server.startupProbe | object | `{}` | | -| server.statefulSet.enabled | bool | `true` | Creates statefulset instead of deployment, useful when you want to keep the cache | -| server.statefulSet.podManagementPolicy | string | `"OrderedReady"` | Deploy order policy for StatefulSet pods | -| server.statefulSet.service.annotations | object | `{}` | Headless service annotations | -| server.statefulSet.service.labels | object | `{}` | Headless service labels | -| server.statefulSet.service.servicePort | int | `8428` | Headless service port | -| server.terminationGracePeriodSeconds | int | `60` | Pod's termination grace period in seconds | -| server.tolerations | list | `[]` | Node tolerations for server scheduling to nodes with taints. Ref: [https://kubernetes.io/docs/concepts/configuration/assign-pod-node/](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) | -| server.vmbackupmanager.destination | string | `""` | backup destination at S3, GCS or local filesystem. Release name will be included to path! | -| server.vmbackupmanager.disableDaily | bool | `false` | disable daily backups | -| server.vmbackupmanager.disableHourly | bool | `false` | disable hourly backups | -| server.vmbackupmanager.disableMonthly | bool | `false` | disable monthly backups | -| server.vmbackupmanager.disableWeekly | bool | `false` | disable weekly backups | -| server.vmbackupmanager.enable | bool | `false` | enable automatic creation of backup via vmbackupmanager. vmbackupmanager is part of Enterprise packages | -| server.vmbackupmanager.env | list | `[]` | Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables | -| server.vmbackupmanager.eula | bool | `false` | should be true and means that you have the legal right to run a backup manager that can either be a signed contract or an email with confirmation to run the service in a trial period # https://victoriametrics.com/legal/esa/ | -| server.vmbackupmanager.extraArgs."envflag.enable" | string | `"true"` | | -| server.vmbackupmanager.extraArgs."envflag.prefix" | string | `"VM_"` | | -| server.vmbackupmanager.extraArgs.loggerFormat | string | `"json"` | | -| server.vmbackupmanager.extraVolumeMounts | list | `[]` | | -| server.vmbackupmanager.image.repository | string | `"victoriametrics/vmbackupmanager"` | vmbackupmanager image repository | -| server.vmbackupmanager.image.tag | string | `"v1.101.0-enterprise"` | vmbackupmanager image tag | -| server.vmbackupmanager.image.variant | string | `""` | | -| server.vmbackupmanager.livenessProbe.failureThreshold | int | `10` | | -| server.vmbackupmanager.livenessProbe.initialDelaySeconds | int | `30` | | -| server.vmbackupmanager.livenessProbe.periodSeconds | int | `30` | | -| server.vmbackupmanager.livenessProbe.tcpSocket.port | string | `"manager-http"` | | -| server.vmbackupmanager.livenessProbe.timeoutSeconds | int | `5` | | -| server.vmbackupmanager.readinessProbe.failureThreshold | int | `3` | | -| server.vmbackupmanager.readinessProbe.httpGet.path | string | `"/health"` | | -| server.vmbackupmanager.readinessProbe.httpGet.port | string | `"manager-http"` | | -| server.vmbackupmanager.readinessProbe.initialDelaySeconds | int | `5` | | -| server.vmbackupmanager.readinessProbe.periodSeconds | int | `15` | | -| server.vmbackupmanager.readinessProbe.timeoutSeconds | int | `5` | | -| server.vmbackupmanager.resources | object | `{}` | | -| server.vmbackupmanager.restore | object | `{"onStart":{"enabled":false}}` | Allows to enable restore options for pod. Read more: https://docs.victoriametrics.com/vmbackupmanager.html#restore-commands | -| server.vmbackupmanager.retention | object | `{"keepLastDaily":2,"keepLastHourly":2,"keepLastMonthly":2,"keepLastWeekly":2}` | backups' retention settings | -| server.vmbackupmanager.retention.keepLastDaily | int | `2` | keep last N daily backups. 0 means delete all existing daily backups. Specify -1 to turn off | -| server.vmbackupmanager.retention.keepLastHourly | int | `2` | keep last N hourly backups. 0 means delete all existing hourly backups. Specify -1 to turn off | -| server.vmbackupmanager.retention.keepLastMonthly | int | `2` | keep last N monthly backups. 0 means delete all existing monthly backups. Specify -1 to turn off | -| server.vmbackupmanager.retention.keepLastWeekly | int | `2` | keep last N weekly backups. 0 means delete all existing weekly backups. Specify -1 to turn off | -| serviceAccount.automountToken | bool | `true` | Mount API token to pod directly | -| serviceAccount.create | bool | `true` | Create service account. | -| serviceAccount.extraLabels | object | `{}` | | \ No newline at end of file diff --git a/helm-templates/victoria-metrics-single/charts/victoria-metrics-single-0.45.0.tgz b/helm-templates/victoria-metrics-single/charts/victoria-metrics-single-0.45.0.tgz new file mode 100644 index 0000000..b329c3e Binary files /dev/null and b/helm-templates/victoria-metrics-single/charts/victoria-metrics-single-0.45.0.tgz differ diff --git a/helm-templates/victoria-metrics-single/templates/NOTES.txt b/helm-templates/victoria-metrics-single/templates/NOTES.txt deleted file mode 100644 index 6c357c1..0000000 --- a/helm-templates/victoria-metrics-single/templates/NOTES.txt +++ /dev/null @@ -1,51 +0,0 @@ -{{- if .Values.printNotes }} -{{- if .Values.server.enabled }} -The VictoriaMetrics write api can be accessed via port {{ .Values.server.service.servicePort }} on the following DNS name from within your cluster: - {{ template "victoria-metrics.server.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local - - -Metrics Ingestion: - Get the Victoria Metrics service URL by running these commands in the same shell: - -{{- if contains "NodePort" .Values.server.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "victoria-metrics.server.fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo http://$NODE_IP:$NODE_PORT -{{- else if contains "LoadBalancer" .Values.server.service.type }} - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "victoria-metrics.server.fullname" . }}' - - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "victoria-metrics.server.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') - echo http://$SERVICE_IP:{{ .Values.server.service.servicePort }} -{{- else if contains "ClusterIP" .Values.server.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ .Values.server.name }}" -o jsonpath="{.items[0].metadata.name}") - kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME {{ .Values.server.service.servicePort }} -{{- end }} - - Write url inside the kubernetes cluster: - http://{{ template "victoria-metrics.server.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.server.service.servicePort }}/api/v1/write - -{{- if .Values.server.scrape.enabled }} - -Metrics Scrape: - Pull-based scrapes are enabled - Scrape config can be displayed by running this command:: - {{- if eq .Values.server.scrape.configMap "" }} - kubectl get cm {{ template "victoria-metrics.server.fullname" . }}-scrapeconfig -n {{ .Release.Namespace }} - {{- else }} - kubectl get cm .Values.server.scrape.configMap -n {{ .Release.Namespace }} - {{- end }} - - The target’s information is accessible via api: - Inside cluster: - http://{{ template "victoria-metrics.server.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.server.service.servicePort }}/targets - Outside cluster: - You need to port-forward service (see instructions above) and call - http:///targets -{{- end }} - -Read Data: - The following url can be used as the datasource url in Grafana:: - http://{{ template "victoria-metrics.server.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.server.service.servicePort }} -{{- end }} -{{- end }} diff --git a/helm-templates/victoria-metrics-single/templates/_helpers.tpl b/helm-templates/victoria-metrics-single/templates/_helpers.tpl deleted file mode 100644 index aab24f6..0000000 --- a/helm-templates/victoria-metrics-single/templates/_helpers.tpl +++ /dev/null @@ -1,260 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "victoria-metrics.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "victoria-metrics.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "victoria-metrics.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create the name of the service account -*/}} -{{- define "victoria-metrics.serviceAccountName" -}} -{{- if .Values.serviceAccount.create -}} - {{ default (include "victoria-metrics.fullname" .) .Values.serviceAccount.name }} -{{- else -}} - {{ default "default" .Values.serviceAccount.name }} -{{- end -}} -{{- end -}} - -{{/* -Create unified labels for victoria-metrics components -*/}} -{{- define "victoria-metrics.common.matchLabels" -}} -app.kubernetes.io/name: {{ include "victoria-metrics.name" . }} -app.kubernetes.io/instance: {{ .Release.Name | trunc 63 | trimSuffix "-" }} -{{- end -}} - -{{- define "victoria-metrics.common.metaLabels" -}} -helm.sh/chart: {{ include "victoria-metrics.chart" . }} -app.kubernetes.io/managed-by: {{ .Release.Service | trunc 63 | trimSuffix "-" }} -{{- end -}} - -{{- define "victoria-metrics.server.labels" -}} -{{ include "victoria-metrics.server.matchLabels" . }} -{{ include "victoria-metrics.common.metaLabels" . }} -{{- end -}} - -{{- define "victoria-metrics.server.matchLabels" -}} -app: {{ .Values.server.name }} -{{ include "victoria-metrics.common.matchLabels" . }} -{{- end -}} - -{{/* -Create a fully qualified server name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -*/}} -{{- define "victoria-metrics.server.fullname" -}} -{{- if .Values.server.fullnameOverride -}} -{{- .Values.server.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- printf "%s-%s" .Release.Name .Values.server.name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s-%s" .Release.Name $name .Values.server.name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - - -{{- define "split-host-port" -}} -{{- $hp := split ":" . -}} -{{- printf "%s" $hp._1 -}} -{{- end -}} - -{{/* -Defines the name of scrape configuration map -*/}} -{{- define "victoria-metrics.server.scrape.configname" -}} -{{- if .Values.server.scrape.configMap -}} -{{- .Values.server.scrape.configMap -}} -{{- else -}} -{{- include "victoria-metrics.server.fullname" . -}}-scrapeconfig -{{- end -}} -{{- end -}} - -{{/* -Return the appropriate apiVersion for ingress. -*/}} -{{- define "victoria-metrics.ingress.apiVersion" -}} - {{- if and (.Capabilities.APIVersions.Has "networking.k8s.io/v1") -}} - {{- print "networking.k8s.io/v1" -}} - {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}} - {{- print "networking.k8s.io/v1beta1" -}} - {{- else -}} - {{- print "extensions/v1beta1" -}} - {{- end -}} -{{- end -}} - -{{/* -Return if ingress is stable. -*/}} -{{- define "victoria-metrics.ingress.isStable" -}} - {{- eq (include "victoria-metrics.ingress.apiVersion" .) "networking.k8s.io/v1" -}} -{{- end -}} - -{{/* -Return if ingress supports ingressClassName. -*/}} -{{- define "victoria-metrics.ingress.supportsIngressClassName" -}} - {{- or (eq (include "victoria-metrics.ingress.isStable" .) "true") (and (eq (include "victoria-metrics.ingress.apiVersion" .) "networking.k8s.io/v1beta1")) -}} -{{- end -}} - -{{/* -Return if ingress supports pathType. -*/}} -{{- define "victoria-metrics.ingress.supportsPathType" -}} - {{- or (eq (include "victoria-metrics.ingress.isStable" .) "true") (and (eq (include "victoria-metrics.ingress.apiVersion" .) "networking.k8s.io/v1beta1")) -}} -{{- end -}} - -{{- define "victoria-metrics.hasInitContainer" -}} - {{- or (gt (len .Values.server.initContainers) 0) .Values.server.vmbackupmanager.restore.onStart.enabled -}} -{{- end -}} - -{{- define "victoria-metrics.initContiners" -}} -{{- if eq (include "victoria-metrics.hasInitContainer" . ) "true" -}} -{{- with .Values.server.initContainers -}} -{{ toYaml . }} -{{- end -}} -{{- if .Values.server.vmbackupmanager.restore.onStart.enabled }} -- name: {{ template "victoria-metrics.name" . }}-vmbackupmanager-restore - image: "{{ .Values.server.vmbackupmanager.image.repository }}:{{ .Values.server.vmbackupmanager.image.tag }}" - imagePullPolicy: "{{ .Values.server.image.pullPolicy }}" - args: - - restore - - {{ printf "%s=%t" "--eula" .Values.server.vmbackupmanager.eula | quote}} - - {{ printf "%s=%s" "--storageDataPath" .Values.server.persistentVolume.mountPath | quote}} - {{- range $key, $value := .Values.server.vmbackupmanager.extraArgs }} - - --{{ $key }}={{ $value }} - {{- end }} - {{- with .Values.server.securityContext }} - securityContext: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.server.vmbackupmanager.resources }} - resources: {{ toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.server.vmbackupmanager.env }} - env: {{ toYaml . | nindent 4 }} - {{- end }} - ports: - - name: manager-http - containerPort: 8300 - volumeMounts: - - name: server-volume - mountPath: {{ .Values.server.persistentVolume.mountPath }} - subPath: {{ .Values.server.persistentVolume.subPath }} - {{- with .Values.server.vmbackupmanager.extraVolumeMounts }} - {{- toYaml . | nindent 4 }} - {{- end }} -{{- end -}} -{{- else -}} -[] -{{- end -}} -{{- end -}} - -{{/* -Return license flag if necessary. -*/}} -{{- define "victoria-metrics.license.flag" -}} -{{- if .Values.license.key -}} ---license={{ .Values.license.key }} -{{- end }} -{{- if and .Values.license.secret.name .Values.license.secret.key -}} ---licenseFile=/etc/vm-license-key/{{ .Values.license.secret.key }} -{{- end -}} -{{- end -}} - - -{{/* -Return license volume mount -*/}} -{{- define "victoria-metrics.license.volume" -}} -{{- if and .Values.license.secret.name .Values.license.secret.key -}} -- name: license-key - secret: - secretName: {{ .Values.license.secret.name }} -{{- end -}} -{{- end -}} - -{{/* -Return license volume mount for container -*/}} -{{- define "victoria-metrics.license.mount" -}} -{{- if and .Values.license.secret.name .Values.license.secret.key -}} -- name: license-key - mountPath: /etc/vm-license-key - readOnly: true -{{- end -}} -{{- end -}} - -{{/* -Enforce license for vmbackupmanager -*/}} -{{- define "victoria-metrics.vmbackupmanager.enforce_license" -}} -{{ if and .Values.server.vmbackupmanager.enable (not (or .Values.server.vmbackupmanager.eula .Values.license.key .Values.license.secret.name)) }} -{{ fail `Pass -eula command-line flag or valid license at .Values.license if you have an enterprise license for running this software. - See https://victoriametrics.com/legal/esa/ for details. - Documentation - https://docs.victoriametrics.com/enterprise.html - for more information, visit https://victoriametrics.com/products/enterprise/ - To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/`}} -{{- end -}} -{{- end -}} - -{{/* -Return true if the detected platform is Openshift -Usage: -{{- include "common.compatibility.isOpenshift" . -}} -*/}} -{{- define "common.compatibility.isOpenshift" -}} -{{- if .Capabilities.APIVersions.Has "security.openshift.io/v1" -}} -{{- true -}} -{{- end -}} -{{- end -}} - -{{/* -Render a compatible securityContext depending on the platform. By default it is maintained as it is. In other platforms like Openshift we remove default user/group values that do not work out of the box with the restricted-v1 SCC -Usage: -{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) -}} -*/}} -{{- define "common.compatibility.renderSecurityContext" -}} -{{- $adaptedContext := .secContext -}} -{{- if .context.Values.global.compatibility -}} - {{- if .context.Values.global.compatibility.openshift -}} - {{- if or (eq .context.Values.global.compatibility.openshift.adaptSecurityContext "force") (and (eq .context.Values.global.compatibility.openshift.adaptSecurityContext "auto") (include "common.compatibility.isOpenshift" .context)) -}} - {{/* Remove incompatible user/group values that do not work in Openshift out of the box */}} - {{- $adaptedContext = omit $adaptedContext "fsGroup" "runAsUser" "runAsGroup" -}} - {{- if not .secContext.seLinuxOptions -}} - {{/* If it is an empty object, we remove it from the resulting context because it causes validation issues */}} - {{- $adaptedContext = omit $adaptedContext "seLinuxOptions" -}} - {{- end -}} - {{- end -}} - {{- end -}} -{{- end -}} -{{- omit $adaptedContext "enabled" | toYaml -}} -{{- end -}} diff --git a/helm-templates/victoria-metrics-single/templates/clusterrole.yaml b/helm-templates/victoria-metrics-single/templates/clusterrole.yaml deleted file mode 100644 index 44a8655..0000000 --- a/helm-templates/victoria-metrics-single/templates/clusterrole.yaml +++ /dev/null @@ -1,50 +0,0 @@ -{{- if and .Values.rbac.create (not .Values.rbac.namespaced) }} -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: {{ template "victoria-metrics.fullname" . }}-clusterrole - labels: - {{- include "victoria-metrics.common.metaLabels" . | nindent 4 }} - {{- if .Values.rbac.extraLabels }} -{{ toYaml .Values.rbac.extraLabels | indent 4}} - {{- end }} -{{- with .Values.rbac.annotations }} - annotations: -{{ toYaml . | indent 4 }} -{{- end }} -{{- if or .Values.rbac.pspEnabled .Values.server.scrape.enabled }} -rules: - {{- if .Values.server.scrape.enabled }} - - apiGroups: - - discovery.k8s.io - resources: - - endpointslices - verbs: ["get", "list", "watch"] - - apiGroups: [ "" ] - resources: - - nodes - - nodes/proxy - - nodes/metrics - - services - - endpoints - - pods - verbs: [ "get", "list", "watch" ] - - apiGroups: - - extensions - - networking.k8s.io - resources: - - ingresses - verbs: [ "get", "list", "watch" ] - - nonResourceURLs: [ "/metrics" ] - verbs: [ "get" ] - {{- end }} - {{- if and .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }} - - apiGroups: ['extensions'] - resources: ['podsecuritypolicies'] - verbs: ['use'] - resourceNames: [{{ template "victoria-metrics.fullname" . }}] - {{- end }} -{{- else }} -rules: [] -{{- end }} -{{- end -}} diff --git a/helm-templates/victoria-metrics-single/templates/clusterrolebinding.yaml b/helm-templates/victoria-metrics-single/templates/clusterrolebinding.yaml deleted file mode 100644 index bee3ea1..0000000 --- a/helm-templates/victoria-metrics-single/templates/clusterrolebinding.yaml +++ /dev/null @@ -1,23 +0,0 @@ -{{- if and .Values.rbac.create (not .Values.rbac.namespaced) }} -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: {{ template "victoria-metrics.fullname" . }}-clusterrolebinding - labels: - {{- include "victoria-metrics.common.metaLabels" . | nindent 4 }} - {{- if .Values.rbac.extraLabels }} -{{ toYaml .Values.rbac.extraLabels | indent 4}} - {{- end }} -{{- with .Values.rbac.annotations }} - annotations: -{{ toYaml . | indent 4 }} -{{- end }} -subjects: - - kind: ServiceAccount - name: {{ template "victoria-metrics.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: {{ template "victoria-metrics.fullname" . }}-clusterrole - apiGroup: rbac.authorization.k8s.io -{{- end -}} diff --git a/helm-templates/victoria-metrics-single/templates/extra-objects.yaml b/helm-templates/victoria-metrics-single/templates/extra-objects.yaml deleted file mode 100644 index a9bb3b6..0000000 --- a/helm-templates/victoria-metrics-single/templates/extra-objects.yaml +++ /dev/null @@ -1,4 +0,0 @@ -{{ range .Values.extraObjects }} ---- -{{ tpl (toYaml .) $ }} -{{ end }} diff --git a/helm-templates/victoria-metrics-single/templates/pdb.yaml b/helm-templates/victoria-metrics-single/templates/pdb.yaml deleted file mode 100644 index acdb390..0000000 --- a/helm-templates/victoria-metrics-single/templates/pdb.yaml +++ /dev/null @@ -1,26 +0,0 @@ -{{- if .Values.podDisruptionBudget.enabled }} -{{- if .Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget" }} -apiVersion: policy/v1 -{{- else -}} -apiVersion: policy/v1beta1 -{{- end }} -kind: PodDisruptionBudget -metadata: - name: {{ template "victoria-metrics.fullname" . }} - namespace: {{ .Release.Namespace }} - labels: - {{- include "victoria-metrics.common.metaLabels" . | nindent 4 }} - {{- if .Values.podDisruptionBudget.extraLabels }} -{{ toYaml .Values.podDisruptionBudget.extraLabels | indent 4}} - {{- end }} -spec: -{{- if .Values.podDisruptionBudget.minAvailable }} - minAvailable: {{ .Values.podDisruptionBudget.minAvailable }} -{{- end }} -{{- if .Values.podDisruptionBudget.maxUnavailable }} - maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }} -{{- end }} - selector: - matchLabels: - {{- include "victoria-metrics.server.matchLabels" . | nindent 6 }} -{{- end }} diff --git a/helm-templates/victoria-metrics-single/templates/podsecuritypolicy.yaml b/helm-templates/victoria-metrics-single/templates/podsecuritypolicy.yaml deleted file mode 100644 index 27affe2..0000000 --- a/helm-templates/victoria-metrics-single/templates/podsecuritypolicy.yaml +++ /dev/null @@ -1,42 +0,0 @@ -{{- if and .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }} -apiVersion: policy/v1beta1 -kind: PodSecurityPolicy -metadata: - name: {{ template "victoria-metrics.fullname" . }} - labels: - {{- include "victoria-metrics.common.metaLabels" . | nindent 4 }} - {{- if .Values.rbac.extraLabels }} -{{ toYaml .Values.rbac.extraLabels | indent 4}} - {{- end }} - annotations: - seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' - seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' - {{- if .Values.rbac.annotations }} - {{ toYaml .Values.rbac.annotations | indent 4}} - {{- end }} -spec: - privileged: false - allowPrivilegeEscalation: false - requiredDropCapabilities: - # Default set from Docker, with DAC_OVERRIDE and CHOWN - - ALL - volumes: - - 'configMap' - - 'emptyDir' - - 'projected' - - 'secret' - - 'downwardAPI' - - 'persistentVolumeClaim' - hostNetwork: false - hostIPC: false - hostPID: false - runAsUser: - rule: 'RunAsAny' - seLinux: - rule: 'RunAsAny' - supplementalGroups: - rule: 'RunAsAny' - fsGroup: - rule: 'RunAsAny' - readOnlyRootFilesystem: false -{{- end }} diff --git a/helm-templates/victoria-metrics-single/templates/role.yaml b/helm-templates/victoria-metrics-single/templates/role.yaml deleted file mode 100644 index 27fd2b8..0000000 --- a/helm-templates/victoria-metrics-single/templates/role.yaml +++ /dev/null @@ -1,23 +0,0 @@ -{{- if and .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }} -{{- if .Values.rbac.create -}} -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: {{ template "victoria-metrics.fullname" . }} - namespace: {{ .Release.Namespace }} - labels: - {{- include "victoria-metrics.common.metaLabels" . | nindent 4 }} - {{- if .Values.rbac.extraLabels }} -{{ toYaml .Values.rbac.extraLabels | indent 4}} - {{- end }} -{{- with .Values.rbac.annotations }} - annotations: -{{ toYaml . | indent 4 }} -{{- end }} -rules: -- apiGroups: ['extensions'] - resources: ['podsecuritypolicies'] - verbs: ['use'] - resourceNames: [{{ template "victoria-metrics.fullname" . }}] -{{- end }} -{{- end }} diff --git a/helm-templates/victoria-metrics-single/templates/rolebinding.yaml b/helm-templates/victoria-metrics-single/templates/rolebinding.yaml deleted file mode 100644 index df9d185..0000000 --- a/helm-templates/victoria-metrics-single/templates/rolebinding.yaml +++ /dev/null @@ -1,26 +0,0 @@ -{{- if and .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }} -{{- if .Values.rbac.create -}} -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: {{ template "victoria-metrics.fullname" . }} - namespace: {{ .Release.Namespace }} - labels: - {{- include "victoria-metrics.common.metaLabels" . | nindent 4 }} - {{- if .Values.rbac.extraLabels }} -{{ toYaml .Values.rbac.extraLabels | indent 4}} - {{- end }} -{{- with .Values.rbac.annotations }} - annotations: -{{ toYaml . | indent 4 }} -{{- end }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: {{ template "victoria-metrics.fullname" . }} -subjects: -- kind: ServiceAccount - name: {{ template "victoria-metrics.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} -{{- end }} -{{- end }} diff --git a/helm-templates/victoria-metrics-single/templates/scrape-configmap.yaml b/helm-templates/victoria-metrics-single/templates/scrape-configmap.yaml deleted file mode 100644 index 7d09eae..0000000 --- a/helm-templates/victoria-metrics-single/templates/scrape-configmap.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- if and .Values.server.scrape.enabled (eq .Values.server.scrape.configMap "") }} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ template "victoria-metrics.server.fullname" . }}-scrapeconfig - namespace: {{ .Release.Namespace }} - labels: {{- include "victoria-metrics.server.labels" . | nindent 4 }} -data: - scrape.yml: | - {{- range $k, $v := .Values.server.scrape.config }} - {{- if and (eq $k "scrape_configs") ($.Values.server.scrape.extraScrapeConfigs) }} - {{ dict $k (concat $v $.Values.server.scrape.extraScrapeConfigs) | toYaml | nindent 4 }} - {{- else }} - {{ dict $k $v | toYaml | nindent 4 }} - {{- end }} - {{- end }} -{{- end }} \ No newline at end of file diff --git a/helm-templates/victoria-metrics-single/templates/server-deployment.yaml b/helm-templates/victoria-metrics-single/templates/server-deployment.yaml deleted file mode 100644 index d636e98..0000000 --- a/helm-templates/victoria-metrics-single/templates/server-deployment.yaml +++ /dev/null @@ -1,257 +0,0 @@ -{{- if and .Values.server.enabled (not .Values.server.statefulSet.enabled) -}} -{{ include "victoria-metrics.vmbackupmanager.enforce_license" . }} -apiVersion: apps/v1 -kind: Deployment -metadata: -{{- if .Values.server.annotations }} - annotations: -{{ toYaml .Values.server.annotations | indent 4 }} -{{- end }} - labels: - {{- include "victoria-metrics.server.labels" . | nindent 4 }} - {{- with .Values.server.extraLabels }} - {{ toYaml .}} - {{- end }} - name: {{ template "victoria-metrics.server.fullname" . }} - namespace: {{ .Release.Namespace }} -spec: - selector: - matchLabels: - {{- include "victoria-metrics.server.matchLabels" . | nindent 6 }} - replicas: 1 -{{- if .Values.server.persistentVolume.enabled }} - strategy: - # Must be "Recreate" when we have a persistent volume - type: Recreate -{{- end }} - template: - metadata: - {{- if .Values.server.podAnnotations }} - annotations: -{{ toYaml .Values.server.podAnnotations | indent 8 }} - {{- end }} - labels: - {{- include "victoria-metrics.server.labels" . | nindent 8 }} - {{- range $key, $value := .Values.server.podLabels }} - {{ $key }}: {{ $value | quote }} - {{- end }} - spec: -{{- if .Values.server.priorityClassName }} - priorityClassName: "{{ .Values.server.priorityClassName }}" -{{- end }} -{{- if .Values.server.schedulerName }} - schedulerName: "{{ .Values.server.schedulerName }}" -{{- end }} - automountServiceAccountToken: {{ .Values.serviceAccount.automountToken }} - {{- if eq (include "victoria-metrics.hasInitContainer" . ) "true" -}} - initContainers: - {{- include "victoria-metrics.initContiners" . | nindent 8 }} - {{- end }} - containers: - - name: {{ template "victoria-metrics.name" . }}-{{ .Values.server.name }} - {{- if .Values.server.securityContext.enabled }} - securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.server.securityContext "context" $) | nindent 12 }} - {{- end }} - image: "{{ .Values.server.image.repository }}:{{ default .Chart.AppVersion .Values.server.image.tag }}{{- with .Values.server.image.variant }}-{{ . }}{{- end }}" - imagePullPolicy: "{{ .Values.server.image.pullPolicy }}" - {{- if .Values.server.containerWorkingDir }} - workingDir: {{ .Values.server.containerWorkingDir }} - {{- end }} - args: - - {{ printf "%s=%s" "--retentionPeriod" (toString .Values.server.retentionPeriod) | quote}} - - {{ printf "%s=%s" "--storageDataPath" .Values.server.persistentVolume.mountPath | quote}} - {{- if .Values.server.scrape.enabled }} - - --promscrape.config=/scrapeconfig/scrape.yml - {{- end }} - {{- range $key, $value := .Values.server.extraArgs }} - {{- if kindIs "slice" $value }} - {{- range $v := $value }} - - --{{ $key }}={{ $v }} - {{- end }} - {{- else }} - - --{{ $key }}={{ $value }} - {{- end }} - {{- end }} - {{- with (include "victoria-metrics.license.flag" .) }} - - {{ . }} - {{- end }} - {{- if .Values.server.envFrom }} - envFrom: - {{- with .Values.server.envFrom -}} - {{ toYaml . | nindent 12 }} - {{- end }} - {{- end }} - {{- with .Values.server.env }} - env: {{ toYaml . | nindent 10 }} - {{- end }} - ports: - - name: http - containerPort: 8428 - {{- if .Values.server.extraArgs.graphiteListenAddr }} - - name: graphite-tcp - protocol: TCP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.graphiteListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.graphiteListenAddr }} - - name: graphite-udp - protocol: UDP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.graphiteListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.influxListenAddr }} - - name: influx-tcp - protocol: TCP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.influxListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.influxListenAddr }} - - name: influx-udp - protocol: UDP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.influxListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.opentsdbHTTPListenAddr }} - - name: opentsdbhttp - protocol: TCP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.opentsdbHTTPListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.opentsdbListenAddr }} - - name: opentsdb-tcp - protocol: TCP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.opentsdbListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.opentsdbListenAddr }} - - name: opentsdb-udp - protocol: UDP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.opentsdbListenAddr }} - {{- end }} - {{- with $.Values.server.livenessProbe }} - livenessProbe: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with $.Values.server.readinessProbe }} - readinessProbe: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with $.Values.server.startupProbe }} - startupProbe: - {{- toYaml . | nindent 12 }} - {{- end }} - resources: -{{ toYaml .Values.server.resources | indent 12 }} - volumeMounts: - - name: server-volume - mountPath: {{ .Values.server.persistentVolume.mountPath }} - subPath: {{ .Values.server.persistentVolume.subPath }} - {{- if .Values.server.scrape.enabled }} - - name: scrapeconfig - mountPath: /scrapeconfig - {{- end }} - {{- range .Values.server.extraHostPathMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- range .Values.server.extraConfigmapMounts }} - - name: {{ $.Values.server.name }}-{{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- range .Values.server.extraSecretMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- include "victoria-metrics.license.mount" . | nindent 12 }} - {{- with .Values.server.extraVolumeMounts }} - {{- toYaml . | nindent 12 }} - {{- end }} - {{- if .Values.server.vmbackupmanager.enable }} - - name: {{ template "victoria-metrics.name" . }}-vmbackupmanager - image: "{{ .Values.server.vmbackupmanager.image.repository }}:{{ default .Chart.AppVersion .Values.server.vmbackupmanager.image.tag }}{{- with .Values.server.vmbackupmanager.image.variant }}-{{ . }}{{- end }}" - imagePullPolicy: "{{ .Values.server.image.pullPolicy }}" - args: - - {{ printf "%s=%t" "--eula" .Values.server.vmbackupmanager.eula | quote}} - - {{ printf "%s=%t" "--disableHourly" .Values.server.vmbackupmanager.disableHourly | quote}} - - {{ printf "%s=%t" "--disableDaily" .Values.server.vmbackupmanager.disableDaily | quote}} - - {{ printf "%s=%t" "--disableWeekly" .Values.server.vmbackupmanager.disableWeekly | quote}} - - {{ printf "%s=%t" "--disableMonthly" .Values.server.vmbackupmanager.disableMonthly | quote}} - - {{ printf "%s=%d" "--keepLastHourly" (int .Values.server.vmbackupmanager.retention.keepLastHourly) | quote}} - - {{ printf "%s=%d" "--keepLastDaily" (int .Values.server.vmbackupmanager.retention.keepLastDaily) | quote}} - - {{ printf "%s=%d" "--keepLastWeekly" (int .Values.server.vmbackupmanager.retention.keepLastWeekly) | quote}} - - {{ printf "%s=%d" "--keepLastMonthly" (int .Values.server.vmbackupmanager.retention.keepLastMonthly) | quote}} - - {{ printf "%s=%s" "--dst" (printf "%s/%s" .Values.server.vmbackupmanager.destination (include "victoria-metrics.name" .) ) | quote}} - - {{ printf "%s=%s" "--storageDataPath" .Values.server.persistentVolume.mountPath | quote}} - - "--snapshot.createURL=http://localhost:8428/snapshot/create" - - "--snapshot.deleteURL=http://localhost:8428/snapshot/delete" - {{- range $key, $value := .Values.server.vmbackupmanager.extraArgs }} - - --{{ $key }}={{ $value }} - {{- end }} - {{- with (include "victoria-metrics.license.flag" .) }} - - {{ . }} - {{- end }} - {{- with .Values.server.vmbackupmanager.resources }} - resources: {{ toYaml . | nindent 12 }} - {{- end }} - {{- with $.Values.server.vmbackupmanager.livenessProbe }} - livenessProbe: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with $.Values.server.vmbackupmanager.readinessProbe }} - readinessProbe: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.server.vmbackupmanager.env }} - env: {{ toYaml . | nindent 12 }} - {{- end }} - ports: - - name: manager-http - containerPort: 8300 - volumeMounts: - - name: server-volume - mountPath: {{ .Values.server.persistentVolume.mountPath }} - subPath: {{ .Values.server.persistentVolume.subPath }} - {{- with .Values.server.vmbackupmanager.extraVolumeMounts }} - {{- toYaml . | nindent 12 }} - {{- end }} - {{- include "victoria-metrics.license.mount" . | nindent 12 }} - {{- end }} - {{- with .Values.server.extraContainers }} - {{- toYaml . | nindent 8 }} - {{- end }} - {{- if .Values.imagePullSecrets }} - imagePullSecrets: - {{ toYaml .Values.imagePullSecrets | indent 2 }} - {{- end }} - {{- if .Values.server.nodeSelector }} - nodeSelector: -{{ toYaml .Values.server.nodeSelector | indent 8 }} - {{- end }} - {{- if .Values.server.podSecurityContext.enabled }} - securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.server.podSecurityContext "context" $) | nindent 8 }} - {{- end }} - serviceAccountName: {{ template "victoria-metrics.serviceAccountName" . }} - {{- if .Values.server.tolerations }} - tolerations: -{{ toYaml .Values.server.tolerations | indent 8 }} - {{- end }} - {{- with .Values.server.affinity }} - affinity: {{ toYaml . | nindent 8 }} - {{- end }} - terminationGracePeriodSeconds: {{ .Values.server.terminationGracePeriodSeconds }} - volumes: - {{- if .Values.server.scrape.enabled }} - - name: scrapeconfig - configMap: - name: {{ include "victoria-metrics.server.scrape.configname" . }} - {{- end }} - {{- with .Values.server.extraVolumes }} - {{- toYaml . | nindent 6 }} - {{- end }} - - name: server-volume -{{- if .Values.server.persistentVolume.enabled }} - persistentVolumeClaim: - claimName: {{ if .Values.server.persistentVolume.existingClaim }}{{ .Values.server.persistentVolume.existingClaim }}{{- else }}{{ template "victoria-metrics.server.fullname" . }}{{- end }} -{{- else }} - emptyDir: {} -{{- end }} - {{- include "victoria-metrics.license.volume" . | nindent 8 }} -{{- end }} diff --git a/helm-templates/victoria-metrics-single/templates/server-ingress.yaml b/helm-templates/victoria-metrics-single/templates/server-ingress.yaml deleted file mode 100644 index e353b9e..0000000 --- a/helm-templates/victoria-metrics-single/templates/server-ingress.yaml +++ /dev/null @@ -1,50 +0,0 @@ -{{- if and .Values.server.enabled .Values.server.ingress.enabled }} -{{- $ingressApiIsStable := eq (include "victoria-metrics.ingress.isStable" .) "true" -}} -{{- $ingressSupportsIngressClassName := eq (include "victoria-metrics.ingress.supportsIngressClassName" .) "true" -}} -{{- $ingressSupportsPathType := eq (include "victoria-metrics.ingress.supportsPathType" .) "true" -}} -{{- $servicePort := .Values.server.service.servicePort -}} -{{- $ingressPathType := .Values.server.ingress.pathType -}} -apiVersion: {{ include "victoria-metrics.ingress.apiVersion" . }} -kind: Ingress -metadata: -{{- if .Values.server.ingress.annotations }} - annotations: -{{ toYaml .Values.server.ingress.annotations | indent 4 }} -{{- end }} - labels: - {{- include "victoria-metrics.server.labels" . | nindent 4 }} - {{ if .Values.server.ingress.extraLabels }} -{{ toYaml .Values.server.ingress.extraLabels | indent 4 }} - {{ end }} - name: {{ template "victoria-metrics.server.fullname" . }} - namespace: {{ .Release.Namespace }} -spec: - {{- if and $ingressSupportsIngressClassName .Values.server.ingress.ingressClassName }} - ingressClassName: {{ .Values.server.ingress.ingressClassName }} - {{- end }} - rules: - {{- $serviceName := include "victoria-metrics.server.fullname" . }} - {{- range .Values.server.ingress.hosts }} - - host: {{ .name }} - http: - paths: - - path: {{ .path }} - {{- if $ingressSupportsPathType }} - pathType: {{ $ingressPathType }} - {{- end }} - backend: - {{- if $ingressApiIsStable }} - service: - name: {{ $serviceName }} - port: - number: {{ $servicePort }} - {{- else }} - serviceName: {{ $serviceName }} - servicePort: {{ .port | default "http"}} - {{- end }} - {{- end -}} -{{- if .Values.server.ingress.tls }} - tls: -{{ toYaml .Values.server.ingress.tls | indent 4 }} -{{- end -}} -{{- end -}} diff --git a/helm-templates/victoria-metrics-single/templates/server-pvc.yaml b/helm-templates/victoria-metrics-single/templates/server-pvc.yaml deleted file mode 100644 index 35b3204..0000000 --- a/helm-templates/victoria-metrics-single/templates/server-pvc.yaml +++ /dev/null @@ -1,33 +0,0 @@ -{{- if .Values.server.persistentVolume.enabled -}} -{{- if not .Values.server.statefulSet.enabled -}} -{{- if not .Values.server.persistentVolume.existingClaim -}} -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ template "victoria-metrics.server.fullname" . }} - namespace: {{ .Release.Namespace }} -{{- with .Values.server.persistentVolume.annotations }} - annotations: -{{ toYaml . | indent 4 }} -{{- end }} - labels: -{{- include "victoria-metrics.server.labels" . | nindent 4 }} -spec: -{{- with .Values.server.persistentVolume.accessModes }} - accessModes: -{{ toYaml . | indent 4 }} -{{- end }} - resources: - requests: - storage: {{ .Values.server.persistentVolume.size | quote }} -{{- if .Values.server.persistentVolume.storageClass }} - storageClassName: {{ .Values.server.persistentVolume.storageClass | quote }} -{{- end }} -{{- with .Values.server.persistentVolume.matchLabels }} - selector: - matchLabels: - {{- toYaml . | nindent 6 }} -{{- end }} -{{- end }} -{{- end }} -{{- end }} diff --git a/helm-templates/victoria-metrics-single/templates/server-service-headless.yaml b/helm-templates/victoria-metrics-single/templates/server-service-headless.yaml deleted file mode 100644 index 9d6f222..0000000 --- a/helm-templates/victoria-metrics-single/templates/server-service-headless.yaml +++ /dev/null @@ -1,72 +0,0 @@ -{{- if and .Values.server.enabled .Values.server.statefulSet.enabled -}} -apiVersion: v1 -kind: Service -metadata: - namespace: {{ .Release.Namespace }} -{{- if .Values.server.statefulSet.service.annotations }} - annotations: -{{ toYaml .Values.server.statefulSet.service.annotations | indent 4}} -{{- end }} - labels: - {{- include "victoria-metrics.server.labels" . | nindent 4 }} -{{- if .Values.server.statefulSet.service.labels }} -{{ toYaml .Values.server.statefulSet.service.labels | indent 4}} -{{- end }} - name: {{ template "victoria-metrics.server.fullname" . }} -spec: - clusterIP: None - {{- with .Values.server.statefulSet.service.healthCheckNodePort }} - healthCheckNodePort: {{ . }} - {{- end }} - {{- with .Values.server.statefulSet.service.externalTrafficPolicy }} - externalTrafficPolicy: {{ . }} - {{- end }} - ports: - - name: http - port: {{ .Values.server.statefulSet.service.servicePort }} - protocol: TCP - targetPort: http -{{- if .Values.server.extraArgs.graphiteListenAddr }} - - name: graphite-tcp - protocol: TCP - port: {{ include "split-host-port" .Values.server.extraArgs.graphiteListenAddr }} - targetPort: graphite-tcp -{{- end }} -{{- if .Values.server.extraArgs.graphiteListenAddr }} - - name: graphite-udp - protocol: UDP - port: {{ include "split-host-port" .Values.server.extraArgs.graphiteListenAddr }} - targetPort: graphite-udp -{{- end }} -{{- if .Values.server.extraArgs.influxListenAddr }} - - name: influx-tcp - protocol: TCP - port: {{ include "split-host-port" .Values.server.extraArgs.influxListenAddr }} - targetPort: influx-tcp -{{- end }} -{{- if .Values.server.extraArgs.influxListenAddr }} - - name: influx-udp - protocol: UDP - port: {{ include "split-host-port" .Values.server.extraArgs.influxListenAddr }} - targetPort: influx-udp -{{- end }} -{{- if .Values.server.extraArgs.opentsdbHTTPListenAddr }} - - name: opentsdbhttp - port: {{ include "split-host-port" .Values.server.extraArgs.opentsdbHTTPListenAddr }} - targetPort: opentsdbhttp -{{- end }} -{{- if .Values.server.extraArgs.opentsdbListenAddr }} - - name: opentsdb-udp - protocol: UDP - port: {{ include "split-host-port" .Values.server.extraArgs.opentsdbListenAddr }} - targetPort: opentsdb-udp -{{- end }} -{{- if .Values.server.extraArgs.opentsdbListenAddr }} - - name: opentsdb-tcp - protocol: TCP - port: {{ include "split-host-port" .Values.server.extraArgs.opentsdbListenAddr }} - targetPort: opentsdb-tcp -{{- end }} - selector: - {{- include "victoria-metrics.server.matchLabels" . | nindent 4 }} -{{- end -}} diff --git a/helm-templates/victoria-metrics-single/templates/server-service-monitor.yaml b/helm-templates/victoria-metrics-single/templates/server-service-monitor.yaml deleted file mode 100644 index 398535e..0000000 --- a/helm-templates/victoria-metrics-single/templates/server-service-monitor.yaml +++ /dev/null @@ -1,48 +0,0 @@ -{{- if and .Values.server.enabled .Values.server.serviceMonitor.enabled -}} -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - {{- if .Values.server.serviceMonitor.annotations }} - annotations: -{{ toYaml .Values.server.serviceMonitor.annotations | indent 4 }} - {{- end }} - labels: - {{- include "victoria-metrics.server.labels" . | nindent 4 }} - {{- if .Values.server.serviceMonitor.extraLabels }} -{{ toYaml .Values.server.serviceMonitor.extraLabels | indent 4 }} - {{- end }} - name: {{ template "victoria-metrics.server.fullname" . }} - {{- if .Values.server.serviceMonitor.namespace }} - namespace: {{ .Values.server.serviceMonitor.namespace }} - {{- end }} -spec: - namespaceSelector: - matchNames: - - {{ .Release.Namespace }} - selector: - matchLabels: - {{- include "victoria-metrics.server.matchLabels" . | nindent 6 }} - endpoints: - - port: http - {{- if .Values.server.serviceMonitor.scheme }} - scheme: {{ .Values.server.serviceMonitor.scheme }} - {{- end }} - {{- if .Values.server.serviceMonitor.interval }} - interval: {{ .Values.server.serviceMonitor.interval }} - {{- end }} - {{- if .Values.server.serviceMonitor.scrapeTimeout }} - scrapeTimeout: {{ .Values.server.serviceMonitor.scrapeTimeout }} - {{- end }} - {{- with .Values.server.serviceMonitor.tlsConfig }} - tlsConfig: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.server.serviceMonitor.relabelings }} - relabelings: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.server.serviceMonitor.metricRelabelings }} - metricRelabelings: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- end }} diff --git a/helm-templates/victoria-metrics-single/templates/server-service.yaml b/helm-templates/victoria-metrics-single/templates/server-service.yaml deleted file mode 100644 index b58e7df..0000000 --- a/helm-templates/victoria-metrics-single/templates/server-service.yaml +++ /dev/null @@ -1,91 +0,0 @@ -{{- if and .Values.server.enabled (not .Values.server.statefulSet.enabled) -}} -apiVersion: v1 -kind: Service -metadata: - namespace: {{ .Release.Namespace }} -{{- if .Values.server.service.annotations }} - annotations: -{{ toYaml .Values.server.service.annotations | indent 4}} -{{- end }} - labels: - {{- include "victoria-metrics.server.labels" . | nindent 4 }} -{{- if .Values.server.service.labels }} -{{ toYaml .Values.server.service.labels | indent 4}} -{{- end }} - name: {{ template "victoria-metrics.server.fullname" . }} -spec: -{{- if .Values.server.service.clusterIP }} - clusterIP: {{ .Values.server.service.clusterIP }} -{{- end }} -{{- if .Values.server.service.externalIPs }} - externalIPs: -{{ toYaml .Values.server.service.externalIPs | indent 4 }} -{{- end }} -{{- if .Values.server.service.loadBalancerIP }} - loadBalancerIP: {{ .Values.server.service.loadBalancerIP }} -{{- end }} -{{- if .Values.server.service.loadBalancerSourceRanges }} - loadBalancerSourceRanges: - {{- range $cidr := .Values.server.service.loadBalancerSourceRanges }} - - {{ $cidr }} - {{- end }} -{{- end }} - ports: - - name: http - port: {{ .Values.server.service.servicePort }} - protocol: TCP - targetPort: http - {{- with .Values.server.service.nodePort }} - nodePort: {{ . }} - {{- end }} -{{- if .Values.server.extraArgs.graphiteListenAddr }} - - name: graphite-tcp - protocol: TCP - port: {{ include "split-host-port" .Values.server.extraArgs.graphiteListenAddr }} - targetPort: graphite-tcp -{{- end }} -{{- if .Values.server.extraArgs.graphiteListenAddr }} - - name: graphite-udp - protocol: UDP - port: {{ include "split-host-port" .Values.server.extraArgs.graphiteListenAddr }} - targetPort: graphite-udp -{{- end }} -{{- if .Values.server.extraArgs.influxListenAddr }} - - name: influx-tcp - protocol: TCP - port: {{ include "split-host-port" .Values.server.extraArgs.influxListenAddr }} - targetPort: influx-tcp -{{- end }} -{{- if .Values.server.extraArgs.influxListenAddr }} - - name: influx-udp - protocol: UDP - port: {{ include "split-host-port" .Values.server.extraArgs.influxListenAddr }} - targetPort: influx-udp -{{- end }} -{{- if .Values.server.extraArgs.opentsdbHTTPListenAddr }} - - name: opentsdbhttp - port: {{ include "split-host-port" .Values.server.extraArgs.opentsdbHTTPListenAddr }} - targetPort: opentsdbhttp -{{- end }} -{{- if .Values.server.extraArgs.opentsdbListenAddr }} - - name: opentsdb-udp - protocol: UDP - port: {{ include "split-host-port" .Values.server.extraArgs.opentsdbListenAddr }} - targetPort: opentsdb-udp -{{- end }} -{{- if .Values.server.extraArgs.opentsdbListenAddr }} - - name: opentsdb-tcp - protocol: TCP - port: {{ include "split-host-port" .Values.server.extraArgs.opentsdbListenAddr }} - targetPort: opentsdb-tcp -{{- end }} - selector: - {{- include "victoria-metrics.server.matchLabels" . | nindent 4 }} - type: "{{ .Values.server.service.type }}" - {{- with .Values.server.service.healthCheckNodePort }} - healthCheckNodePort: {{ . }} - {{- end }} - {{- with .Values.server.service.externalTrafficPolicy }} - externalTrafficPolicy: {{ . }} - {{- end }} -{{- end }} diff --git a/helm-templates/victoria-metrics-single/templates/server-statefulset.yaml b/helm-templates/victoria-metrics-single/templates/server-statefulset.yaml deleted file mode 100644 index f5fcaa0..0000000 --- a/helm-templates/victoria-metrics-single/templates/server-statefulset.yaml +++ /dev/null @@ -1,289 +0,0 @@ -{{- if and .Values.server.enabled .Values.server.statefulSet.enabled -}} -{{ include "victoria-metrics.vmbackupmanager.enforce_license" . }} -apiVersion: apps/v1 -kind: StatefulSet -metadata: - namespace: {{ .Release.Namespace }} - name: {{ template "victoria-metrics.server.fullname" . }} - labels: - {{- include "victoria-metrics.server.labels" . | nindent 4 }} - {{- with .Values.server.extraLabels }} - {{ toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.server.annotations }} - annotations: - {{ toYaml . | nindent 4 }} - {{- end }} -spec: - serviceName: {{ template "victoria-metrics.server.fullname" . }} - selector: - matchLabels: - {{- include "victoria-metrics.server.matchLabels" . | nindent 6 }} - replicas: 1 - podManagementPolicy: {{ .Values.server.podManagementPolicy }} - template: - metadata: - {{- if .Values.server.podAnnotations }} - annotations: -{{ toYaml .Values.server.podAnnotations | indent 8 }} - {{- end }} - labels: - {{- include "victoria-metrics.server.labels" . | nindent 8 }} - {{- range $key, $value := .Values.server.podLabels }} - {{ $key }}: {{ $value | quote }} - {{- end }} - spec: -{{- if .Values.server.priorityClassName }} - priorityClassName: "{{ .Values.server.priorityClassName }}" -{{- end }} -{{- if .Values.server.schedulerName }} - schedulerName: "{{ .Values.server.schedulerName }}" -{{- end }} - automountServiceAccountToken: {{ .Values.serviceAccount.automountToken }} - {{- if eq (include "victoria-metrics.hasInitContainer" . ) "true" }} - initContainers: - {{- include "victoria-metrics.initContiners" . | nindent 8 }} - {{- end }} - containers: - - name: {{ template "victoria-metrics.name" . }}-{{ .Values.server.name }} - {{- if .Values.server.securityContext.enabled }} - securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.server.securityContext "context" $) | nindent 12 }} - {{- end }} - image: "{{ .Values.server.image.repository }}:{{ default .Chart.AppVersion .Values.server.image.tag }}{{- with .Values.server.image.variant }}-{{ . }}{{- end }}" - imagePullPolicy: "{{ .Values.server.image.pullPolicy }}" - {{- if .Values.server.containerWorkingDir }} - workingDir: {{ .Values.server.containerWorkingDir }} - {{- end }} - args: - - {{ printf "%s=%s" "--retentionPeriod" (toString .Values.server.retentionPeriod) | quote}} - - {{ printf "%s=%s" "--storageDataPath" .Values.server.persistentVolume.mountPath | quote}} - {{- if .Values.server.scrape.enabled }} - - --promscrape.config=/scrapeconfig/scrape.yml - {{- end }} - {{- range $key, $value := .Values.server.extraArgs }} - {{- if kindIs "slice" $value }} - {{- range $v := $value }} - - --{{ $key }}={{ $v }} - {{- end }} - {{- else }} - - --{{ $key }}={{ $value }} - {{- end }} - {{- end }} - {{- with (include "victoria-metrics.license.flag" .) }} - - {{ . }} - {{- end }} - {{- if .Values.server.envFrom }} - envFrom: - {{- with .Values.server.envFrom -}} - {{ toYaml . | nindent 12 }} - {{- end }} - {{- end }} - {{- with .Values.server.env }} - env: {{ toYaml . | nindent 10 }} - {{- end }} - ports: - - name: http - containerPort: 8428 - {{- if .Values.server.extraArgs.graphiteListenAddr }} - - name: graphite-tcp - protocol: TCP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.graphiteListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.graphiteListenAddr }} - - name: graphite-udp - protocol: UDP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.graphiteListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.influxListenAddr }} - - name: influx-tcp - protocol: TCP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.influxListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.influxListenAddr }} - - name: influx-udp - protocol: UDP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.influxListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.opentsdbHTTPListenAddr }} - - name: opentsdbhttp - protocol: TCP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.opentsdbHTTPListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.opentsdbListenAddr }} - - name: opentsdb-tcp - protocol: TCP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.opentsdbListenAddr }} - {{- end }} - {{- if .Values.server.extraArgs.opentsdbListenAddr }} - - name: opentsdb-udp - protocol: UDP - containerPort: {{ include "split-host-port" .Values.server.extraArgs.opentsdbListenAddr }} - {{- end }} - {{- with $.Values.server.livenessProbe }} - livenessProbe: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with $.Values.server.readinessProbe }} - readinessProbe: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with $.Values.server.startupProbe }} - startupProbe: - {{- toYaml . | nindent 12 }} - {{- end }} - resources: - {{- toYaml .Values.server.resources | nindent 12 }} - volumeMounts: - - name: server-volume - mountPath: {{ .Values.server.persistentVolume.mountPath }} - subPath: {{ .Values.server.persistentVolume.subPath }} - {{- if .Values.server.scrape.enabled }} - - name: scrapeconfig - mountPath: /scrapeconfig - {{- end }} - {{- range .Values.server.extraHostPathMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- range .Values.server.extraConfigmapMounts }} - - name: {{ $.Values.server.name }}-{{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- range .Values.server.extraSecretMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- include "victoria-metrics.license.mount" . | nindent 12 }} - {{- with .Values.server.extraVolumeMounts }} - {{- toYaml . | nindent 12 }} - {{- end }} - {{- if .Values.server.vmbackupmanager.enable }} - - name: {{ template "victoria-metrics.name" . }}-vmbackupmanager - image: "{{ .Values.server.vmbackupmanager.image.repository }}:{{ default .Chart.AppVersion .Values.server.vmbackupmanager.image.tag }}{{- with .Values.server.vmbackupmanager.image.variant }}-{{ . }}{{- end }}" - imagePullPolicy: "{{ .Values.server.image.pullPolicy }}" - args: - - {{ printf "%s=%t" "--eula" .Values.server.vmbackupmanager.eula | quote}} - - {{ printf "%s=%t" "--disableHourly" .Values.server.vmbackupmanager.disableHourly | quote}} - - {{ printf "%s=%t" "--disableDaily" .Values.server.vmbackupmanager.disableDaily | quote}} - - {{ printf "%s=%t" "--disableWeekly" .Values.server.vmbackupmanager.disableWeekly | quote}} - - {{ printf "%s=%t" "--disableMonthly" .Values.server.vmbackupmanager.disableMonthly | quote}} - - {{ printf "%s=%d" "--keepLastHourly" (int .Values.server.vmbackupmanager.retention.keepLastHourly) | quote}} - - {{ printf "%s=%d" "--keepLastDaily" (int .Values.server.vmbackupmanager.retention.keepLastDaily) | quote}} - - {{ printf "%s=%d" "--keepLastWeekly" (int .Values.server.vmbackupmanager.retention.keepLastWeekly) | quote}} - - {{ printf "%s=%d" "--keepLastMonthly" (int .Values.server.vmbackupmanager.retention.keepLastMonthly) | quote}} - - {{ printf "%s=%s" "--dst" (printf "%s/%s" .Values.server.vmbackupmanager.destination (include "victoria-metrics.name" .) ) | quote}} - - {{ printf "%s=%s" "--storageDataPath" .Values.server.persistentVolume.mountPath | quote}} - - "--snapshot.createURL=http://localhost:8428/snapshot/create" - - "--snapshot.deleteURL=http://localhost:8428/snapshot/delete" - {{- range $key, $value := .Values.server.vmbackupmanager.extraArgs }} - - --{{ $key }}={{ $value }} - {{- end }} - {{- with (include "victoria-metrics.license.flag" .) }} - - {{ . }} - {{- end }} - {{- with .Values.server.vmbackupmanager.resources }} - resources: {{ toYaml . | nindent 12 }} - {{- end }} - {{- if .Values.server.securityContext.enabled }} - securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.server.securityContext "context" $) | nindent 12 }} - {{- end }} - {{- with $.Values.server.vmbackupmanager.livenessProbe }} - livenessProbe: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with $.Values.server.vmbackupmanager.readinessProbe }} - readinessProbe: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.server.vmbackupmanager.env }} - env: {{ toYaml . | nindent 12 }} - {{- end }} - ports: - - name: manager-http - containerPort: 8300 - volumeMounts: - - name: server-volume - mountPath: {{ .Values.server.persistentVolume.mountPath }} - subPath: {{ .Values.server.persistentVolume.subPath }} - {{- with .Values.server.vmbackupmanager.extraVolumeMounts }} - {{- toYaml . | nindent 12 }} - {{- end }} - {{- include "victoria-metrics.license.mount" . | nindent 12 }} - {{- end }} - {{- with .Values.server.extraContainers }} - {{- toYaml . | nindent 8 }} - {{- end }} - {{- if .Values.imagePullSecrets }} - imagePullSecrets: - {{ toYaml .Values.imagePullSecrets | indent 2 }} - {{- end }} - {{- if .Values.server.nodeSelector }} - nodeSelector: -{{ toYaml .Values.server.nodeSelector | indent 8 }} - {{- end }} - {{- if .Values.server.podSecurityContext.enabled }} - securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.server.podSecurityContext "context" $) | nindent 8 }} - {{- end }} - serviceAccountName: {{ template "victoria-metrics.serviceAccountName" . }} - {{- if .Values.server.tolerations }} - tolerations: -{{ toYaml .Values.server.tolerations | indent 8 }} - {{- end }} - {{- with .Values.server.affinity }} - affinity: {{ toYaml . | nindent 8 }} - {{- end }} - terminationGracePeriodSeconds: {{ .Values.server.terminationGracePeriodSeconds }} - volumes: - {{- if .Values.server.scrape.enabled }} - - name: scrapeconfig - configMap: - name: {{ include "victoria-metrics.server.scrape.configname" . }} - {{- end }} - {{- if not .Values.server.persistentVolume.enabled }} - - name: server-volume - emptyDir: {} - {{- else }} - {{- if .Values.server.persistentVolume.existingClaim }} - - name: server-volume - persistentVolumeClaim: - claimName: {{ .Values.server.persistentVolume.existingClaim }} - {{- end }} - {{- end }} - {{- with .Values.server.extraVolumes }} - {{- toYaml . | nindent 8 }} - {{- end }} - {{- include "victoria-metrics.license.volume" . | nindent 8 }} - {{- if and .Values.server.persistentVolume.enabled (not .Values.server.persistentVolume.existingClaim) }} - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: server-volume - {{- if .Values.server.persistentVolume.annotations }} - annotations: -{{ toYaml .Values.server.persistentVolume.annotations | indent 10 }} - {{- end }} - spec: - accessModes: -{{ toYaml .Values.server.persistentVolume.accessModes | indent 10 }} - resources: - requests: - storage: "{{ .Values.server.persistentVolume.size }}" - {{- if .Values.server.persistentVolume.storageClass }} - {{- if (eq "-" .Values.server.persistentVolume.storageClass) }} - storageClassName: "" - {{- else }} - storageClassName: "{{ .Values.server.persistentVolume.storageClass }}" - {{- end }} - {{- end }} - {{- with .Values.server.persistentVolume.matchLabels }} - selector: - matchLabels: - {{- toYaml . | nindent 12 }} - {{- end }} -{{- end }} -{{- end }} diff --git a/helm-templates/victoria-metrics-single/templates/serviceaccount.yaml b/helm-templates/victoria-metrics-single/templates/serviceaccount.yaml deleted file mode 100644 index ebb6168..0000000 --- a/helm-templates/victoria-metrics-single/templates/serviceaccount.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- if .Values.serviceAccount.create }} -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - {{- include "victoria-metrics.common.metaLabels" . | nindent 4 }} - {{- if .Values.serviceAccount.extraLabels }} -{{ toYaml .Values.serviceAccount.extraLabels | indent 4}} - {{- end }} -{{- with .Values.serviceAccount.annotations }} - annotations: -{{ toYaml . | indent 4 }} -{{- end }} - name: {{ template "victoria-metrics.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} -{{- end }} \ No newline at end of file diff --git a/helm-templates/victoria-metrics-single/values.yaml b/helm-templates/victoria-metrics-single/values.yaml deleted file mode 100644 index ca0a85e..0000000 --- a/helm-templates/victoria-metrics-single/values.yaml +++ /dev/null @@ -1,710 +0,0 @@ -# Default values for victoria-metrics. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. -global: - compatibility: - openshift: - adaptSecurityContext: "auto" - -rbac: - create: true - # Note: The PSP will only be deployed, if Kubernetes (<1.25) supports the resource. - pspEnabled: true - namespaced: false - extraLabels: {} - # annotations: {} - -# -- Print chart notes -printNotes: true - -serviceAccount: - # -- Create service account. - create: true - # name: - extraLabels: {} - # annotations: {} - # -- Mount API token to pod directly - automountToken: true - -automountServiceAccountToken: true - -podDisruptionBudget: - # -- See `kubectl explain poddisruptionbudget.spec` for more. Ref: [https://kubernetes.io/docs/tasks/run-application/configure-pdb/](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) - enabled: false - # minAvailable: 1 - # maxUnavailable: 1 - extraLabels: {} - -server: - # -- Enable deployment of server component. Deployed as StatefulSet - enabled: true - # -- Server container name - name: server - image: - # -- Image repository - repository: victoriametrics/victoria-metrics - # -- Image tag - tag: "" # rewrites Chart.AppVersion - # Variant of the image tag to use. - # e.g. enterprise. - variant: "" - # -- Image pull policy - pullPolicy: IfNotPresent - # -- Name of Priority Class - priorityClassName: "" - # -- Overrides the full name of server component - fullnameOverride: - # -- Data retention period in month - retentionPeriod: 1 - # Extra command line arguments for container of component - extraArgs: - envflag.enable: "true" - envflag.prefix: VM_ - loggerFormat: json - - # Additional hostPath mounts - extraHostPathMounts: - [] - #- name: certs-dir - # mountPath: /etc/kubernetes/certs - # subPath: "" - # hostPath: /etc/kubernetes/certs - # readOnly: true - - # Extra Volumes for the pod - extraVolumes: - [] - #- name: example - # configMap: - # name: example - - # Extra Volume Mounts for the container - extraVolumeMounts: - [] - # - name: example - # mountPath: /example - - extraContainers: - [] - #- name: config-reloader - # image: reloader-image - - initContainers: - [] - # - name: vmrestore - # image: victoriametrics/vmrestore:latest - # volumeMounts: - # - mountPath: /storage - # name: vmstorage-volume - # - mountPath: /etc/vm/creds - # name: secret-remote-storage-keys - # readOnly: true - # args: - # - -storageDataPath=/storage - # - -src=s3://your_bucket/folder/latest - # - -credsFilePath=/etc/vm/creds/credentials - - # -- Node tolerations for server scheduling to nodes with taints. Ref: [https://kubernetes.io/docs/concepts/configuration/assign-pod-node/](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) - tolerations: - [] - # - key: "key" - # operator: "Equal|Exists" - # value: "value" - # effect: "NoSchedule|PreferNoSchedule" - - # -- Pod's node selector. Ref: [https://kubernetes.io/docs/user-guide/node-selection/](https://kubernetes.io/docs/user-guide/node-selection/) - nodeSelector: {} - - # -- Pod affinity - affinity: {} - - # -- Env variables - # -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables - env: [] - - envFrom: [] - #- configMapRef: - # name: special-config - - # -- Container workdir - containerWorkingDir: "" - - ## Use an alternate scheduler, e.g. "stork". - ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ - ## - # schedulerName: - - persistentVolume: - # -- Create/use Persistent Volume Claim for server component. Empty dir if false - enabled: true - - # -- Array of access modes. Must match those of existing PV or dynamic provisioner. Ref: [http://kubernetes.io/docs/user-guide/persistent-volumes/](http://kubernetes.io/docs/user-guide/persistent-volumes/) - accessModes: - - ReadWriteOnce - # -- Persistant volume annotations - annotations: {} - - # -- StorageClass to use for persistent volume. Requires server.persistentVolume.enabled: true. If defined, PVC created automatically - storageClass: "" - - # -- Existing Claim name. If defined, PVC must be created manually before volume will be bound - existingClaim: "" - - # -- Bind Persistent Volume by labels. Must match all labels of targeted PV. - matchLabels: {} - - # -- Mount path. Server data Persistent Volume mount root path. - mountPath: /storage - # -- Mount subpath - subPath: "" - # -- Size of the volume. Should be calculated based on the metrics you send and retention policy you set. - size: 16Gi - - # -- Sts/Deploy additional labels - extraLabels: {} - # -- Pod's additional labels - podLabels: {} - # -- Pod's annotations - podAnnotations: {} - # -- Pod's management policy - podManagementPolicy: OrderedReady - - # -- Resource object. Ref: [http://kubernetes.io/docs/user-guide/compute-resources/](http://kubernetes.io/docs/user-guide/compute-resources/ - resources: - {} - # limits: - # cpu: 500m - # memory: 512Mi - # requests: - # cpu: 500m - # memory: 512Mi - - # Indicates whether the Container is ready to service requests. If the readiness probe fails, the endpoints controller removes the Pod's IP address from the endpoints of all Services that match the Pod. The default state of readiness before the initial delay is Failure. If a Container does not provide a readiness probe, the default state is Success. - readinessProbe: - httpGet: - path: /health - port: http - initialDelaySeconds: 5 - periodSeconds: 15 - timeoutSeconds: 5 - failureThreshold: 3 - - # Indicates whether the Container is running. If the liveness probe fails, the kubelet kills the Container, and the Container is subjected to its restart policy. If a Container does not provide a liveness probe, the default state is Success. - livenessProbe: - httpGet: - scheme: HTTP - path: /health - port: 8428 - initialDelaySeconds: 30 - periodSeconds: 30 - timeoutSeconds: 5 - failureThreshold: 10 - - # Indicates whether the Container is done with potentially costly initialization. If set it is executed first. If it fails Container is restarted. If it succeeds liveness and readiness probes takes over. - startupProbe: {} - #tcpSocket: - # port: http - #failureThreshold: 30 - #periodSeconds: 15 - #successThreshold: 1 - #timeoutSeconds: 5 - - # -- Security context to be added to server pods - securityContext: - enabled: true - # -- Pod's security context. Ref: [https://kubernetes.io/docs/tasks/configure-pod-container/security-context/](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) - podSecurityContext: - enabled: true - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: 'true' - - # -- Ingress extra labels - extraLabels: {} - # -- Array of host objects - hosts: [] - # - name: vmselect.local - # path: /select - # port: http - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.local - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # -- pathType is only for k8s >= 1.1= - pathType: Prefix - - vmbackupmanager: - # -- enable automatic creation of backup via vmbackupmanager. vmbackupmanager is part of Enterprise packages - enable: false - # -- should be true and means that you have the legal right to run a backup manager - # that can either be a signed contract or an email with confirmation to run the service in a trial period - # # https://victoriametrics.com/legal/esa/ - eula: false - image: - # -- vmbackupmanager image repository - repository: victoriametrics/vmbackupmanager - # -- vmbackupmanager image tag - tag: v1.101.0-enterprise - # Variant of the image tag to use. - # e.g. enterprise. - variant: "" - # -- disable hourly backups - disableHourly: false - # -- disable daily backups - disableDaily: false - # -- disable weekly backups - disableWeekly: false - # -- disable monthly backups - disableMonthly: false - # -- backup destination at S3, GCS or local filesystem. Release name will be included to path! - destination: "" - # -- backups' retention settings - retention: - # -- keep last N hourly backups. 0 means delete all existing hourly backups. Specify -1 to turn off - keepLastHourly: 2 - # -- keep last N daily backups. 0 means delete all existing daily backups. Specify -1 to turn off - keepLastDaily: 2 - # -- keep last N weekly backups. 0 means delete all existing weekly backups. Specify -1 to turn off - keepLastWeekly: 2 - # -- keep last N monthly backups. 0 means delete all existing monthly backups. Specify -1 to turn off - keepLastMonthly: 2 - extraArgs: - envflag.enable: "true" - envflag.prefix: VM_ - loggerFormat: json - # Extra Volume Mounts for the container - extraVolumeMounts: - [] - # - name: example - # mountPath: /example - # -- Allows to enable restore options for pod. - # Read more: https://docs.victoriametrics.com/vmbackupmanager.html#restore-commands - restore: - onStart: - enabled: false - resources: {} - # -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables - env: [] - readinessProbe: - httpGet: - path: /health - port: manager-http - initialDelaySeconds: 5 - periodSeconds: 15 - timeoutSeconds: 5 - failureThreshold: 3 - livenessProbe: - tcpSocket: - port: manager-http - initialDelaySeconds: 30 - periodSeconds: 30 - timeoutSeconds: 5 - failureThreshold: 10 - service: - # -- Service annotations - annotations: {} - # -- Service labels - labels: {} - # -- Service ClusterIP - clusterIP: "" - # -- Service External IPs. Ref: [https://kubernetes.io/docs/user-guide/services/#external-ips]( https://kubernetes.io/docs/user-guide/services/#external-ips) - externalIPs: [] - # -- Service load balacner IP - loadBalancerIP: "" - # -- Load balancer source range - loadBalancerSourceRanges: [] - # -- Service port - servicePort: 8428 - # -- Node port - # nodePort: 30000 - # -- Service type - type: ClusterIP - # Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip - # externalTrafficPolicy: "local" - # healthCheckNodePort: 0 - - statefulSet: - # -- Creates statefulset instead of deployment, useful when you want to keep the cache - enabled: true - # -- Deploy order policy for StatefulSet pods - podManagementPolicy: OrderedReady - # Headless service for statefulset - service: - # -- Headless service annotations - annotations: {} - # -- Headless service labels - labels: {} - # -- Headless service port - servicePort: 8428 - # Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip - # externalTrafficPolicy: "local" - # healthCheckNodePort: 0 - # -- Pod's termination grace period in seconds - terminationGracePeriodSeconds: 60 - serviceMonitor: - # -- Enable deployment of Service Monitor for server component. This is Prometheus operator object - enabled: false - # -- Service Monitor labels - extraLabels: {} - # -- Service Monitor annotations - annotations: {} - # -- Commented. Prometheus scrape interval for server component -# interval: 15s - # -- Commented. Prometheus pre-scrape timeout for server component -# scrapeTimeout: 5s - # -- Commented. HTTP scheme to use for scraping. -# scheme: https - # -- Commented. TLS configuration to use when scraping the endpoint -# tlsConfig: -# insecureSkipVerify: true - # -- Service Monitor relabelings - relabelings: [] - # -- Service Monitor metricRelabelings - metricRelabelings: [] - - # -- Scrape configuration for victoriametrics - scrape: - # -- If true scrapes targets, creates config map or use specified one with scrape targets - enabled: false - # -- Use existing configmap if specified - # otherwise .config values will be used - configMap: "" - # -- Scrape config - config: - global: - scrape_interval: 15s - - # -- Scrape targets - scrape_configs: - # -- Scrape rule for scrape victoriametrics - - job_name: victoriametrics - static_configs: - - targets: [ "localhost:8428" ] - - ## COPY from Prometheus helm chart https://github.com/helm/charts/blob/master/stable/prometheus/values.yaml - - # -- Scrape config for API servers. - # - # Kubernetes exposes API servers as endpoints to the default/kubernetes - # service so this uses `endpoints` role and uses relabelling to only keep - # the endpoints associated with the default/kubernetes service using the - # default named port `https`. This works for single API server deployments as - # well as HA API server deployments. - - job_name: "kubernetes-apiservers" - kubernetes_sd_configs: - - role: endpoints - # Default to scraping over https. If required, just disable this or change to - # `http`. - scheme: https - # This TLS & bearer token file config is used to connect to the actual scrape - # endpoints for cluster components. This is separate to discovery auth - # configuration because discovery & scraping are two separate concerns in - # Prometheus. The discovery auth config is automatic if Prometheus runs inside - # the cluster. Otherwise, more config options have to be provided within the - # . - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - # If your node certificates are self-signed or use a different CA to the - # master CA, then you need to disable certificate verification. Note that - # certificate verification is an integral part of a secure infrastructure - # so this should only be disabled in a controlled environment. You can - # enable certificate verification by commenting the line below. - # - insecure_skip_verify: true - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - # Keep only the default/kubernetes service endpoints for the https port. This - # will add targets for each API server which Kubernetes adds an endpoint to - # the default/kubernetes service. - relabel_configs: - - source_labels: - [ - __meta_kubernetes_namespace, - __meta_kubernetes_service_name, - __meta_kubernetes_endpoint_port_name, - ] - action: keep - regex: default;kubernetes;https - # -- Scrape rule using kubernetes service discovery for nodes - - job_name: "kubernetes-nodes" - # Default to scraping over https. If required, just disable this or change to - # `http`. - scheme: https - # This TLS & bearer token file config is used to connect to the actual scrape - # endpoints for cluster components. This is separate to discovery auth - # configuration because discovery & scraping are two separate concerns in - # Prometheus. The discovery auth config is automatic if Prometheus runs inside - # the cluster. Otherwise, more config options have to be provided within the - # . - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - # If your node certificates are self-signed or use a different CA to the - # master CA, then you need to disable certificate verification. Note that - # certificate verification is an integral part of a secure infrastructure - # so this should only be disabled in a controlled environment. You can - # enable certificate verification by commenting the line below. - # - insecure_skip_verify: true - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - kubernetes_sd_configs: - - role: node - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - target_label: __address__ - replacement: kubernetes.default.svc:443 - - source_labels: [ __meta_kubernetes_node_name ] - regex: (.+) - target_label: __metrics_path__ - replacement: /api/v1/nodes/$1/proxy/metrics - # -- Scrape rule using kubernetes service discovery for cadvisor - - job_name: "kubernetes-nodes-cadvisor" - # Default to scraping over https. If required, just disable this or change to - # `http`. - scheme: https - # This TLS & bearer token file config is used to connect to the actual scrape - # endpoints for cluster components. This is separate to discovery auth - # configuration because discovery & scraping are two separate concerns in - # Prometheus. The discovery auth config is automatic if Prometheus runs inside - # the cluster. Otherwise, more config options have to be provided within the - # . - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - # If your node certificates are self-signed or use a different CA to the - # master CA, then you need to disable certificate verification. Note that - # certificate verification is an integral part of a secure infrastructure - # so this should only be disabled in a controlled environment. You can - # enable certificate verification by commenting the line below. - # - insecure_skip_verify: true - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - kubernetes_sd_configs: - - role: node - # This configuration will work only on kubelet 1.7.3+ - # As the scrape endpoints for cAdvisor have changed - # if you are using older version you need to change the replacement to - # replacement: /api/v1/nodes/$1:4194/proxy/metrics - # more info here https://github.com/coreos/prometheus-operator/issues/633 - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - target_label: __address__ - replacement: kubernetes.default.svc:443 - - source_labels: [ __meta_kubernetes_node_name ] - regex: (.+) - target_label: __metrics_path__ - replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honor_timestamps: false - # -- Scrape config for service endpoints. - # - # The relabeling allows the actual service scrape endpoint to be configured - # via the following annotations: - # - # * `prometheus.io/scrape`: Only scrape services that have a value of `true` - # * `prometheus.io/scheme`: If the metrics endpoint is secured then you will need - # to set this to `https` & most likely set the `tls_config` of the scrape config. - # * `prometheus.io/path`: If the metrics path is not `/metrics` override this. - # * `prometheus.io/port`: If the metrics are exposed on a different port to the - # service then set this appropriately. - # -- Scrape rule using kubernetes service discovery for endpoints - - job_name: "kubernetes-service-endpoints" - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: drop - source_labels: [ __meta_kubernetes_pod_container_init ] - regex: true - - action: keep_if_equal - source_labels: [ __meta_kubernetes_service_annotation_prometheus_io_port, __meta_kubernetes_pod_container_port_number ] - - source_labels: - [ __meta_kubernetes_service_annotation_prometheus_io_scrape ] - action: keep - regex: true - - source_labels: - [ __meta_kubernetes_service_annotation_prometheus_io_scheme ] - action: replace - target_label: __scheme__ - regex: (https?) - - source_labels: - [ __meta_kubernetes_service_annotation_prometheus_io_path ] - action: replace - target_label: __metrics_path__ - regex: (.+) - - source_labels: - [ - __address__, - __meta_kubernetes_service_annotation_prometheus_io_port, - ] - action: replace - target_label: __address__ - regex: ([^:]+)(?::\d+)?;(\d+) - replacement: $1:$2 - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - source_labels: [ __meta_kubernetes_namespace ] - action: replace - target_label: kubernetes_namespace - - source_labels: [ __meta_kubernetes_service_name ] - action: replace - target_label: kubernetes_name - - source_labels: [ __meta_kubernetes_pod_node_name ] - action: replace - target_label: kubernetes_node - # -- Scrape config for slow service endpoints; same as above, but with a larger - # timeout and a larger interval - # - # The relabeling allows the actual service scrape endpoint to be configured - # via the following annotations: - # - # * `prometheus.io/scrape-slow`: Only scrape services that have a value of `true` - # * `prometheus.io/scheme`: If the metrics endpoint is secured then you will need - # to set this to `https` & most likely set the `tls_config` of the scrape config. - # * `prometheus.io/path`: If the metrics path is not `/metrics` override this. - # * `prometheus.io/port`: If the metrics are exposed on a different port to the - # service then set this appropriately. - - job_name: "kubernetes-service-endpoints-slow" - scrape_interval: 5m - scrape_timeout: 30s - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: drop - source_labels: [ __meta_kubernetes_pod_container_init ] - regex: true - - action: keep_if_equal - source_labels: [ __meta_kubernetes_service_annotation_prometheus_io_port, __meta_kubernetes_pod_container_port_number ] - - source_labels: - [ __meta_kubernetes_service_annotation_prometheus_io_scrape_slow ] - action: keep - regex: true - - source_labels: - [ __meta_kubernetes_service_annotation_prometheus_io_scheme ] - action: replace - target_label: __scheme__ - regex: (https?) - - source_labels: - [ __meta_kubernetes_service_annotation_prometheus_io_path ] - action: replace - target_label: __metrics_path__ - regex: (.+) - - source_labels: - [ - __address__, - __meta_kubernetes_service_annotation_prometheus_io_port, - ] - action: replace - target_label: __address__ - regex: ([^:]+)(?::\d+)?;(\d+) - replacement: $1:$2 - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - source_labels: [ __meta_kubernetes_namespace ] - action: replace - target_label: kubernetes_namespace - - source_labels: [ __meta_kubernetes_service_name ] - action: replace - target_label: kubernetes_name - - source_labels: [ __meta_kubernetes_pod_node_name ] - action: replace - target_label: kubernetes_node - # -- Example scrape config for probing services via the Blackbox Exporter. - # - # The relabeling allows the actual service scrape endpoint to be configured - # via the following annotations: - # - # * `prometheus.io/probe`: Only probe services that have a value of `true` - - job_name: "kubernetes-services" - metrics_path: /probe - params: - module: [ http_2xx ] - kubernetes_sd_configs: - - role: service - relabel_configs: - - source_labels: - [ __meta_kubernetes_service_annotation_prometheus_io_probe ] - action: keep - regex: true - - source_labels: [ __address__ ] - target_label: __param_target - - target_label: __address__ - replacement: blackbox - - source_labels: [ __param_target ] - target_label: instance - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - source_labels: [ __meta_kubernetes_namespace ] - target_label: kubernetes_namespace - - source_labels: [ __meta_kubernetes_service_name ] - target_label: kubernetes_name - # -- Example scrape config for pods - # - # The relabeling allows the actual pod scrape endpoint to be configured via the - # following annotations: - # - # * `prometheus.io/scrape`: Only scrape pods that have a value of `true` - # * `prometheus.io/path`: If the metrics path is not `/metrics` override this. - # * `prometheus.io/port`: Scrape the pod on the indicated port instead of the default of `9102`. - - job_name: "kubernetes-pods" - kubernetes_sd_configs: - - role: pod - relabel_configs: - - action: drop - source_labels: [ __meta_kubernetes_pod_container_init ] - regex: true - - action: keep_if_equal - source_labels: [ __meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_container_port_number ] - - source_labels: [ __meta_kubernetes_pod_annotation_prometheus_io_scrape ] - action: keep - regex: true - - source_labels: [ __meta_kubernetes_pod_annotation_prometheus_io_path ] - action: replace - target_label: __metrics_path__ - regex: (.+) - - source_labels: - [ __address__, __meta_kubernetes_pod_annotation_prometheus_io_port ] - action: replace - regex: ([^:]+)(?::\d+)?;(\d+) - replacement: $1:$2 - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_pod_label_(.+) - - source_labels: [ __meta_kubernetes_namespace ] - action: replace - target_label: kubernetes_namespace - - source_labels: [ __meta_kubernetes_pod_name ] - action: replace - target_label: kubernetes_pod_name - ## End of COPY - - # -- Extra scrape configs that will be appended to `server.scrape.config` - extraScrapeConfigs: [] - -# -- Add extra specs dynamically to this chart -extraObjects: [] - -# -- Enterprise license key configuration for VictoriaMetrics enterprise. -# Required only for VictoriaMetrics enterprise. -# Documentation - https://docs.victoriametrics.com/enterprise.html, -# for more information, visit https://victoriametrics.com/products/enterprise/ . -# To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/ -# Supported starting from VictoriaMetrics v1.94.0 -license: - # -- License key - key: "" - - # -- Use existing secret with license key - secret: - # -- Existing secret name - name: "" - # -- Key in secret with license key - key: "" diff --git a/helm-templates/vmagent/Chart.lock b/helm-templates/vmagent/Chart.lock new file mode 100644 index 0000000..d701a2f --- /dev/null +++ b/helm-templates/vmagent/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: victoria-metrics-agent + repository: https://victoriametrics.github.io/helm-charts + version: 0.46.0 +digest: sha256:83bcccc6caa7dafc428ba1189bb9f6943d829ec9bbc7c7954a9186809a409579 +generated: "2026-09-06T08:29:36.022454+05:30" diff --git a/helm-templates/vmagent/Chart.yaml b/helm-templates/vmagent/Chart.yaml new file mode 100644 index 0000000..7fc570a --- /dev/null +++ b/helm-templates/vmagent/Chart.yaml @@ -0,0 +1,7 @@ +apiVersion: v2 +name: vmagent +version: 1.0.0 +dependencies: + - name: victoria-metrics-agent + version: 0.46.0 + repository: https://victoriametrics.github.io/helm-charts diff --git a/helm-templates/vmagent/charts/victoria-metrics-agent-0.46.0.tgz b/helm-templates/vmagent/charts/victoria-metrics-agent-0.46.0.tgz new file mode 100644 index 0000000..26f904f Binary files /dev/null and b/helm-templates/vmagent/charts/victoria-metrics-agent-0.46.0.tgz differ