added repo
This commit is contained in:
@@ -0,0 +1,269 @@
|
||||
replicaCount: 5
|
||||
|
||||
image:
|
||||
repository: quay.io/prometheus/alertmanager
|
||||
pullPolicy: IfNotPresent
|
||||
# Overrides the image tag whose default is the chart appVersion.
|
||||
tag: ""
|
||||
|
||||
extraArgs:
|
||||
log.level: debug
|
||||
cluster.probe-timeout: 1s
|
||||
cluster.probe-interval: 2s
|
||||
|
||||
|
||||
## Additional Alertmanager Secret mounts
|
||||
# Defines additional mounts with secrets. Secrets must be manually created in the namespace.
|
||||
extraSecretMounts: []
|
||||
# - name: secret-files
|
||||
# mountPath: /etc/secrets
|
||||
# subPath: ""
|
||||
# secretName: alertmanager-secret-files
|
||||
# readOnly: true
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
fullnameOverride: alertmanager-infra-prd
|
||||
## namespaceOverride overrides the namespace which the resources will be deployed in
|
||||
namespaceOverride: ""
|
||||
|
||||
configMap: alertmanager-infra-prd-config
|
||||
|
||||
labels:
|
||||
bu: "infra"
|
||||
team: "sre"
|
||||
service: "alertmanager-infra-prd"
|
||||
env: "prd"
|
||||
priority: "p0"
|
||||
type: "alertmanager"
|
||||
|
||||
automountServiceAccountToken: true
|
||||
|
||||
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: ""
|
||||
|
||||
# Sets priorityClassName in alertmanager pod
|
||||
priorityClassName: ""
|
||||
|
||||
podSecurityContext:
|
||||
fsGroup: 65534
|
||||
dnsConfig: {}
|
||||
# nameservers:
|
||||
# - 1.2.3.4
|
||||
# searches:
|
||||
# - ns1.svc.cluster-domain.example
|
||||
# - my.dns.search.suffix
|
||||
# options:
|
||||
# - name: ndots
|
||||
# value: "2"
|
||||
# - name: edns0
|
||||
hostAliases: []
|
||||
# - ip: "127.0.0.1"
|
||||
# hostnames:
|
||||
# - "foo.local"
|
||||
# - "bar.local"
|
||||
# - ip: "10.1.2.3"
|
||||
# hostnames:
|
||||
# - "foo.remote"
|
||||
# - "bar.remote"
|
||||
securityContext:
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# readOnlyRootFilesystem: true
|
||||
runAsUser: 65534
|
||||
runAsNonRoot: true
|
||||
runAsGroup: 65534
|
||||
|
||||
additionalPeers: []
|
||||
|
||||
## Additional InitContainers to initialize the pod
|
||||
##
|
||||
extraInitContainers: []
|
||||
|
||||
## Additional containers to add to the stateful set. This will allow to setup sidecarContainers like a proxy to integrate
|
||||
## alertmanager with an external tool like teams that has not direct integration.
|
||||
##
|
||||
extraContainers: []
|
||||
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
|
||||
service:
|
||||
annotations: {}
|
||||
type: ClusterIP
|
||||
port: 9093
|
||||
clusterPort: 9094
|
||||
loadBalancerIP: "" # Assign ext IP when Service type is LoadBalancer
|
||||
loadBalancerSourceRanges: [] # Only allow access to loadBalancerIP from these IPs
|
||||
# if you want to force a specific nodePort. Must be use with service.type=NodePort
|
||||
# nodePort:
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: nginx-internal
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
hosts:
|
||||
- host: alertmanager-infra-prd.meeshogcp.in
|
||||
paths:
|
||||
- path: /
|
||||
pathType: ImplementationSpecific
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - alertmanager.domain.com
|
||||
|
||||
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: 100m
|
||||
memory: 150Mi
|
||||
|
||||
nodeSelector:
|
||||
dedicated: "vmselect-temp"
|
||||
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "vmselect-temp"
|
||||
effect: "NoSchedule"
|
||||
affinity: {}
|
||||
|
||||
## Pod anti-affinity can prevent the scheduler from placing Alertmanager replicas on the same node.
|
||||
## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
|
||||
## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
|
||||
## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
|
||||
##
|
||||
podAntiAffinity: ""
|
||||
|
||||
## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
|
||||
## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
|
||||
##
|
||||
podAntiAffinityTopologyKey: kubernetes.io/hostname
|
||||
|
||||
## Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
|
||||
## 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: alertmanager
|
||||
- maxSkew: 1
|
||||
topologyKey: kubernetes.io/hostname
|
||||
whenUnsatisfiable: DoNotSchedule
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
type: alertmanager
|
||||
|
||||
statefulSet:
|
||||
annotations: {}
|
||||
|
||||
podAnnotations: {}
|
||||
podLabels: {}
|
||||
|
||||
# Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
||||
podDisruptionBudget: {}
|
||||
# maxUnavailable: 1
|
||||
# minAvailable: 1
|
||||
|
||||
command: []
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
## Persistent Volume Storage Class
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner.
|
||||
##
|
||||
# storageClass: "-"
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
size: 15Gi
|
||||
|
||||
configAnnotations: {}
|
||||
## For example if you want to provide private data from a secret vault
|
||||
## https://github.com/banzaicloud/bank-vaults/tree/main/charts/vault-secrets-webhook
|
||||
## P.s.: Add option `configMapMutation: true` for vault-secrets-webhook
|
||||
# vault.security.banzaicloud.io/vault-role: "admin"
|
||||
# vault.security.banzaicloud.io/vault-addr: "https://vault.vault.svc.cluster.local:8200"
|
||||
# vault.security.banzaicloud.io/vault-skip-verify: "true"
|
||||
# vault.security.banzaicloud.io/vault-path: "kubernetes"
|
||||
## Example for inject secret
|
||||
# slack_api_url: '${vault:secret/data/slack-hook-alerts#URL}'
|
||||
|
||||
config: {}
|
||||
|
||||
## Monitors ConfigMap changes and POSTs to a URL
|
||||
## Ref: https://github.com/jimmidyson/configmap-reload
|
||||
##
|
||||
configmapReload:
|
||||
## If false, the configmap-reload container will not be deployed
|
||||
##
|
||||
enabled: true
|
||||
|
||||
## configmap-reload container name
|
||||
##
|
||||
name: configmap-reload
|
||||
|
||||
## configmap-reload container image
|
||||
##
|
||||
image:
|
||||
repository: jimmidyson/configmap-reload
|
||||
tag: v0.8.0
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# containerPort: 9533
|
||||
|
||||
## configmap-reload resource requests and limits
|
||||
## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
||||
##
|
||||
resources: {}
|
||||
|
||||
templates: {}
|
||||
# alertmanager.tmpl: |-
|
||||
|
||||
## Optionally specify extra list of additional volumeMounts
|
||||
extraVolumeMounts: []
|
||||
# - name: extras
|
||||
# mountPath: /usr/share/extras
|
||||
# readOnly: true
|
||||
|
||||
## Optionally specify extra list of additional volumes
|
||||
extraVolumes: []
|
||||
# - name: extras
|
||||
# emptyDir: {}
|
||||
|
||||
## Optionally specify extra environment variables to add to alertmanager container
|
||||
extraEnv: []
|
||||
# - name: FOO
|
||||
# value: BAR
|
||||
|
||||
testFramework:
|
||||
enabled: false
|
||||
annotations:
|
||||
"helm.sh/hook": test-success
|
||||
# "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
|
||||
@@ -0,0 +1,22 @@
|
||||
Here are the steps on how to migrate silenced alerts from an older Alertmanager to a newer Alertmanager machine:
|
||||
|
||||
1. Stop the old Alertmanager.
|
||||
2. Export the silenced alerts from the old Alertmanager. You can use the following command:
|
||||
|
||||
amtool -o json --alertmanager.url=http://devops-p-alertmanager-01b.meeshoint.in:9093 silence > silenced_alerts.json
|
||||
|
||||
3. Copy the silenced_alerts.json file to the new Alertmanager machine.
|
||||
|
||||
k cp helm-overrides/prod-ops-cluster/alertmanager/silenced_alerts.json alertmanager/prd-infra-alertmanager-1:/home -c alertmanager
|
||||
|
||||
4. Exec into the new Alertmanager.
|
||||
|
||||
k exec -it prd-infra-alertmanager-1 -c alertmanager -- sh
|
||||
|
||||
5. Import the silenced alerts into the new Alertmanager. You can use the following command:
|
||||
|
||||
amtool --alertmanager.url=https://prd-infra-alertmanager.meesho.com silence import ../home/silenced_alerts.json
|
||||
|
||||
|
||||
Note:
|
||||
1. If you are running alertmanager on K8s as STS, then you only need to import in any 1 of the pods else duplicate silences will be created.
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user