added repo

This commit is contained in:
Your Name
2026-08-26 03:39:42 +05:30
parent 45c25a95af
commit b8575bb8b9
6889 changed files with 1217125 additions and 0 deletions
@@ -0,0 +1,3 @@
# Cluster-based Custom Values
This folder contains the custom `values.yaml` files organized based on specific cluster names. Each subdirectory corresponds to a particular cluster and holds the configurations for the applications and tools deployed within that cluster.
@@ -0,0 +1,26 @@
daemonSet:
namespace: prd-conntrack-adjuster
conntrack:
# Maximum number of conntrack entries
max: 2097152
# Hash size for conntrack
hashsize: 524288
# Sleep interval between adjustments (seconds)
sleepInterval: 30
# Enable additional matchExpressions
# addExtraMatchExpressions: true
# Additional matchExpressions to append
# additionalMatchExpressions:
# - key: node-role
# operator: In
# values:
# - "worker"
# - "ingress"
# - key: environment
# operator: In
# values:
# - "production"
# - "staging"
@@ -0,0 +1,50 @@
external-secrets:
replicaCount: 1
concurrent: 8
resources:
requests:
cpu: 100m
memory: 256Mi
# -- If set, install and upgrade CRDs through helm chart.
installCRDs: true
crds:
# -- If true, create CRDs for Cluster External Secret.
createClusterExternalSecret: true
# -- If true, create CRDs for Cluster Secret Store.
createClusterSecretStore: true
metrics:
service:
# -- Enable if you use another monitoring tool than Prometheus to scrape the metrics
enabled: false
# -- Metrics service port to scrape
port: 8080
# -- Additional service annotations
annotations: {}
tolerations:
- effect: NoSchedule
key: dedicated
operator: Equal
value: dscispark-devops
nodeSelector:
dedicated: dscispark-devops
certController:
tolerations:
- effect: NoSchedule
key: dedicated
operator: Equal
value: dscispark-devops
nodeSelector:
dedicated: dscispark-devops
webhook:
tolerations:
- effect: NoSchedule
key: dedicated
operator: Equal
value: dscispark-devops
nodeSelector:
dedicated: dscispark-devops
@@ -0,0 +1,55 @@
# Default values for flagger.
image:
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/flagger
tag: hpa-changes-26
# accepted values are debug, info, warning, error (defaults to info)
logLevel: info
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8080"
appmesh.k8s.aws/sidecarInjectorWebhook: disabled
crd:
# crd.create: `true` if custom resource definitions should be created
create: false
resources:
limits:
memory: "1024Mi"
cpu: "2"
requests:
memory: "512Mi"
cpu: "500m"
nodeSelector:
dedicated: dscispark-devops
tolerations:
- effect: NoSchedule
key: dedicated
operator: Equal
value: dscispark-devops
prometheus:
install: false
image: docker.io/prom/prometheus:v2.39.1
pullSecret:
retention: 2h
securityContext:
enabled: false
context:
readOnlyRootFilesystem: true
runAsUser: 10001
podDisruptionBudget:
enabled: false
minAvailable: 1
podLabels:
env: prd
team: devops
bu: dscispark
@@ -0,0 +1,764 @@
nameOverride: ""
fullnameOverride: ""
# DaemonSet, Deployment or StatefulSet
kind: "DaemonSet"
# azureblob, cloudwatch, elasticsearch7, elasticsearch8, gcs, graylog , kafka, kafka2, kinesis, opensearch
variant: gcs
# # Only applicable for Deployment or StatefulSet
# replicaCount: 1
image:
repository: "asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/fluentd-v2"
pullPolicy: "Always"
tag: "edge-debian"
## Optional array of imagePullSecrets containing private registry credentials
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
imagePullSecrets: []
serviceAccount:
create: true
annotations: {
iam.gke.io/gcp-service-account: sa-dpspsre-fluentd-prd@meesho-dscispark-prd-0125.iam.gserviceaccount.com
}
name: null
rbac:
create: true
# from Kubernetes 1.25, PSP is deprecated
# See: https://kubernetes.io/blog/2022/08/23/kubernetes-v1-25-release/#pod-security-changes
# We automatically disable PSP if Kubernetes version is 1.25 or higher
podSecurityPolicy:
enabled: true
annotations: {}
## Security Context policies for controller pods
## See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for
## notes on enabling and using sysctls
##
podSecurityContext: {}
# seLinuxOptions:
# type: "spc_t"
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
# Configure the livecycle
# Ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
lifecycle: {}
# preStop:
# exec:
# command: ["/bin/sh", "-c", "sleep 20"]
# Configure the livenessProbe
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
#livenessProbe:
# httpGet:
# path: /metrics
# port: metrics
# initialDelaySeconds: 0
# periodSeconds: 10
# timeoutSeconds: 1
# successThreshold: 1
# failureThreshold: 3
# Configure the readinessProbe
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
#readinessProbe:
# httpGet:
# path: /metrics
# port: metrics
# initialDelaySeconds: 0
# periodSeconds: 10
# timeoutSeconds: 1
# successThreshold: 1
# failureThreshold: 3
resources:
requests:
cpu: 100m
memory: 50Mi
limits:
memory: 2000Mi
cpu: 2000m
## only available if kind is Deployment
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
## see https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/#autoscaling-on-multiple-metrics-and-custom-metrics
customRules: []
# - type: Pods
# pods:
# metric:
# name: packets-per-second
# target:
# type: AverageValue
# averageValue: 1k
## see https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-configurable-scaling-behavior
# behavior:
# scaleDown:
# policies:
# - type: Pods
# value: 4
# periodSeconds: 60
# - type: Percent
# value: 10
# periodSeconds: 60
priorityClassName: "system-node-critical"
nodeSelector: {}
## Node tolerations for server scheduling to nodes with taints
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
##
tolerations:
- operator: Exists
## Affinity and anti-affinity
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Annotations to be added to fluentd DaemonSet/Deployment
##
annotations: {}
## Labels to be added to fluentd DaemonSet/Deployment
##
labels:
bu: dscispark
team: sre
type: fluentd
service: fluentd-dscispark-prd
priority: p0
env: prd
## Annotations to be added to fluentd pods
##
podAnnotations: {}
## Labels to be added to fluentd pods
##
podLabels:
bu: dscispark
team: sre
type: fluentd
service: fluentd-dscispark-prd
priority: p0
env: prd
## How long (in seconds) a pods needs to be stable before progressing the deployment
##
minReadySeconds:
## How long (in seconds) a pod may take to exit (useful with lifecycle hooks to ensure lb deregistration is done)
##
terminationGracePeriodSeconds:
## Deployment strategy / DaemonSet updateStrategy
##
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 0
## Additional environment variables to set for fluentd pods
## Additional environment variables to set for fluentd pods
env:
- name: APP_NAME
value: namespace_name
- name: SUB_SYSTEM
value: container_name
# - name: FLUENTD_CONF
# value: "../../etc/fluent/fluent.conf"
- name: APP_NAME_SYSTEMD
value: systemd
- name: SUB_SYSTEM_SYSTEMD
value: kubelet.service
- name: ENDPOINT
value: ingress.coralogixsg.com
- name: LOG_LEVEL
value: error
- name: TZ
value: "Asia/Kolkata"
- name: K8S_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
externalSecret:
secretStoreRef:
name: vault-backend
path: meesho/prd/cntr/devop/coralogix-keys
# externalSecret:
# enabled: false
# key: dev/devops/coralogix
# secretStoreRef:
# name: vault-backend
envFrom:
- secretRef:
name: integrations-privatekey
- secretRef:
name: es-password
initContainers: []
## Name of the configMap containing a custom fluentd.conf configuration file to use instead of the default.
# mainConfigMapNameOverride: ""
## Name of the configMap containing files to be placed under /etc/fluent/config.d/
## NOTE: This will replace ALL default files in the aforementioned path!
# extraFilesConfigMapNameOverride: ""
mountVarLogDirectory: true
mountDockerContainersDirectory: true
volumes: []
# - name: varlog
# hostPath:
# path: /var/log
# - name: varlibdockercontainers
# hostPath:
# path: /var/lib/docker/containers
# - name: etcfluentd-main
# configMap:
# name: fluentd-main
# defaultMode: 0777
# - name: etcfluentd-config
# configMap:
# name: fluentd-config
# defaultMode: 0777
volumeMounts: []
# - name: varlog
# mountPath: /var/log
# - name: varlibdockercontainers
# mountPath: /var/lib/docker/containers
# readOnly: true
# - name: etcfluentd-main
# mountPath: /etc/fluent
# - name: etcfluentd-config
# mountPath: /etc/fluent/config.d/
## Only available if kind is StatefulSet
## Fluentd persistence
##
persistence:
enabled: false
storageClass: ""
accessMode: ReadWriteOnce
size: 10Gi
## Fluentd service
##
service:
enabled: true
type: "ClusterIP"
annotations: {}
# loadBalancerIP:
# externalTrafficPolicy: Local
ports: []
# - name: "forwarder"
# protocol: TCP
# containerPort: 24224
## Prometheus Monitoring
##
metrics:
serviceMonitor:
enabled: false
additionalLabels:
release: prometheus-operator
namespace: ""
namespaceSelector: {}
## metric relabel configs to apply to samples before ingestion.
##
metricRelabelings: []
# - sourceLabels: [__name__]
# separator: ;
# regex: ^fluentd_output_status_buffer_(oldest|newest)_.+
# replacement: $1
# action: drop
## relabel configs to apply to samples after ingestion.
##
relabelings: []
# - sourceLabels: [__meta_kubernetes_pod_node_name]
# separator: ;
# regex: ^(.*)$
# targetLabel: nodename
# replacement: $1
# action: replace
## Additional serviceMonitor config
##
# jobLabel: fluentd
# scrapeInterval: 30s
# scrapeTimeout: 5s
# honorLabels: true
prometheusRule:
enabled: false
additionalLabels: {}
namespace: ""
rules: []
# - alert: FluentdDown
# expr: up{job="fluentd"} == 0
# for: 5m
# labels:
# context: fluentd
# severity: warning
# annotations:
# summary: "Fluentd Down"
# description: "{{ $labels.pod }} on {{ $labels.nodename }} is down"
# - alert: FluentdScrapeMissing
# expr: absent(up{job="fluentd"} == 1)
# for: 15m
# labels:
# context: fluentd
# severity: warning
# annotations:
# summary: "Fluentd Scrape Missing"
# description: "Fluentd instance has disappeared from Prometheus target discovery"
## Grafana Monitoring Dashboard
##
dashboards:
enabled: "true"
namespace: ""
labels:
grafana_dashboard: '"1"'
## Fluentd list of plugins to install
##
plugins: []
# - fluent-plugin-out-http
## Add fluentd config files from K8s configMaps
##
configMapConfigs: []
# - fluentd-prometheus-conf
# - fluentd-systemd-conf
## Fluentd configurations:
##
fileConfigs:
01_sources.conf: |-
<source>
@type systemd
path /var/log/journal
tag sys-log
read_from_head true
</source>
<source>
@id fluentd-containers.log
@type tail
encoding utf-8
path /var/log/containers/*.log
pos_file /var/log/containers.log.pos
exclude_path ["/var/log/containers/*telegraf*.log","/var/log/containers/*opentelemetry*.log","/var/log/containers/*fluentbit*.log","/var/log/containers/*gke-metrics*.log","/var/log/containers/*event-exporter-gke*.log","/var/log/containers/*metadata-server*.log","/var/log/containers/*metrics-server*.log","/var/log/containers/*filestore-node*.log"]
path_key filename
tag raw.containers.*
read_from_head true
<parse>
@type multi_format
<pattern>
format json
time_key time
time_format %Y-%m-%dT%H:%M:%S.%NZ
keep_time_key true
</pattern>
<pattern>
format /^(?<time>.+) (?<stream>stdout|stderr) [^ ]* (?<log>.*)$/
time_format %Y-%m-%dT%H:%M:%S.%N%:z
keep_time_key true
</pattern>
<pattern>
format /^(?<log>fsp\s+.+)$/
ignorecase false
multiline false
</pattern>
</parse>
</source>
<match raw.containers.**>
@id raw.containers
@type detect_exceptions
remove_tag_prefix raw
message log
stream stream
multiline_flush_interval 5
max_bytes 500000
max_lines 1000
</match>
<filter containers.**>
@type kubernetes_metadata
</filter>
<filter containers.**>
@type record_transformer
enable_ruby true
<record>
container_id ${record.dig("docker", "container_id")}
</record>
</filter>
<match containers.**>
@type rewrite_tag_filter
<rule>
key $.kubernetes.namespace_name
pattern ^(.+)$
tag $1.${tag}
</rule>
</match>
02_filters.conf: |-
03_dispatch.conf: |-
<match {kube**,**coredns**,**external-secrets**,**keda**,**gke-mcs**,sys-log,**victoriametrics**}>
@type "relabel"
@label @NOCONCATDISPATCH
</match>
<match {**prd**,**int**}>
@type "relabel"
@label @CONCATDISPATCH
</match>
<label @CONCATDISPATCH>
<filter {**prd**,**int**}>
@type concat
key log
stream_identity_key container_id
multiline_start_regexp /^.+\d{2}\:\d{2}\:\d{2}\.\d{3}/
separator "\n"
flush_interval 30
timeout_label @DISPATCH
</filter>
<match **>
@type "relabel"
@label @DISPATCH
</match>
</label>
<label @DISPATCH>
<match {**prd**}>
@type copy
<store>
@type "gcs"
bucket "gcs-infr-dvps-meesho-logs-prd"
path "dscispark/${tag[0]}/dt=%d.%m.%Y/hr=%H/${tag[5]}"
time_slice_format %Y%m%d%H
object_key_format "%{path}/%{time_slice}_%{index}.%{file_extension}"
store_as "gzip"
<format>
@type "json"
localtime true
</format>
<buffer tag,time>
timekey 30m
@type "file"
path "/tmp/td-agent/buffer/"
flush_thread_count 8
timekey_wait 10m
chunk_limit_size 50m
flush_at_shutdown true
</buffer>
</store>
<store>
@type "relabel"
@label @PRD
</store>
<store>
@type "relabel"
@label @DISPATCH_SPARK_BUCKET
</store>
</match>
<match {**int**}>
@type copy
<store>
@type "relabel"
@label @PREPROD
</store>
</match>
</label>
<label @DISPATCH_SPARK_BUCKET>
<filter **prd-ds-spark-operator**>
@type record_transformer
renew_record true
keep_keys log
</filter>
<match {**prd-ds-spark-operator**}>
@type copy
<store>
@type "gcs"
bucket "gcs-infr-dscispark-logs-prd"
path "prd-k8s-dscispark-spark-logs/${tag[0]}/${tag[5]}/dt=%d.%m.%Y/hr=%H"
time_slice_format %Y%m%d%H
object_key_format "%{path}/%{time_slice}_%{index}.%{file_extension}"
store_as "gzip"
<format>
@type "json"
localtime true
</format>
<buffer tag,time>
timekey 10m
@type "file"
path "/tmp/td-agent/buffer2/"
flush_thread_count 20
retry_forever false
retry_wait 20s
retry_type exponential_backoff
retry_exponential_backoff_base 2
retry_max_interval 60s
retry_max_times 5
overflow_action drop_oldest_chunk
timekey_wait 10m
chunk_limit_size 50m
slow_flush_log_threshold 120.0
flush_at_shutdown true
</buffer>
</store>
</match>
</label>
<label @PRD>
<filter {**prd**}>
@type grep
<regexp>
key log
pattern /ERROR|WARN|error|warn|ERR/
</regexp>
</filter>
<filter {**prd**} >
@type parser
key_name log
reserve_time true
reserve_data true
<parse>
@type multi_format
<pattern>
format regexp
expression /(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}) - \[(?<log_level>[A-Z\s]{1,6})\] - \[(?<logger>[^\]]+):(?<method>[^\]:]+)?:(?<line_number>\d+)?\] - \[(?<pid>\d+)?, (?<thread>[^\]]+)?\] - \((?<x3_trace_id>[^,]*)?,(?<x3_span_id>[^)]*)?\)\|\((?<trace_id>[^,]*)?,(?<span_id>[^)]*)?\) - \[(?<user_id>[^\]]*)?\] - \((?<extras>[^)]*)?\) - (?<log>[^\n]*)\n?(?<throwable>[^|]*)$/
</pattern>
<pattern>
format /^(?<log>.*)$/
</pattern>
</parse>
</filter>
<filter {**prd**}>
@type record_transformer
enable_ruby true
auto_typecast true
renew_record true
<record>
log_level ${record.dig("log_level")}
logger ${record.dig("logger")}
method ${record.dig("method")}
line_number ${record.dig("line_number")}
pid ${record.dig("pid")}
thread ${record.dig("thread")}
x3_trace_id ${record.dig("x3_trace_id")}
x3_span_id ${record.dig("x3_span_id")}
trace_id ${record.dig("trace_id")}
span_id ${record.dig("span_id")}
user_id ${record.dig("user_id")}
extras ${record.dig("extras")}
message ${record.dig("log")}
throwable ${record.dig("throwable")}
application_name ${record.dig("kubernetes", "namespace_name")}
service_name ${record.dig("kubernetes", "container_name")}
host ${record.dig("kubernetes", "host")}
pod_name ${record.dig("kubernetes", "pod_name")}
pod_ip ${record.dig("kubernetes", "pod_ip")}
</record>
</filter>
<match {**prd**}>
@type elasticsearch
host eck-observability-prd-es-hot-warm.eck-observability-prd.svc.clusterset.local
port 9200
scheme http
compression_level best_speed
ssl_verify false
emit_error_for_missing_id true
id_key request_id
user elastic
password "#{ENV['ECK_ES_PASSWORD']}"
index_name gcp-prd
reload_on_failure true
reconnect_on_error true
include_timestamp true
request_timeout 60s
</match>
</label>
<label @NOCONCATDISPATCH>
<filter sys-log >
@type record_transformer
enable_ruby true
auto_typecast true
renew_record true
renew_time_key ${record.dig("SYSLOG_TIMESTAMP")}
<record>
cluster_name "dscispark-prd"
application_name "systemd"
node_name ${record.dig("_HOSTNAME")}
text ${record.to_json}
</record>
</filter>
<filter {kube**,**coredns**,**external-secrets**,**keda**,**gke-mcs**,**victoriametrics**}>
@type record_transformer
enable_ruby true
auto_typecast true
renew_record true
<record>
application_name ${record.dig("kubernetes", "namespace_name")}
service_name ${record.dig("kubernetes", "container_name")}
host ${record.dig("kubernetes", "host")}
pod_name ${record.dig("kubernetes", "pod_name")}
pod_ip ${record.dig("kubernetes", "pod_ip")}
text ${record.dig("log")}
</record>
</filter>
<match {**kube-events**,**kube-system**,**external-secrets**,**keda**,sys-log,**victoriametrics**}>
@type elasticsearch
host eck-observability-prd-es-hot-warm.eck-observability-prd.svc.clusterset.local
port 9200
scheme http
compression_level best_speed
ssl_verify false
emit_error_for_missing_id true
id_key request_id
user elastic
index_name gcp-kubeevents
password "#{ENV['ECK_ES_PASSWORD']}"
reload_on_failure true
reconnect_on_error true
include_timestamp true
request_timeout 60s
</match>
<match {**gke-mcs**}>
@type elasticsearch
host eck-observability-prd-es-hot-warm.eck-observability-prd.svc.clusterset.local
port 9200
scheme http
compression_level best_speed
ssl_verify false
emit_error_for_missing_id true
id_key request_id
user elastic
index_name gke-mcs
password "#{ENV['ECK_ES_PASSWORD']}"
reload_on_failure true
reconnect_on_error true
include_timestamp true
request_timeout 60s
</match>
<match **>
@type elasticsearch
host eck-observability-prd-es-hot-warm.eck-observability-prd.svc.clusterset.local
port 9200
scheme http
compression_level best_speed
ssl_verify false
emit_error_for_missing_id true
id_key request_id
user elastic
index_name gcp-prd
password "#{ENV['ECK_ES_PASSWORD']}"
reload_on_failure true
reconnect_on_error true
include_timestamp true
request_timeout 60s
</match>
</label>
<label @PREPROD>
<filter {**int**}>
@type grep
<regexp>
key log
pattern /INFO|ERROR|WARN|info|error|warn/
</regexp>
</filter>
<filter {**int**} >
@type parser
key_name log
reserve_time true
reserve_data true
<parse>
@type multi_format
<pattern>
format regexp
expression /(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}) - \[(?<log_level>[A-Z\s]{1,6})\] - \[(?<logger>[^\]]+):(?<method>[^\]:]+)?:(?<line_number>\d+)?\] - \[(?<pid>\d+)?, (?<thread>[^\]]+)?\] - \((?<x3_trace_id>[^,]*)?,(?<x3_span_id>[^)]*)?\)\|\((?<trace_id>[^,]*)?,(?<span_id>[^)]*)?\) - \[(?<user_id>[^\]]*)?\] - \((?<extras>[^)]*)?\) - (?<log>[^\n]*)\n?(?<throwable>[^|]*)$/
</pattern>
<pattern>
format /^(?<log>.*)$/
</pattern>
</parse>
</filter>
<filter {**int**}>
@type record_transformer
enable_ruby true
auto_typecast true
renew_record true
<record>
log_level ${record.dig("log_level")}
logger ${record.dig("logger")}
method ${record.dig("method")}
line_number ${record.dig("line_number")}
pid ${record.dig("pid")}
thread ${record.dig("thread")}
x3_trace_id ${record.dig("x3_trace_id")}
x3_span_id ${record.dig("x3_span_id")}
trace_id ${record.dig("trace_id")}
span_id ${record.dig("span_id")}
user_id ${record.dig("user_id")}
extras ${record.dig("extras")}
message ${record.dig("log")}
throwable ${record.dig("throwable")}
application_name ${record.dig("kubernetes", "namespace_name")}
service_name ${record.dig("kubernetes", "container_name")}
host ${record.dig("kubernetes", "host")}
pod_name ${record.dig("kubernetes", "pod_name")}
pod_ip ${record.dig("kubernetes", "pod_ip")}
</record>
</filter>
<match {**int**}>
@type elasticsearch
host eck-observability-prd-es-hot-warm.eck-observability-prd.svc.clusterset.local
port 9200
scheme http
compression_level best_speed
ssl_verify false
emit_error_for_missing_id true
id_key request_id
user elastic
index_name gcp-int
password "#{ENV['ECK_ES_PASSWORD']}"
reload_on_failure true
reconnect_on_error true
include_timestamp true
request_timeout 60s
</match>
</label>
04_outputs.conf: |-
@@ -0,0 +1,26 @@
ingress-nginx:
controller:
metrics:
enabled: true
podAnnotations:
prometheus.io/port: "10254"
prometheus.io/scrape: "true"
autoscaling:
enabled: true
minReplicas: 5
maxReplicas: 15
targetCPUUtilizationPercentage: 60
targetMemoryUtilizationPercentage: 60
ingressClassResource:
name: nginx-internal
service:
type: ClusterIP
annotations:
cloud.google.com/neg: '{"exposed_ports": {"80":{"name": "nginx-dscispark-int-prd"}}}'
nodeSelector:
dedicated: dscispark-devops
tolerations:
- key: "dedicated"
operator: "Equal"
value: "dscispark-devops"
effect: "NoSchedule"
@@ -0,0 +1,38 @@
keda:
operator:
replicaCount: 2
metricsServer:
replicaCount: 2
nodeSelector:
dedicated: dscispark-devops
tolerations:
- key: "dedicated"
operator: "Equal"
value: "dscispark-devops"
effect: "NoSchedule"
podLabels:
bu: "dscispark"
team: "dscispark-devops"
metricsAdapter:
bu: "dscispark"
team: "dscispark-devops"
resources:
# -- Manage [resource request & limits] of KEDA operator pod
operator:
limits:
cpu: 1
memory: 2000Mi
requests:
cpu: 250m
memory: 300Mi
# -- Manage [resource request & limits] of KEDA admission webhooks pod
webhooks:
limits:
cpu: 200m
memory: 500Mi
requests:
cpu: 30m
memory: 100Mi
env:
- name: KEDA_SCALEDOBJECT_CTRL_MAX_RECONCILES
value: '25'
@@ -0,0 +1,149 @@
fullnameOverride: kube-events-dscispark-prd
operator:
enabled: true
image:
repository: kubesphere/kube-events-operator
tag: "" # If unset use v+ .Chart.appVersion
pullPolicy: IfNotPresent
configReloader:
image: jimmidyson/configmap-reload:v0.7.1
affinity: {}
nodeSelector:
dedicated: dscispark-devops
tolerations:
- effect: NoSchedule
key: dedicated
value: dscispark-devops
operator: Equal
resources:
limits:
cpu: 200m
memory: 200Mi
requests:
cpu: 20m
memory: 20Mi
# Additional volumes on the Deployment definition.
volumes: []
# Additional volumeMounts on the Deployment definition.
volumeMounts: []
serviceAccount:
create: true
name: ""
# If true, just clean up cr but not crd
cleanupAllCustomResources: false
kubectlImage: docker.io/bitnami/kubectl:1.14.1
exporter:
enabled: true
image:
repository: kubesphere/kube-events-exporter
tag: "" # If unset use v+ .Chart.appVersion
pullPolicy: IfNotPresent
affinity: {}
nodeSelector:
dedicated: dscispark-devops
tolerations:
- effect: NoSchedule
key: dedicated
value: dscispark-devops
operator: Equal
resources:
limits:
cpu: 200m
memory: 500Mi
requests:
cpu: 20m
memory: 50Mi
# Additional volumes on the output Deployment definition.
volumes: []
# Additional volumeMounts on the output Deployment definition.
volumeMounts: []
sinks:
stdout:
enabled: true
additionalWebhooks: []
# - url:
# service:
# namespace:
# name:
# port:
# path:
# Configure fluentbit(operated by https://github.com/fluent/fluent-operator) to collect events logs of exporter.
# These will be applied only when exporter.stdout.enabled=true and fluentbit.enabled=true.
fluentbit:
enabled: false
# Set this to containerd or crio if you want fluentbit to collect CRI format logs.
# If not set, it will be auto detected.
containerRuntime: ""
input:
enabled: true
tail:
refreshIntervalSeconds: 10
memBufLimit: 5MB
skipLongLines: true
dbSync: Normal
filter:
enabled: true
additionalFilters: []
output:
enabled: true
opensearch:
host: opensearch-cluster-data.kubesphere-logging-system.svc
port: 9200
logstashPrefix: ks-whizard-events
suppressTypeName: true
logstashFormat: true
generateID: true
ruler:
enabled: false
replicas: 2
image:
repository: kubesphere/kube-events-ruler
tag: "" # If unset use v+ .Chart.appVersion
pullPolicy: IfNotPresent
affinity: {}
nodeSelector:
dedicated: dscispark-devops
tolerations:
- effect: NoSchedule
key: dedicated
value: dscispark-devops
operator: Equal
resources:
limits:
cpu: 500m
memory: 500Mi
requests:
cpu: 50m
memory: 50Mi
# Additional volumes on the output Deployment definition.
volumes: []
# Additional volumeMounts on the output Deployment definition.
volumeMounts: []
ruleNamespaceSelector: {}
ruleSelector: {}
sinks:
alertmanagers:
- namespace: kubesphere-monitoring-system
name: alertmanager-operated
# webhooks:
# - type:
# url:
# service:
# namespace:
# name:
# port:
# path:
## 'stdout' sink type can be either 'notification' or 'alert'
# stdout:
# type: notification
rule:
createDefaults: true
overrideDefaults: false
# Set timezone env variable to be set in containers
timezone: "Asia/Kolkata"
@@ -0,0 +1,478 @@
# Default values for kube-state-metrics.
prometheusScrape: true
image:
registry: asia-southeast1-docker.pkg.dev
repository: meesho-devops-admin-0622/admin/sre/kube-state-metrics
# If unset use v + .Charts.appVersion
tag: v2.9.2
sha: ""
pullPolicy: IfNotPresent
fullnameOverride: kube-state-metrics-dscispark-prd
dedicatedValue: false
imagePullSecrets: []
# - name: "image-pull-secret"
ingress:
enabled: false
ingressClassName: internal
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "false"
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
extraLabels: {}
hosts:
- name: clustermetrics-dscispark-prd.meesho.com
path: /
port: http
tls: []
# - secretName: vmagent-ingress-tls
# hosts:
# - vmagent.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
global:
# To help compatibility with other charts which use global.imagePullSecrets.
# Allow either an array of {name: pullSecret} maps (k8s-style), or an array of strings (more common helm-style).
# global:
# imagePullSecrets:
# - name: pullSecret1
# - name: pullSecret2
# or
# global:
# imagePullSecrets:
# - pullSecret1
# - pullSecret2
imagePullSecrets: []
#
# Allow parent charts to override registry hostname
imageRegistry: ""
# If set to true, this will deploy kube-state-metrics as a StatefulSet and the data
# will be automatically sharded across <.Values.replicas> pods using the built-in
# autodiscovery feature: https://github.com/kubernetes/kube-state-metrics#automated-sharding
# This is an experimental feature and there are no stability guarantees.
autosharding:
enabled: false
replicas: 2
# List of additional cli arguments to configure kube-state-metrics
# for example: --enable-gzip-encoding, --log-file, etc.
# all the possible args can be found here: https://github.com/kubernetes/kube-state-metrics/blob/master/docs/cli-arguments.md
extraArgs: []
service:
port: 8080
# Default to clusterIP for backward compatibility
type: ClusterIP
nodePort: 0
loadBalancerIP: ""
# Only allow access to the loadBalancerIP from these IPs
loadBalancerSourceRanges: []
clusterIP: ""
annotations: {}
## Additional labels to add to all resources
customLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "kube-state-metrics-dscispark-prd"
env: "prd"
priority: "p0"
type: "exporter"
# app: kube-state-metrics
## Override selector labels
selectorOverride: {}
## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
releaseLabel: false
hostNetwork: false
rbac:
# If true, create & use RBAC resources
create: true
# Set to a rolename to use existing role - skipping role creating - but still doing serviceaccount and rolebinding to it, rolename set here.
# useExistingRole: your-existing-role
# If set to false - Run without Cluteradmin privs needed - ONLY works if namespace is also set (if useExistingRole is set this name is used as ClusterRole or Role to bind to)
useClusterRole: true
# Add permissions for CustomResources' apiGroups in Role/ClusterRole. Should be used in conjunction with Custom Resource State Metrics configuration
# Example:
# - apiGroups: ["monitoring.coreos.com"]
# resources: ["prometheuses"]
# verbs: ["list", "watch"]
extraRules: []
# Configure kube-rbac-proxy. When enabled, creates one kube-rbac-proxy container per exposed HTTP endpoint (metrics and telemetry if enabled).
# The requests are served through the same service but requests are then HTTPS.
kubeRBACProxy:
enabled: false
image:
registry: quay.io
repository: brancz/kube-rbac-proxy
tag: v0.14.0
sha: ""
pullPolicy: IfNotPresent
# List of additional cli arguments to configure kube-rbac-prxy
# for example: --tls-cipher-suites, --log-file, etc.
# all the possible args can be found here: https://github.com/brancz/kube-rbac-proxy#usage
extraArgs: []
## Specify security settings for a Container
## Allows overrides and additional options compared to (Pod) securityContext
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
containerSecurityContext: {}
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 64Mi
# requests:
# cpu: 10m
# memory: 32Mi
## volumeMounts enables mounting custom volumes in rbac-proxy containers
## Useful for TLS certificates and keys
volumeMounts: []
# - mountPath: /etc/tls
# name: kube-rbac-proxy-tls
# readOnly: true
serviceAccount:
# Specifies whether a ServiceAccount should be created, require rbac true
create: true
# The name of the ServiceAccount to use.
# If not set and create is true, a name is generated using the fullname template
name:
# Reference to one or more secrets to be used when pulling images
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
imagePullSecrets: []
# ServiceAccount annotations.
# Use case: AWS EKS IAM roles for service accounts
# ref: https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html
annotations: {}
prometheus:
monitor:
enabled: false
annotations: {}
additionalLabels: {}
namespace: ""
jobLabel: ""
targetLabels: []
podTargetLabels: []
interval: ""
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
##
sampleLimit: 0
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
##
targetLimit: 0
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
##
labelLimit: 0
## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
##
labelNameLengthLimit: 0
## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
##
labelValueLengthLimit: 0
scrapeTimeout: ""
proxyUrl: ""
selectorOverride: {}
honorLabels: false
metricRelabelings: []
relabelings: []
scheme: ""
## File to read bearer token for scraping targets
bearerTokenFile: ""
## Secret to mount to read bearer token for scraping targets. The secret needs
## to be in the same namespace as the service monitor and accessible by the
## Prometheus Operator
bearerTokenSecret: {}
# name: secret-name
# key: key-name
tlsConfig: {}
## Specify if a Pod Security Policy for kube-state-metrics must be created
## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
##
podSecurityPolicy:
enabled: false
annotations: {}
## Specify pod annotations
## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#apparmor
## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#seccomp
## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#sysctl
##
# seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
# seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
# apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
additionalVolumes: []
## Configure network policy for kube-state-metrics
networkPolicy:
enabled: false
# networkPolicy.flavor -- Flavor of the network policy to use.
# Can be:
# * kubernetes for networking.k8s.io/v1/NetworkPolicy
# * cilium for cilium.io/v2/CiliumNetworkPolicy
flavor: kubernetes
## Configure the cilium network policy kube-apiserver selector
# cilium:
# kubeApiServerSelector:
# - toEntities:
# - kube-apiserver
# egress:
# - {}
# ingress:
# - {}
# podSelector:
# matchLabels:
# app.kubernetes.io/name: kube-state-metrics
securityContext:
enabled: true
runAsGroup: 65534
runAsUser: 65534
fsGroup: 65534
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
## Specify security settings for a Container
## Allows overrides and additional options compared to (Pod) securityContext
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
## Node labels for pod assignment
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
nodeSelector:
dedicated: "victoriametrics"
## Affinity settings for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
affinity: {}
## Tolerations for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
tolerations:
- key: "dedicated"
operator: "Equal"
value: "victoriametrics"
effect: "NoSchedule"
## Topology spread constraints for pod assignment
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: exporter
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: exporter
# Annotations to be added to the deployment/statefulset
annotations:
kubernetes.io/psp: eks.privileged
# Annotations to be added to the pod
podAnnotations: {}
## Assign a PriorityClassName to pods if set
# priorityClassName: ""
# Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
podDisruptionBudget: {}
# Comma-separated list of metrics to be exposed.
# This list comprises of exact metric names and/or regex patterns.
# The allowlist and denylist are mutually exclusive.
metricAllowlist: []
# Comma-separated list of metrics not to be enabled.
# This list comprises of exact metric names and/or regex patterns.
# The allowlist and denylist are mutually exclusive.
metricDenylist: []
# Comma-separated list of additional Kubernetes label keys that will be used in the resource's
# labels metric. By default the metric contains only name and namespace labels.
# To include additional labels, provide a list of resource names in their plural form and Kubernetes
# label keys you would like to allow for them (Example: '=namespaces=[k8s-label-1,k8s-label-n,...],pods=[app],...)'.
# A single '*' can be provided per resource instead to allow any labels, but that has
# severe performance implications (Example: '=pods=[*]').
metricLabelsAllowlist:
- pods=[*]
- nodes=[*]
- deployments=[*]
- statefulsets=[*]
- persistentvolumeclaims=[*]
- persistentvolumes=[*]
- ingresses=[*]
- namespaces=[*]
- horizontalpodautoscalers=[*]
# - namespaces=[k8s-label-1,k8s-label-n]
# Comma-separated list of Kubernetes annotations keys that will be used in the resource'
# labels metric. By default the metric contains only name and namespace labels.
# To include additional annotations provide a list of resource names in their plural form and Kubernetes
# annotation keys you would like to allow for them (Example: '=namespaces=[kubernetes.io/team,...],pods=[kubernetes.io/team],...)'.
# A single '*' can be provided per resource instead to allow any annotations, but that has
# severe performance implications (Example: '=pods=[*]').
metricAnnotationsAllowList: []
# - pods=[k8s-annotation-1,k8s-annotation-n]
# Available collectors for kube-state-metrics.
# By default, all available resources are enabled, comment out to disable.
collectors:
- certificatesigningrequests
- configmaps
- cronjobs
- daemonsets
- deployments
- endpoints
- horizontalpodautoscalers
- ingresses
- jobs
- leases
- limitranges
- mutatingwebhookconfigurations
- namespaces
- networkpolicies
- nodes
- persistentvolumeclaims
- persistentvolumes
- poddisruptionbudgets
- pods
- replicasets
- replicationcontrollers
- resourcequotas
- secrets
- services
- statefulsets
- storageclasses
- validatingwebhookconfigurations
- volumeattachments
# Enabling kubeconfig will pass the --kubeconfig argument to the container
kubeconfig:
enabled: false
# base64 encoded kube-config file
secret:
# Enabling support for customResourceState, will create a configMap including your config that will be read from kube-state-metrics
customResourceState:
enabled: false
# Add (Cluster)Role permissions to list/watch the customResources defined in the config to rbac.extraRules
config: {}
# Enable only the release namespace for collecting resources. By default all namespaces are collected.
# If releaseNamespace and namespaces are both set a merged list will be collected.
releaseNamespace: false
# Comma-separated list(string) or yaml list of namespaces to be enabled for collecting resources. By default all namespaces are collected.
namespaces: ""
# Comma-separated list of namespaces not to be enabled. If namespaces and namespaces-denylist are both set,
# only namespaces that are excluded in namespaces-denylist will be used.
namespacesDenylist: ""
## Override the deployment namespace
##
namespaceOverride: ""
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 64Mi
requests:
cpu: 10m
memory: 50Mi
## Provide a k8s version to define apiGroups for podSecurityPolicy Cluster Role.
## For example: kubeTargetVersionOverride: 1.14.9
##
kubeTargetVersionOverride: ""
# Enable self metrics configuration for service and Service Monitor
# Default values for telemetry configuration can be overridden
# If you set telemetryNodePort, you must also set service.type to NodePort
selfMonitor:
enabled: true
# telemetryHost: 0.0.0.0
telemetryPort: 8081
# telemetryNodePort: 0
# Enable vertical pod autoscaler support for kube-state-metrics
verticalPodAutoscaler:
enabled: false
# List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
controlledResources: []
# Define the max allowed resources for the pod
maxAllowed: {}
# cpu: 200m
# memory: 100Mi
# Define the min allowed resources for the pod
minAllowed: {}
# cpu: 200m
# memory: 100Mi
# updatePolicy:
# Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
# updateMode: Auto
# volumeMounts are used to add custom volume mounts to deployment.
# See example below
volumeMounts: []
# - mountPath: /etc/config
# name: config-volume
# volumes are used to add custom volumes to deployment
# See example below
volumes: []
# - configMap:
# name: cm-for-volume
# name: config-volume
@@ -0,0 +1,496 @@
# Default values for prometheus-node-exporter.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
image:
registry: quay.io
repository: prometheus/node-exporter
# Overrides the image tag whose default is {{ printf "v%s" .Chart.AppVersion }}
tag: ""
pullPolicy: IfNotPresent
digest: ""
imagePullSecrets: []
# - name: "image-pull-secret"
nameOverride: ""
fullnameOverride: ""
# Number of old history to retain to allow rollback
# Default Kubernetes value is set to 10
revisionHistoryLimit: 10
global:
# To help compatibility with other charts which use global.imagePullSecrets.
# Allow either an array of {name: pullSecret} maps (k8s-style), or an array of strings (more common helm-style).
# global:
# imagePullSecrets:
# - name: pullSecret1
# - name: pullSecret2
# or
# global:
# imagePullSecrets:
# - pullSecret1
# - pullSecret2
imagePullSecrets: []
#
# Allow parent charts to override registry hostname
imageRegistry: ""
# Configure kube-rbac-proxy. When enabled, creates a kube-rbac-proxy to protect the node-exporter http endpoint.
# The requests are served through the same service but requests are HTTPS.
kubeRBACProxy:
enabled: false
image:
registry: quay.io
repository: brancz/kube-rbac-proxy
tag: v0.14.0
sha: ""
pullPolicy: IfNotPresent
# List of additional cli arguments to configure kube-rbac-prxy
# for example: --tls-cipher-suites, --log-file, etc.
# all the possible args can be found here: https://github.com/brancz/kube-rbac-proxy#usage
extraArgs: []
## Specify security settings for a Container
## Allows overrides and additional options compared to (Pod) securityContext
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
containerSecurityContext: {}
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 64Mi
# requests:
# cpu: 10m
# memory: 32Mi
service:
enabled: true
type: ClusterIP
port: 9100
targetPort: 9100
nodePort:
portName: metrics
listenOnAllInterfaces: true
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9100"
prometheus.io/path: "/metrics"
ipDualStack:
enabled: false
ipFamilies: ["IPv6", "IPv4"]
ipFamilyPolicy: "PreferDualStack"
# Set a NetworkPolicy with:
# ingress only on service.port
# no egress permitted
networkPolicy:
enabled: false
# Additional environment variables that will be passed to the daemonset
env: {}
## env:
## VARIABLE: value
prometheus:
monitor:
enabled: false
additionalLabels: {}
namespace: ""
jobLabel: ""
# List of pod labels to add to node exporter metrics
# https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitor
podTargetLabels: []
scheme: http
basicAuth: {}
bearerTokenFile:
tlsConfig: {}
## proxyUrl: URL of a proxy that should be used for scraping.
##
proxyUrl: ""
## Override serviceMonitor selector
##
selectorOverride: {}
## Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
##
attachMetadata:
node: false
relabelings: []
metricRelabelings: []
interval: ""
scrapeTimeout: 10s
## prometheus.monitor.apiVersion ApiVersion for the serviceMonitor Resource(defaults to "monitoring.coreos.com/v1")
apiVersion: ""
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
##
sampleLimit: 0
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
##
targetLimit: 0
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
##
labelLimit: 0
## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
##
labelNameLengthLimit: 0
## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
##
labelValueLengthLimit: 0
# PodMonitor defines monitoring for a set of pods.
# ref. https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.PodMonitor
# Using a PodMonitor may be preferred in some environments where there is very large number
# of Node Exporter endpoints (1000+) behind a single service.
# The PodMonitor is disabled by default. When switching from ServiceMonitor to PodMonitor,
# the time series resulting from the configuration through PodMonitor may have different labels.
# For instance, there will not be the service label any longer which might
# affect PromQL queries selecting that label.
podMonitor:
enabled: false
# Namespace in which to deploy the pod monitor. Defaults to the release namespace.
namespace: ""
# Additional labels, e.g. setting a label for pod monitor selector as set in prometheus
additionalLabels: {}
# release: kube-prometheus-stack
# PodTargetLabels transfers labels of the Kubernetes Pod onto the target.
podTargetLabels: []
# apiVersion defaults to monitoring.coreos.com/v1.
apiVersion: ""
# Override pod selector to select pod objects.
selectorOverride: {}
# Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
attachMetadata:
node: false
# The label to use to retrieve the job name from. Defaults to label app.kubernetes.io/name.
jobLabel: ""
# Scheme/protocol to use for scraping.
scheme: "http"
# Path to scrape metrics at.
path: "/metrics"
# BasicAuth allow an endpoint to authenticate over basic authentication.
# More info: https://prometheus.io/docs/operating/configuration/#endpoint
basicAuth: {}
# Secret to mount to read bearer token for scraping targets.
# The secret needs to be in the same namespace as the pod monitor and accessible by the Prometheus Operator.
# https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#secretkeyselector-v1-core
bearerTokenSecret: {}
# TLS configuration to use when scraping the endpoint.
tlsConfig: {}
# Authorization section for this endpoint.
# https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.SafeAuthorization
authorization: {}
# OAuth2 for the URL. Only valid in Prometheus versions 2.27.0 and newer.
# https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.OAuth2
oauth2: {}
# ProxyURL eg http://proxyserver:2195. Directs scrapes through proxy to this endpoint.
proxyUrl: ""
# Interval at which endpoints should be scraped. If not specified Prometheus global scrape interval is used.
interval: ""
# Timeout after which the scrape is ended. If not specified, the Prometheus global scrape interval is used.
scrapeTimeout: ""
# HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data.
honorTimestamps: true
# HonorLabels chooses the metrics labels on collisions with target labels.
honorLabels: true
# Whether to enable HTTP2. Default false.
enableHttp2: ""
# Drop pods that are not running. (Failed, Succeeded).
# Enabled by default. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
filterRunning: ""
# FollowRedirects configures whether scrape requests follow HTTP 3xx redirects. Default false.
followRedirects: ""
# Optional HTTP URL parameters
params: {}
# RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds
# relabelings for a few standard Kubernetes fields. The original scrape jobs name
# is available via the __tmp_prometheus_job_name label.
# More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
relabelings: []
# MetricRelabelConfigs to apply to samples before ingestion.
metricRelabelings: []
# SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
sampleLimit: 0
# TargetLimit defines a limit on the number of scraped targets that will be accepted.
targetLimit: 0
# Per-scrape limit on number of labels that will be accepted for a sample.
# Only valid in Prometheus versions 2.27.0 and newer.
labelLimit: 0
# Per-scrape limit on length of labels name that will be accepted for a sample.
# Only valid in Prometheus versions 2.27.0 and newer.
labelNameLengthLimit: 0
# Per-scrape limit on length of labels value that will be accepted for a sample.
# Only valid in Prometheus versions 2.27.0 and newer.
labelValueLengthLimit: 0
## Customize the updateStrategy if set
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 200m
# memory: 50Mi
requests:
cpu: 100m
memory: 30Mi
serviceAccount:
# Specifies whether a ServiceAccount should be created
create: true
# The name of the ServiceAccount to use.
# If not set and create is true, a name is generated using the fullname template
name:
annotations: {}
# annotations: {
# iam.gke.io/gcp-service-account: node-exporter-admin-prd@meesho-admin-prd-0622.iam.gserviceaccount.com
# }
imagePullSecrets: []
automountServiceAccountToken: false
securityContext:
fsGroup: 65534
runAsGroup: 65534
runAsNonRoot: true
runAsUser: 65534
containerSecurityContext:
readOnlyRootFilesystem: true
# capabilities:
# add:
# - SYS_TIME
rbac:
## If true, create & use RBAC resources
##
create: true
## If true, create & use Pod Security Policy resources
## https://kubernetes.io/docs/concepts/policy/pod-security-policy/
pspEnabled: true
pspAnnotations: {}
# for deployments that have node_exporter deployed outside of the cluster, list
# their addresses here
endpoints: []
# Expose the service to the host network
hostNetwork: true
# Share the host process ID namespace
hostPID: true
# Mount the node's root file system (/) at /host/root in the container
hostRootFsMount:
enabled: true
# Defines how new mounts in existing mounts on the node or in the container
# are propagated to the container or node, respectively. Possible values are
# None, HostToContainer, and Bidirectional. If this field is omitted, then
# None is used. More information on:
# https://kubernetes.io/docs/concepts/storage/volumes/#mount-propagation
mountPropagation: HostToContainer
## Assign a group of affinity scheduling rules
##
affinity: {}
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchFields:
# - key: metadata.name
# operator: In
# values:
# - target-host-name
# Annotations to be added to node exporter pods
podAnnotations:
# Fix for very slow GKE cluster upgrades
cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
prometheus.io/scrape: "true"
prometheus.io/port: "9100"
prometheus.io/path: "/metrics"
# Extra labels to be added to node exporter pods
podLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "node-exporter-dscispark-prd"
env: "prd"
priority: "p0"
type: "exporter"
# Annotations to be added to node exporter daemonset
daemonsetAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9100"
prometheus.io/path: "/metrics"
## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
releaseLabel: false
# Custom DNS configuration to be added to prometheus-node-exporter pods
dnsConfig: {}
# nameservers:
# - 1.2.3.4
# searches:
# - ns1.svc.cluster-domain.example
# - my.dns.search.suffix
# options:
# - name: ndots
# value: "2"
# - name: edns0
## Assign a nodeSelector if operating a hybrid cluster
##
nodeSelector: {}
# kubernetes.io/os: linux
# kubernetes.io/arch: amd64
tolerations:
- operator: Exists
## Assign a PriorityClassName to pods if set
priorityClassName: "system-node-critical"
## Additional container arguments
##
extraArgs: []
# - --collector.diskstats.ignored-devices=^(ram|loop|fd|(h|s|v)d[a-z]|nvme\\d+n\\d+p)\\d+$
# - --collector.textfile.directory=/run/prometheus
## Additional mounts from the host to node-exporter container
##
extraHostVolumeMounts: []
# - name: <mountName>
# hostPath: <hostPath>
# mountPath: <mountPath>
# readOnly: true|false
# mountPropagation: None|HostToContainer|Bidirectional
## Additional configmaps to be mounted.
##
configmaps: []
# - name: <configMapName>
# mountPath: <mountPath>
secrets: []
# - name: <secretName>
# mountPath: <mountPatch>
## Override the deployment namespace
##
namespaceOverride: "monitoring"
## Additional containers for export metrics to text file
##
sidecars: []
## - name: nvidia-dcgm-exporter
## image: nvidia/dcgm-exporter:1.4.3
## Volume for sidecar containers
##
sidecarVolumeMount: []
## - name: collector-textfiles
## mountPath: /run/prometheus
## readOnly: false
## Additional mounts from the host to sidecar containers
##
sidecarHostVolumeMounts: []
# - name: <mountName>
# hostPath: <hostPath>
# mountPath: <mountPath>
# readOnly: true|false
# mountPropagation: None|HostToContainer|Bidirectional
## Additional InitContainers to initialize the pod
##
extraInitContainers: []
## Liveness probe
##
livenessProbe:
failureThreshold: 3
httpGet:
httpHeaders: []
scheme: http
initialDelaySeconds: 0
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
## Readiness probe
##
readinessProbe:
failureThreshold: 3
httpGet:
httpHeaders: []
scheme: http
initialDelaySeconds: 0
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
# Enable vertical pod autoscaler support for prometheus-node-exporter
verticalPodAutoscaler:
enabled: false
# Recommender responsible for generating recommendation for the object.
# List should be empty (then the default recommender will generate the recommendation)
# or contain exactly one recommender.
# recommenders:
# - name: custom-recommender-performance
# List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
controlledResources: []
# Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
# controlledValues: RequestsAndLimits
# Define the max allowed resources for the pod
maxAllowed: {}
# cpu: 200m
# memory: 100Mi
# Define the min allowed resources for the pod
minAllowed: {}
# cpu: 200m
# memory: 100Mi
# updatePolicy:
# Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
# minReplicas: 1
# Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
# updateMode: Auto
# Extra manifests to deploy as an array
extraManifests: []
# - |
# apiVersion: v1
# kind: ConfigMap
# metadata:
# name: prometheus-extra
# data:
# extra-data: "value"
@@ -0,0 +1,295 @@
# Default values for victoria-metrics-agent.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 2
fullnameOverride: vmagent-dscispark-prd
# vmagent scraping configuration:
# https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/docs/vmagent.md#how-to-collect-metrics-in-prometheus-format
# use existing configmap if specified
# otherwise .config values will be used
configMap: "vmagent-dscispark-prd-config" # Use same name as in fullnameOverride-config
dedicatedValue: false
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmagent
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: vmagent
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
deployment:
enabled: true
# vmagent pods will take almost 20-25 mins to work properly
minReadySeconds: 180
progressDeadlineSeconds: 300
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
strategy: {}
# rollingUpdate:
# maxSurge: 25%
# maxUnavailable: 25%
# type: RollingUpdate
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
statefulset:
enabled: false
# -- create cluster of vmagents. See https://docs.victoriametrics.com/vmagent.html#scraping-big-number-of-targets
# available since 1.77.2 version https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.77.2
clusterMode: false
# -- replication factor for vmagent in cluster mode
replicationFactor: 1
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
updateStrategy: {}
# type: RollingUpdate
image:
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/vmagent
tag: v1.93.7-cluster # rewrites Chart.AppVersion
pullPolicy: IfNotPresent
imagePullSecrets: []
nameOverride: ""
containerWorkingDir: "/"
rbac:
create: true
# Note: The PSP will only be deployed, if Kubernetes (<1.25) supports the resource.
pspEnabled: true
annotations: {}
extraLabels: {}
# -- if true and `rbac.enabled`, will deploy a Role/Rolebinding instead of a ClusterRole/ClusterRoleBinding
namespaced: false
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {
iam.gke.io/gcp-service-account: sa-dsprk-spsre-vmagent-prd@meesho-dscispark-prd-0125.iam.gserviceaccount.com
}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name:
## See `kubectl explain poddisruptionbudget.spec` for more
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
podDisruptionBudget:
enabled: false
# minAvailable: 1
# maxUnavailable: 1
labels: {}
# WARN: need to specify at least one remote write url or one multi tenant url
# remoteWriteUrls: []
remoteWriteUrls:
# - https://vminsert-prd-dscispark.meeshogcp.in/insert/100/prometheus/api/v1/write
- http://vminsert-dscispark-prd.victoriametrics.svc.cluster.local:8480/insert/100/prometheus/api/v1/write
# - http://prometheus:8480/insert/0/prometheus
multiTenantUrls: []
# multiTenantUrls:
# - http://vm-insert-az1:8480
# - http://vm-insert-az2:8480
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
promscrape.config.strictParse: false
promscrape.maxScrapeSize: 1000000000
promscrape.minResponseSizeForStreamParse: 1000000
loggerTimezone: "Asia/Kolkata"
# Uncomment and specify the port if you want to support any of the protocols:
# https://victoriametrics.github.io/vmagent.html#features
# graphiteListenAddr: ":2003"
# influxListenAddr: ":8189"
# opentsdbHTTPListenAddr: ":4242"
# opentsdbListenAddr: ":4242"
# -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables
env:
[]
# - name: VM_remoteWrite_basicAuth_password
# valueFrom:
# secretKeyRef:
# name: auth_secret
# key: password
# extra Labels for Pods, Deployment and Statefulset
extraLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vmagent-dscispark-prd"
env: "prd"
priority: "p0"
type: "vmagent"
# extra Labels for Pods only
podLabels: {}
# 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
podSecurityContext:
{}
# fsGroup: 2000
securityContext:
{}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
enabled: true
annotations: {}
# cloud.google.com/neg: '{"exposed_ports": {"8429":{"name": "vmagent-dscispark-prd"}}}'
extraLabels: {}
clusterIP: ""
## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
##
externalIPs: []
loadBalancerIP: ""
loadBalancerSourceRanges: []
servicePort: 8429
# nodePort: 30000
type: ClusterIP
# Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
# externalTrafficPolicy: "local"
# healthCheckNodePort: 0
ingress:
enabled: true
ingressClassName: nginx-internal
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "false"
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
extraLabels: {}
hosts:
- name: vmagent-dscispark-prd.meeshogcp.in
path: /
port: http
tls: []
# - secretName: vmagent-ingress-tls
# hosts:
# - vmagent.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
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
requests:
cpu: 2
memory: 4Gi
# Annotations to be added to the deployment
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8429"
# Annotations to be added to pod
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8429"
nodeSelector:
dedicated: "victoriametrics"
tolerations:
- key: "dedicated"
operator: "Equal"
value: "victoriametrics"
effect: "NoSchedule"
affinity: {}
# -- priority class to be assigned to the pod(s)
priorityClassName: ""
serviceMonitor:
enabled: false
extraLabels: {}
annotations: {}
relabelings: []
# interval: 15s
# scrapeTimeout: 5s
# -- Commented. HTTP scheme to use for scraping.
# scheme: https
# -- Commented. TLS configuration to use when scraping the endpoint
# tlsConfig:
# insecureSkipVerify: true
persistence:
enabled: false
# storageClassName: default
accessModes:
- ReadWriteOnce
size: 10Gi
annotations: {}
extraLabels: {}
existingClaim: ""
# -- Bind Persistent Volume by labels. Must match all labels of targeted PV.
matchLabels: {}
# -- Extra scrape configs that will be appended to `config`
extraScrapeConfigs: []
# Add extra specs dynamically to this chart
extraObjects: []
@@ -0,0 +1,340 @@
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name:
# mount API token to pod directly
automountToken: true
imagePullSecrets: []
dedicatedValue: false
schedulerName: default-scheduler
rbac:
create: true
# Note: The PSP will only be deployed, if Kubernetes (<1.25) supports the resource.
pspEnabled: true
namespaced: false
extraLabels: {}
annotations: {}
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmalert
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: vmalert
alertmanager:
enabled: false
server:
enabled: true
name: vmalert
image:
repository: victoriametrics/vmalert
tag: "" # rewrites Chart.AppVersion
pullPolicy: IfNotPresent
nameOverride: ""
fullnameOverride: vmalert-dscispark-prd-stateful
configMap: ""
## See `kubectl explain poddisruptionbudget.spec` for more
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
podDisruptionBudget:
enabled: false
# minAvailable: 1
# maxUnavailable: 1
labels: {}
# -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables
env:
[]
# - name: VM_remoteWrite_basicAuth_password
# valueFrom:
# secretKeyRef:
# name: auth_secret
# key: password
replicaCount: 1
# deployment strategy, set to standard k8s default
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
# specifies the minimum number of seconds for which a newly created Pod should be ready without any of its containers crashing/terminating
# 0 is the standard k8s default
minReadySeconds: 0
# vmalert reads metrics from source, next section represents its configuration. It can be any service which supports
# MetricsQL or PromQL.
datasource:
url: "http://vmselect-dscispark-prd-proxy.victoriametrics.svc.cluster.local:8481/select/100/prometheus"
# -- Basic auth for datasource
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for datasource
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
remote:
write:
url: "http://vminsert-dscispark-prd.victoriametrics.svc.cluster.local:8480/insert/100/prometheus/"
# -- Basic auth for remote write
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for remote write
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
read:
url: "http://vmselect-dscispark-prd-proxy.victoriametrics.svc.cluster.local:8481/select/100/prometheus"
# -- Basic auth for remote read
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for remote read
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
# -- Notifier to use for alerts.
# Multiple notifiers can be enabled by using `notifiers` section
notifier:
alertmanager:
url: "http://alertmanager-infra-prd.alertmanager.svc.clusterset.local:9093"
# -- Basic auth for alertmanager
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for alertmanager
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
# -- Additional notifiers to use for alerts
notifiers: []
# - alertmanager:
# url: "http://devops-p-alertmanager-01b.meeshoint.in:9093"
# basicAuth:
# username: ""
# password: ""
# bearer:
# token: ""
# tokenFile: ""
# - alertmanager:
# url: "https://prd-infra-alertmanager.meesho.com"
# basicAuth:
# username: ""
# password: ""
# bearer:
# token: ""
# tokenFile: ""
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
rule: "/alert-rules/vm-alerts-config/configmap/dscispark/**/*.yaml"
evaluationInterval: 60s
configCheckInterval: 10s
loggerTimezone: "Asia/Kolkata"
# Additional hostPath mounts
extraHostPathMounts:
[]
# - name: certs-dir
# mountPath: /etc/kubernetes/certs
# subPath: ""
# hostPath: /etc/kubernetes/certs
# readOnly: true
# Extra Volumes for the pod
extraVolumes:
[]
# Extra Volume Mounts for the container
extraVolumeMounts:
[]
extraContainers:
[]
#- name: config-reloader
# image: reloader-image
service:
annotations: {}
labels: null # Set to null to prevent default values.yaml labels from being merged
clusterIP: ""
## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
##
externalIPs: []
loadBalancerIP: ""
loadBalancerSourceRanges: []
servicePort: 8880
# nodePort: 30000
type: ClusterIP
# Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
# externalTrafficPolicy: "local"
# healthCheckNodePort: 0
ingress:
enabled: true
annotations: {}
ingressClassName: nginx-internal
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
extraLabels: {}
hosts:
- name: vmalert-dscispark-prd-stateful.meeshogcp.in
path: /
port: http
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
podSecurityContext: {}
# fsGroup: 2000
securityContext:
{}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
requests:
cpu: 500m
memory: 1Gi
# Annotations to be added to the deployment
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8880"
# labels to be added to the deployment, pods and other resources
labels:
bu: "dscispark"
team: "sre"
service: "vmalert-dscispark-prd-stateful"
env: "prd"
priority: "p0"
type: "vmalert"
# Annotations to be added to pod
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8880"
cluster-autoscaler.kubernetes.io/safe-to-evict: 'false'
podLabels: {}
nodeSelector:
dedicated: "vminsert"
priorityClassName: ""
tolerations:
- key: "dedicated"
operator: "Equal"
value: "vminsert"
effect: "NoSchedule"
affinity: {}
# vmalert alert rules configuration configuration:
# use existing configmap if specified
# otherwise .config values will be used
config:
alerts:
groups: []
# -- Persistent Volume configuration for alert rules
persistentVolume:
# -- Create/use Persistent Volume Claim for alert rules. Empty dir if false
enabled: true
# -- Override Persistent Volume Claim name
name: ""
# -- Array of access modes. Must match those of existing PV or dynamic provisioner. Details are [here](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
accessModes:
- ReadWriteMany
# -- Persistent volume annotations
annotations: {}
# -- PVC extra labels
extraLabels: {}
# -- StorageClass to use for persistent volume. Requires server.persistentVolume.enabled: true. If defined, PVC created automatically
storageClassName: "pulse-nfs-sc-prd"
# -- Existing Claim name. If defined, PVC must be created manually before volume will be bound
existingClaim: ""
# -- Mount path. Alert rules Persistent Volume mount root path.
mountPath: /alert-rules
# -- Mount subpath
subPath: ""
# -- Size of the volume. Better to set the same as resource limit memory property.
size: 10Gi
serviceMonitor:
enabled: false
extraLabels: {}
annotations: {}
relabelings: []
# interval: 15s
# scrapeTimeout: 5s
# -- Commented. HTTP scheme to use for scraping.
# scheme: https
# -- Commented. TLS configuration to use when scraping the endpoint
# tlsConfig:
# insecureSkipVerify: true
@@ -0,0 +1,304 @@
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name:
# mount API token to pod directly
automountToken: true
imagePullSecrets: []
dedicatedValue: false
schedulerName: default-scheduler
rbac:
create: true
# Note: The PSP will only be deployed, if Kubernetes (<1.25) supports the resource.
pspEnabled: true
namespaced: false
extraLabels: {}
annotations: {}
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmalert
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: vmalert
alertmanager:
enabled: false
server:
enabled: true
name: vmalert
image:
repository: victoriametrics/vmalert
tag: "" # rewrites Chart.AppVersion
pullPolicy: IfNotPresent
nameOverride: ""
fullnameOverride: vmalert-dscispark-prd
configMap: ""
## See `kubectl explain poddisruptionbudget.spec` for more
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
podDisruptionBudget:
enabled: false
# minAvailable: 1
# maxUnavailable: 1
labels: {}
# -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables
env:
[]
# - name: VM_remoteWrite_basicAuth_password
# valueFrom:
# secretKeyRef:
# name: auth_secret
# key: password
replicaCount: 2
# deployment strategy, set to standard k8s default
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
# specifies the minimum number of seconds for which a newly created Pod should be ready without any of its containers crashing/terminating
# 0 is the standard k8s default
minReadySeconds: 0
# vmalert reads metrics from source, next section represents its configuration. It can be any service which supports
# MetricsQL or PromQL.
datasource:
url: "http://vmselect-dscispark-prd-proxy.victoriametrics.svc.cluster.local:8481/select/100/prometheus"
# -- Basic auth for datasource
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for datasource
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
remote:
write:
url: "http://vminsert-dscispark-prd.victoriametrics.svc.cluster.local:8480/insert/100/prometheus/"
# -- Basic auth for remote write
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for remote write
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
read:
url: "http://vmselect-dscispark-prd-proxy.victoriametrics.svc.cluster.local:8481/select/100/prometheus"
# -- Basic auth for remote read
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for remote read
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
# -- Notifier to use for alerts.
# Multiple notifiers can be enabled by using `notifiers` section
notifier:
alertmanager:
url: "http://alertmanager-infra-prd.meeshogcp.in"
# -- Basic auth for alertmanager
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for alertmanager
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
# -- Additional notifiers to use for alerts
notifiers: []
# - alertmanager:
# url: "http://devops-p-alertmanager-01b.meeshoint.in:9093"
# basicAuth:
# username: ""
# password: ""
# bearer:
# token: ""
# tokenFile: ""
# - alertmanager:
# url: "https://prd-infra-alertmanager.meesho.com"
# basicAuth:
# username: ""
# password: ""
# bearer:
# token: ""
# tokenFile: ""
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
rule: "/config/vm-alerts-config1/dscispark/**/*.yaml"
loggerTimezone: "Asia/Kolkata"
# Additional hostPath mounts
extraHostPathMounts:
[]
# - name: certs-dir
# mountPath: /etc/kubernetes/certs
# subPath: ""
# hostPath: /etc/kubernetes/certs
# readOnly: true
# Extra Volumes for the pod
extraVolumes:
[]
# Extra Volume Mounts for the container
extraVolumeMounts:
[]
extraContainers:
[]
#- name: config-reloader
# image: reloader-image
service:
annotations: {}
labels: {}
clusterIP: ""
## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
##
externalIPs: []
loadBalancerIP: ""
loadBalancerSourceRanges: []
servicePort: 8880
# nodePort: 30000
type: ClusterIP
# Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
# externalTrafficPolicy: "local"
# healthCheckNodePort: 0
ingress:
enabled: true
annotations: {}
ingressClassName: nginx-internal
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
extraLabels: {}
hosts:
- name: vmalert-dscispark-prd.meeshogcp.in
path: /
port: http
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
podSecurityContext: {}
# fsGroup: 2000
securityContext:
{}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
requests:
cpu: 500m
memory: 1Gi
# Annotations to be added to the deployment
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8880"
# labels to be added to the deployment, pods and other resources
labels:
bu: "infra"
team: "sre"
service: "vmalert-dscispark-prd"
env: "prd"
priority: "p0"
type: "vmalert"
# Annotations to be added to pod
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8880"
podLabels: {}
nodeSelector:
dedicated: "vminsert"
priorityClassName: ""
tolerations:
- key: "dedicated"
operator: "Equal"
value: "vminsert"
effect: "NoSchedule"
affinity: {}
# vmalert alert rules configuration configuration:
# use existing configmap if specified
# otherwise .config values will be used
config:
alerts:
groups: []
serviceMonitor:
enabled: false
extraLabels: {}
annotations: {}
relabelings: []
# interval: 15s
# scrapeTimeout: 5s
# -- Commented. HTTP scheme to use for scraping.
# scheme: https
# -- Commented. TLS configuration to use when scraping the endpoint
# tlsConfig:
# insecureSkipVerify: true
@@ -0,0 +1,234 @@
vmselect:
enabled: false
vmstorage:
enabled: false
fullnameOverride: vmstorage-dscispark-prd
replicaCount: 5
dedicatedValue: false
# schedulerName: default-scheduler
vminsert:
# -- Enable deployment of vminsert component. Deployment is used
enabled: true
# -- vminsert container name
name: vminsert
strategy: {}
# rollingUpdate:
# maxSurge: 25%
# maxUnavailable: 25%
# type: RollingUpdate
image:
# -- Image repository
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/vminsert
# -- Image tag
tag: v1.93.7-cluster
# -- Image pull policy
pullPolicy: IfNotPresent
# -- Name of Priority Class
priorityClassName: ""
# -- Overrides the full name of vminsert component
fullnameOverride: vminsert-dscispark-prd
# Extra command line arguments for vminsert component
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
maxLabelsPerTimeseries: 40
replicationFactor: 1
loggerTimezone: "Asia/Kolkata"
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8480"
extraLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vminsert-dscispark-prd"
env: "prd"
priority: "p0"
type: "vminsert"
# arch: "arm64"
# runpod: "ondemand"
# -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables
env: []
# -- Suppress rendering `--storageNode` FQDNs based on `vmstorage.replicaCount` value. If true suppress rendering `--storageNodes`, they can be re-defined in extraArgs
suppresStorageFQDNsRender: false
automountServiceAccountToken: true
# Readiness & Liveness probes
probe:
readiness:
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
liveness:
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
# Horizontal Pod Autoscaling
horizontalPodAutoscaler:
# -- Use HPA for vminsert component
enabled: true
# -- Maximum replicas for HPA to use to to scale the vminsert component
maxReplicas: 10
# -- Minimum replicas for HPA to use to scale the vminsert component
minReplicas: 2
# -- Metric for HPA to use to scale the vminsert component
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 40
# 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: example
# image: example-image
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
labels: {}
# -- Array of tolerations object. Ref: [https://kubernetes.io/docs/concepts/configuration/assign-pod-node/](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/)
tolerations:
- key: "dedicated"
operator: "Equal"
value: "vminsert"
effect: "NoSchedule"
# -- Pod's node selector. Ref: [https://kubernetes.io/docs/user-guide/node-selection/](https://kubernetes.io/docs/user-guide/node-selection/)
nodeSelector:
dedicated: "vminsert"
# -- Pod affinity
affinity: {}
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vminsert
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: vminsert
# -- Pod's annotations
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8480"
# -- Count of vminsert pods
replicaCount: 2
# -- Container workdir
containerWorkingDir: ""
# -- Resource object
resources:
# limits:
# cpu: 50m
# memory: 64Mi
requests:
cpu: 2
memory: 2Gi
# -- 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/)
securityContext: {}
podSecurityContext: {}
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: []
# -- Extra service ports
extraServicePorts: []
# -- Service load balancer IP
loadBalancerIP: ""
# -- Load balancer source range
loadBalancerSourceRanges: []
# -- Service port
servicePort: 8480
# -- Target port
targetPort: http
# -- Service type
type: NodePort
# -- Enable UDP port. used if you have "spec.opentsdbListenAddr" specified
# -- Make sure that service is not type "LoadBalancer", as it requires "MixedProtocolLBService" feature gate. ref: https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/
udp: false
ingress:
# -- Enable deployment of ingress for vminsert component
enabled: false
# -- Ingress annotations
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
extraLabels: {}
# -- Array of host objects
hosts:
- name: vminsert-dscispark-prd.meeshogcp.in
path: /
port: http
# -- Array of TLS objects
tls: []
# - secretName: vminsert-ingress-tls
# hosts:
# - vminsert.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: internal
# -- pathType is only for k8s >= 1.1=
pathType: Prefix
serviceMonitor:
# -- Enable deployment of Service Monitor for vminsert component. This is Prometheus operator object
enabled: false
# -- Target namespace of ServiceMonitor manifest
namespace: ""
# -- Service Monitor labels
extraLabels: {}
# -- Service Monitor annotations
annotations: {}
# Commented. Prometheus scare interval for vminsert component
# interval: 15s
# Commented. Prometheus pre-scrape timeout for vminsert 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: []
@@ -0,0 +1,295 @@
vminsert:
enabled: false
vmstorage:
enabled: false
fullnameOverride: vmstorage-dscispark-prd
replicaCount: 5
dedicatedValue: false
vmselect:
# -- Enable deployment of vmselect component. Can be deployed as Deployment(default) or StatefulSet
enabled: true
# -- Vmselect container name
name: vmselect
strategy: {}
# rollingUpdate:
# maxSurge: 25%
# maxUnavailable: 25%
# type: RollingUpdate
extraVMSelects: []
#extraVMSelects:
#- --storageNode=http://vmselect-dscispark-di-prd.meeshogcp.in
image:
# -- Image repository
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/vmselect
# -- Image tag
tag: v1.93.7-cluster
# -- Image pull policy
pullPolicy: IfNotPresent
# -- Name of Priority Class
priorityClassName: ""
# -- Overrides the full name of vmselect component
fullnameOverride: vmselect-dscispark-prd
# -- Suppress rendering `--storageNode` FQDNs based on `vmstorage.replicaCount` value. If true suppress rendering `--storageNodes`, they can be re-defined in extraArgs
suppresStorageFQDNsRender: false
automountServiceAccountToken: true
# Extra command line arguments for vmselect component
splitService: True
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
clusternativeListenAddr: ":8401"
dedup.minScrapeInterval: 60s
search.maxSamplesPerQuery: "1000000000000"
search.maxQueryDuration: 300s
search.maxQueueDuration: 60s
search.maxSeries: "10000000000"
search.maxExportSeries: "1000000000"
search.maxUniqueTimeseries: "1000000000000"
search.maxQueryLen: "1000000"
loggerTimezone: "Asia/Kolkata"
search.maxConcurrentRequests: 96
clusternative.maxConcurrentRequests: 256
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8481"
extraLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vmselect-dscispark-prd"
env: "prd"
priority: "p0"
type: "vmselect"
# arch: "arm64"
# runpod: "ondemand"
# -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables
env: []
# Readiness & Liveness probes
probe:
readiness:
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
liveness:
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
horizontalPodAutoscaler:
# -- Use HPA for vmselect component
enabled: true
# -- Maximum replicas for HPA to use to to scale the vmselect component
maxReplicas: 20
# -- Minimum replicas for HPA to use to scale the vmselect component
minReplicas: 2
# -- Metric for HPA to use to scale the vmselect component
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 40
# 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: example
# image: example-image
podDisruptionBudget:
# -- See `kubectl explain poddisruptionbudget.spec` for more. Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
enabled: true
minAvailable: 1
# maxUnavailable: 1
labels: {}
nodeSelector:
dedicated: "victoriametrics"
tolerations:
- key: "dedicated"
operator: "Equal"
value: "victoriametrics"
effect: "NoSchedule"
# -- Pod affinity
affinity: {}
# -- Pod topologySpreadConstraints
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmselect
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmselect
# -- Pod's annotations
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8481"
# -- Count of vmselect pods
replicaCount: 2
# -- Container workdir
containerWorkingDir: ""
# -- Resource object
resources:
# limits:
# cpu: 50m
# memory: 64Mi
requests:
cpu: 1200m
memory: 4Gi
# -- 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/
securityContext: {}
podSecurityContext: {}
# -- Cache root folder
cacheMountPath: /cache
service:
# -- Service annotations
annotations:
io.cilium/global-service: "true"
# -- 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: []
# -- Extra service ports
extraServicePorts: []
# -- Service load balacner IP
loadBalancerIP: ""
# -- Load balancer source range
loadBalancerSourceRanges: []
# -- Service port
servicePort: 8481
# -- Target port
targetPort: http
# -- Service type
type: ClusterIP
ingress:
# -- Enable deployment of ingress for vmselect component
enabled: true
# -- Ingress annotations
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
ingressClassName: nginx-internal
extraLabels: {}
# -- Array of host objects
hosts:
- name: vmselect-dscispark-prd.meeshogcp.in
path: /
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
statefulSet:
# -- Deploy StatefulSet instead of Deployment for vmselect. Useful if you want to keep cache data.
enabled: false
# -- 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: 8481
persistentVolume:
# -- Create/use Persistent Volume Claim for vmselect component. Empty dir if false. If true, vmselect will create/use a Persistent Volume Claim
enabled: false
# -- Array of access mode. 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
# -- Persistent volume annotations
annotations: {}
# -- Persistent volume labels
labels: {}
# -- Existing Claim name. Requires vmselect.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound
existingClaim: ""
## Vmselect data Persistent Volume mount root path
##
# -- Size of the volume. Better to set the same as resource limit memory property
size: 2Gi
# -- Mount subpath
subPath: ""
serviceMonitor:
# -- Enable deployment of Service Monitor for vmselect component. This is Prometheus operator object
enabled: false
# -- Target namespace of ServiceMonitor manifest
namespace: ""
# -- Service Monitor labels
extraLabels: {}
# -- Service Monitor annotations
annotations: {}
# Commented. Prometheus scare interval for vmselect component
# interval: 15s
# Commented. Prometheus pre-scrape timeout for vmselect 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: []
@@ -0,0 +1,316 @@
vminsert:
enabled: false
vmselect:
enabled: false
serviceAccount:
create: true
# name:
extraLabels: {}
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::847438129436:role/eks-s3-vmbackup-role
# mount API token to pod directly
automountToken: true
dedicatedValue: false
# schedulerName: default-scheduler
vmstorage:
# -- Enable deployment of vmstorage component. StatefulSet is used
enabled: true
# -- vmstorage container name
name: vmstorage
image:
# -- Image repository
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/vmstorage
# -- Image tag
tag: v1.93.7-cluster
# -- Image pull policy
pullPolicy: IfNotPresent
# -- Name of Priority Class
priorityClassName: ""
# -- Overrides the full name of vmstorage component
fullnameOverride: vmstorage-dscispark-prd
automountServiceAccountToken: true
# -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables
env: []
# -- Data retention period. Supported values 1w, 1d, number without measurement means month, e.g. 2 = 2month
retentionPeriod: 30d
# Additional vmstorage container arguments. Extra command line arguments for vmstorage component
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
search.maxUniqueTimeseries: "30000000"
dedup.minScrapeInterval: 60s
loggerTimezone: "Asia/Kolkata"
# 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
extraSecretMounts:
[]
# - name: secret
# mountPath: /etc/credentials
# subPath: ""
# readOnly: true
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
# -- 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:
enabled: false
# minAvailable: 1
# maxUnavailable: 1
labels: {}
# -- Array of tolerations object. 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: "dedicated"
operator: "Equal"
value: "vmstorage-64g"
effect: "NoSchedule"
# -- Pod's node selector. Ref: [https://kubernetes.io/docs/user-guide/node-selection/](https://kubernetes.io/docs/user-guide/node-selection/)
nodeSelector:
dedicated: "vmstorage-64g"
# -- Pod affinity
affinity: {}
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmstorage
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: vmstorage
## 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 vmstorage component. Empty dir if false. If true, vmstorage will create/use a Persistent Volume Claim
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
# -- Persistent volume annotations
annotations: {}
# -- Persistent volume labels
labels: {}
# -- Storage class name. Will be empty if not setted
storageClass: pd-standard-retain
# -- Existing Claim name. Requires vmstorage.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound
existingClaim: ""
# -- Data root path. Vmstorage data Persistent Volume mount root path
mountPath: /storage
# -- Size of the volume. Better to set the same as resource limit memory property
size: 200Gi
# -- Mount subpath
subPath: ""
# -- Pod's annotations
podAnnotations:
prometheus.io/port: "8482"
prometheus.io/scrape: "true"
annotations:
prometheus.io/port: "8482"
prometheus.io/scrape: "true"
extraLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vmstorage-dscispark-prd"
env: "prd"
priority: "p0"
type: "vmstorage"
# arch: "arm64"
# runpod: "ondemand"
# -- Count of vmstorage pods
replicaCount: 5
# -- Container workdir
containerWorkingDir: ""
# -- Deploy order policy for StatefulSet pods
podManagementPolicy: OrderedReady
# -- Resource object. Ref: [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
resources:
# limits:
# cpu: 500m
# memory: 512Mi
requests:
cpu: 5
memory: 50Gi
# -- 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/)
securityContext: {}
podSecurityContext: {}
service:
# -- Service annotations
annotations: {}
# -- Service labels
labels: {}
# -- Service port
servicePort: 8482
# -- Port for accepting connections from vminsert
vminsertPort: 8400
# -- Port for accepting connections from vmstorage
vmstoragePort: 8401
# -- Extra service ports
extraServicePorts: []
# -- Pod's termination grace period in seconds
terminationGracePeriodSeconds: 60
probe:
readiness:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
liveness:
tcpSocket:
port: http
initialDelaySeconds: 30
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 10
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/eula/
eula: true
image:
# -- vmbackupmanager image repository
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/vmbackupmanager
# -- vmbackupmanager image tag
tag: v1.91.3-cluster
# -- disable hourly backups
disableHourly: true
# -- disable daily backups
disableDaily: false
# -- disable weekly backups
disableWeekly: true
# -- disable monthly backups
disableMonthly: true
# -- backup destination at S3, GCS or local filesystem. Pod name will be included to path!
destination: "s3://prd-demand-vmbackup"
# -- backups' retention settings
retention:
# -- keep last N hourly backups. 0 means delete all existing hourly backups. Specify -1 to turn off
keepLastHourly: 0
# -- keep last N daily backups. 0 means delete all existing daily backups. Specify -1 to turn off
keepLastDaily: 30
# -- keep last N weekly backups. 0 means delete all existing weekly backups. Specify -1 to turn off
keepLastWeekly: 0
# -- keep last N monthly backups. 0 means delete all existing monthly backups. Specify -1 to turn off
keepLastMonthly: 0
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
concurrency: 15
loggerTimezone: "Asia/Kolkata"
# -- 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
extraSecretMounts:
[]
# - name: secret
# mountPath: /etc/credentials
# subPath: ""
# readOnly: true
serviceMonitor:
# -- Enable deployment of Service Monitor for vmstorage component. This is Prometheus operator object
enabled: false
# -- Target namespace of ServiceMonitor manifest
namespace: ""
# -- Service Monitor labels
extraLabels: {}
# -- Service Monitor annotations
annotations: {}
# Commented. Prometheus scare interval for vmstorage component
# interval: 15s
# Commented. Prometheus pre-scrape timeout for vmstorage 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: []
@@ -0,0 +1,317 @@
# Default values for victoria-metrics-agent.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
custom:
configFileFolderPath: "configmap"
scrapeConfigFileName: "dscispark-scrape.yaml"
# Default values for victoria-metrics-agent.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global:
# -- Image pull secrets, that can be shared across multiple helm charts
imagePullSecrets: []
image:
# -- Image registry, that can be shared across multiple helm charts
registry: ""
# -- Openshift security context compatibility configuration
compatibility:
openshift:
adaptSecurityContext: "auto"
cluster:
# -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/)
dnsDomain: cluster.local.
replicaCount: 2
fullnameOverride: vm-agent-dscispark-prd
# vmagent scraping configuration:
# https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/docs/vmagent.md#how-to-collect-metrics-in-prometheus-format
# use existing configmap if specified
# otherwise .config values will be used
configMap: "vm-agent-dscispark-prd-config" # Use same name as in fullnameOverride-config
dedicatedValue: false
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmagent
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: vmagent
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
deployment:
enabled: true
# vmagent pods will take almost 20-25 mins to work properly
minReadySeconds: 180
progressDeadlineSeconds: 300
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
strategy: {}
# rollingUpdate:
# maxSurge: 25%
# maxUnavailable: 25%
# type: RollingUpdate
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
statefulset:
enabled: false
# -- create cluster of vmagents. See https://docs.victoriametrics.com/vmagent.html#scraping-big-number-of-targets
# available since 1.77.2 version https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.77.2
clusterMode: false
# -- replication factor for vmagent in cluster mode
replicationFactor: 1
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
updateStrategy: {}
# type: RollingUpdate
image:
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/vmagent
tag: v1.133.0 # rewrites Chart.AppVersion
pullPolicy: IfNotPresent
imagePullSecrets: []
nameOverride: ""
containerWorkingDir: "/"
rbac:
create: true
# Note: The PSP will only be deployed, if Kubernetes (<1.25) supports the resource.
pspEnabled: true
annotations: {}
extraLabels: {}
# -- if true and `rbac.enabled`, will deploy a Role/Rolebinding instead of a ClusterRole/ClusterRoleBinding
namespaced: false
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {
iam.gke.io/gcp-service-account: sa-dsprk-spsre-vmagent-prd@meesho-dscispark-prd-0125.iam.gserviceaccount.com
}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name:
## See `kubectl explain poddisruptionbudget.spec` for more
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
podDisruptionBudget:
enabled: false
# minAvailable: 1
# maxUnavailable: 1
labels: {}
# WARN: need to specify at least one remote write url or one multi tenant url
# remoteWriteUrls: []
remoteWrite:
- url: http://vm-insert-dscispark-prd.victoriametrics.svc.cluster.local:8480/insert/100/prometheus/api/v1/write
# - http://prometheus:8480/insert/0/prometheus
multiTenantUrls: []
# multiTenantUrls:
# - http://vm-insert-az1:8480
# - http://vm-insert-az2:8480
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
promscrape.config.strictParse: false
promscrape.maxScrapeSize: 1000000000
promscrape.minResponseSizeForStreamParse: 1000000
loggerTimezone: "Asia/Kolkata"
# Uncomment and specify the port if you want to support any of the protocols:
# https://victoriametrics.github.io/vmagent.html#features
# graphiteListenAddr: ":2003"
# influxListenAddr: ":8189"
# opentsdbHTTPListenAddr: ":4242"
# opentsdbListenAddr: ":4242"
# -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables
env:
[]
# - name: VM_remoteWrite_basicAuth_password
# valueFrom:
# secretKeyRef:
# name: auth_secret
# key: password
# extra Labels for Pods, Deployment and Statefulset
extraLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vm-agent-dscispark-prd"
env: "prd"
priority: "p0"
type: "vmagent"
podLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vm-agent-dscispark-prd"
env: "prd"
priority: "p0"
type: "vmagent"
# 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
podSecurityContext:
{}
# fsGroup: 2000
securityContext:
{}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
enabled: true
annotations: {}
# cloud.google.com/neg: '{"exposed_ports": {"8429":{"name": "vmagent-dscispark-prd"}}}'
extraLabels: {}
clusterIP: ""
## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
##
externalIPs: []
loadBalancerIP: ""
loadBalancerSourceRanges: []
servicePort: 8429
# nodePort: 30000
type: ClusterIP
# Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
# externalTrafficPolicy: "local"
# healthCheckNodePort: 0
ingress:
enabled: false
ingressClassName: nginx-internal
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "false"
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
extraLabels: {}
hosts:
- name: vmagent-dscispark-prd.meeshogcp.in
path: /
port: http
tls: []
# - secretName: vmagent-ingress-tls
# hosts:
# - vmagent.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
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
requests:
cpu: 4
memory: 6Gi
# Annotations to be added to the deployment
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8429"
# Annotations to be added to pod
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8429"
nodeSelector:
dedicated: "vmagent-n4d"
tolerations:
- key: "dedicated"
operator: "Equal"
value: "vmagent-n4d"
effect: "NoSchedule"
affinity: {}
# -- priority class to be assigned to the pod(s)
priorityClassName: ""
serviceMonitor:
enabled: false
extraLabels: {}
annotations: {}
relabelings: []
# interval: 15s
# scrapeTimeout: 5s
# -- Commented. HTTP scheme to use for scraping.
# scheme: https
# -- Commented. TLS configuration to use when scraping the endpoint
# tlsConfig:
# insecureSkipVerify: true
persistence:
enabled: false
# storageClassName: default
accessModes:
- ReadWriteOnce
size: 10Gi
annotations: {}
extraLabels: {}
existingClaim: ""
# -- Bind Persistent Volume by labels. Must match all labels of targeted PV.
matchLabels: {}
# -- Extra scrape configs that will be appended to `config`
extraScrapeConfigs: []
# Add extra specs dynamically to this chart
extraObjects: []
@@ -0,0 +1,267 @@
global:
# -- Image pull secrets, that can be shared across multiple helm charts
imagePullSecrets: []
image:
# -- Image registry, that can be shared across multiple helm charts
registry: ""
vm:
# -- Image tag for all vm charts
tag: ""
# -- Openshift security context compatibility configuration
compatibility:
openshift:
adaptSecurityContext: "auto"
# -- k8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/)
cluster:
dnsDomain: cluster.local.
# -- Print information after deployment
printNotes: true
# -- use SRV discovery for storageNode and selectNode flags for enterprise version
autoDiscovery: false
vmselect:
enabled: false
vmstorage:
enabled: false
fullnameOverride: vmstorage-dscispark-prd
replicaCount: 5
dedicatedValue: false
# schedulerName: default-scheduler
vminsert:
# -- Enable deployment of vminsert component. Deployment is used
enabled: true
# -- vminsert container name
name: vminsert
strategy: {}
# rollingUpdate:
# maxSurge: 25%
# maxUnavailable: 25%
# type: RollingUpdate
image:
# -- Image repository
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/vminsert
# -- Image tag
tag: v1.107.0-cluster
# -- Image pull policy
pullPolicy: IfNotPresent
# -- Name of Priority Class
priorityClassName: ""
# -- Overrides the full name of vminsert component
fullnameOverride: vm-insert-dscispark-prd
# Extra command line arguments for vminsert component
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
maxLabelsPerTimeseries: 40
replicationFactor: 1
loggerTimezone: "Asia/Kolkata"
storageNode:
- "vm-storage-dscispark-prd-0.vm-storage-dscispark-prd.victoriametrics.svc:8400"
- "vm-storage-dscispark-prd-1.vm-storage-dscispark-prd.victoriametrics.svc:8400"
- "vm-storage-dscispark-prd-2.vm-storage-dscispark-prd.victoriametrics.svc:8400"
- "vm-storage-dscispark-prd-3.vm-storage-dscispark-prd.victoriametrics.svc:8400"
- "vm-storage-dscispark-prd-4.vm-storage-dscispark-prd.victoriametrics.svc:8400"
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8480"
extraLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vm-insert-dscispark-prd"
env: "prd"
priority: "p0"
type: "vminsert"
podLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vm-insert-dscispark-prd"
env: "prd"
priority: "p0"
type: "vminsert"
# -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables
env: []
# -- Suppress rendering `--storageNode` FQDNs based on `vmstorage.replicaCount` value. If true suppress rendering `--storageNodes`, they can be re-defined in extraArgs
suppresStorageFQDNsRender: false
automountServiceAccountToken: true
# Readiness & Liveness probes
probe:
readiness:
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
liveness:
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
# Horizontal Pod Autoscaling
horizontalPodAutoscaler:
# -- Use HPA for vminsert component
enabled: true
# -- Maximum replicas for HPA to use to to scale the vminsert component
maxReplicas: 10
# -- Minimum replicas for HPA to use to scale the vminsert component
minReplicas: 2
# -- Metric for HPA to use to scale the vminsert component
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 40
# 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: example
# image: example-image
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
labels: {}
# -- Array of tolerations object. Ref: [https://kubernetes.io/docs/concepts/configuration/assign-pod-node/](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/)
tolerations:
- key: "dedicated"
operator: "Equal"
value: "vm-common"
effect: "NoSchedule"
# -- Pod's node selector. Ref: [https://kubernetes.io/docs/user-guide/node-selection/](https://kubernetes.io/docs/user-guide/node-selection/)
nodeSelector:
dedicated: "vm-common"
# -- Pod affinity
affinity: {}
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vminsert
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: vminsert
# -- Pod's annotations
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8480"
# -- Count of vminsert pods
replicaCount: 2
# -- Container workdir
containerWorkingDir: ""
# -- Resource object
resources:
# limits:
# cpu: 50m
# memory: 64Mi
requests:
cpu: 2
memory: 2Gi
# -- 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/)
securityContext: {}
podSecurityContext: {}
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: []
# -- Extra service ports
extraServicePorts: []
# -- Service load balancer IP
loadBalancerIP: ""
# -- Load balancer source range
loadBalancerSourceRanges: []
# -- Service port
servicePort: 8480
# -- Target port
targetPort: http
# -- Service type
type: NodePort
# -- Enable UDP port. used if you have "spec.opentsdbListenAddr" specified
# -- Make sure that service is not type "LoadBalancer", as it requires "MixedProtocolLBService" feature gate. ref: https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/
udp: false
ingress:
# -- Enable deployment of ingress for vminsert component
enabled: false
# -- Ingress annotations
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
extraLabels: {}
# -- Array of host objects
hosts:
- name: vm-insert-dscispark-prd.meeshogcp.in
path: /
port: http
# -- Array of TLS objects
tls: []
# - secretName: vminsert-ingress-tls
# hosts:
# - vminsert.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: internal
# -- pathType is only for k8s >= 1.1=
pathType: Prefix
serviceMonitor:
# -- Enable deployment of Service Monitor for vminsert component. This is Prometheus operator object
enabled: false
# -- Target namespace of ServiceMonitor manifest
namespace: ""
# -- Service Monitor labels
extraLabels: {}
# -- Service Monitor annotations
annotations: {}
# Commented. Prometheus scare interval for vminsert component
# interval: 15s
# Commented. Prometheus pre-scrape timeout for vminsert 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: []
@@ -0,0 +1,331 @@
global:
# -- Image pull secrets, that can be shared across multiple helm charts
imagePullSecrets: []
image:
# -- Image registry, that can be shared across multiple helm charts
registry: ""
vm:
# -- Image tag for all vm charts
tag: ""
# -- Openshift security context compatibility configuration
compatibility:
openshift:
adaptSecurityContext: "auto"
# -- k8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/)
cluster:
dnsDomain: cluster.local.
# -- Print information after deployment
printNotes: true
# -- use SRV discovery for storageNode and selectNode flags for enterprise version
autoDiscovery: false
vminsert:
enabled: false
vmstorage:
enabled: false
fullnameOverride: vmstorage-dscispark-prd
replicaCount: 5
dedicatedValue: false
vmselect:
# -- Enable deployment of vmselect component. Can be deployed as Deployment(default) or StatefulSet
enabled: true
clusternativeService:
enabled: false
# -- Vmselect container name
name: vmselect
strategy: {}
# rollingUpdate:
# maxSurge: 25%
# maxUnavailable: 25%
# type: RollingUpdate
extraVMSelects: []
#extraVMSelects:
#- --storageNode=http://vmselect-dscispark-di-prd.meeshogcp.in
image:
# -- Image repository
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/vmselect
# -- Image tag
tag: v1.133.0-cluster
# -- Image pull policy
pullPolicy: IfNotPresent
# -- Name of Priority Class
priorityClassName: ""
# -- Overrides the full name of vmselect component
fullnameOverride: vm-select-dscispark-prd
# -- Suppress rendering `--storageNode` FQDNs based on `vmstorage.replicaCount` value. If true suppress rendering `--storageNodes`, they can be re-defined in extraArgs
suppresStorageFQDNsRender: false
automountServiceAccountToken: true
# Extra command line arguments for vmselect component
splitService: True
externalService:
enabled: true
name: vmselect-dscispark-prd-proxy
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
clusternativeListenAddr: ":8401"
dedup.minScrapeInterval: 60s
search.maxSamplesPerQuery: "1000000000000"
search.maxQueryDuration: 300s
search.maxQueueDuration: 60s
search.maxSeries: "10000000000"
search.maxExportSeries: "1000000000"
search.maxUniqueTimeseries: "1000000000000"
search.maxQueryLen: "1000000"
loggerTimezone: "Asia/Kolkata"
storageNode:
- "vm-storage-dscispark-prd-0.vm-storage-dscispark-prd.victoriametrics.svc:8401"
- "vm-storage-dscispark-prd-1.vm-storage-dscispark-prd.victoriametrics.svc:8401"
- "vm-storage-dscispark-prd-2.vm-storage-dscispark-prd.victoriametrics.svc:8401"
- "vm-storage-dscispark-prd-3.vm-storage-dscispark-prd.victoriametrics.svc:8401"
- "vm-storage-dscispark-prd-4.vm-storage-dscispark-prd.victoriametrics.svc:8401"
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8481"
extraLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vm-select-dscispark-prd"
env: "prd"
priority: "p0"
type: "vmselect"
podLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vm-select-dscispark-prd"
env: "prd"
priority: "p0"
type: "vmselect"
# -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables
env: []
# Readiness & Liveness probes
probe:
readiness:
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
liveness:
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
horizontalPodAutoscaler:
# -- Use HPA for vmselect component
enabled: true
# -- Maximum replicas for HPA to use to to scale the vmselect component
maxReplicas: 20
# -- Minimum replicas for HPA to use to scale the vmselect component
minReplicas: 2
# -- Metric for HPA to use to scale the vmselect component
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 40
# 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: example
# image: example-image
podDisruptionBudget:
# -- See `kubectl explain poddisruptionbudget.spec` for more. Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
enabled: true
minAvailable: 1
# maxUnavailable: 1
labels: {}
nodeSelector:
dedicated: "vm-common"
tolerations:
- key: "dedicated"
operator: "Equal"
value: "vm-common"
effect: "NoSchedule"
# -- Pod affinity
affinity: {}
# -- Pod topologySpreadConstraints
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmselect
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmselect
# -- Pod's annotations
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8481"
# -- Count of vmselect pods
replicaCount: 2
# -- Container workdir
containerWorkingDir: ""
# -- Resource object
resources:
# limits:
# cpu: 50m
# memory: 64Mi
requests:
cpu: 1200m
memory: 3Gi
# -- 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/
securityContext: {}
podSecurityContext: {}
# -- Cache root folder
cacheMountPath: /cache
service:
# -- Service annotations
annotations:
io.cilium/global-service: "true"
# -- 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: []
# -- Extra service ports
extraServicePorts: []
# -- Service load balacner IP
loadBalancerIP: ""
# -- Load balancer source range
loadBalancerSourceRanges: []
# -- Service port
servicePort: 8481
# -- Target port
targetPort: http
# -- Service type
type: ClusterIP
ingress:
# -- Enable deployment of ingress for vmselect component
enabled: true
# -- Ingress annotations
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
ingressClassName: nginx-internal
extraLabels: {}
# -- Array of host objects
hosts:
- name: vm-select-dscispark-prd.meeshogcp.in
path: /
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
statefulSet:
# -- Deploy StatefulSet instead of Deployment for vmselect. Useful if you want to keep cache data.
enabled: false
# -- 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: 8481
persistentVolume:
# -- Create/use Persistent Volume Claim for vmselect component. Empty dir if false. If true, vmselect will create/use a Persistent Volume Claim
enabled: false
# -- Array of access mode. 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
# -- Persistent volume annotations
annotations: {}
# -- Persistent volume labels
labels: {}
# -- Existing Claim name. Requires vmselect.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound
existingClaim: ""
## Vmselect data Persistent Volume mount root path
##
# -- Size of the volume. Better to set the same as resource limit memory property
size: 2Gi
# -- Mount subpath
subPath: ""
serviceMonitor:
# -- Enable deployment of Service Monitor for vmselect component. This is Prometheus operator object
enabled: false
# -- Target namespace of ServiceMonitor manifest
namespace: ""
# -- Service Monitor labels
extraLabels: {}
# -- Service Monitor annotations
annotations: {}
# Commented. Prometheus scare interval for vmselect component
# interval: 15s
# Commented. Prometheus pre-scrape timeout for vmselect 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: []
@@ -0,0 +1,345 @@
global:
# -- Image pull secrets, that can be shared across multiple helm charts
imagePullSecrets: []
image:
# -- Image registry, that can be shared across multiple helm charts
registry: ""
vm:
# -- Image tag for all vm charts
tag: ""
# -- Openshift security context compatibility configuration
compatibility:
openshift:
adaptSecurityContext: "auto"
# -- k8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/)
cluster:
dnsDomain: cluster.local.
# -- Print information after deployment
printNotes: true
# -- use SRV discovery for storageNode and selectNode flags for enterprise version
autoDiscovery: false
vminsert:
enabled: false
vmselect:
enabled: false
serviceAccount:
create: false
# name:
extraLabels: {}
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::847438129436:role/eks-s3-vmbackup-role
# mount API token to pod directly
automountToken: true
dedicatedValue: false
# schedulerName: default-scheduler
vmstorage:
# -- Enable deployment of vmstorage component. StatefulSet is used
enabled: true
# -- vmstorage container name
name: vmstorage
image:
# -- Image repository
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/vmstorage
# -- Image tag
tag: v1.133.0-cluster
# -- Image pull policy
pullPolicy: IfNotPresent
# -- Name of Priority Class
priorityClassName: ""
# -- Overrides the full name of vmstorage component
fullnameOverride: vm-storage-dscispark-prd
automountServiceAccountToken: true
# -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables
env: []
# -- Data retention period. Supported values 1w, 1d, number without measurement means month, e.g. 2 = 2month
retentionPeriod: 30d
# Additional vmstorage container arguments. Extra command line arguments for vmstorage component
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
search.maxUniqueTimeseries: "30000000"
dedup.minScrapeInterval: 60s
loggerTimezone: "Asia/Kolkata"
# 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
extraSecretMounts:
[]
# - name: secret
# mountPath: /etc/credentials
# subPath: ""
# readOnly: true
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
# -- 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:
enabled: false
# minAvailable: 1
# maxUnavailable: 1
labels: {}
# -- Array of tolerations object. 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: "dedicated"
operator: "Equal"
value: "vmstorage-n4d"
effect: "NoSchedule"
# -- Pod's node selector. Ref: [https://kubernetes.io/docs/user-guide/node-selection/](https://kubernetes.io/docs/user-guide/node-selection/)
nodeSelector:
dedicated: "vmstorage-n4d"
# -- Pod affinity
affinity: {}
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmstorage
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: vmstorage
## 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 vmstorage component. Empty dir if false. If true, vmstorage will create/use a Persistent Volume Claim
enabled: true
name: vmstack-storage-volume
# -- 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
# -- Persistent volume annotations
annotations: {}
# -- Persistent volume labels
labels: {}
# -- Storage class name. Will be empty if not setted
storageClassName: hyperdisk-balanced
# -- Existing Claim name. Requires vmstorage.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound
existingClaim: ""
# -- Data root path. Vmstorage data Persistent Volume mount root path
mountPath: /storage
# -- Size of the volume. Better to set the same as resource limit memory property
size: 3800Gi
# -- Mount subpath
subPath: ""
# -- Pod's annotations
podAnnotations:
prometheus.io/port: "8482"
prometheus.io/scrape: "true"
annotations:
prometheus.io/port: "8482"
prometheus.io/scrape: "true"
extraLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vm-storage-dscispark-prd"
env: "prd"
priority: "p0"
type: "vmstorage"
podLabels:
bu: "dscispark"
team: "dscispark-sre"
service: "vm-storage-dscispark-prd"
env: "prd"
priority: "p0"
type: "vmstorage"
# -- Count of vmstorage pods
replicaCount: 5
# -- Container workdir
containerWorkingDir: ""
# -- Deploy order policy for StatefulSet pods
podManagementPolicy: OrderedReady
# -- Resource object. Ref: [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
resources:
# limits:
# cpu: 500m
# memory: 512Mi
requests:
cpu: 5
memory: 50Gi
# -- 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/)
securityContext: {}
podSecurityContext: {}
service:
# -- Service annotations
annotations: {}
# -- Service labels
labels: {}
# -- Service port
servicePort: 8482
# -- Port for accepting connections from vminsert
vminsertPort: 8400
# -- Port for accepting connections from vmstorage
vmstoragePort: 8401
# -- Extra service ports
extraServicePorts: []
# -- Pod's termination grace period in seconds
terminationGracePeriodSeconds: 60
probe:
readiness:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
liveness:
tcpSocket:
port: http
initialDelaySeconds: 30
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 10
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/eula/
eula: true
image:
# -- vmbackupmanager image repository
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/vmbackupmanager
# -- vmbackupmanager image tag
tag: v1.91.3-cluster
# -- disable hourly backups
disableHourly: true
# -- disable daily backups
disableDaily: false
# -- disable weekly backups
disableWeekly: true
# -- disable monthly backups
disableMonthly: true
# -- backup destination at S3, GCS or local filesystem. Pod name will be included to path!
destination: "s3://prd-demand-vmbackup"
# -- backups' retention settings
retention:
# -- keep last N hourly backups. 0 means delete all existing hourly backups. Specify -1 to turn off
keepLastHourly: 0
# -- keep last N daily backups. 0 means delete all existing daily backups. Specify -1 to turn off
keepLastDaily: 30
# -- keep last N weekly backups. 0 means delete all existing weekly backups. Specify -1 to turn off
keepLastWeekly: 0
# -- keep last N monthly backups. 0 means delete all existing monthly backups. Specify -1 to turn off
keepLastMonthly: 0
extraArgs:
envflag.enable: "true"
envflag.prefix: VM_
loggerFormat: json
concurrency: 15
loggerTimezone: "Asia/Kolkata"
# -- 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
extraSecretMounts:
[]
# - name: secret
# mountPath: /etc/credentials
# subPath: ""
# readOnly: true
serviceMonitor:
# -- Enable deployment of Service Monitor for vmstorage component. This is Prometheus operator object
enabled: false
# -- Target namespace of ServiceMonitor manifest
namespace: ""
# -- Service Monitor labels
extraLabels: {}
# -- Service Monitor annotations
annotations: {}
# Commented. Prometheus scare interval for vmstorage component
# interval: 15s
# Commented. Prometheus pre-scrape timeout for vmstorage 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: []