added repo
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
fullnameOverride: "alloy-datascience-prd"
|
||||
|
||||
alloy:
|
||||
configMap:
|
||||
configFile: datascience.alloy
|
||||
|
||||
clustering:
|
||||
enabled: true
|
||||
|
||||
extraPorts:
|
||||
- name: "otlp-grpc"
|
||||
port: 4317
|
||||
targetPort: 4317
|
||||
protocol: "TCP"
|
||||
- name: "otlp-http"
|
||||
port: 4318
|
||||
targetPort: 4318
|
||||
protocol: "TCP"
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 7
|
||||
memory: 55Gi
|
||||
|
||||
configReloader:
|
||||
enabled: true
|
||||
|
||||
serviceAccount:
|
||||
annotations: {
|
||||
iam.gke.io/gcp-service-account: sa-dsci-sre-grafna-obs-stk-prd@meesho-datascience-prd-0622.iam.gserviceaccount.com
|
||||
}
|
||||
|
||||
controller:
|
||||
# Must be one of 'daemonset', 'deployment', or 'statefulset'.
|
||||
type: 'deployment'
|
||||
|
||||
nodeSelector:
|
||||
dedicated: "alloy"
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "alloy"
|
||||
effect: "NoSchedule"
|
||||
|
||||
autoscaling:
|
||||
enabled: true
|
||||
minReplicas: 4
|
||||
maxReplicas: 50
|
||||
targetCPUUtilizationPercentage: 80
|
||||
targetMemoryUtilizationPercentage: 80
|
||||
@@ -0,0 +1,652 @@
|
||||
## Aurva Data Plane
|
||||
## Ref: https://github.com/aurva-io/aurva-charts.git
|
||||
|
||||
postgresql:
|
||||
enabled: true
|
||||
fullnameOverride: "aurva-dataplane-database"
|
||||
volumePermissions:
|
||||
## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume
|
||||
##
|
||||
enabled: true
|
||||
global:
|
||||
storageClass: pd-standard-retain
|
||||
postgresql:
|
||||
auth:
|
||||
postgresPassword: "aurva"
|
||||
database: "controller"
|
||||
# Add toleration to make sure where this postgres db pod should reside (Applicable for production workloads): For more detail ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
|
||||
primary:
|
||||
extendedConfiguration: |
|
||||
max_connections = 300
|
||||
|
||||
# #PLACEHOLDER##
|
||||
# tolerations:
|
||||
# - effect: NoSchedule
|
||||
# key: dedicated
|
||||
# operator: Equal
|
||||
# value: datascience-devops
|
||||
|
||||
# # -- Select nodes to deploy which matches the following labels
|
||||
# nodeSelector: ##PLACEHOLDER##
|
||||
# dedicated: datascience-devops
|
||||
|
||||
# -- Provide a name in place of `aurva`
|
||||
# namespaceOverride: aurva-dataplane
|
||||
|
||||
##########################################################
|
||||
# Global Configs
|
||||
##########################################################
|
||||
global:
|
||||
aurva_controller:
|
||||
enabled: true
|
||||
aurva_fastdet:
|
||||
enabled: false
|
||||
aurva_pii_analyzer:
|
||||
enabled: true
|
||||
aurva_ocr:
|
||||
enabled: true
|
||||
aurva_collector:
|
||||
enabled: true
|
||||
|
||||
deploymentAnnotations: {}
|
||||
|
||||
priorityClassName: ""
|
||||
|
||||
##########################################################
|
||||
# Aurva Controller
|
||||
##########################################################
|
||||
aurva_controller:
|
||||
|
||||
# -- Additional labels for aurva-controller
|
||||
additionalLabels:
|
||||
bu: "datascience"
|
||||
team: "datascience-devops"
|
||||
service: "aurva-datascience-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "aurva_controller"
|
||||
|
||||
# -- Annotations on aurva-controller
|
||||
annotations: {}
|
||||
# "key": "value"
|
||||
|
||||
revisionHistoryLimit: 3
|
||||
|
||||
# -- no of replicas for aurva controller
|
||||
replicas: 10
|
||||
|
||||
# -- Additional label added on pod which is used in Service's Label Selector
|
||||
podLabels: {}
|
||||
|
||||
# -- Additional Pod Annotations added on pod created by this Deployment
|
||||
additionalPodAnnotations: {}
|
||||
# "key": "value"
|
||||
|
||||
# -- Secrets used to pull image
|
||||
imagePullSecrets: ""
|
||||
image:
|
||||
# Image of the app container
|
||||
repository: asia-south1-docker.pkg.dev/aurva-gcp/aurva-controller/aurva-controller
|
||||
tag: "v3.20.3"
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# Environment variables to be passed to the app container
|
||||
env: []
|
||||
|
||||
# -- If want to mount Envs from configmap or secret
|
||||
envFrom:
|
||||
- type: secret
|
||||
name: aurva-controller-secrets
|
||||
# - type: configmap
|
||||
# name: proxy-datasource-config
|
||||
|
||||
# -- Resources to be defined for pod
|
||||
resources:
|
||||
limits:
|
||||
memory: 2Gi
|
||||
cpu: 2
|
||||
requests:
|
||||
memory: 1Gi
|
||||
cpu: 1
|
||||
|
||||
aurvaFastdet:
|
||||
image:
|
||||
repository: asia-south1-docker.pkg.dev/aurva-gcp/aurva-fastdet/aurva-fastdet
|
||||
tag: "v2.30.13"
|
||||
pullPolicy: IfNotPresent
|
||||
envFrom: []
|
||||
env: []
|
||||
resources:
|
||||
limits:
|
||||
cpu: 0.5
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 0.5
|
||||
memory: 512Mi
|
||||
|
||||
nodeSelector: ##PLACEHOLDER##
|
||||
dedicated: datascience-devops
|
||||
|
||||
# -- Taint tolerations for nodes
|
||||
##PLACEHOLDER##
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: datascience-devops
|
||||
|
||||
# -- Pod affinity and pod anti-affinity allow you to specify rules about how pods should be placed relative to other pods.
|
||||
affinity:
|
||||
# nodeAffinity:
|
||||
# requiredDuringSchedulingIgnoredDuringExecution:
|
||||
# nodeSelectorTerms:
|
||||
# - matchExpressions:
|
||||
# - key: disktype
|
||||
# operator: In
|
||||
# values:
|
||||
# - ssd
|
||||
|
||||
# -- [DNS configuration]
|
||||
dnsConfig: {}
|
||||
# -- Alternative DNS policy for application controller pods
|
||||
dnsPolicy: "ClusterFirst"
|
||||
|
||||
secret:
|
||||
name: "aurva-controller-secrets"
|
||||
# -- Additional Labels on secrets
|
||||
additionalLabels:
|
||||
# key: value
|
||||
# -- Annotations on secrets
|
||||
annotations:
|
||||
# key: value
|
||||
config:
|
||||
#variables
|
||||
COMPANY_ID: "65eeb832-67ba-40fb-b95a-30ca9eaa3409"
|
||||
COMMAND_URL: "command.aurva-prd.meeshogcp.in:80"
|
||||
DEPLOYMENT_TYPE: "kubernetes"
|
||||
PG_USERNAME: "postgres"
|
||||
PG_PASSWORD: "aurva"
|
||||
PG_DBNAME: "controller"
|
||||
FLUSHER_WORKER_POOL_SIZE: "1000"
|
||||
FLUSHER_BATCH_SIZE: "30000"
|
||||
UNIQUENESS_IDENTIFIER: "k8s-datascience-prd-ase1" #Recommendation: should be equal to cluster name
|
||||
PROVIDER_ACCOUNT_ID: "meesho-datascience-prd-0622" # GCP PROJECT ID (not Number)
|
||||
REGION: "asia-southeast1" #eg: asia-south1
|
||||
ENVIRONMENT: "prod"
|
||||
OCR_ENABLED: "true"
|
||||
MONITORING_ENABLED: "false"
|
||||
HYBRID_ONLY_MODE: "false"
|
||||
FORCE_TLS: "false"
|
||||
FASTDET_FLAG : "true"
|
||||
AADHAAR_ENHANCER: "0"
|
||||
WORKSPACE_EVENT_TRACKING_ENABLED: "false"
|
||||
ACCESS_IQ_ENABLED: "true"
|
||||
GRPC_ENFORCE_ALPN_ENABLED: "false"
|
||||
ENABLE_FASTDET: "true"
|
||||
GOGC: "70"
|
||||
#pii data
|
||||
PII_BUCKET_NAME: "gcs-infra-devop-aurva-datascience-prd"
|
||||
PII_LOG_BUCKET_REGION: "asia-southeast1"
|
||||
PII_LOG_CRON: "*/5 * * * *"
|
||||
ENABLE_PII_LOG: "true"
|
||||
#constants
|
||||
SKIP_NAMESPACES: "contour-internal-1-datascience-prd,contour-internal-0-datascience-prd,contour-external-datascience-prd"
|
||||
CLOUD_PROVIDER: "gcp"
|
||||
LOG_ENV: "production"
|
||||
RDS_SCANNER_AVAILABILITY : "false"
|
||||
REDSHIFT_SCANNER_AVAILABILITY : "false"
|
||||
S3_SCANNER_AVAILABILITY : "false"
|
||||
DYNAMO_SCANNER_AVAILABILITY: "false"
|
||||
DOCDB_SCANNER_AVAILABILITY: "false"
|
||||
OPENSEARCH_SCANNER_AVAILABILITY: "false"
|
||||
CLOUDSQL_SCANNER_AVAILABILITY: "true"
|
||||
BIGQUERY_SCANNER_AVAILABILITY: "true"
|
||||
AWS_SNAPSHOT_SCANNER_AVAILABILITY: "false"
|
||||
CLOUDSTORAGE_SCANNER_AVAILABILITY: "true"
|
||||
KEYSPACES_SCANNER_AVAILABILITY: "false"
|
||||
ALLOYDB_SCANNER_AVAILABILITY: "true"
|
||||
BIGTABLE_SCANNER_AVAILABILITY: "true"
|
||||
GCP_BACKUP_AVAILABILITY: "true"
|
||||
EGRESS_MODE_ONLY: "false"
|
||||
SENTRY_DSN: "https://fd6738e1ee4a9a9c1f079d09953b43b1@sentry.aurva.io/4"
|
||||
SCAN_UUID_ENABLED: "true"
|
||||
|
||||
serviceAccount:
|
||||
# -- Create a service account for the aurva controller
|
||||
create: true
|
||||
# -- Service account name
|
||||
name: aurva-controller-sa
|
||||
# -- Annotations applied to created service account
|
||||
annotations:
|
||||
iam.gke.io/gcp-service-account: sa-datascience-prd-aurva-contr@meesho-datascience-prd-0622.iam.gserviceaccount.com
|
||||
# eks.amazonaws.com/role-arn: arn:aws:iam::<account-id>:role/<role-name>
|
||||
# -- Labels applied to created service account
|
||||
labels: {}
|
||||
autoscaling:
|
||||
enabled: true
|
||||
minReplicas: 10
|
||||
maxReplicas: 15
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 70
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 70
|
||||
|
||||
|
||||
##########################################################
|
||||
# Aurva OCR
|
||||
##########################################################
|
||||
aurva_ocr:
|
||||
# -- Additional labels for aurva-controller
|
||||
additionalLabels:
|
||||
bu: "datascience"
|
||||
team: "datascience-devops"
|
||||
service: "aurva-datascience-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "aurva_ocr"
|
||||
|
||||
# -- Annotations on aurva-controller
|
||||
annotations: {}
|
||||
# "key": "value"
|
||||
|
||||
revisionHistoryLimit: 3
|
||||
|
||||
# -- no of replicas for aurva controller
|
||||
replicas: 1
|
||||
|
||||
# -- Additional label added on pod which is used in Service's Label Selector
|
||||
podLabels: {}
|
||||
|
||||
# -- Additional Pod Annotations added on pod created by this Deployment
|
||||
additionalPodAnnotations: {}
|
||||
# "key": "value"
|
||||
|
||||
# -- Secrets used to pull image
|
||||
imagePullSecrets: ""
|
||||
|
||||
# Image of the app container
|
||||
image:
|
||||
repository: asia-south1-docker.pkg.dev/aurva-gcp/aurva-ocr/aurva-ocr
|
||||
tag: "v3.20.3"
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# Environment variables to be passed to the app container
|
||||
env: []
|
||||
|
||||
# -- If want to mount Envs from configmap or secret
|
||||
envFrom:
|
||||
aurva-ocr:
|
||||
type: secret
|
||||
name: aurva-ocr-secrets
|
||||
|
||||
# -- Resources to be defined for pod
|
||||
resources:
|
||||
limits:
|
||||
memory: 2Gi
|
||||
cpu: 1
|
||||
requests:
|
||||
memory: 2Gi
|
||||
cpu: 1
|
||||
|
||||
# -- Select nodes to deploy which matches the following labels
|
||||
|
||||
nodeSelector: ##PLACEHOLDER##
|
||||
dedicated: datascience-devops
|
||||
|
||||
##PLACEHOLDER##
|
||||
# -- Taint tolerations for nodes
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: datascience-devops
|
||||
|
||||
# -- Pod affinity and pod anti-affinity allow you to specify rules about how pods should be placed relative to other pods.
|
||||
affinity:
|
||||
# nodeAffinity:
|
||||
# requiredDuringSchedulingIgnoredDuringExecution:
|
||||
# nodeSelectorTerms:
|
||||
# - matchExpressions:
|
||||
# - key: disktype
|
||||
# operator: In
|
||||
# values:
|
||||
# - ssd
|
||||
|
||||
# -- [DNS configuration]
|
||||
dnsConfig: {}
|
||||
# -- Alternative DNS policy for application controller pods
|
||||
dnsPolicy: "ClusterFirst"
|
||||
|
||||
secret:
|
||||
name: "aurva-ocr-secrets"
|
||||
# -- Additional Labels on secrets
|
||||
additionalLabels:
|
||||
# key: value
|
||||
# -- Annotations on secrets
|
||||
annotations:
|
||||
# key: value
|
||||
|
||||
config:
|
||||
PG_USERNAME: "postgres"
|
||||
PG_PASSWORD: "aurva"
|
||||
PG_DBNAME: "controller"
|
||||
OCR_TIME_LIMIT: "1"
|
||||
|
||||
serviceAccount:
|
||||
# -- Create a service account for the aurva controller
|
||||
create: true
|
||||
# -- Service account name
|
||||
name: aurva-ocr-sa
|
||||
# -- Annotations applied to created service account
|
||||
annotations:
|
||||
# eks.amazonaws.com/role-arn: arn:aws:iam::<account-id>:role/<role-name>
|
||||
# iam.gke.io/gcp-service-account: service-account@gcp.iam.gserviceaccount.com
|
||||
# -- Labels applied to created service account
|
||||
labels: {}
|
||||
|
||||
##########################################################
|
||||
# Aurva Collector
|
||||
##########################################################
|
||||
aurva_collector:
|
||||
|
||||
# -- Additional labels for aurva-analyzer
|
||||
additionalLabels:
|
||||
bu: "datascience"
|
||||
team: "datascience-devops"
|
||||
service: "aurva-datascience-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "aurva_collector"
|
||||
|
||||
|
||||
# -- Annotations on aurva-analyzer
|
||||
annotations: {}
|
||||
# "key": "value"
|
||||
|
||||
# -- Additional label added on pod which is used in Service's Label Selector
|
||||
podLabels: {}
|
||||
|
||||
# -- Additional Pod Annotations added on pod created by this Deployment
|
||||
additionalPodAnnotations: {}
|
||||
# "key": "value"
|
||||
|
||||
# -- Secrets used to pull image
|
||||
imagePullSecrets: ""
|
||||
|
||||
# Image of the app container
|
||||
image:
|
||||
repository: asia-south1-docker.pkg.dev/aurva-gcp/aurva-collector/aurva-collector
|
||||
tag: "v3.20.3"
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# Environment variables to be passed to the app container
|
||||
env: []
|
||||
|
||||
# -- If want to mount Envs from configmap or secret
|
||||
envFrom:
|
||||
aurva-controller:
|
||||
type: secret
|
||||
name: aurva-collector-secrets
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: 800m
|
||||
memory: 800Mi
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 512Mi
|
||||
|
||||
podSecurityContext: {}
|
||||
|
||||
securityContext:
|
||||
privileged: false
|
||||
capabilities:
|
||||
add:
|
||||
# For kernel v5.8 and above we don't need CAP_SYS_ADMIN or CAP_SYS_RESOURCE
|
||||
# we just need CAP_BPF and CAP_PERFMON. This has been tested on our EKS node
|
||||
# which is on kernel v5.10.x
|
||||
# When SSL Tracing is required we need CAP_SYS_ADMIN and CAP_SYS_PTRACE
|
||||
# on top of the previous capabilities
|
||||
# So finally these are the 4 possible combinations for capabilies
|
||||
# 1. Newer Kernels without SSL
|
||||
- BPF
|
||||
- PERFMON
|
||||
# 2. Newer Kernels with SSL
|
||||
# - SYS_ADMIN
|
||||
# - SYS_PTRACE
|
||||
# 3. Older Kernels without SSL
|
||||
# - SYS_ADMIN
|
||||
# - SYS_RESOURCE
|
||||
# 4. Older Kernels with SSL
|
||||
# - SYS_ADMIN
|
||||
# - SYS_RESOURCE
|
||||
# - SYS_PTRACE
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
|
||||
volumes:
|
||||
- name: debugfs
|
||||
mountPath: /sys/kernel/debug
|
||||
hostPath: /sys/kernel/debug
|
||||
- name: vmlinux
|
||||
mountPath: /sys/kernel/btf/vmlinux
|
||||
hostPath: /sys/kernel/btf/vmlinux
|
||||
- name: procfs
|
||||
mountPath: /host/proc
|
||||
hostPath: /proc
|
||||
|
||||
# -- Taint tolerations for nodes
|
||||
tolerations:
|
||||
# - effect: NoSchedule
|
||||
# key: dedicated
|
||||
# operator: Equal
|
||||
# value: megatetra
|
||||
- operator: Exists
|
||||
|
||||
# -- Pod affinity and pod anti-affinity allow you to specify rules about how pods should be placed relative to other pods.
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: dedicated
|
||||
operator: NotIn
|
||||
values:
|
||||
- vmstorage
|
||||
- vmselect
|
||||
- vmagent
|
||||
- vminsert
|
||||
- contour-internal-0
|
||||
- contour-internal-1
|
||||
- contour-external
|
||||
- alloy
|
||||
- preprod-spot-16
|
||||
dnsPolicy: "ClusterFirst"
|
||||
|
||||
secret:
|
||||
name: "aurva-collector-secrets"
|
||||
# -- Additional Labels on secrets
|
||||
additionalLabels:
|
||||
# key: value
|
||||
# -- Annotations on secrets
|
||||
annotations:
|
||||
# key: value
|
||||
|
||||
config:
|
||||
# variables
|
||||
COMPANY_ID: "65eeb832-67ba-40fb-b95a-30ca9eaa3409"
|
||||
TRACE_INTERNAL_SVC: "true"
|
||||
TRACE_INTERNAL_SVC_HTTP: "true"
|
||||
INTERNAL_SVC_SAMPLE_INTERVAL: "2m"
|
||||
TRACE_SSL: "false"
|
||||
TRACE_PSQL: "false"
|
||||
TRACE_SQLSERVER: "false"
|
||||
TRACE_MYSQL: "false"
|
||||
TRACE_EGRESS: "true"
|
||||
TRACE_GO_TLS: "false"
|
||||
TRACE_ML_SERVICES: "false"
|
||||
# constants
|
||||
LOG_ENV: production
|
||||
SENTRY_DSN: "https://fd6738e1ee4a9a9c1f079d09953b43b1@sentry.aurva.io/4"
|
||||
MONITORING_ENABLED: "false"
|
||||
ENABLE_INGRESS_INFORMER: "false"
|
||||
ENABLE_SERVICE_INFORMER: "false"
|
||||
ENABLE_ISTIO_INFORMER: "false"
|
||||
EXCLUDED_PII_REGEX_TYPES: "ip_address,us_bank_number,us_driver_license,us_itin,us_passport,us_routing,us_mbi,ssn"
|
||||
|
||||
serviceAccount:
|
||||
# -- Create a service account for the aurva controller
|
||||
create: true
|
||||
# -- Service account name
|
||||
name: aurva-collector-sa
|
||||
# -- Annotations applied to created service account
|
||||
annotations:
|
||||
# eks.amazonaws.com/role-arn: arn:aws:iam::<account-id>:role/<role-name>
|
||||
# -- Labels applied to created service account
|
||||
labels: {}
|
||||
|
||||
##########################################################
|
||||
# Aurva PII Analyzer
|
||||
##########################################################
|
||||
aurva_pii_analyzer:
|
||||
|
||||
# -- Additional labels for aurva-controller
|
||||
additionalLabels:
|
||||
bu: "datascience"
|
||||
team: "datascience-devops"
|
||||
service: "aurva-datascience-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "aurva_pii_analyzer"
|
||||
|
||||
# -- Annotations on aurva-controller
|
||||
annotations: {}
|
||||
# "key": "value"
|
||||
|
||||
revisionHistoryLimit: 3
|
||||
|
||||
# -- no of replicas for aurva controller
|
||||
replicas: 3
|
||||
|
||||
# -- Additional label added on pod which is used in Service's Label Selector
|
||||
podLabels: {}
|
||||
|
||||
# -- Additional Pod Annotations added on pod created by this Deployment
|
||||
additionalPodAnnotations: {}
|
||||
# "key": "value"
|
||||
|
||||
# -- Secrets used to pull image
|
||||
imagePullSecrets: ""
|
||||
|
||||
##PLACEHOLDER##
|
||||
nodeSelector:
|
||||
dedicated: datascience-devops
|
||||
|
||||
# Image of the app container
|
||||
image:
|
||||
repository: asia-south1-docker.pkg.dev/aurva-gcp/aurva-piianalyzer/aurva-piianalyzer
|
||||
tag: "v3.20.3"
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# Environment variables to be passed to the app container
|
||||
env: []
|
||||
|
||||
# -- If want to mount Envs from configmap or secret
|
||||
envFrom:
|
||||
aurva-pii-analyzer:
|
||||
type: secret
|
||||
name: aurva-pii-analyzer-secrets
|
||||
|
||||
# -- Resources to be defined for pod
|
||||
resources:
|
||||
limits:
|
||||
memory: 4Gi
|
||||
cpu: 4
|
||||
requests:
|
||||
memory: 2Gi
|
||||
cpu: 2
|
||||
|
||||
nodeSelector: ##PLACEHOLDER##
|
||||
dedicated: datascience-devops
|
||||
|
||||
##PLACEHOLDER##
|
||||
# -- Taint tolerations for nodes
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: datascience-devops
|
||||
|
||||
# -- Pod affinity and pod anti-affinity allow you to specify rules about how pods should be placed relative to other pods.
|
||||
affinity:
|
||||
# nodeAffinity:
|
||||
# requiredDuringSchedulingIgnoredDuringExecution:
|
||||
# nodeSelectorTerms:
|
||||
# - matchExpressions:
|
||||
# - key: disktype
|
||||
# operator: In
|
||||
# values:
|
||||
# - ssd
|
||||
|
||||
# -- [DNS configuration]
|
||||
dnsConfig: {}
|
||||
# -- Alternative DNS policy for application controller pods
|
||||
dnsPolicy: "ClusterFirst"
|
||||
|
||||
secret:
|
||||
name: "aurva-pii-analyzer-secrets"
|
||||
# -- Additional Labels on secrets
|
||||
additionalLabels:
|
||||
# key: value
|
||||
# -- Annotations on secrets
|
||||
annotations:
|
||||
# key: value
|
||||
|
||||
config:
|
||||
PG_USERNAME: "postgres"
|
||||
PG_PASSWORD: "aurva"
|
||||
PG_DBNAME: "controller"
|
||||
SCHEDULER_TIME: "1"
|
||||
SUPPORTED_REGION: "US"
|
||||
|
||||
serviceAccount:
|
||||
# -- Create a service account for the aurva controller
|
||||
create: true
|
||||
# -- Service account name
|
||||
name: aurva-pii-analyzer-sa
|
||||
# -- Annotations applied to created service account
|
||||
annotations:
|
||||
# eks.amazonaws.com/role-arn: arn:aws:iam::<account-id>:role/<role-name>
|
||||
# -- Labels applied to created service account
|
||||
labels: {}
|
||||
|
||||
autoscaling:
|
||||
enabled: true
|
||||
minReplicas: 2
|
||||
maxReplicas: 3
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 70
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 70
|
||||
@@ -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,28 @@
|
||||
cronJob:
|
||||
image:
|
||||
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/contour-cert-checker
|
||||
tag: v1.1
|
||||
schedule: "* 12 * * *"
|
||||
args: ["--cluster=k8s-datascience-prd-ase1c"]
|
||||
resources:
|
||||
requests:
|
||||
memory: "50Mi"
|
||||
cpu: "50m"
|
||||
limits:
|
||||
memory: "100Mi"
|
||||
cpu: "100m"
|
||||
nodeSelector:
|
||||
dedicated: datascience-devops
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: datascience-devops
|
||||
backoffLimit: 3
|
||||
historyLimit:
|
||||
successfulJobs: 7
|
||||
failedJobs: 7
|
||||
|
||||
rbac:
|
||||
namespace: contour-cert-checker-ns
|
||||
serviceAccountName: contour-cert-checker-sa
|
||||
@@ -0,0 +1,94 @@
|
||||
configInline:
|
||||
enableExternalNameService: true
|
||||
timeouts:
|
||||
connection-idle-timeout: 65s
|
||||
connection-shutdown-grace-period: 60s
|
||||
max-connection-duration: 600s
|
||||
disablePermitInsecure: false
|
||||
tls:
|
||||
fallback-certificate: {}
|
||||
accesslog-format: envoy
|
||||
accesslog-level: disabled
|
||||
contour:
|
||||
enabled: true
|
||||
replicaCount: 3
|
||||
podLabels:
|
||||
bu: datascience
|
||||
team: datascience-devops
|
||||
env: prd
|
||||
manageCRDs: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 3Gi
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: contour-internal-0
|
||||
nodeSelector:
|
||||
dedicated: contour-internal-0
|
||||
service:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
xds: 8001
|
||||
metrics: 8000
|
||||
ingressClass:
|
||||
name: "contour-internal-0"
|
||||
create: true
|
||||
debug: false
|
||||
podAnnotations:
|
||||
prometheus.io/path: /metrics
|
||||
prometheus.io/port: '8000'
|
||||
prometheus.io/scrape: 'true'
|
||||
envoy:
|
||||
enabled: true
|
||||
podLabels:
|
||||
bu: datascience
|
||||
team: datascience-devops
|
||||
env: prd
|
||||
updateStrategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxSurge: 5%
|
||||
maxUnavailable: 0
|
||||
kind: deployment
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: contour-internal-0
|
||||
nodeSelector:
|
||||
dedicated: contour-internal-0
|
||||
logLevel: error
|
||||
autoscaling:
|
||||
enabled: true
|
||||
minReplicas: 3
|
||||
maxReplicas: 250
|
||||
targetCPU: "50"
|
||||
targetMemory: "60"
|
||||
podAnnotations:
|
||||
prometheus.io/path: /stats/prometheus
|
||||
prometheus.io/port: '8002'
|
||||
prometheus.io/scrape: 'true'
|
||||
resources:
|
||||
requests:
|
||||
cpu: 6
|
||||
memory: 8Gi
|
||||
service:
|
||||
tcpLB: true
|
||||
export:
|
||||
enabled: true
|
||||
targetPorts:
|
||||
http: http
|
||||
https: https
|
||||
type: ClusterIP
|
||||
annotations:
|
||||
cloud.google.com/neg: '{"exposed_ports": {"80":{"name": "envoy-int0-dsci-c-prd"}}}'
|
||||
ports:
|
||||
http: 80
|
||||
https: 443
|
||||
grpc: 8080 ## only when tcpLB is true it will be used
|
||||
useHostPort: false
|
||||
defaultBackend:
|
||||
enabled: false
|
||||
@@ -0,0 +1,110 @@
|
||||
configInline:
|
||||
enableExternalNameService: true
|
||||
timeouts:
|
||||
connection-idle-timeout: 65s
|
||||
connection-shutdown-grace-period: 400s
|
||||
max-connection-duration: 540s
|
||||
disablePermitInsecure: false
|
||||
tls:
|
||||
fallback-certificate: {}
|
||||
accesslog-format: envoy
|
||||
accesslog-level: disabled
|
||||
contour:
|
||||
enabled: true
|
||||
updateStrategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxSurge: 10%
|
||||
maxUnavailable: 0
|
||||
replicaCount: 3
|
||||
podLabels:
|
||||
bu: datascience
|
||||
team: datascience-devops
|
||||
env: prd
|
||||
manageCRDs: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: 8
|
||||
memory: 10Gi
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: contour-internal-1
|
||||
nodeSelector:
|
||||
dedicated: contour-internal-1
|
||||
service:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
xds: 8001
|
||||
metrics: 8000
|
||||
ingressClass:
|
||||
name: "contour-internal-1"
|
||||
create: true
|
||||
debug: false
|
||||
podAnnotations:
|
||||
prometheus.io/path: /metrics
|
||||
prometheus.io/port: '8000'
|
||||
prometheus.io/scrape: 'true'
|
||||
envoy:
|
||||
enabled: true
|
||||
podLabels:
|
||||
bu: datascience
|
||||
team: datascience-devops
|
||||
env: prd
|
||||
kind: deployment
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: contour-internal-1
|
||||
nodeSelector:
|
||||
dedicated: contour-internal-1
|
||||
logLevel: error
|
||||
terminationGracePeriodSeconds: 500
|
||||
autoscaling:
|
||||
behaviour:
|
||||
scaledown:
|
||||
policies:
|
||||
- periodseconds: 500
|
||||
type: Pods
|
||||
value: 1
|
||||
selectpolicy: Min
|
||||
stabilizationWindowSeconds: 600
|
||||
scaleup:
|
||||
policies:
|
||||
- periodseconds: 15
|
||||
type: Pods
|
||||
value: 2
|
||||
selectpolicy: Max
|
||||
stabilizationWindowSeconds: 60
|
||||
enabled: true
|
||||
minReplicas: 3
|
||||
maxReplicas: 250
|
||||
targetCPU: "35"
|
||||
targetMemory: "40"
|
||||
podAnnotations:
|
||||
prometheus.io/path: /stats/prometheus
|
||||
prometheus.io/port: '8002'
|
||||
prometheus.io/scrape: 'true'
|
||||
resources:
|
||||
requests:
|
||||
cpu: 18
|
||||
memory: 12Gi
|
||||
service:
|
||||
tcpLB: true
|
||||
export:
|
||||
enabled: true
|
||||
targetPorts:
|
||||
http: http
|
||||
https: https
|
||||
type: ClusterIP
|
||||
annotations:
|
||||
cloud.google.com/neg: '{"exposed_ports": {"80":{"name": "envoy-int1-dsci-c-prd"}}}'
|
||||
ports:
|
||||
http: 80
|
||||
https: 443
|
||||
grpc: 8080 ## only when tcpLB is true it will be used
|
||||
useHostPort: false
|
||||
defaultBackend:
|
||||
enabled: false
|
||||
@@ -0,0 +1,92 @@
|
||||
configInline:
|
||||
enableExternalNameService: true
|
||||
timeouts:
|
||||
connection-idle-timeout: 65s
|
||||
connection-shutdown-grace-period: 60s
|
||||
max-connection-duration: 600s
|
||||
disablePermitInsecure: false
|
||||
tls:
|
||||
fallback-certificate: {}
|
||||
accesslog-format: envoy
|
||||
accesslog-level: disabled
|
||||
contour:
|
||||
enabled: true
|
||||
replicaCount: 3
|
||||
podLabels:
|
||||
bu: datascience
|
||||
team: datascience-devops
|
||||
env: prd
|
||||
manageCRDs: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 3Gi
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: contour-internal-0
|
||||
nodeSelector:
|
||||
dedicated: contour-internal-0
|
||||
service:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
xds: 8001
|
||||
metrics: 8000
|
||||
ingressClass:
|
||||
name: "contour-internal-intra-0"
|
||||
create: true
|
||||
debug: false
|
||||
podAnnotations:
|
||||
prometheus.io/path: /metrics
|
||||
prometheus.io/port: '8000'
|
||||
prometheus.io/scrape: 'true'
|
||||
envoy:
|
||||
enabled: true
|
||||
podLabels:
|
||||
bu: datascience
|
||||
team: datascience-devops
|
||||
env: prd
|
||||
updateStrategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxSurge: 5%
|
||||
maxUnavailable: 0
|
||||
kind: deployment
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: contour-internal-0
|
||||
nodeSelector:
|
||||
dedicated: contour-internal-0
|
||||
logLevel: error
|
||||
autoscaling:
|
||||
enabled: true
|
||||
minReplicas: 4
|
||||
maxReplicas: 250
|
||||
targetCPU: "50"
|
||||
targetMemory: "60"
|
||||
podAnnotations:
|
||||
prometheus.io/path: /stats/prometheus
|
||||
prometheus.io/port: '8002'
|
||||
prometheus.io/scrape: 'true'
|
||||
resources:
|
||||
requests:
|
||||
cpu: 6
|
||||
memory: 8Gi
|
||||
service:
|
||||
tcpLB: false
|
||||
export:
|
||||
enabled: false
|
||||
targetPorts:
|
||||
http: http
|
||||
https: https
|
||||
type: ClusterIP
|
||||
ports:
|
||||
http: 80
|
||||
https: 443
|
||||
grpc: 8080 ## only when tcpLB is true it will be used
|
||||
useHostPort: false
|
||||
defaultBackend:
|
||||
enabled: false
|
||||
@@ -0,0 +1,108 @@
|
||||
configInline:
|
||||
enableExternalNameService: true
|
||||
timeouts:
|
||||
connection-idle-timeout: 65s
|
||||
connection-shutdown-grace-period: 400s
|
||||
max-connection-duration: 540s
|
||||
disablePermitInsecure: false
|
||||
tls:
|
||||
fallback-certificate: {}
|
||||
accesslog-format: envoy
|
||||
accesslog-level: disabled
|
||||
contour:
|
||||
enabled: true
|
||||
updateStrategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxSurge: 10%
|
||||
maxUnavailable: 0
|
||||
replicaCount: 3
|
||||
podLabels:
|
||||
bu: datascience
|
||||
team: datascience-devops
|
||||
env: prd
|
||||
manageCRDs: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: 8
|
||||
memory: 10Gi
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: contour-internal-1
|
||||
nodeSelector:
|
||||
dedicated: contour-internal-1
|
||||
service:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
xds: 8001
|
||||
metrics: 8000
|
||||
ingressClass:
|
||||
name: "contour-internal-intra-1"
|
||||
create: true
|
||||
debug: false
|
||||
podAnnotations:
|
||||
prometheus.io/path: /metrics
|
||||
prometheus.io/port: '8000'
|
||||
prometheus.io/scrape: 'true'
|
||||
envoy:
|
||||
enabled: true
|
||||
podLabels:
|
||||
bu: datascience
|
||||
team: datascience-devops
|
||||
env: prd
|
||||
kind: deployment
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: contour-internal-1
|
||||
nodeSelector:
|
||||
dedicated: contour-internal-1
|
||||
logLevel: error
|
||||
terminationGracePeriodSeconds: 500
|
||||
autoscaling:
|
||||
behaviour:
|
||||
scaledown:
|
||||
policies:
|
||||
- periodseconds: 500
|
||||
type: Pods
|
||||
value: 1
|
||||
selectpolicy: Min
|
||||
stabilizationWindowSeconds: 600
|
||||
scaleup:
|
||||
policies:
|
||||
- periodseconds: 15
|
||||
type: Pods
|
||||
value: 2
|
||||
selectpolicy: Max
|
||||
stabilizationWindowSeconds: 60
|
||||
enabled: true
|
||||
minReplicas: 4
|
||||
maxReplicas: 250
|
||||
targetCPU: "35"
|
||||
targetMemory: "40"
|
||||
podAnnotations:
|
||||
prometheus.io/path: /stats/prometheus
|
||||
prometheus.io/port: '8002'
|
||||
prometheus.io/scrape: 'true'
|
||||
resources:
|
||||
requests:
|
||||
cpu: 18
|
||||
memory: 12Gi
|
||||
service:
|
||||
tcpLB: false
|
||||
export:
|
||||
enabled: false
|
||||
targetPorts:
|
||||
http: http
|
||||
https: https
|
||||
type: ClusterIP
|
||||
ports:
|
||||
http: 80
|
||||
https: 443
|
||||
grpc: 8080 ## only when tcpLB is true it will be used
|
||||
useHostPort: false
|
||||
defaultBackend:
|
||||
enabled: false
|
||||
@@ -0,0 +1,30 @@
|
||||
replicaCount: 16
|
||||
|
||||
labels:
|
||||
bu: datascience
|
||||
team: datascience-devops
|
||||
env: prd
|
||||
|
||||
clusterIP: 10.217.16.2
|
||||
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "datascience-devops"
|
||||
effect: "NoSchedule"
|
||||
|
||||
nodeSelector:
|
||||
dedicated: datascience-devops
|
||||
kubernetes.io/os: linux
|
||||
|
||||
overwriteRegion: "c"
|
||||
communicationType: ""
|
||||
@@ -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: datascience-devops
|
||||
nodeSelector:
|
||||
dedicated: datascience-devops
|
||||
certController:
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: datascience-devops
|
||||
nodeSelector:
|
||||
dedicated: datascience-devops
|
||||
webhook:
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: datascience-devops
|
||||
nodeSelector:
|
||||
dedicated: datascience-devops
|
||||
@@ -0,0 +1,63 @@
|
||||
# Default values for flagger.
|
||||
|
||||
image:
|
||||
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/flagger
|
||||
tag: rollout-service-v2.0.0
|
||||
|
||||
# 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: datascience-devops
|
||||
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
operator: Equal
|
||||
value: datascience-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: datascience-devops
|
||||
bu: infra
|
||||
region: ase1c
|
||||
|
||||
env:
|
||||
- name: ROLLOUT_SERVICE_URL
|
||||
value: "http://prd-datascience-rollout-service.prd-datascience-rollout-service.svc.cluster.local"
|
||||
|
||||
rolloutService:
|
||||
enabled: true
|
||||
apps:
|
||||
@@ -0,0 +1,718 @@
|
||||
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-dsci-dssre-fluentd-prd@meesho-dscience-ase1c-prd-0625.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: datascience
|
||||
team: sre
|
||||
type: fluentd
|
||||
service: fluentd-datascience-prd
|
||||
priority: p0
|
||||
env: prd
|
||||
zone_extended: ase1c
|
||||
|
||||
## Annotations to be added to fluentd pods
|
||||
##
|
||||
podAnnotations: {}
|
||||
|
||||
## Labels to be added to fluentd pods
|
||||
##
|
||||
podLabels:
|
||||
bu: datascience
|
||||
team: sre
|
||||
type: fluentd
|
||||
service: fluentd-datascience-prd
|
||||
priority: p0
|
||||
env: prd
|
||||
zone_extended: ase1c
|
||||
|
||||
|
||||
## 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: true
|
||||
# key: dev/devops/coralogix
|
||||
# secretStoreRef:
|
||||
# name: vault-backend
|
||||
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: integrations-privatekey
|
||||
|
||||
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**}>
|
||||
@type "relabel"
|
||||
@label @CONCATDISPATCH
|
||||
</match>
|
||||
|
||||
<label @CONCATDISPATCH>
|
||||
<filter {**prd**}>
|
||||
@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 "datascience/${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>
|
||||
</match>
|
||||
# <match {**int**}>
|
||||
# @type copy
|
||||
# <store>
|
||||
# @type "relabel"
|
||||
# @label @PREPROD
|
||||
# </store>
|
||||
# </match>
|
||||
</label>
|
||||
|
||||
<label @PRD>
|
||||
<filter {**prd**}>
|
||||
@type grep
|
||||
<regexp>
|
||||
key log
|
||||
pattern /ERROR|WARN|error|warn/
|
||||
</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")}
|
||||
zone_extended ase1c
|
||||
</record>
|
||||
</filter>
|
||||
<match {**prd**}>
|
||||
@type elasticsearch
|
||||
host 7d369a3cb09343f3979cb78a02e522df.psc.asia-southeast1.gcp.elastic-cloud.com
|
||||
port 9243
|
||||
scheme https
|
||||
compression_level best_speed
|
||||
ssl_verify false
|
||||
emit_error_for_missing_id true
|
||||
id_key request_id
|
||||
user elastic
|
||||
password "#{ENV['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 "datascience-ase1c-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 {**gke-mcs**}>
|
||||
@type elasticsearch
|
||||
host 7d369a3cb09343f3979cb78a02e522df.psc.asia-southeast1.gcp.elastic-cloud.com
|
||||
port 9243
|
||||
scheme https
|
||||
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['ES_PASSWORD']}"
|
||||
reload_on_failure true
|
||||
reconnect_on_error true
|
||||
include_timestamp true
|
||||
request_timeout 60s
|
||||
</match>
|
||||
<match {**kube-events**,**kube-system**,**external-secrets**,**keda**,sys-log,**victoriametrics**}>
|
||||
@type elasticsearch
|
||||
host 7d369a3cb09343f3979cb78a02e522df.psc.asia-southeast1.gcp.elastic-cloud.com
|
||||
port 9243
|
||||
scheme https
|
||||
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['ES_PASSWORD']}"
|
||||
reload_on_failure true
|
||||
reconnect_on_error true
|
||||
include_timestamp true
|
||||
request_timeout 60s
|
||||
</match>
|
||||
<match **>
|
||||
@type elasticsearch
|
||||
host 7d369a3cb09343f3979cb78a02e522df.psc.asia-southeast1.gcp.elastic-cloud.com
|
||||
port 9243
|
||||
scheme https
|
||||
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['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 7d369a3cb09343f3979cb78a02e522df.psc.asia-southeast1.gcp.elastic-cloud.com
|
||||
# port 9243
|
||||
# scheme https
|
||||
# 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['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: 3
|
||||
maxReplicas: 6
|
||||
targetCPUUtilizationPercentage: 60
|
||||
targetMemoryUtilizationPercentage: 60
|
||||
ingressClassResource:
|
||||
name: nginx-internal
|
||||
service:
|
||||
type: ClusterIP
|
||||
annotations:
|
||||
cloud.google.com/neg: '{"exposed_ports": {"80":{"name": "nginx-dsci-int-ase1c-prd"}}}'
|
||||
nodeSelector:
|
||||
dedicated: nginx-internal
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "nginx-internal"
|
||||
effect: "NoSchedule"
|
||||
@@ -0,0 +1,46 @@
|
||||
keda:
|
||||
operator:
|
||||
replicaCount: 2
|
||||
metricsServer:
|
||||
replicaCount: 2
|
||||
nodeSelector:
|
||||
dedicated: datascience-devops
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "datascience-devops"
|
||||
effect: "NoSchedule"
|
||||
podLabels:
|
||||
bu: "datascience"
|
||||
team: "datascience-devops"
|
||||
metricsAdapter:
|
||||
bu: "datascience"
|
||||
team: "datascience-devops"
|
||||
resources:
|
||||
# -- Manage [resource request & limits] of KEDA operator pod
|
||||
operator:
|
||||
limits:
|
||||
cpu: 1
|
||||
memory: 1000Mi
|
||||
requests:
|
||||
cpu: 300m
|
||||
memory: 450Mi
|
||||
# -- Manage [resource request & limits] of KEDA metrics apiserver pod
|
||||
metricServer:
|
||||
limits:
|
||||
cpu: 1
|
||||
memory: 1000Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
# -- Manage [resource request & limits] of KEDA admission webhooks pod
|
||||
webhooks:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 180Mi
|
||||
requests:
|
||||
cpu: 60m
|
||||
memory: 120Mi
|
||||
env:
|
||||
- name: KEDA_SCALEDOBJECT_CTRL_MAX_RECONCILES
|
||||
value: '25'
|
||||
@@ -0,0 +1,2 @@
|
||||
stubDomains: >-
|
||||
{"clusterset.local":["169.254.169.254"],"prd.meesho.int.svc.cluster.local":["10.217.16.2"],"prd.mrouter.int.svc.cluster.local":["10.217.16.2"],"mq-server.meeshoint.in.svc.cluster.local":["10.217.16.2"]}
|
||||
@@ -0,0 +1,149 @@
|
||||
|
||||
fullnameOverride: kube-events-datascience-ase1c-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: datascience-devops
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
value: datascience-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: datascience-devops
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
value: datascience-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: datascience-devops
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: dedicated
|
||||
value: datascience-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-datascience-ase1c-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-datascience-ase1c-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: "datascience"
|
||||
team: "datascience-sre"
|
||||
service: "kube-state-metrics-datascience-ase1c-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: "vmselect"
|
||||
|
||||
## 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: "vmselect"
|
||||
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: 17m
|
||||
memory: 1.5Gi
|
||||
|
||||
## 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,442 @@
|
||||
# Copyright 2017 The Kubernetes Authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# General configuration shared across resources
|
||||
app:
|
||||
# Mode determines if chart should deploy a full Dashboard with all containers or just the API.
|
||||
# - dashboard - deploys all the containers
|
||||
# - api - deploys just the API
|
||||
mode: 'dashboard'
|
||||
image:
|
||||
pullPolicy: IfNotPresent
|
||||
pullSecrets: []
|
||||
scheduling:
|
||||
# Node labels for pod assignment
|
||||
# Ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
nodeSelector: {}
|
||||
security:
|
||||
# Allow overriding csrfKey used by API/Auth containers.
|
||||
# It has to be base64 encoded random 256 bytes string.
|
||||
# If empty, it will be autogenerated.
|
||||
csrfKey: ~
|
||||
# SecurityContext to be added to pods
|
||||
# To disable set the following configuration to null:
|
||||
# securityContext: null
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
# ContainerSecurityContext to be added to containers
|
||||
# To disable set the following configuration to null:
|
||||
# containerSecurityContext: null
|
||||
containerSecurityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
readOnlyRootFilesystem: true
|
||||
runAsUser: 1001
|
||||
runAsGroup: 2001
|
||||
capabilities:
|
||||
drop: ["ALL"]
|
||||
# Pod Disruption Budget configuration
|
||||
# Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
||||
podDisruptionBudget:
|
||||
enabled: false
|
||||
minAvailable: 0
|
||||
maxUnavailable: 0
|
||||
networkPolicy:
|
||||
enabled: false
|
||||
ingressDenyAll: false
|
||||
# Raw network policy spec that overrides predefined spec
|
||||
# Example:
|
||||
# spec:
|
||||
# egress:
|
||||
# - ports:
|
||||
# - port: 123
|
||||
spec: {}
|
||||
|
||||
# Common labels & annotations shared across all deployed resources
|
||||
labels: {}
|
||||
annotations: {}
|
||||
# Common priority class used for all deployed resources
|
||||
priorityClassName: null
|
||||
settings:
|
||||
## Global dashboard settings
|
||||
global:
|
||||
# # Cluster name that appears in the browser window title if it is set
|
||||
# clusterName: ""
|
||||
# # Max number of items that can be displayed on each list page
|
||||
# itemsPerPage: 10
|
||||
# # Max number of labels that are displayed by default on most views.
|
||||
# labelsLimit: 3
|
||||
# # Number of seconds between every auto-refresh of logs
|
||||
# logsAutoRefreshTimeInterval: 5
|
||||
# # Number of seconds between every auto-refresh of every resource. Set 0 to disable
|
||||
# resourceAutoRefreshTimeInterval: 10
|
||||
# # Hide all access denied warnings in the notification panel
|
||||
# disableAccessDeniedNotifications: false
|
||||
# # Hide all namespaces option in namespace selection dropdown to avoid accidental selection in large clusters thus preventing OOM errors
|
||||
# hideAllNamespaces: false
|
||||
# # Namespace that should be selected by default after logging in.
|
||||
# defaultNamespace: default
|
||||
# # List of namespaces that should be presented to user without namespace list privileges.
|
||||
# namespaceFallbackList:
|
||||
# - default
|
||||
## Pinned resources that will be displayed in dashboard's menu
|
||||
pinnedResources: []
|
||||
# - kind: customresourcedefinition
|
||||
# # Fully qualified name of a CRD
|
||||
# name: prometheus.monitoring.coreos.com
|
||||
# # Display name
|
||||
# displayName: Prometheus
|
||||
# # Is this CRD namespaced?
|
||||
# namespaced: true
|
||||
ingress:
|
||||
enabled: false
|
||||
hosts:
|
||||
# Keep 'localhost' host only if you want to access Dashboard using 'kubectl port-forward ...' on:
|
||||
# https://localhost:8443
|
||||
- localhost
|
||||
# - kubernetes.dashboard.domain.com
|
||||
ingressClassName: internal-nginx
|
||||
# Use only if your ingress controllers support default ingress classes.
|
||||
# If set to true ingressClassName will be ignored and not added to the Ingress resources.
|
||||
# It should fall back to using IngressClass marked as the default.
|
||||
useDefaultIngressClass: false
|
||||
# This will append our Ingress with annotations required by our default configuration.
|
||||
# nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||
# nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
||||
# nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
useDefaultAnnotations: true
|
||||
pathType: ImplementationSpecific
|
||||
# If path is not the default (/), rewrite-target annotation will be added to the Ingress.
|
||||
# It allows serving Kubernetes Dashboard on a sub-path. Make sure that the configured path
|
||||
# does not conflict with gateway route configuration.
|
||||
path: /
|
||||
issuer:
|
||||
name: selfsigned
|
||||
# Scope determines what kind of issuer annotation will be used on ingress resource
|
||||
# - default - adds 'cert-manager.io/issuer'
|
||||
# - cluster - adds 'cert-manager.io/cluster-issuer'
|
||||
# - disabled - disables cert-manager annotations
|
||||
scope: default
|
||||
tls:
|
||||
enabled: true
|
||||
# If provided it will override autogenerated secret name
|
||||
secretName: ""
|
||||
labels: {}
|
||||
annotations: {}
|
||||
# Use the following toleration if Dashboard can be deployed on a tainted control-plane nodes
|
||||
# - key: node-role.kubernetes.io/control-plane
|
||||
# effect: NoSchedule
|
||||
tolerations: []
|
||||
affinity: {}
|
||||
|
||||
auth:
|
||||
role: auth
|
||||
image:
|
||||
repository: docker.io/kubernetesui/dashboard-auth
|
||||
tag: 1.2.2
|
||||
scaling:
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
containers:
|
||||
ports:
|
||||
- name: auth
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
args: []
|
||||
env: []
|
||||
volumeMounts:
|
||||
- mountPath: /tmp
|
||||
name: tmp-volume
|
||||
# TODO: Validate configuration
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 400Mi
|
||||
automountServiceAccountToken: true
|
||||
volumes:
|
||||
# Create on-disk volume to store exec logs (required)
|
||||
- name: tmp-volume
|
||||
emptyDir: {}
|
||||
nodeSelector: {}
|
||||
# Labels & annotations for Auth related resources
|
||||
labels: {}
|
||||
annotations: {}
|
||||
serviceLabels: {}
|
||||
serviceAnnotations: {}
|
||||
|
||||
# API deployment configuration
|
||||
api:
|
||||
role: api
|
||||
image:
|
||||
repository: docker.io/kubernetesui/dashboard-api
|
||||
tag: 1.10.1
|
||||
scaling:
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
containers:
|
||||
ports:
|
||||
- name: api
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
# Additional container arguments
|
||||
# Full list of arguments: https://github.com/kubernetes/dashboard/blob/master/docs/common/arguments.md
|
||||
# args:
|
||||
# - --system-banner="Welcome to the Kubernetes Dashboard"
|
||||
args: []
|
||||
# Additional container environment variables
|
||||
# env:
|
||||
# - name: SOME_VAR
|
||||
# value: 'some value'
|
||||
env: []
|
||||
# Additional volume mounts
|
||||
# - mountPath: /kubeconfig
|
||||
# name: dashboard-kubeconfig
|
||||
# readOnly: true
|
||||
volumeMounts:
|
||||
# Create volume mount to store exec logs (required)
|
||||
- mountPath: /tmp
|
||||
name: tmp-volume
|
||||
# TODO: Validate configuration
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 400Mi
|
||||
automountServiceAccountToken: true
|
||||
# Additional volumes
|
||||
# - name: dashboard-kubeconfig
|
||||
# secret:
|
||||
# defaultMode: 420
|
||||
# secretName: dashboard-kubeconfig
|
||||
volumes:
|
||||
# Create on-disk volume to store exec logs (required)
|
||||
- name: tmp-volume
|
||||
emptyDir: {}
|
||||
nodeSelector: {}
|
||||
# Labels & annotations for API related resources
|
||||
labels: {}
|
||||
annotations: {}
|
||||
serviceLabels: {}
|
||||
serviceAnnotations: {}
|
||||
|
||||
# WEB UI deployment configuration
|
||||
web:
|
||||
role: web
|
||||
image:
|
||||
repository: docker.io/kubernetesui/dashboard-web
|
||||
tag: 1.6.0
|
||||
scaling:
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
containers:
|
||||
ports:
|
||||
- name: web
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
# Additional container arguments
|
||||
# Full list of arguments: https://github.com/kubernetes/dashboard/blob/master/docs/common/arguments.md
|
||||
# args:
|
||||
# - --system-banner="Welcome to the Kubernetes Dashboard"
|
||||
args: []
|
||||
# Additional container environment variables
|
||||
# env:
|
||||
# - name: SOME_VAR
|
||||
# value: 'some value'
|
||||
env: []
|
||||
# Additional volume mounts
|
||||
# - mountPath: /kubeconfig
|
||||
# name: dashboard-kubeconfig
|
||||
# readOnly: true
|
||||
volumeMounts:
|
||||
# Create volume mount to store logs (required)
|
||||
- mountPath: /tmp
|
||||
name: tmp-volume
|
||||
# TODO: Validate configuration
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 400Mi
|
||||
automountServiceAccountToken: true
|
||||
# Additional volumes
|
||||
# - name: dashboard-kubeconfig
|
||||
# secret:
|
||||
# defaultMode: 420
|
||||
# secretName: dashboard-kubeconfig
|
||||
volumes:
|
||||
# Create on-disk volume to store exec logs (required)
|
||||
- name: tmp-volume
|
||||
emptyDir: {}
|
||||
nodeSelector: {}
|
||||
# Labels & annotations for WEB UI related resources
|
||||
labels: {}
|
||||
annotations: {}
|
||||
serviceLabels: {}
|
||||
serviceAnnotations: {}
|
||||
|
||||
### Metrics Scraper
|
||||
### Container to scrape, store, and retrieve a window of time from the Metrics Server.
|
||||
### refs: https://github.com/kubernetes/dashboard/tree/master/modules/metrics-scraper
|
||||
metricsScraper:
|
||||
enabled: true
|
||||
role: metrics-scraper
|
||||
image:
|
||||
repository: docker.io/kubernetesui/dashboard-metrics-scraper
|
||||
tag: 1.2.1
|
||||
scaling:
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
containers:
|
||||
ports:
|
||||
- containerPort: 8000
|
||||
protocol: TCP
|
||||
args: []
|
||||
# Additional container environment variables
|
||||
# env:
|
||||
# - name: SOME_VAR
|
||||
# value: 'some value'
|
||||
env: []
|
||||
# Additional volume mounts
|
||||
# - mountPath: /kubeconfig
|
||||
# name: dashboard-kubeconfig
|
||||
# readOnly: true
|
||||
volumeMounts:
|
||||
# Create volume mount to store logs (required)
|
||||
- mountPath: /tmp
|
||||
name: tmp-volume
|
||||
# TODO: Validate configuration
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 400Mi
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
scheme: HTTP
|
||||
path: /
|
||||
port: 8000
|
||||
initialDelaySeconds: 30
|
||||
timeoutSeconds: 30
|
||||
automountServiceAccountToken: true
|
||||
# Additional volumes
|
||||
# - name: dashboard-kubeconfig
|
||||
# secret:
|
||||
# defaultMode: 420
|
||||
# secretName: dashboard-kubeconfig
|
||||
volumes:
|
||||
- name: tmp-volume
|
||||
emptyDir: {}
|
||||
nodeSelector: {}
|
||||
# Labels & annotations for Metrics Scraper related resources
|
||||
labels: {}
|
||||
annotations: {}
|
||||
serviceLabels: {}
|
||||
serviceAnnotations: {}
|
||||
|
||||
## Optional Metrics Server sub-chart configuration
|
||||
## Enable this if you don't already have metrics-server enabled on your cluster and
|
||||
## want to use it with dashboard metrics-scraper
|
||||
## refs:
|
||||
## - https://github.com/kubernetes-sigs/metrics-server
|
||||
## - https://github.com/kubernetes-sigs/metrics-server/tree/master/charts/metrics-server
|
||||
metrics-server:
|
||||
enabled: false
|
||||
args:
|
||||
- --kubelet-preferred-address-types=InternalIP
|
||||
- --kubelet-insecure-tls
|
||||
|
||||
## Required Kong sub-chart with DBless configuration to act as a gateway
|
||||
## for our all containers.
|
||||
kong:
|
||||
enabled: false
|
||||
admin:
|
||||
tls:
|
||||
enabled: false
|
||||
## Configuration reference: https://docs.konghq.com/gateway/3.6.x/reference/configuration
|
||||
env:
|
||||
dns_order: LAST,A,CNAME,AAAA,SRV
|
||||
plugins: 'off'
|
||||
nginx_worker_processes: 1
|
||||
ingressController:
|
||||
enabled: false
|
||||
manager:
|
||||
enabled: false
|
||||
dblessConfig:
|
||||
configMap: kong-dbless-config
|
||||
proxy:
|
||||
type: ClusterIP
|
||||
http:
|
||||
enabled: true
|
||||
|
||||
## Optional Cert Manager sub-chart configuration
|
||||
## Enable this if you don't already have cert-manager enabled on your cluster.
|
||||
cert-manager:
|
||||
enabled: false
|
||||
installCRDs: true
|
||||
|
||||
## Optional Nginx Ingress sub-chart configuration
|
||||
## Enable this if you don't already have nginx-ingress enabled on your cluster.
|
||||
nginx:
|
||||
enabled: false
|
||||
controller:
|
||||
electionID: ingress-controller-leader
|
||||
ingressClassResource:
|
||||
name: internal-nginx
|
||||
default: false
|
||||
controllerValue: k8s.io/internal-ingress-nginx
|
||||
service:
|
||||
type: ClusterIP
|
||||
|
||||
## Extra configurations:
|
||||
## - manifests
|
||||
## - predefined roles
|
||||
## - prometheus
|
||||
## - etc...
|
||||
extras:
|
||||
# Extra Kubernetes manifests to be deployed
|
||||
# manifests:
|
||||
# - apiVersion: v1
|
||||
# kind: ConfigMap
|
||||
# metadata:
|
||||
# name: additional-configmap
|
||||
# data:
|
||||
# mykey: myvalue
|
||||
manifests: []
|
||||
serviceMonitor:
|
||||
# Whether to create a Prometheus Operator service monitor.
|
||||
enabled: false
|
||||
# Here labels can be added to the serviceMonitor
|
||||
labels: {}
|
||||
# Here annotations can be added to the serviceMonitor
|
||||
annotations: {}
|
||||
# metrics.serviceMonitor.metricRelabelings Specify Metric Relabelings to add to the scrape endpoint
|
||||
# ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
|
||||
metricRelabelings: []
|
||||
# metrics.serviceMonitor.relabelings [array] Prometheus relabeling rules
|
||||
relabelings: []
|
||||
# ServiceMonitor connection scheme. Defaults to HTTPS.
|
||||
scheme: https
|
||||
# ServiceMonitor connection tlsConfig. Defaults to {insecureSkipVerify:true}.
|
||||
tlsConfig:
|
||||
insecureSkipVerify: true
|
||||
@@ -0,0 +1,116 @@
|
||||
replicaCount: 1
|
||||
|
||||
Namespace: loadtester
|
||||
|
||||
image:
|
||||
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/dev/devops/flagger-loadtester
|
||||
tag: 0.30.0
|
||||
pullPolicy: IfNotPresent
|
||||
pullSecret:
|
||||
|
||||
podLabels:
|
||||
bu: datascience
|
||||
team: datascience-shared
|
||||
|
||||
podAnnotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "8080"
|
||||
|
||||
podPriorityClassName: ""
|
||||
|
||||
logLevel: info
|
||||
cmd:
|
||||
timeout: 1h
|
||||
namespaceRegexp: ""
|
||||
|
||||
nameOverride: "loadtester"
|
||||
fullnameOverride: ""
|
||||
|
||||
env: []
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 64Mi
|
||||
|
||||
volumes: []
|
||||
volumeMounts: []
|
||||
|
||||
nodeSelector:
|
||||
dedicated: datascience-devops
|
||||
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "datascience-devops"
|
||||
effect: "NoSchedule"
|
||||
|
||||
affinity: {}
|
||||
|
||||
ingress:
|
||||
slowStart:
|
||||
enabled: false
|
||||
enabled: true
|
||||
ingressClassName: contour-internal-1
|
||||
servicePort: http
|
||||
hosts:
|
||||
- host: datascience-flagger-loadtester.prd.meesho.int
|
||||
paths:
|
||||
- pathType: ImplementationSpecific
|
||||
path: /
|
||||
createContourGateway: true
|
||||
contourResponseTimeout: false
|
||||
rbac:
|
||||
# rbac.create: `true` if rbac resources should be created
|
||||
create: true
|
||||
# rbac.scope: `cluster` to create cluster-scope rbac resources (ClusterRole/ClusterRoleBinding)
|
||||
# otherwise, namespace-scope rbac resources will be created (Role/RoleBinding)
|
||||
scope:
|
||||
# rbac.rules: array of rules to apply to the role. example:
|
||||
# rules:
|
||||
# - apiGroups: [""]
|
||||
# resources: ["pods"]
|
||||
# verbs: ["list", "get"]
|
||||
rules: []
|
||||
|
||||
# name of an existing service account to use - if not creating rbac resources
|
||||
serviceAccountName: ""
|
||||
|
||||
# App Mesh virtual node settings (to be used for AppMesh v1beta1)
|
||||
meshName: ""
|
||||
#backends:
|
||||
# - app1.namespace
|
||||
# - app2.namespace
|
||||
|
||||
# App Mesh virtual node settings (to be used for AppMesh v1beta2)
|
||||
appmesh:
|
||||
enabled: false
|
||||
backends:
|
||||
- podinfo
|
||||
- podinfo-canary
|
||||
|
||||
#Istio virtual service and gatway settings. TLS secrets should be in namespace before enbaled it. ( secret format loadtester.fullname )
|
||||
istio:
|
||||
enabled: false
|
||||
host: flagger-loadtester.flagger
|
||||
gateway:
|
||||
enabled: false
|
||||
tls:
|
||||
enabled: false
|
||||
httpsRedirect: false
|
||||
|
||||
# when enabled, it will add a security context for the loadtester pod
|
||||
securityContext:
|
||||
enabled: false
|
||||
context:
|
||||
readOnlyRootFilesystem: true
|
||||
runAsUser: 100
|
||||
runAsGroup: 101
|
||||
|
||||
podDisruptionBudget:
|
||||
enabled: false
|
||||
minAvailable: 1
|
||||
@@ -0,0 +1,281 @@
|
||||
global:
|
||||
domain: "coralogixsg.com"
|
||||
defaultApplicationName: "default"
|
||||
defaultSubsystemName: "nodes"
|
||||
|
||||
# Old endpoint based configuration,
|
||||
# please use domain instead.
|
||||
traces:
|
||||
endpoint: ""
|
||||
metrics:
|
||||
endpoint: ""
|
||||
logs:
|
||||
endpoint: ""
|
||||
|
||||
# set distribution to openshift for openshift clusters
|
||||
distribution: ""
|
||||
|
||||
# Opentelemetry collector configuration
|
||||
dedicatedValue: false
|
||||
schedulerName: default-scheduler
|
||||
|
||||
labels:
|
||||
bu: "datascience"
|
||||
team: "sre"
|
||||
service: "opentelemetry-datascience-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "opentelemetry"
|
||||
arch: "any"
|
||||
runpod: "ondemand"
|
||||
|
||||
externalSecret:
|
||||
enabled: false
|
||||
key: prd/admin/coralogix-keys
|
||||
secretStoreRef:
|
||||
name: vault-backend
|
||||
|
||||
image:
|
||||
# If you want to use the core image `otel/opentelemetry-collector`, you also need to change `command.name` value to `otelcol`.
|
||||
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/opentelemetry-collector-contrib
|
||||
# repository: otel/opentelemetry-collector-contrib
|
||||
pullPolicy: IfNotPresent
|
||||
# Overrides the image tag whose default is the chart appVersion.
|
||||
tag: "0.87.0"
|
||||
# When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value).
|
||||
digest: ""
|
||||
mode: daemonset
|
||||
rollout:
|
||||
rollingUpdate:
|
||||
# When 'mode: daemonset', maxSurge cannot be used when hostPort is set for any of the ports
|
||||
# maxSurge: 25%
|
||||
maxUnavailable: 1
|
||||
strategy: RollingUpdate
|
||||
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: ""
|
||||
hostNetwork: true
|
||||
dnsPolicy: "ClusterFirstWithHostNet"
|
||||
fullnameOverride: opentelemetry-datascience-prd
|
||||
|
||||
presets:
|
||||
logsCollection:
|
||||
enabled: false
|
||||
storeCheckpoints: false
|
||||
maxRecombineLogSize: 1048576
|
||||
extraFilelogOperators: []
|
||||
# - type: recombine
|
||||
# combine_field: body
|
||||
# source_identifier: attributes["log.file.path"]
|
||||
# is_first_entry: body matches "^(YOUR-LOGS-REGEX)"
|
||||
kubernetesAttributes:
|
||||
enabled: false
|
||||
hostMetrics:
|
||||
enabled: false
|
||||
kubeletMetrics:
|
||||
enabled: false
|
||||
|
||||
extraEnvs:
|
||||
- name: OTEL_RESOURCE_ATTRIBUTES
|
||||
value: "k8s.node.name=$(K8S_NODE_NAME)"
|
||||
- name: KUBE_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: spec.nodeName
|
||||
config:
|
||||
extensions: {}
|
||||
# zpages:
|
||||
# endpoint: localhost:55679
|
||||
# pprof:
|
||||
# endpoint: localhost:1777
|
||||
exporters:
|
||||
loadbalancing:
|
||||
routing_key: "traceID"
|
||||
protocol:
|
||||
otlp:
|
||||
timeout: 4s
|
||||
tls:
|
||||
insecure: true
|
||||
sending_queue:
|
||||
enabled: true
|
||||
queue_size: 6000
|
||||
num_consumers: 200
|
||||
resolver:
|
||||
dns:
|
||||
hostname: opentelemetry-admin-prd.opentelemetry.svc.clusterset.local
|
||||
# coralogix:
|
||||
# timeout: "30s"
|
||||
# private_key: "${CORALOGIX_PRIVATE_KEY}"
|
||||
# domain: "{{.Values.global.domain}}"
|
||||
# traces:
|
||||
# endpoint: "{{ .Values.global.traces.endpoint }}"
|
||||
# metrics:
|
||||
# endpoint: "{{ .Values.global.metrics.endpoint }}"
|
||||
# logs:
|
||||
# endpoint: "{{ .Values.global.logs.endpoint }}"
|
||||
# application_name_attributes:
|
||||
# - "k8s.namespace.name"
|
||||
# - "service.namespace"
|
||||
# subsystem_name_attributes:
|
||||
# - "k8s.deployment.name"
|
||||
# - "k8s.statefulset.name"
|
||||
# - "k8s.daemonset.name"
|
||||
# - "k8s.cronjob.name"
|
||||
# - "k8s.job.name"
|
||||
# - "k8s.container.name"
|
||||
# - "k8s.node.name"
|
||||
# - "service.name"
|
||||
# application_name: "{{.Values.global.defaultApplicationName }}"
|
||||
# subsystem_name: "{{.Values.global.defaultSubsystemName }}"
|
||||
processors:
|
||||
k8sattributes:
|
||||
filter:
|
||||
node_from_env_var: KUBE_NODE_NAME
|
||||
extract:
|
||||
metadata:
|
||||
- "k8s.namespace.name"
|
||||
- "k8s.deployment.name"
|
||||
- "k8s.statefulset.name"
|
||||
- "k8s.daemonset.name"
|
||||
- "k8s.cronjob.name"
|
||||
- "k8s.job.name"
|
||||
- "k8s.pod.name"
|
||||
- "k8s.node.name"
|
||||
memory_limiter: null # Will get the k8s resource limits
|
||||
resourcedetection/env:
|
||||
detectors: ["system","env"]
|
||||
timeout: 2s
|
||||
override: false
|
||||
# spanmetrics:
|
||||
# metrics_exporter: coralogix
|
||||
# dimensions:
|
||||
# - name: "k8s.deployment.name"
|
||||
# - name: "k8s.statefulset.name"
|
||||
# - name: "k8s.daemonset.name"
|
||||
# - name: "k8s.cronjob.name"
|
||||
# - name: "k8s.job.name"
|
||||
# - name: "k8s.container.name"
|
||||
# - name: "k8s.node.name"
|
||||
# - name: "k8s.namespace.name"
|
||||
receivers:
|
||||
otlp:
|
||||
protocols:
|
||||
grpc:
|
||||
endpoint: ${MY_POD_IP}:4317
|
||||
http:
|
||||
endpoint: ${MY_POD_IP}:4318
|
||||
zipkin:
|
||||
endpoint: ${MY_POD_IP}:9411
|
||||
jaeger:
|
||||
protocols:
|
||||
grpc:
|
||||
endpoint: ${MY_POD_IP}:14250
|
||||
thrift_http:
|
||||
endpoint: ${MY_POD_IP}:14268
|
||||
thrift_compact:
|
||||
endpoint: ${MY_POD_IP}:6831
|
||||
thrift_binary:
|
||||
endpoint: ${MY_POD_IP}:6832
|
||||
prometheus:
|
||||
config:
|
||||
scrape_configs:
|
||||
- job_name: opentelemetry-collector
|
||||
scrape_interval: 30s
|
||||
static_configs:
|
||||
- targets:
|
||||
- ${MY_POD_IP}:8888
|
||||
service:
|
||||
extensions:
|
||||
# - zpages
|
||||
# - pprof
|
||||
- health_check
|
||||
# - memory_ballast
|
||||
telemetry:
|
||||
metrics:
|
||||
address: ${env:MY_POD_IP}:8888
|
||||
pipelines:
|
||||
traces:
|
||||
exporters:
|
||||
- loadbalancing
|
||||
processors:
|
||||
- memory_limiter
|
||||
# - spanmetrics
|
||||
- batch
|
||||
receivers:
|
||||
- otlp
|
||||
metrics: null
|
||||
logs: null
|
||||
tolerations:
|
||||
- operator: Exists
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
limits:
|
||||
cpu: 1
|
||||
memory: 2G
|
||||
|
||||
ports:
|
||||
jaeger-binary:
|
||||
enabled: true
|
||||
containerPort: 6832
|
||||
servicePort: 6832
|
||||
hostPort: 6832
|
||||
protocol: TCP
|
||||
# In order to enable podMonitor, following part must be enabled in order to expose the required port:
|
||||
# metrics:
|
||||
# enabled: true
|
||||
|
||||
# podMonitor:
|
||||
# enabled: true
|
||||
|
||||
# prometheusRule:
|
||||
# enabled: true
|
||||
# defaultRules:
|
||||
# enabled: true
|
||||
|
||||
# Annotations to be added to pod
|
||||
podAnnotations:
|
||||
otel.io/path: "/metrics"
|
||||
otel.io/scrape: "true"
|
||||
otel.io/port: "8888"
|
||||
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: p-datascience-contour-ext
|
||||
operator: NotIn
|
||||
values:
|
||||
- dedicated
|
||||
- key: p-datascience-contour-int-0
|
||||
operator: NotIn
|
||||
values:
|
||||
- dedicated
|
||||
- key: p-datascience-contour-int-1
|
||||
operator: NotIn
|
||||
values:
|
||||
- dedicated
|
||||
- key: p-datascience-contour-int
|
||||
operator: NotIn
|
||||
values:
|
||||
- dedicated
|
||||
- key: node_pool
|
||||
operator: NotIn
|
||||
values:
|
||||
- np-datascience-default-prd-ase1
|
||||
- key: dedicated
|
||||
operator: NotIn
|
||||
values:
|
||||
- vmstorage
|
||||
- vmselect
|
||||
- vmagent
|
||||
- vminsert
|
||||
@@ -0,0 +1,135 @@
|
||||
fullnameOverride: opentelemetry-datascience-ase1c-prd
|
||||
|
||||
mode: daemonset
|
||||
|
||||
# priorityClassName: "system-node-critical"
|
||||
# Removing since dataengg pods are going into pending state
|
||||
config:
|
||||
exporters:
|
||||
loadbalancing:
|
||||
routing_key: "traceID"
|
||||
protocol:
|
||||
otlp:
|
||||
timeout: 5s
|
||||
tls:
|
||||
insecure: true
|
||||
sending_queue:
|
||||
num_consumers: 500
|
||||
queue_size: 50000
|
||||
resolver:
|
||||
dns:
|
||||
hostname: opentelemetry-central-prd-ase1c-headless.opentelemetry.svc.clusterset.local
|
||||
processors: {}
|
||||
receivers:
|
||||
otlp:
|
||||
protocols:
|
||||
grpc:
|
||||
endpoint: ${env:MY_POD_IP}:4317
|
||||
http:
|
||||
endpoint: ${env:MY_POD_IP}:4318
|
||||
service:
|
||||
telemetry:
|
||||
metrics:
|
||||
level: detailed
|
||||
readers:
|
||||
- pull:
|
||||
exporter:
|
||||
prometheus:
|
||||
host: '0.0.0.0'
|
||||
port: 8888
|
||||
extensions:
|
||||
- health_check
|
||||
pipelines:
|
||||
logs: null
|
||||
metrics: null
|
||||
traces:
|
||||
exporters:
|
||||
- loadbalancing
|
||||
processors: []
|
||||
receivers:
|
||||
- otlp
|
||||
|
||||
image:
|
||||
repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/opentelemetry-collector-contrib
|
||||
tag: "0.111.0"
|
||||
|
||||
tolerations:
|
||||
- operator: Exists
|
||||
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: p-datascience-contour-ext
|
||||
operator: NotIn
|
||||
values:
|
||||
- dedicated
|
||||
- key: p-datascience-contour-int-0
|
||||
operator: NotIn
|
||||
values:
|
||||
- dedicated
|
||||
- key: p-datascience-contour-int-1
|
||||
operator: NotIn
|
||||
values:
|
||||
- dedicated
|
||||
- key: p-datascience-contour-int
|
||||
operator: NotIn
|
||||
values:
|
||||
- dedicated
|
||||
- key: node_pool
|
||||
operator: NotIn
|
||||
values:
|
||||
- np-datascience-default-prd-ase1c
|
||||
- key: dedicated
|
||||
operator: NotIn
|
||||
values:
|
||||
- vmstorage
|
||||
- vmselect
|
||||
- vmagent
|
||||
- vminsert
|
||||
- alloy
|
||||
- contour-internal-0
|
||||
- contour-internal-1
|
||||
- contour-external
|
||||
|
||||
extraEnvs:
|
||||
- name: K8S_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: spec.nodeName
|
||||
- name: OTEL_RESOURCE_ATTRIBUTES
|
||||
value: "k8s.node.name=$(K8S_NODE_NAME)"
|
||||
|
||||
ports:
|
||||
metrics:
|
||||
enabled: true
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 124Mi
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
|
||||
podAnnotations:
|
||||
otel.io/path: "/metrics"
|
||||
otel.io/scrape: "true"
|
||||
otel.io/port: "8888"
|
||||
|
||||
podLabels:
|
||||
bu: "datascience"
|
||||
team: "sre"
|
||||
service: "opentelemetry-datascience-ase1c-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "opentelemetry"
|
||||
arch: "any"
|
||||
zone_extended: "ase1c"
|
||||
runpod: "ondemand"
|
||||
|
||||
rollout:
|
||||
rollingUpdate:
|
||||
maxUnavailable: 10%
|
||||
@@ -0,0 +1,82 @@
|
||||
# Default values for hello-world.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
priorityClass:
|
||||
name: "low-priority"
|
||||
|
||||
image:
|
||||
repository: nginx
|
||||
tag: "1.14.2"
|
||||
pullPolicy: IfNotPresent
|
||||
# Overrides the image tag whose default is the chart appVersion.
|
||||
|
||||
nameOverride: ""
|
||||
fullnameOverride: "paused-container-datascience-prd"
|
||||
|
||||
extraLabels:
|
||||
team: "devops"
|
||||
bu: "datascience"
|
||||
env: "prd"
|
||||
service: "paused-container-datascience-prd"
|
||||
priority: "p3"
|
||||
type: "tools"
|
||||
|
||||
topologySpreadConstraints: []
|
||||
# - labelSelector:
|
||||
# matchLabels:
|
||||
# dedicated: vminsert
|
||||
# maxSkew: 1
|
||||
# topologyKey: topology.kubernetes.io/hostname
|
||||
# whenUnsatisfiable: DoNotSchedule
|
||||
|
||||
affinity:
|
||||
podAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
- labelSelector:
|
||||
matchExpressions:
|
||||
- key: type
|
||||
operator: In
|
||||
values:
|
||||
- vmselect
|
||||
- vminsert
|
||||
- tools
|
||||
topologyKey: topology.kubernetes.io/zone
|
||||
podAntiAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
- labelSelector:
|
||||
matchExpressions:
|
||||
- key: type
|
||||
operator: In
|
||||
values:
|
||||
- vmselect
|
||||
- vminsert
|
||||
- tools
|
||||
topologyKey: kubernetes.io/hostname
|
||||
namespaceSelector: {}
|
||||
|
||||
|
||||
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: ""
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
|
||||
deployments:
|
||||
- nodepool: vminsert
|
||||
bu: datascience
|
||||
cpuRequest: 1
|
||||
memoryRequest: 1Gi
|
||||
replicaCount: 3
|
||||
- nodepool: vmselect
|
||||
bu: datascience
|
||||
cpuRequest: 1
|
||||
memoryRequest: 1Gi
|
||||
replicaCount: 3
|
||||
@@ -0,0 +1,497 @@
|
||||
# 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 metric’s 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 job’s 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-dataengg-prd@meesho-dataengg-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: "datascience"
|
||||
team: "datascience-sre"
|
||||
service: "node-exporter-datascience-ase1c-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "exporter"
|
||||
zone_extended: "ase1c"
|
||||
|
||||
# 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"
|
||||
+171
@@ -0,0 +1,171 @@
|
||||
# Provide a name in place of prometheus-stackdriver-exporter for `app:` labels
|
||||
nameOverride: "stackdriver-exporter-datascience-ase1c-prd"
|
||||
|
||||
# Provide a name to substitute for the full names of resources
|
||||
fullnameOverride: "stackdriver-exporter-datascience-ase1c-prd"
|
||||
|
||||
# Number of exporters to run
|
||||
replicaCount: 1
|
||||
|
||||
# Restart policy for container
|
||||
restartPolicy: Always
|
||||
|
||||
image:
|
||||
repository: prometheuscommunity/stackdriver-exporter
|
||||
# if not set appVersion field from Chart.yaml is used
|
||||
tag: ""
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
## Optionally specify an array of imagePullSecrets.
|
||||
## Secrets must be manually created in the namespace.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
##
|
||||
# pullSecrets:
|
||||
# - myDockerConfigJsonSecretName
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
securityContext: {}
|
||||
|
||||
containerSecurityContext: {}
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
httpPort: 9255
|
||||
annotations: {}
|
||||
|
||||
## Additional labels to add to all resources
|
||||
customLabels:
|
||||
bu: "datascience"
|
||||
team: "datascience-sre"
|
||||
service: "stackdriver-exporter-datascience-ase1c-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "exporter"
|
||||
zone_extended: "ase1c"
|
||||
# app: prometheus-stackdriver-exporter
|
||||
|
||||
secret:
|
||||
labels: {}
|
||||
|
||||
stackdriver:
|
||||
# The Google Project ID to gather metrics for
|
||||
projectId: "meesho-datascience-ase1c-prd-0622"
|
||||
# An existing secret which contains credentials.json
|
||||
serviceAccountSecret: ""
|
||||
# Provide custom key for the existing secret to load credentials.json from
|
||||
serviceAccountSecretKey: ""
|
||||
# A service account key JSON file. Must be provided when no existing secret is used, in this case a new secret will be created holding this service account
|
||||
serviceAccountKey: ""
|
||||
# Max number of retries that should be attempted on 503 errors from Stackdriver
|
||||
maxRetries: 0
|
||||
# How long should Stackdriver_exporter wait for a result from the Stackdriver API
|
||||
httpTimeout: 10s
|
||||
# Max time between each request in an exp backoff scenario
|
||||
maxBackoff: 5s
|
||||
# The amount of jitter to introduce in an exp backoff scenario
|
||||
backoffJitter: 1s
|
||||
# The HTTP statuses that should trigger a retry
|
||||
retryStatuses: 503
|
||||
# Drop metrics from attached projects and fetch `project_id` only
|
||||
dropDelegatedProjects: false
|
||||
metrics:
|
||||
# The prefixes to gather metrics for, we default to just CPU metrics.
|
||||
typePrefixes: 'bigtable.googleapis.com/client,bigtable.googleapis.com/cluster,bigtable.googleapis.com/disk,bigtable.googleapis.com/replication,bigtable.googleapis.com/server,bigtable.googleapis.com/table,cloudsql.googleapis.com/database,logging.googleapis.com/user,run.googleapis.com/,logging.googleapis.com/user/node_drain_metric,compute.googleapis.com/guest/system/uptime,compute.googleapis.com/instance'
|
||||
# The filters to refine the metrics query by using Filter objects that Google provides.
|
||||
# Filter objects: project, group.id, resource.type, resource.labels.[KEY], metric.type, metric.labels.[KEY]
|
||||
# https://cloud.google.com/monitoring/api/v3/filters
|
||||
filters: []
|
||||
# - 'pubsub.googleapis.com/subscription:resource.labels.subscription_id=monitoring.regex.full_match("us-west4.*my-team.*")'
|
||||
# The frequency to request
|
||||
interval: '5m'
|
||||
# How far into the past to offset
|
||||
offset: '0s'
|
||||
# Offset for the Google Stackdriver Monitoring Metrics interval into the past by the ingest delay from the metric's metadata.
|
||||
ingestDelay: false
|
||||
# If enabled will treat all DELTA metrics as an in-memory counter instead of a gauge.
|
||||
aggregateDeltas: false
|
||||
# How long should a delta metric continue to be exported after GCP stops producing a metric
|
||||
aggregateDeltasTTL: '30m'
|
||||
|
||||
web:
|
||||
# Port to listen on
|
||||
listenAddress: ':9255'
|
||||
# Path under which to expose metrics.
|
||||
path: /metrics
|
||||
|
||||
## Pod affinity
|
||||
##
|
||||
affinity: {}
|
||||
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "9255"
|
||||
prometheus.io/path: "/metrics"
|
||||
|
||||
## Pod extra arguments
|
||||
##
|
||||
extraArgs: {}
|
||||
|
||||
## Node labels for stackdriver-exporter pod assignment
|
||||
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector:
|
||||
dedicated: vmselect
|
||||
|
||||
## Node tolerations for stackdriver-exporter scheduling to nodes with taints
|
||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
|
||||
##
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "vmselect"
|
||||
effect: "NoSchedule"
|
||||
|
||||
|
||||
## Service Account
|
||||
##
|
||||
serviceAccount:
|
||||
# Specifies whether a ServiceAccount should be created
|
||||
create: true
|
||||
# The name of the ServiceAccount to use.
|
||||
# If not set and create is false, 'default' is used
|
||||
# If not set and create is true, a name is generated using the fullname template
|
||||
name:
|
||||
annotations: {
|
||||
iam.gke.io/gcp-service-account: sa-dsci-dssre-stackdriver-prd@meesho-datascience-ase1c-prd-0622.iam.gserviceaccount.com
|
||||
}
|
||||
|
||||
|
||||
# Enable this if you're using https://github.com/coreos/prometheus-operator
|
||||
serviceMonitor:
|
||||
enabled: false
|
||||
namespace: monitoring
|
||||
# additionalLabels is the set of additional labels to add to the ServiceMonitor
|
||||
additionalLabels: {}
|
||||
# How long until a scrape request times out.
|
||||
scrapeTimeout: '10s'
|
||||
# fallback to the prometheus default unless specified
|
||||
interval: 10s
|
||||
# Defaults to what's used if you follow CoreOS [Prometheus Install Instructions](https://github.com/helm/charts/tree/master/stable/prometheus-operator#tldr)
|
||||
honorLabels: true
|
||||
# Whether Prometheus should use the timestamps of the metrics exposed by stackdriver-exporter
|
||||
honorTimestamps: true
|
||||
# MetricRelabelConfigs to apply to samples before ingestion https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
|
||||
metricRelabelings: []
|
||||
# RelabelConfigs to apply to samples before scraping. https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
|
||||
relabelings: []
|
||||
|
||||
## Custom PrometheusRules to be defined
|
||||
## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
|
||||
prometheusRule:
|
||||
enabled: false
|
||||
additionalLabels: {}
|
||||
namespace: ""
|
||||
rules: []
|
||||
@@ -0,0 +1,151 @@
|
||||
replicaCount: 3
|
||||
image:
|
||||
repository: quay.io/influxdb/telegraf-operator
|
||||
pullPolicy: IfNotPresent
|
||||
sidecarImage: "asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/telegraf:1.24.4"
|
||||
|
||||
dedicatedValue: false
|
||||
schedulerName: default-scheduler
|
||||
|
||||
classes:
|
||||
secretName: "telegraf-operator-classes"
|
||||
default: "infra"
|
||||
data:
|
||||
infra: |
|
||||
[[inputs.mem]]
|
||||
[[outputs.file]]
|
||||
files = ["stdout"]
|
||||
[[outputs.prometheus_client]]
|
||||
listen = ":9273"
|
||||
metric_version = 2
|
||||
path = "/metrics"
|
||||
expiration_interval = "60s"
|
||||
export_timestamp = false
|
||||
[agent]
|
||||
interval = "10s"
|
||||
round_interval = true
|
||||
metric_batch_size = 1000
|
||||
metric_buffer_limit = 40000
|
||||
collection_jitter = "0s"
|
||||
flush_interval = "30s"
|
||||
flush_jitter = "0s"
|
||||
precision = ""
|
||||
debug = true
|
||||
hostname = ""
|
||||
omit_hostname = true
|
||||
[[aggregators.basicstats]]
|
||||
period = "60s"
|
||||
grace = "10s"
|
||||
delay = "30s"
|
||||
drop_original = false
|
||||
stats = ["count", "min", "max", "mean", "sum"]
|
||||
[[aggregators.histogram]]
|
||||
period = "60s"
|
||||
grace = "10s"
|
||||
delay = "30s"
|
||||
drop_original = false
|
||||
[[aggregators.histogram.config]]
|
||||
buckets = [5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 80.0, 100.0, 120.0, 150.0, 175.0, 200.0, 225.0, 250.0, 275.0, 300.0, 350.0, 400.0, 450.0, 500.0, 600.0, 700.0, 800.0, 900.0, 1000.0, 1200.0, 1500.0, 2000.0, 5000.0, 10000.0, 12500.0, 15000.0, 20000.0, 25000.0, 30000.0]
|
||||
measurement_name = "CONTROLLER"
|
||||
[[aggregators.histogram.config]]
|
||||
buckets = [5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 80.0, 100.0, 120.0, 150.0, 175.0, 200.0, 225.0, 250.0, 275.0, 300.0, 350.0, 400.0, 450.0, 500.0, 600.0, 700.0, 800.0, 900.0, 1000.0, 1200.0, 1500.0, 2000.0, 5000.0, 10000.0, 12500.0, 15000.0, 20000.0, 25000.0, 30000.0]
|
||||
measurement_name = "RDS"
|
||||
[[aggregators.histogram.config]]
|
||||
buckets = [1.0, 2.0, 3.0, 4.0, 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 80.0, 100.0, 120.0, 150.0, 175.0, 200.0, 225.0, 250.0, 275.0, 300.0, 350.0, 400.0, 450.0, 500.0, 600.0, 700.0, 800.0, 900.0, 1000.0, 1200.0, 1500.0, 2000.0, 5000.0, 10000.0, 12500.0, 15000.0, 20000.0, 25000.0, 30000.0]
|
||||
measurement_name = "REDIS"
|
||||
[[aggregators.histogram.config]]
|
||||
buckets = [0.0, 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 80.0, 100.0, 120.0, 150.0, 175.0, 200.0, 225.0, 250.0, 275.0, 300.0, 350.0, 400.0, 450.0, 500.0, 600.0, 700.0, 800.0, 900.0,1000.0, 1200.0, 1500.0, 2000.0, 5000.0, 10000.0, 12500.0, 15000.0, 20000.0, 25000.0, 30000.0]
|
||||
measurement_name = "HBASE"
|
||||
[[aggregators.histogram.config]]
|
||||
buckets = [0.0, 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 80.0, 100.0, 120.0, 150.0, 175.0, 200.0, 225.0, 250.0, 275.0, 300.0, 350.0, 400.0, 450.0, 500.0, 600.0, 700.0, 800.0, 900.0,1000.0, 1200.0, 1500.0, 2000.0, 5000.0, 10000.0, 12500.0, 15000.0, 20000.0, 25000.0, 30000.0]
|
||||
measurement_name = "HTTP"
|
||||
[[aggregators.histogram.config]]
|
||||
buckets = [0.0, 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 80.0, 100.0, 120.0, 150.0, 175.0, 200.0, 225.0, 250.0, 275.0, 300.0, 350.0, 400.0, 450.0, 500.0, 600.0, 700.0, 800.0, 900.0,1000.0, 1200.0, 1500.0, 2000.0, 5000.0, 10000.0, 12500.0, 15000.0, 20000.0, 25000.0, 30000.0]
|
||||
measurement_name = "METHOD"
|
||||
[[aggregators.histogram.config]]
|
||||
buckets = [0.0, 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 80.0, 100.0, 120.0, 150.0, 175.0, 200.0, 225.0, 250.0, 275.0, 300.0, 350.0, 400.0, 450.0, 500.0, 600.0, 700.0, 800.0, 900.0,1000.0, 1200.0, 1500.0, 2000.0, 5000.0, 10000.0, 12500.0, 15000.0, 20000.0, 25000.0, 30000.0]
|
||||
measurement_name = "QUERY_EXECUTION_LATENCY"
|
||||
[[aggregators.histogram.config]]
|
||||
buckets = [0.0, 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 80.0, 100.0, 120.0, 150.0, 175.0, 200.0, 225.0, 250.0, 275.0, 300.0, 350.0, 400.0, 450.0, 500.0, 600.0, 700.0, 800.0, 900.0,1000.0, 1200.0, 1500.0, 2000.0, 5000.0, 10000.0, 12500.0, 15000.0, 20000.0, 25000.0, 30000.0]
|
||||
measurement_name = "DOWN_STREAM_LATENCY"
|
||||
[[aggregators.histogram.config]]
|
||||
buckets = [0.0, 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 80.0, 100.0, 120.0, 150.0, 175.0, 200.0, 225.0, 250.0, 275.0, 300.0, 350.0, 400.0, 450.0, 500.0, 600.0, 700.0, 800.0, 900.0,1000.0, 1200.0, 1500.0, 2000.0, 5000.0, 10000.0, 12500.0, 15000.0, 20000.0, 25000.0, 30000.0]
|
||||
measurement_name = "API_LATENCY"
|
||||
|
||||
[[inputs.socket_listener]]
|
||||
service_address = "udp://:8094"
|
||||
read_buffer_size = "16MB"
|
||||
[[inputs.statsd]]
|
||||
protocol = "udp"
|
||||
service_address = ":8125"
|
||||
delete_gauges = false
|
||||
delete_counters = false
|
||||
percentiles = [50.0, 90.0, 99.0, 99.9, 99.95, 100.0]
|
||||
datadog_extensions = true
|
||||
allowed_pending_messages = 100000
|
||||
|
||||
certManager:
|
||||
enable: false
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
serviceAccount:
|
||||
# Annotations to add to the service account
|
||||
annotations: {}
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
securityContext: {}
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
sidecarResources:
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 200Mi
|
||||
topologySpreadConstraints:
|
||||
- maxSkew: 1
|
||||
topologyKey: topology.kubernetes.io/zone
|
||||
whenUnsatisfiable: ScheduleAnyway
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
type: exporter
|
||||
- maxSkew: 1
|
||||
topologyKey: kubernetes.io/hostname
|
||||
whenUnsatisfiable: DoNotSchedule
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
type: exporter
|
||||
labels:
|
||||
bu: "datascience"
|
||||
team: "datascience-sre"
|
||||
service: "telegraf-operator-datascience-ase1c-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "exporter"
|
||||
zone_extended: "ase1c"
|
||||
|
||||
nodeSelector:
|
||||
dedicated: "vmselect"
|
||||
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "vmselect"
|
||||
effect: "NoSchedule"
|
||||
|
||||
affinity: {}
|
||||
requireAnnotationsForSecret: false
|
||||
# allow hot reload ; disabled by default to support versions of telegraf
|
||||
# that do not support hot-reload and --watch-config flag
|
||||
hotReload: false
|
||||
@@ -0,0 +1,296 @@
|
||||
# Default values for victoria-metrics-agent.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 2
|
||||
|
||||
fullnameOverride: vmagent-datascience-ase1c-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-datascience-ase1c-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
|
||||
|
||||
minReadySeconds: 30
|
||||
progressDeadlineSeconds: 60
|
||||
|
||||
# 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-common-np-dsci-prd@meesho-datascience-ase1c-prd-0622.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-ase1c-prd-datascience.meeshogcp.in/insert/100/prometheus/api/v1/write
|
||||
- http://vminsert-datascience-ase1c-prd.victoriametrics.svc.cluster.local:8480/insert/multitenant/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: "datascience"
|
||||
team: "datascience-sre"
|
||||
service: "vmagent-datascience-ase1c-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "vmagent"
|
||||
zone_extended: "ase1c"
|
||||
|
||||
|
||||
|
||||
# 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-datascience-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: contour-internal-1
|
||||
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-datascience-ase1c-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: 21
|
||||
memory: 14Gi
|
||||
|
||||
# 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"
|
||||
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "vmagent"
|
||||
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,305 @@
|
||||
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-datascience-ase1c-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-datascience-ase1c-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-datascience-ase1c-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-datascience-ase1c-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: "/config/vm-alerts-config/datascience/**/*.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-datascience-ase1c-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: 250m
|
||||
memory: 500Mi
|
||||
|
||||
# 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-datascience-ase1c-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "vmalert"
|
||||
zone_extended: "ase1c"
|
||||
|
||||
# Annotations to be added to pod
|
||||
podAnnotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "8880"
|
||||
|
||||
podLabels: {}
|
||||
|
||||
nodeSelector:
|
||||
dedicated: "vmselect"
|
||||
|
||||
|
||||
priorityClassName: ""
|
||||
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "vmselect"
|
||||
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,235 @@
|
||||
vmselect:
|
||||
enabled: false
|
||||
|
||||
vmstorage:
|
||||
enabled: false
|
||||
fullnameOverride: vmstorage-datascience-ase1c-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-datascience-ase1c-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: "datascience"
|
||||
team: "datascience-sre"
|
||||
service: "vminsert-datascience-ase1c-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "vminsert"
|
||||
zone_extended: "ase1c"
|
||||
# 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: 20
|
||||
# -- Minimum replicas for HPA to use to scale the vminsert component
|
||||
minReplicas: 1
|
||||
# -- 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: 3
|
||||
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-datascience-ase1c-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: contour-internal-0
|
||||
# -- 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,299 @@
|
||||
vminsert:
|
||||
enabled: false
|
||||
|
||||
vmstorage:
|
||||
enabled: false
|
||||
fullnameOverride: vmstorage-datascience-ase1c-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: []
|
||||
|
||||
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-datascience-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: 150
|
||||
clusternative.maxConcurrentRequests: 256
|
||||
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "8481"
|
||||
extraLabels:
|
||||
bu: "datascience"
|
||||
team: "datascience-sre"
|
||||
service: "vmselect-datascience-ase1c-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "vmselect"
|
||||
zone_extended: "ase1c"
|
||||
# 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: 30
|
||||
# -- Minimum replicas for HPA to use to scale the vmselect component
|
||||
minReplicas: 1
|
||||
# -- 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: "vmselect"
|
||||
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "vmselect"
|
||||
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: 1
|
||||
# -- Container workdir
|
||||
containerWorkingDir: ""
|
||||
# -- Resource object
|
||||
resources:
|
||||
# limits:
|
||||
# cpu: 50m
|
||||
# memory: 64Mi
|
||||
requests:
|
||||
cpu: 10
|
||||
memory: 16Gi
|
||||
|
||||
# -- 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-datascience-ase1c-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
|
||||
clusternativeService:
|
||||
enabled: true
|
||||
port: 8401
|
||||
sessionAffinity: None
|
||||
ipFamilyPolicy: SingleStack
|
||||
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,317 @@
|
||||
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-datascience-ase1c-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: 90d
|
||||
# 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"
|
||||
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"
|
||||
|
||||
# -- 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: 250Gi
|
||||
# -- 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: "datascience"
|
||||
team: "datascience-sre"
|
||||
service: "vmstorage-datascience-ase1c-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "vmstorage"
|
||||
zone_extended: "ase1c"
|
||||
# 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: 10
|
||||
memory: 105Gi
|
||||
|
||||
# -- 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.93.7-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-datascience-ase1c-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: []
|
||||
Reference in New Issue
Block a user