2025-06-02 19:57:31 -04:00

73 lines
2.7 KiB
YAML

{{- if and .Values.alertmanager.enabled .Values.alertmanager.networkPolicy.enabled }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: {{ template "kube-prometheus-stack.fullname" . }}-alertmanager
namespace: {{ template "kube-prometheus-stack-alertmanager.namespace" . }}
labels:
app: {{ template "kube-prometheus-stack.name" . }}-alertmanager
{{- include "kube-prometheus-stack.labels" . | nindent 4 }}
spec:
podSelector:
matchLabels:
app.kubernetes.io/name: alertmanager
policyTypes:
{{- toYaml .Values.alertmanager.networkPolicy.policyTypes | nindent 4 }}
ingress:
{{- if and (.Values.alertmanager.networkPolicy.gateway.namespace) (.Values.alertmanager.networkPolicy.gateway.podLabels) }}
# Allow ingress from gateway
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: {{ .Values.alertmanager.networkPolicy.gateway.namespace }}
{{- if and .Values.alertmanager.networkPolicy.gateway.podLabels (not (empty .Values.alertmanager.networkPolicy.gateway.podLabels)) }}
podSelector:
matchLabels:
{{- toYaml .Values.alertmanager.networkPolicy.gateway.podLabels | nindent 14 }}
{{- end }}
ports:
- port: {{ .Values.alertmanager.service.port }}
protocol: TCP
{{- end }}
{{- if .Values.alertmanager.networkPolicy.monitoringRules.prometheus }}
# Allow ingress from Prometheus
- from:
- podSelector:
matchLabels:
app.kubernetes.io/name: prometheus
ports:
- port: {{ .Values.alertmanager.service.port }}
protocol: TCP
{{- end }}
{{- if and (.Values.alertmanager.networkPolicy.enableClusterRules) (.Values.alertmanager.service.clusterPort) }}
# Allow ingress from other Alertmanager pods (for clustering)
- from:
- podSelector:
matchLabels:
app.kubernetes.io/name: alertmanager
ports:
- port: {{ .Values.alertmanager.service.clusterPort }}
protocol: TCP
{{- end }}
{{- if .Values.alertmanager.networkPolicy.monitoringRules.configReloader }}
# Allow ingress for config reloader metrics
- from:
- podSelector:
matchLabels:
app.kubernetes.io/name: alertmanager
component: config-reloader
ports:
- port: 8080
protocol: TCP
{{- end }}
{{- with .Values.alertmanager.networkPolicy.additionalIngress }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if .Values.alertmanager.networkPolicy.egress.enabled }}
egress:
{{- with .Values.alertmanager.networkPolicy.egress.rules }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}