diff --git a/traefik/templates/_helpers.tpl b/traefik/templates/_helpers.tpl index 8402625ab..64ce42f02 100644 --- a/traefik/templates/_helpers.tpl +++ b/traefik/templates/_helpers.tpl @@ -58,6 +58,9 @@ app.kubernetes.io/instance: {{ template "traefik.instance-name" . }} {{ include "traefik.labelselector" . }} helm.sh/chart: {{ template "traefik.chart" . }} app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- if .Values.commonLabels }} +{{ toYaml .Values.commonLabels }} +{{- end }} {{- end }} {{/* diff --git a/traefik/templates/gateway.yaml b/traefik/templates/gateway.yaml index 96382d5e5..33ea11883 100644 --- a/traefik/templates/gateway.yaml +++ b/traefik/templates/gateway.yaml @@ -6,6 +6,8 @@ kind: Gateway metadata: name: traefik-gateway namespace: {{ default (include "traefik.namespace" .) .Values.experimental.kubernetesGateway.namespace }} + labels: + {{- include "traefik.labels" . | nindent 4 }} {{- with .Values.experimental.kubernetesGateway.gateway.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/traefik/templates/gatewayclass.yaml b/traefik/templates/gatewayclass.yaml index 6f085d4ea..c8abada08 100644 --- a/traefik/templates/gatewayclass.yaml +++ b/traefik/templates/gatewayclass.yaml @@ -4,6 +4,8 @@ apiVersion: gateway.networking.k8s.io/v1alpha2 kind: GatewayClass metadata: name: traefik + labels: + {{- include "traefik.labels" . | nindent 4 }} spec: controllerName: traefik.io/gateway-controller {{- end }} diff --git a/traefik/tests/common-metadata_test.yaml b/traefik/tests/common-metadata_test.yaml new file mode 100644 index 000000000..ce9468a66 --- /dev/null +++ b/traefik/tests/common-metadata_test.yaml @@ -0,0 +1,62 @@ +suite: Resources contains metadata +templates: + - dashboard-ingressroute.yaml + - deployment.yaml + - gatewayclass.yaml + - gateway.yaml + - hpa.yaml + - ingressclass.yaml + - poddisruptionbudget.yaml + - prometheusrules.yaml + - pvc.yaml + - service-hub.yaml + - service-internal.yaml + - servicemonitor.yaml + - service.yaml + - tlsoption.yaml + - tlsstore.yaml + - rbac/clusterrole.yaml + - rbac/clusterrolebinding.yaml + - rbac/podsecuritypolicy.yaml + - rbac/role.yaml + - rbac/rolebinding.yaml + - rbac/serviceaccount.yaml + +tests: + - it: "should contains labels metadata" + set: + experimental.kubernetesGateway.enabled: true + experimental.kubernetesGateway.gateway.enabled: true + autoscaling.enabled: true + autoscaling.maxReplicas: 10 + podDisruptionBudget.enabled: true + metrics.prometheus.prometheusRule.namespace: test + metrics.prometheus.serviceMonitor.namespace: test + metrics.prometheus.service.enabled: true + service.internal.a: {} + persistence.enabled: true + hub.enabled: enabled + tlsStore.a: {} + tlsOptions.a: {} + podSecurityPolicy.enabled: true + rbac.enabled: true + rbac.namespaced: true + commonLabels: + globalLabel: isConfigured + capabilities: + majorVersion: 1 + minorVersion: 16 + apiVersions: + - monitoring.coreos.com/v1 + - autoscaling/v2beta1 + asserts: + - isNotEmpty: + path: metadata.labels + - isSubset: + path: metadata.labels + content: + app.kubernetes.io/managed-by: Helm + - isSubset: + path: metadata.labels + content: + globalLabel: isConfigured diff --git a/traefik/values.yaml b/traefik/values.yaml index 71273ccda..7daab6a1a 100644 --- a/traefik/values.yaml +++ b/traefik/values.yaml @@ -6,6 +6,10 @@ image: tag: "" pullPolicy: IfNotPresent +# Add additional label to all resources +# commonLabels: +# key: value + # # Configure integration with Traefik Hub #