diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/_helpers.tpl b/ozgcloud-elasticsearch-operator/src/main/helm/templates/_helpers.tpl new file mode 100644 index 0000000000000000000000000000000000000000..5b08fa932ccbeb01edc1aea23eb199f904d2c8c9 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/_helpers.tpl @@ -0,0 +1,7 @@ + + + +{{- define "app.matchLabels" }} +app.kubernetes.io/name: {{ .Release.Name }} +app.kubernetes.io/namespace: {{ .Release.Namespace }} +{{- end -}} \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/crd/operator.ozgcloud.de_OzgCloudElasticsearch.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/crd/operator.ozgcloud.de_OzgCloudElasticsearch.yaml index a4709f63b636d2d008b48484f0743f00fbf76df2..bbb564af71b8d78cf0d1400354d10026cc40fddb 100644 --- a/ozgcloud-elasticsearch-operator/src/main/helm/templates/crd/operator.ozgcloud.de_OzgCloudElasticsearch.yaml +++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/crd/operator.ozgcloud.de_OzgCloudElasticsearch.yaml @@ -15,7 +15,7 @@ spec: schema: openAPIV3Schema: type: object - description: OzgCloudElasticsearch is the Schema for the keycloaks API + description: OzgCloudElasticsearch is the Schema for the elasticsearch API properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/deployment.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/deployment.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5f7c5a8e9a496f9cf9154d1aee698c23f26afd59 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/deployment.yaml @@ -0,0 +1,93 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }} + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/name: {{ .Release.Name }} + app.kubernetes.io/namespace: {{ .Release.Namespace }} + app.kubernetes.io/part-of: ozg + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} +spec: + selector: + matchLabels: + {{- include "app.matchLabels" . | indent 6 }} + template: + metadata: + labels: + {{- include "app.matchLabels" . | indent 8 }} + spec: + serviceAccountName: ozgcloud-elasticsearch-operator-serviceaccount + containers: + - name: ozgcloud-elasticsearch-operator + image: "{{ required "image.repo must be set" (.Values.image).repo }}/{{ required "image.name must be set" (.Values.image).name }}:{{ required "image.tag must be set" (.Values.image).tag }}" + env: + {{- with (.Values.env).customList }} +{{ toYaml . | indent 8 }} + {{- end }} + imagePullPolicy: Always + readinessProbe: + failureThreshold: 3 + httpGet: + path: /actuator/health/readiness + port: 8081 + scheme: HTTP + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 3 + startupProbe: + failureThreshold: 10 + httpGet: + path: /actuator/health/readiness + port: 8081 + scheme: HTTP + initialDelaySeconds: 30 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 5 + resources: + {{- with .Values.resources }} +{{ toYaml . | indent 10 }} + {{- end }} + securityContext: + allowPrivilegeEscalation: false + privileged: false + readOnlyRootFilesystem: false + runAsNonRoot: true + stdin: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + tty: true + dnsConfig: {} + dnsPolicy: ClusterFirst + imagePullSecrets: + - name: {{ required "imagePullSecret must be set" .Values.imagePullSecret }} + restartPolicy: Always + diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_edit_role.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_edit_role.yaml deleted file mode 100644 index 8c47d52dec2b59033df18db810b85995218b8f8d..0000000000000000000000000000000000000000 --- a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_edit_role.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: elasticsearch-edit-role - labels: - app.kubernetes.io/name: clusterrole - app.kubernetes.io/instance: elasticsearch-edit-role - app.kubernetes.io/component: rbac - app.kubernetes.io/created-by: ozgcloud-operator - app.kubernetes.io/part-of: ozgcloud-operator - app.kubernetes.io/managed-by: kustomize -rules: -- apiGroups: - - api.ozgcloud-stack.de - resources: - - ozgcloudelasticsearches - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - api.ozgcloud-stack.de - resources: - - ozgcloudelasticsearches/status - verbs: - - get \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_view_role.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_view_role.yaml deleted file mode 100644 index 04d9878be43ddea92c921d1fc22350327f5bf7b0..0000000000000000000000000000000000000000 --- a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_view_role.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: elasticsearch-view-role - labels: - app.kubernetes.io/name: clusterrole - app.kubernetes.io/instance: elasticsearch-view-role - app.kubernetes.io/component: rbac - app.kubernetes.io/created-by: ozgcloud-operator - app.kubernetes.io/part-of: ozgcloud-operator - app.kubernetes.io/managed-by: kustomize -rules: -- apiGroups: - - api.ozgcloud-stack.de - resources: - - ozgcloudelasticsearches - verbs: - - get - - list - - watch -- apiGroups: - - api.ozgcloud-stack.de - resources: - - ozgcloudelasticsearches/status - verbs: - - get \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f5bfed6b3b73b010e2622492b6c8ef5aa6b7437b --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role.yaml @@ -0,0 +1,38 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elasticsearch-operator-admin-secret-view-role + namespace: {{ required "elasticsearch.namespace must be set" (.Values.elasticsearch).namespace }} +rules: + - apiGroups: + - "" + resourceNames: + - {{ required "elasticsearch.adminSecretName must be set" (.Values.elasticsearch).adminSecretName }} + resources: + - secrets + verbs: + - get diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f17704d5bd024797b643bcbf6e06d095ded6fa77 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding.yaml @@ -0,0 +1,37 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elasticsearch-operator-admin-secret-view-role-binding + namespace: {{ required "elasticsearch.namespace must be set" (.Values.elasticsearch).namespace }} +subjects: + - kind: ServiceAccount + name: ozgcloud-elasticsearch-operator-serviceaccount + namespace: {{ .Release.Namespace }} +roleRef: + kind: Role + name: ozgcloud-elasticsearch-operator-admin-secret-view-role + apiGroup: rbac.authorization.k8s.io diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_role.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_role.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6d1374db245847f4616041d850d657f9b3f7bca0 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_role.yaml @@ -0,0 +1,18 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: ozgcloud-elasticsearch-operator-edit-role + labels: + app.kubernetes.io/name: {{ .Release.Name }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/component: ozgcloud-elasticsearch-operator +rules: +- apiGroups: + - operator.ozgcloud.de + resources: + - ozgcloudelasticsearchs + - ozgcloudelasticsearchs/status + - ozgcloudelasticsearchs/finalizers + verbs: + - patch + - update diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding.yaml new file mode 100644 index 0000000000000000000000000000000000000000..856aa637f4164e537213ebe1415dbee0e1137e61 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding.yaml @@ -0,0 +1,13 @@ + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elasticsearch-operator-edit-role-binding +subjects: + - kind: ServiceAccount + name: ozgcloud-elasticsearch-operator-serviceaccount + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: ozgcloud-elasticsearch-operator-edit-role + apiGroup: rbac.authorization.k8s.io \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_serviceaccount.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_serviceaccount.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a1441499d95af95ada1da6ab84ec0e3584abc095 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_serviceaccount.yaml @@ -0,0 +1,28 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# +apiVersion: v1 +kind: ServiceAccount +metadata: + name: ozgcloud-elasticsearch-operator-serviceaccount + namespace: {{ .Release.Namespace }} \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_role.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_role.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7ef9bb0ec1be7ec0b02a93cf6ed26cebd2b459d5 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_role.yaml @@ -0,0 +1,19 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: ozgcloud-elasticsearch-operator-view-role + labels: + app.kubernetes.io/name: {{ .Release.Name }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/component: ozgcloud-elasticsearch-operator +rules: +- apiGroups: + - operator.ozgcloud.de + resources: + - ozgcloudelasticsearchs + - ozgcloudelasticsearchs/status + - ozgcloudelasticsearchs/finalizers + verbs: + - get + - list + - watch diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_rolebinding.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_rolebinding.yaml new file mode 100644 index 0000000000000000000000000000000000000000..150d7509b3921c1e5815e3a83e9eaf44d4f2258f --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_rolebinding.yaml @@ -0,0 +1,13 @@ + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elasticsearch-operator-view-role-binding +subjects: + - kind: ServiceAccount + name: ozgcloud-elasticsearch-operator-serviceaccount + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: ozgcloud-elasticsearch-operator-view-role + apiGroup: rbac.authorization.k8s.io \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/values.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/values.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d041f12534740c122e8380834bd143f994054b0b --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/main/helm/values.yaml @@ -0,0 +1,7 @@ + +image: + repo: docker.ozg-sh.de + +elasticsearch: + namespace: elastic-system + adminSecretName: ozg-search-cluster-es-elastic-user diff --git a/ozgcloud-elasticsearch-operator/src/main/resources/application.yml b/ozgcloud-elasticsearch-operator/src/main/resources/application.yml index 620fb6ff1e758e815ee9dc661b204f9832eda9f4..8339830ed51a9f1a1a7c9108f4b276af252887f4 100644 --- a/ozgcloud-elasticsearch-operator/src/main/resources/application.yml +++ b/ozgcloud-elasticsearch-operator/src/main/resources/application.yml @@ -6,4 +6,27 @@ ozgcloud: secretCredentialsName: elasticsearch-credentials host: ozg-search-cluster-es-http port: 9200 - scheme: https \ No newline at end of file + scheme: https + +management: + server: + port: 8081 + health: + livenessState: + enabled: true + readinessState: + enabled: true + endpoint: + health: + group: + exploratory: + include: livenessState,readinessState,ping + show-details: always + probes: + enabled: true + prometheus: + enabled: true + endpoints: + web: + exposure: + include: "*" diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/crd/operator.ozgcloud.de_OzgCloudElasticsearch_versions_v1_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/crd/operator.ozgcloud.de_OzgCloudElasticsearch_versions_v1_test.yaml index 076fa2afd2d0d765be02cca072fcbd2add560578..8e66bce6f29772a0e7051e326aa106a396d182b6 100644 --- a/ozgcloud-elasticsearch-operator/src/test/helm/crd/operator.ozgcloud.de_OzgCloudElasticsearch_versions_v1_test.yaml +++ b/ozgcloud-elasticsearch-operator/src/test/helm/crd/operator.ozgcloud.de_OzgCloudElasticsearch_versions_v1_test.yaml @@ -11,7 +11,7 @@ tests: asserts: - equal: path: spec.versions[0].schema.openAPIV3Schema.description - value: OzgCloudElasticsearch is the Schema for the keycloaks API + value: OzgCloudElasticsearch is the Schema for the elasticsearch API - it: should have versions schema type asserts: - equal: diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_container_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_container_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..462e66f312dc001e037e1684545c168375caead4 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_container_test.yaml @@ -0,0 +1,93 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: deployment container test +release: + name: elastic-test-operator + namespace: sh-helm-test +templates: + - deployment.yaml +tests: + - it: validate image type and container image + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: spec.template.spec.containers[0].name + value: ozgcloud-elasticsearch-operator + - equal: + path: spec.template.spec.containers[0].image + value: docker.ozg-sh.de/hase:latest + - equal: + path: spec.template.spec.containers[0].imagePullPolicy + value: Always + + - it: validate health checks + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: spec.template.spec.containers[0].readinessProbe + value: + failureThreshold: 3 + httpGet: + path: /actuator/health/readiness + port: 8081 + scheme: HTTP + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 3 + - equal: + path: spec.template.spec.containers[0].startupProbe + value: + failureThreshold: 10 + httpGet: + path: /actuator/health/readiness + port: 8081 + scheme: HTTP + initialDelaySeconds: 30 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 5 + + - it: validate security context + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: spec.template.spec.containers[0].securityContext + value: + allowPrivilegeEscalation: false + privileged: false + readOnlyRootFilesystem: false + runAsNonRoot: true diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_env_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_env_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..0179c95b140f6f2cbdf14fb0ebb7a0576da5f807 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_env_test.yaml @@ -0,0 +1,45 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: test environments +templates: + - templates/deployment.yaml +tests: + - it: check customList + template: deployment.yaml + set: + env.customList: + - name: my_test_environment_name + value: "A test value" + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: my_test_environment_name + value: "A test value" + diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_matchlabels_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_matchlabels_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6b20b3d2f94de47d71794c8110acfd824b48ff57 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_matchlabels_test.yaml @@ -0,0 +1,51 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: deployment matchlabels +release: + name: ozgcloud-elasticsearch-operator + namespace: sh-helm-test +templates: + - templates/deployment.yaml +tests: + - it: check matchlabels + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: spec.selector.matchLabels.[app.kubernetes.io/name] + value: ozgcloud-elasticsearch-operator + - equal: + path: spec.selector.matchLabels.[app.kubernetes.io/namespace] + value: sh-helm-test + + - equal: + path: spec.template.metadata.labels.[app.kubernetes.io/name] + value: ozgcloud-elasticsearch-operator + - equal: + path: spec.template.metadata.labels.[app.kubernetes.io/namespace] + value: sh-helm-test \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_metadata_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_metadata_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9679c3b4b5b17e6fbd6b920f0fc14bcf3b9c9464 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_metadata_test.yaml @@ -0,0 +1,70 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: deployment test metadata +release: + name: ozgcloud-elasticsearch-operator + namespace: sh-helm-test +templates: + - templates/deployment.yaml +tests: + - it: check metadata labels + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: metadata.labels.[app.kubernetes.io/instance] + value: ozgcloud-elasticsearch-operator + - equal: + path: metadata.labels.[app.kubernetes.io/name] + value: ozgcloud-elasticsearch-operator + - equal: + path: metadata.labels.[app.kubernetes.io/part-of] + value: ozg + - equal: + path: metadata.labels.[app.kubernetes.io/namespace] + value: sh-helm-test + - it: check metadata name + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: metadata.name + value: ozgcloud-elasticsearch-operator + - it: check metadata namespace + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: metadata.namespace + value: sh-helm-test diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_pull_secret_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_pull_secret_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..983d2758b0eb06d149ad1b11264cf07890566517 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_pull_secret_test.yaml @@ -0,0 +1,42 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: deployment pull secret +release: + name: ozgcloud-elasticsearch-operator + namespace: sh-helm-test +templates: + - deployment.yaml +tests: + - it: validate image pull secret resource name + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: spec.template.spec.imagePullSecrets[0].name + value: imagePullSecret + diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_resources_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_resources_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5e871d26719f7d886e29729a2134f75419fd4aae --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_resources_test.yaml @@ -0,0 +1,67 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: deployment resources test +release: + name: afm-adapter +templates: + - templates/deployment.yaml +tests: + - it: test resources + set: + resources: + limits: + cpu: "11m" + memory: "22Mi" + requests: + cpu: "33m" + memory: "44Mi" + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: spec.template.spec.containers[0].resources.limits.cpu + value: 11m + - equal: + path: spec.template.spec.containers[0].resources.limits.memory + value: 22Mi + - equal: + path: spec.template.spec.containers[0].resources.requests.cpu + value: 33m + - equal: + path: spec.template.spec.containers[0].resources.requests.memory + value: 44Mi + + - it: test empty resources + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - isEmpty: + path: spec.template.spec.containers[0].resources + diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_template_spec_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_template_spec_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8ec9dbacd2267f9b2579ca4c5e2e57330edf10f6 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_template_spec_test.yaml @@ -0,0 +1,66 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: deployment templace spec test +release: + name: elastic-test-operator + namespace: sh-helm-test +templates: + - deployment.yaml +tests: + - it: validate serviceaccount name + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: spec.template.spec.serviceAccountName + value: ozgcloud-elasticsearch-operator-serviceaccount + + - it: validate restartPolicy + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: spec.template.spec.restartPolicy + value: Always + + - it: validate dns config + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - equal: + path: spec.template.spec.dnsConfig + value: {} + - equal: + path: spec.template.spec.dnsPolicy + value: ClusterFirst \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_type_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_type_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e992e29f94ea59c82a59b616a7db948864061c56 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_type_test.yaml @@ -0,0 +1,43 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: deployment type test +release: + name: elastic-test-operator + namespace: sh-helm-test +templates: + - deployment.yaml +tests: + - it: validate template type and api Version + set: + image: + name: hase + tag: latest + imagePullSecret: imagePullSecret + asserts: + - isKind: + of: Deployment + - isAPIVersion: + of: apps/v1 + diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/linter_values.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/linter_values.yaml index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..26396d4dabc581060d0e9396ef07233f7576f6cb 100644 --- a/ozgcloud-elasticsearch-operator/src/test/helm/linter_values.yaml +++ b/ozgcloud-elasticsearch-operator/src/test/helm/linter_values.yaml @@ -0,0 +1,6 @@ + +image: + name: test + tag: latest + +imagePullSecret: "docker-secret" \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_edit_role_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_edit_role_test.yaml deleted file mode 100644 index 6b3bcc3f9bbc22b59f2a5ba6df62f3aa672e373a..0000000000000000000000000000000000000000 --- a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_edit_role_test.yaml +++ /dev/null @@ -1,79 +0,0 @@ -suite: elasticsearch_edit_role test -templates: - - templates/rbac/elasticsearch_edit_role.yaml -tests: - - it: should have apiVersion - asserts: - - equal: - path: apiVersion - value: rbac.authorization.k8s.io/v1 - - it: should have isKind of - asserts: - - isKind: - of: ClusterRole - - - it: should have metadata name - asserts: - - equal: - path: metadata.name - value: elasticsearch-edit-role - - it: should have metadata labels name - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/name] - value: clusterrole - - it: should have metadata labels instance - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/instance] - value: elasticsearch-edit-role - - it: should have metadata labels component - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/component] - value: rbac - - it: should have metadata labels created-by - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/created-by] - value: ozgcloud-operator - - it: should have metadata labels part-of - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/part-of] - value: ozgcloud-operator - - it: should have metadata labels managed-by - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/managed-by] - value: kustomize - - - it: should have rules for ozgcloudelasticsearches resource - asserts: - - contains: - path: rules - content: - apiGroups: - - api.ozgcloud-stack.de - resources: - - ozgcloudelasticsearches - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - - it: should have rules for ozgcloudelasticsearches/status resource - asserts: - - contains: - path: rules - content: - apiGroups: - - api.ozgcloud-stack.de - resources: - - ozgcloudelasticsearches/status - verbs: - - get \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_view_role_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_view_role_test.yaml deleted file mode 100644 index d5848807e80aa0a49c677e1e86f59f9725e81578..0000000000000000000000000000000000000000 --- a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_view_role_test.yaml +++ /dev/null @@ -1,75 +0,0 @@ -suite: elasticsearch_view_role test -templates: - - templates/rbac/elasticsearch_view_role.yaml -tests: - - it: should have apiVersion - asserts: - - equal: - path: apiVersion - value: rbac.authorization.k8s.io/v1 - - it: should have isKind of - asserts: - - isKind: - of: ClusterRole - - - it: should have metadata name - asserts: - - equal: - path: metadata.name - value: elasticsearch-view-role - - it: should have metadata labels name - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/name] - value: clusterrole - - it: should have metadata labels instance - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/instance] - value: elasticsearch-view-role - - it: should have metadata labels component - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/component] - value: rbac - - it: should have metadata labels created-by - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/created-by] - value: ozgcloud-operator - - it: should have metadata labels part-of - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/part-of] - value: ozgcloud-operator - - it: should have metadata labels managed-by - asserts: - - equal: - path: metadata.labels.[app.kubernetes.io/managed-by] - value: kustomize - - - it: should have rules for ozgcloudelasticsearches resource - asserts: - - contains: - path: rules - content: - apiGroups: - - api.ozgcloud-stack.de - resources: - - ozgcloudelasticsearches - verbs: - - get - - list - - watch - - - it: should have rules for ozgcloudelasticsearches/status resource - asserts: - - contains: - path: rules - content: - apiGroups: - - api.ozgcloud-stack.de - resources: - - ozgcloudelasticsearches/status - verbs: - - get \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ced2580af6be30cfcd2428d3703286b5491a94b2 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role_test.yaml @@ -0,0 +1,68 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: Elasticsearch admin secret view role test +release: + name: ozgcloud-elasticsearch-operator + namespace: test-namespace +templates: + - templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role.yaml +tests: + - it: should have apiVersion + asserts: + - equal: + path: apiVersion + value: rbac.authorization.k8s.io/v1 + - it: should have isKind of + asserts: + - isKind: + of: Role + + - it: should have metadata name + asserts: + - equal: + path: metadata.name + value: ozgcloud-elasticsearch-operator-admin-secret-view-role + - it: should have metadata namespace + asserts: + - equal: + path: metadata.namespace + value: elastic-system + + + - it: should have rules for ozgcloudelasticsearches resource + asserts: + - equal: + path: rules + value: + - apiGroups: + - "" + resourceNames: + - ozg-search-cluster-es-elastic-user + resources: + - secrets + verbs: + - get + + \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9cde6cc508e89f8f45d7f5afa55737d94783c826 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding_test.yaml @@ -0,0 +1,64 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: Elasticsearch admin secret view rolebinding test +release: + name: ozgcloud-elasticsearch-operator + namespace: sh-helm-test +templates: + - templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding.yaml +tests: + - it: should have apiVersion + asserts: + - equal: + path: apiVersion + value: rbac.authorization.k8s.io/v1 + - it: should have isKind of + asserts: + - isKind: + of: RoleBinding + + - it: should have metadata name + asserts: + - equal: + path: metadata.name + value: ozgcloud-elasticsearch-operator-admin-secret-view-role-binding + + - it: should have subjects + asserts: + - equal: + path: subjects + value: + - kind: ServiceAccount + name: ozgcloud-elasticsearch-operator-serviceaccount + namespace: sh-helm-test + + - it: should have roleRef + asserts: + - equal: + path: roleRef + value: + kind: Role + name: ozgcloud-elasticsearch-operator-admin-secret-view-role + apiGroup: rbac.authorization.k8s.io \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_role_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_role_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..078cf0a0cf2fd7498271d63ca3fb6e686b85e71a --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_role_test.yaml @@ -0,0 +1,53 @@ +suite: elasticsearch_edit_role test +release: + name: release-name +templates: + - templates/rbac/ozgcloud_elasticsearch_operator_edit_role.yaml +tests: + - it: should have apiVersion + asserts: + - equal: + path: apiVersion + value: rbac.authorization.k8s.io/v1 + - it: should have isKind of + asserts: + - isKind: + of: ClusterRole + + - it: should have metadata name + asserts: + - equal: + path: metadata.name + value: ozgcloud-elasticsearch-operator-edit-role + - it: should have metadata labels name + asserts: + - equal: + path: metadata.labels.[app.kubernetes.io/name] + value: release-name + - it: should have metadata labels instance + asserts: + - equal: + path: metadata.labels.[app.kubernetes.io/instance] + value: release-name + - it: should have metadata labels component + asserts: + - equal: + path: metadata.labels.[app.kubernetes.io/component] + value: ozgcloud-elasticsearch-operator + + - it: should have rules for ozgcloudelasticsearchs resource + asserts: + - contains: + path: rules + content: + apiGroups: + - operator.ozgcloud.de + resources: + - ozgcloudelasticsearchs + - ozgcloudelasticsearchs/status + - ozgcloudelasticsearchs/finalizers + verbs: + - patch + - update + + \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..25e7418ed1558fa4c2d0ca7274c05442477a70d0 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding_test.yaml @@ -0,0 +1,41 @@ + + +suite: elasticsearch_view_rolebinding test +release: + namespace: sh-helm-test +templates: + - templates/rbac/ozgcloud_elasticsearch_operator_view_rolebinding.yaml +tests: + - it: should have apiVersion + asserts: + - equal: + path: apiVersion + value: rbac.authorization.k8s.io/v1 + - it: should have isKind of + asserts: + - isKind: + of: ClusterRoleBinding + + - it: should have metadata name + asserts: + - equal: + path: metadata.name + value: ozgcloud-elasticsearch-operator-view-role-binding + + - it: should have subjects + asserts: + - equal: + path: subjects + value: + - kind: ServiceAccount + name: ozgcloud-elasticsearch-operator-serviceaccount + namespace: sh-helm-test + + - it: should have roleRef + asserts: + - equal: + path: roleRef + value: + kind: ClusterRole + name: ozgcloud-elasticsearch-operator-view-role + apiGroup: rbac.authorization.k8s.io \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_serviceaccount_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_serviceaccount_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c2a93ca53960bf57424ff9d3f153e5cfbecb9a43 --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_serviceaccount_test.yaml @@ -0,0 +1,41 @@ +# +# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: ServiceAccount test +release: + name: ozgcloud-elasticsearch-operator + namespace: test-namespace +templates: + - templates/rbac/ozgcloud_elasticsearch_operator_serviceaccount.yaml +tests: + - it: test metadata + asserts: + - isKind: + of: ServiceAccount + - equal: + path: metadata.name + value: ozgcloud-elasticsearch-operator-serviceaccount + - equal: + path: metadata.namespace + value: test-namespace \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_role_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_role_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..587ac1c2a7b3cf717655ba3ead0057267f135acf --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_role_test.yaml @@ -0,0 +1,52 @@ +suite: elasticsearch_view_role test +release: + name: release-name +templates: + - templates/rbac/ozgcloud_elasticsearch_operator_view_role.yaml +tests: + - it: should have apiVersion + asserts: + - equal: + path: apiVersion + value: rbac.authorization.k8s.io/v1 + - it: should have isKind of + asserts: + - isKind: + of: ClusterRole + + - it: should have metadata name + asserts: + - equal: + path: metadata.name + value: ozgcloud-elasticsearch-operator-view-role + - it: should have metadata labels name + asserts: + - equal: + path: metadata.labels.[app.kubernetes.io/name] + value: release-name + - it: should have metadata labels instance + asserts: + - equal: + path: metadata.labels.[app.kubernetes.io/instance] + value: release-name + - it: should have metadata labels component + asserts: + - equal: + path: metadata.labels.[app.kubernetes.io/component] + value: ozgcloud-elasticsearch-operator + + - it: should have rules for ozgcloudelasticsearchs resource + asserts: + - contains: + path: rules + content: + apiGroups: + - operator.ozgcloud.de + resources: + - ozgcloudelasticsearchs + - ozgcloudelasticsearchs/status + - ozgcloudelasticsearchs/finalizers + verbs: + - get + - list + - watch diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_rolebinding_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_rolebinding_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e5191b1292c29fbe58af8360d27f0f954487980d --- /dev/null +++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_rolebinding_test.yaml @@ -0,0 +1,41 @@ + + +suite: elasticsearch_edit_rolebinding test +release: + namespace: sh-helm-test +templates: + - templates/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding.yaml +tests: + - it: should have apiVersion + asserts: + - equal: + path: apiVersion + value: rbac.authorization.k8s.io/v1 + - it: should have isKind of + asserts: + - isKind: + of: ClusterRoleBinding + + - it: should have metadata name + asserts: + - equal: + path: metadata.name + value: ozgcloud-elasticsearch-operator-edit-role-binding + + - it: should have subjects + asserts: + - equal: + path: subjects + value: + - kind: ServiceAccount + name: ozgcloud-elasticsearch-operator-serviceaccount + namespace: sh-helm-test + + - it: should have roleRef + asserts: + - equal: + path: roleRef + value: + kind: ClusterRole + name: ozgcloud-elasticsearch-operator-edit-role + apiGroup: rbac.authorization.k8s.io \ No newline at end of file diff --git a/ozgcloud-keycloak-operator/src/test/helm/rbacs/keycloak_admin_secret_read.yaml b/ozgcloud-keycloak-operator/src/test/helm/rbacs/keycloak_admin_secret_read_test.yaml similarity index 100% rename from ozgcloud-keycloak-operator/src/test/helm/rbacs/keycloak_admin_secret_read.yaml rename to ozgcloud-keycloak-operator/src/test/helm/rbacs/keycloak_admin_secret_read_test.yaml diff --git a/pom.xml b/pom.xml index fbde536279d9a6c6394e0b07f47c9eb7c1440ea3..d838746f194a6d7b00b70385a0a2d362f5dac0a1 100644 --- a/pom.xml +++ b/pom.xml @@ -55,6 +55,10 @@ <groupId>io.javaoperatorsdk</groupId> <artifactId>operator-framework-spring-boot-starter</artifactId> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-actuator</artifactId> + </dependency> <!-- tools --> <dependency>