diff --git a/templates/deployment-registry.yaml b/templates/deployment-registry.yaml index 8b45e3e..e0e9c34 100644 --- a/templates/deployment-registry.yaml +++ b/templates/deployment-registry.yaml @@ -5,15 +5,24 @@ metadata: name: {{ include "apicurio-registry.name" . }} labels: {{- include "apicurio-registry.labels" . | nindent 4 }} + {{- with .Values.registry.extraLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} spec: selector: matchLabels: {{- include "apicurio-registry.selectorLabels" . | nindent 6 }} + {{- with .Values.registry.extraLabels }} + {{- toYaml . | nindent 6 }} + {{- end }} app.kubernetes.io/component: registry template: metadata: labels: {{- include "apicurio-registry.selectorLabels" . | nindent 8 }} + {{- with .Values.registry.extraLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} app.kubernetes.io/component: registry spec: serviceAccountName: {{ include "apicurio-registry.name" . }} diff --git a/templates/deployment-sync.yaml b/templates/deployment-sync.yaml index c0b819e..ec192b9 100644 --- a/templates/deployment-sync.yaml +++ b/templates/deployment-sync.yaml @@ -5,15 +5,24 @@ metadata: name: {{ include "apicurio-registry.name" . }}-sync labels: {{- include "apicurio-registry.labels" . | nindent 4 }} + {{- with .Values.sync.extraLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} spec: selector: matchLabels: {{- include "apicurio-registry.selectorLabels" . | nindent 6 }} + {{- with .Values.sync.extraLabels }} + {{- toYaml . | nindent 6 }} + {{- end }} app.kubernetes.io/component: sync template: metadata: labels: {{- include "apicurio-registry.selectorLabels" . | nindent 8 }} + {{- with .Values.sync.extraLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} app.kubernetes.io/component: sync spec: serviceAccountName: {{ include "apicurio-registry.name" . }} diff --git a/test/lint/registry.yaml b/test/lint/registry.yaml index 7c95741..a19a2bf 100644 --- a/test/lint/registry.yaml +++ b/test/lint/registry.yaml @@ -63,3 +63,13 @@ tests: values don't meet the specifications of the schema(s) in the following chart(s): apicurio-registry: - registry.ingress.ingressClassName: Invalid type. Expected: string, given: integer + - it: extraLabels is not object + set: + registry: + extraLabels: 1 + asserts: + - failedTemplate: + errorMessage: | + values don't meet the specifications of the schema(s) in the following chart(s): + apicurio-registry: + - registry.extraLabels: Invalid type. Expected: object, given: integer diff --git a/test/lint/sync.yaml b/test/lint/sync.yaml index 6ec5452..c4163e3 100644 --- a/test/lint/sync.yaml +++ b/test/lint/sync.yaml @@ -2,6 +2,16 @@ suite: lint sync values templates: - fake.yaml tests: + - it: extraLabels is not object + set: + sync: + extraLabels: 1 + asserts: + - failedTemplate: + errorMessage: | + values don't meet the specifications of the schema(s) in the following chart(s): + apicurio-registry: + - sync.extraLabels: Invalid type. Expected: object, given: integer - it: nodeSelector is not object set: sync: diff --git a/test/unit/deployment_registry.yaml b/test/unit/deployment_registry.yaml index e014068..5dc30b3 100644 --- a/test/unit/deployment_registry.yaml +++ b/test/unit/deployment_registry.yaml @@ -140,4 +140,33 @@ tests: value: bar - equal: path: spec.template.spec.containers[0].env[3].valueFrom.secretKeyRef.key - value: baz \ No newline at end of file + value: baz + - it: no extraLabels + set: + registry: + extraLabels: + testLabel: "myLabel" + asserts: + - equal: + path: spec.selector.matchLabels + value: + app.kubernetes.io/component: registry + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/name: apicurio-registry + testLabel: myLabel + - equal: + path: metadata.labels + value: + helm.sh/chart: "apicurio-registry-0.0.0" + app.kubernetes.io/version: "0.0.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: RELEASE-NAME + testLabel: myLabel + - equal: + path: spec.template.metadata.labels + value: + app.kubernetes.io/component: registry + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/name: apicurio-registry + testLabel: myLabel \ No newline at end of file diff --git a/test/unit/deployment_sync.yaml b/test/unit/deployment_sync.yaml index 9e930ea..c153cf3 100644 --- a/test/unit/deployment_sync.yaml +++ b/test/unit/deployment_sync.yaml @@ -109,3 +109,54 @@ tests: - equal: path: spec.template.spec.initContainers[0].env[0].value value: VALUE + - it: no extraLabels + asserts: + - equal: + path: spec.selector.matchLabels + value: + app.kubernetes.io/component: sync + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/name: apicurio-registry + - equal: + path: metadata.labels + value: + helm.sh/chart: "apicurio-registry-0.0.0" + app.kubernetes.io/version: "0.0.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: RELEASE-NAME + - equal: + path: spec.template.metadata.labels + value: + app.kubernetes.io/component: sync + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/name: apicurio-registry + - it: with extraLabels + set: + sync: + extraLabels: + testLabel: "myLabel" + asserts: + - equal: + path: spec.selector.matchLabels + value: + app.kubernetes.io/component: sync + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/name: apicurio-registry + testLabel: myLabel + - equal: + path: metadata.labels + value: + helm.sh/chart: "apicurio-registry-0.0.0" + app.kubernetes.io/version: "0.0.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: RELEASE-NAME + testLabel: myLabel + - equal: + path: spec.template.metadata.labels + value: + app.kubernetes.io/component: sync + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/name: apicurio-registry + testLabel: myLabel \ No newline at end of file diff --git a/values.schema.json b/values.schema.json index fba3485..050f175 100644 --- a/values.schema.json +++ b/values.schema.json @@ -55,6 +55,9 @@ "volumes": { "type": "array", "default": [] }, + "labels": { + "type": "object", "default": {} + }, "ingress": { "type": "object", "title": "ingress resource for registry", "required": ["enabled", "host", "path"], @@ -102,7 +105,8 @@ "extraVolumes": {"$ref": "#/definitions/volumes", "title": "extra volumes for registry"}, "kafka": {"$ref": "#/definitions/persistence/kafka"}, "sql": {"$ref": "#/definitions/persistence/sql"}, - "ingress": {"$ref": "#/definitions/ingress"} + "ingress": {"$ref": "#/definitions/ingress"}, + "extraLabels": {"$ref": "#/definitions/labels", "title": "deployment and pod resources labels for registry"} } }, "sync": { @@ -116,7 +120,8 @@ "resources": {"$ref": "#/definitions/podResources"}, "extraVolumeMounts": {"$ref": "#/definitions/volumeMounts", "title": "extra volume mounts for registry content sync"}, "extraVolumes": {"$ref": "#/definitions/volumes", "title": "extra volumes for registry content sync"}, - "registryUrl": {"type": ["null", "string"], "default": null} + "registryUrl": {"type": ["null", "string"], "default": null}, + "extraLabels": {"$ref": "#/definitions/labels", "title": "deployment and pod resources labels for sync"} } } } diff --git a/values.yaml b/values.yaml index 05f73b6..8f6a389 100644 --- a/values.yaml +++ b/values.yaml @@ -40,6 +40,8 @@ registry: # - name: kafkauser # secret: # secretName: kafka-user + # add extraLabels in deployment and pod objects + extraLabels: {} ingress: enabled: false @@ -78,4 +80,5 @@ sync: # - name: kafkauser # secret: # secretName: kafka-user - + # add extraLabels in deployment and pod objects + extraLabels: {} \ No newline at end of file