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-stateful-secured-demand-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: 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-demand-prd-proxy.victoriametrics.svc.cluster.local:8481/select/200/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://vm-insert-demand-prd.victoriametrics.svc.cluster.local:8480/insert/200/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-demand-prd-proxy.victoriametrics.svc.cluster.local:8481/select/200/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/sensitive/demand/**/*.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: false annotations: {} ingressClassName: nginx-internal # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: 'true' extraLabels: {} hosts: - name: vmalert-demand-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: "demand" team: "sre" service: "vmalert-stateful-secured-demand-prd" 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: "vmselect-mds" priorityClassName: "" tolerations: - key: "dedicated" operator: "Equal" value: "vmselect-mds" 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-secured-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