Skip to content
Snippets Groups Projects
Commit 9ba3ef2c authored by OZGCloud's avatar OZGCloud
Browse files

Merge branch 'OZG-4453-SearchIndexOperator' of...

Merge branch 'OZG-4453-SearchIndexOperator' of git.ozg-sh.de:ozgcloud-devops/operator into OZG-4453-SearchIndexOperator

# Conflicts:
#	ozgcloud-elasticsearch-operator/src/main/resources/application.yml
parents e0f7d51c 947d027d
No related branches found
No related tags found
No related merge requests found
Showing
with 600 additions and 59 deletions
{{- define "app.matchLabels" }}
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/namespace: {{ .Release.Namespace }}
{{- end -}}
\ No newline at end of file
......@@ -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
......
#
# 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
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
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
#
# 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
#
# 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
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
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
#
# 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
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
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
image:
repo: docker.ozg-sh.de
elasticsearch:
namespace: elastic-system
adminSecretName: ozg-search-cluster-es-elastic-user
......@@ -7,3 +7,26 @@ ozgcloud:
host: ozg-search-cluster-es-http
port: 9200
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: "*"
......@@ -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:
......
#
# 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
#
# 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"
#
# 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
#
# 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
#
# 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment