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

Merge branch 'master' into OZG-4179-Suche-Autocomplete

parents d754bffa 1af27e67
No related branches found
No related tags found
No related merge requests found
Showing
with 322 additions and 19 deletions
...@@ -140,3 +140,7 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} ...@@ -140,3 +140,7 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }}
{{- $alphanumericClientName := (include "app.replaceAllNonAlphanumeric" $lowerClientName ) }} {{- $alphanumericClientName := (include "app.replaceAllNonAlphanumeric" $lowerClientName ) }}
{{- printf "%s-keycloak-client" ( $alphanumericClientName | trunc 20) }} {{- printf "%s-keycloak-client" ( $alphanumericClientName | trunc 20) }}
{{- end -}} {{- end -}}
{{- define "app.serviceAccountName" -}}
{{ printf "%s" ( (.Values.serviceAccount).name | default "alfa-service-account" ) }}
{{- end -}}
\ No newline at end of file
#
# Copyright (C) 2022 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: ConfigMap
metadata:
name: alfa-bindings-type
namespace: {{ include "app.namespace" . }}
data:
type: |
ca-certificates
\ No newline at end of file
...@@ -47,6 +47,9 @@ spec: ...@@ -47,6 +47,9 @@ spec:
{{- include "app.defaultLabels" . | indent 8 }} {{- include "app.defaultLabels" . | indent 8 }}
component: alfa component: alfa
spec: spec:
{{- if (.Values.serviceAccount).create }}
serviceAccountName: {{ include "app.serviceAccountName" . }}
{{- end }}
topologySpreadConstraints: topologySpreadConstraints:
- maxSkew: 1 - maxSkew: 1
topologyKey: kubernetes.io/hostname topologyKey: kubernetes.io/hostname
...@@ -134,7 +137,13 @@ spec: ...@@ -134,7 +137,13 @@ spec:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
privileged: false privileged: false
readOnlyRootFilesystem: false readOnlyRootFilesystem: false
runAsNonRoot: false runAsNonRoot: true
{{- with (.Values.securityContext).runAsUser }}
runAsUser: {{ . }}
{{- end }}
{{- with (.Values.securityContext).runAsGroup }}
runAsGroup: {{ . }}
{{- end }}
stdin: true stdin: true
terminationMessagePath: /dev/termination-log terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File terminationMessagePolicy: File
...@@ -150,20 +159,39 @@ spec: ...@@ -150,20 +159,39 @@ spec:
readOnly: true readOnly: true
- name: temp-dir - name: temp-dir
mountPath: "/tmp" mountPath: "/tmp"
{{- if (.Values.sso).tlsCertName }}
- name: sso-tls-certificate
mountPath: "/bindings/ca-certificates/sso-tls-crt.pem"
subPath: tls.crt
readOnly: true
{{- end }}
volumes: volumes:
- name: bindings - name: bindings
configMap: configMap:
name: bindings-type name: alfa-bindings-type
- name: user-manager-tls-certificate - name: user-manager-tls-certificate
secret: secret:
secretName: user-manager-tls-cert secretName: user-manager-tls-cert
- name: temp-dir - name: temp-dir
emptyDir: {} emptyDir: {}
{{- if (.Values.sso).tlsCertName }}
- name: sso-tls-certificate
secret:
secretName: {{ .Values.sso.tlsCertName }}
{{- end }}
dnsConfig: {} dnsConfig: {}
dnsPolicy: ClusterFirst dnsPolicy: ClusterFirst
imagePullSecrets: imagePullSecrets:
{{- if .Values.imagePullSecret }}
- name: {{ .Values.imagePullSecret }}
{{ else }}
- name: alfa-image-pull-secret - name: alfa-image-pull-secret
{{- end }}
restartPolicy: Always restartPolicy: Always
{{- with .Values.hostAliases }}
hostAliases:
{{ toYaml . | indent 8 }}
{{- end }}
schedulerName: default-scheduler schedulerName: default-scheduler
securityContext: {} securityContext: {}
terminationGracePeriodSeconds: 30 terminationGracePeriodSeconds: 30
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
# unter der Lizenz sind dem Lizenztext zu entnehmen. # unter der Lizenz sind dem Lizenztext zu entnehmen.
# #
{{- if not (.Values.imagePullSecret) }}
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
...@@ -30,3 +31,4 @@ metadata: ...@@ -30,3 +31,4 @@ metadata:
type: kubernetes.io/dockerconfigjson type: kubernetes.io/dockerconfigjson
data: data:
.dockerconfigjson: {{ include "app.imagePullSecret" . }} .dockerconfigjson: {{ include "app.imagePullSecret" . }}
{{- end }}
\ No newline at end of file
...@@ -26,7 +26,11 @@ apiVersion: networking.k8s.io/v1 ...@@ -26,7 +26,11 @@ apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
annotations: annotations:
{{- if (.Values.ingress).use_staging_cert }} {{- if (.Values.ingress).certManagerAnnotations -}}
{{- range (.Values.ingress).certManagerAnnotations }}
{{ . | indent 4 }}
{{- end }}
{{- else if (.Values.ingress).use_staging_cert }}
cert-manager.io/cluster-issuer: letsencrypt-staging cert-manager.io/cluster-issuer: letsencrypt-staging
{{- else }} {{- else }}
cert-manager.io/cluster-issuer: letsencrypt-prod cert-manager.io/cluster-issuer: letsencrypt-prod
...@@ -52,6 +56,8 @@ spec: ...@@ -52,6 +56,8 @@ spec:
tls: tls:
- hosts: - hosts:
- {{ trimPrefix "https://" ( include "app.baseUrl" . ) }} - {{ trimPrefix "https://" ( include "app.baseUrl" . ) }}
{{- if ne (.Values).cluster_env "dataport" }} {{- if (.Values.ingress).tlsSecretName }}
secretName: {{ (.Values.ingress).tlsSecretName }}
{{- else if ne (.Values).cluster_env "dataport" }}
secretName: {{ .Values.ozgcloud.bezeichner }}-{{ include "app.name" . }}-tls secretName: {{ .Values.ozgcloud.bezeichner }}-{{ include "app.name" . }}-tls
{{- end }} {{- end }}
\ No newline at end of file
{{- if not (.Values.sso).disableOzgOperator -}}
{{ range $client := .Values.sso.keycloak_clients }} {{ range $client := .Values.sso.keycloak_clients }}
--- ---
{{- if $client.kopOperator }} {{- if $client.kopOperator }}
...@@ -59,3 +60,4 @@ spec: ...@@ -59,3 +60,4 @@ spec:
{{- end }} {{- end }}
{{- end }} {{- end }}
{{ end }} {{ end }}
{{- end -}}
\ No newline at end of file
--- {{- if not (.Values.sso).disableOzgOperator -}}
apiVersion: operator.ozgcloud.de/v1 apiVersion: operator.ozgcloud.de/v1
kind: OzgCloudKeycloakRealm kind: OzgCloudKeycloakRealm
metadata: metadata:
...@@ -7,3 +7,4 @@ metadata: ...@@ -7,3 +7,4 @@ metadata:
spec: spec:
keep_after_delete: {{ .Values.sso.keep_after_delete | default false }} keep_after_delete: {{ .Values.sso.keep_after_delete | default false }}
displayName: {{ include "app.ssoRealmDisplayName" . }} displayName: {{ include "app.ssoRealmDisplayName" . }}
{{- end -}}
\ No newline at end of file
{{- if not (.Values.sso).disableOzgOperator -}}
{{ range $group := .Values.sso.keycloak_groups }} {{ range $group := .Values.sso.keycloak_groups }}
--- ---
apiVersion: operator.ozgcloud.de/v1 apiVersion: operator.ozgcloud.de/v1
...@@ -16,3 +17,4 @@ spec: ...@@ -16,3 +17,4 @@ spec:
{{- end }} {{- end }}
{{- end }} {{- end }}
{{ end }} {{ end }}
{{- end -}}
\ No newline at end of file
{{- if not (.Values.sso).disableOzgOperator -}}
{{ range $user := concat (.Values.sso.api_users | default list) (.Values.sso.keycloak_users | default list) }} {{ range $user := concat (.Values.sso.api_users | default list) (.Values.sso.keycloak_users | default list) }}
--- ---
{{- if $user.kopOperator }} {{- if $user.kopOperator }}
...@@ -42,3 +43,4 @@ spec: ...@@ -42,3 +43,4 @@ spec:
{{- end }} {{- end }}
{{- end }} {{- end }}
{{ end }} {{ end }}
{{- end -}}
\ No newline at end of file
{{- if not (.Values.sso).disableOzgOperator }}
{{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }} {{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role kind: Role
...@@ -17,3 +18,4 @@ rules: ...@@ -17,3 +18,4 @@ rules:
- get - get
- list - list
{{- end }} {{- end }}
{{- end }}
\ No newline at end of file
{{- if not (.Values.sso).disableOzgOperator }}
{{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }} {{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
...@@ -13,3 +14,4 @@ roleRef: ...@@ -13,3 +14,4 @@ roleRef:
name: ozgcloud-keycloak-operator-secrets-read-role-alfa name: ozgcloud-keycloak-operator-secrets-read-role-alfa
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
{{- end }} {{- end }}
{{- end }}
\ No newline at end of file
{{- if not (.Values.sso).disableOzgOperator }}
{{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }} {{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role kind: Role
...@@ -12,3 +13,4 @@ rules: ...@@ -12,3 +13,4 @@ rules:
verbs: verbs:
- create - create
{{- end }} {{- end }}
{{- end }}
\ No newline at end of file
{{- if not (.Values.sso).disableOzgOperator }}
{{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }} {{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
...@@ -13,3 +14,4 @@ roleRef: ...@@ -13,3 +14,4 @@ roleRef:
name: ozgcloud-keycloak-operator-secrets-write-role-alfa name: ozgcloud-keycloak-operator-secrets-write-role-alfa
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
{{- end }} {{- end }}
{{- end }}
\ No newline at end of file
#
# Copyright (C) 2022 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.
#
{{- if (.Values.serviceAccount).create }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "app.serviceAccountName" . }}
namespace: {{ include "app.namespace" . }}
{{- end }}
\ No newline at end of file
...@@ -29,11 +29,6 @@ baseUrl: dev.by.ozg-cloud.de ...@@ -29,11 +29,6 @@ baseUrl: dev.by.ozg-cloud.de
sso: sso:
serverUrl: https://sso.dev.by.ozg-cloud.de serverUrl: https://sso.dev.by.ozg-cloud.de
imageCredentials:
registry: docker.ozg-sh.de
username: ozgcloud
password:
email: webmaster@ozg-sh.de
image: image:
repo: docker.ozg-sh.de repo: docker.ozg-sh.de
......
#
# Copyright (C) 2022 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: Certificate ConfigMap Binding
release:
name: alfa
namespace: sh-helm-test
templates:
- templates/bindings_type_configmap.yaml
tests:
- it: validate configMap values
asserts:
- isKind:
of: ConfigMap
- equal:
path: metadata.name
value: bindings-type
- equal:
path: metadata.namespace
value: sh-helm-test
- equal:
path: data
value:
type: |
ca-certificates
\ No newline at end of file
...@@ -52,6 +52,13 @@ tests: ...@@ -52,6 +52,13 @@ tests:
content: content:
name: temp-dir name: temp-dir
mountPath: "/tmp" mountPath: "/tmp"
- notContains:
path: spec.template.spec.containers[0].volumeMounts
content:
name: sso-tls-certificate
mountPath: "/bindings/ca-certificates/ssl-tls-ca.pem"
subPath: ca.crt
readOnly: true
- it: should have volume mounts - it: should have volume mounts
set: set:
usermanagerName: user-manager usermanagerName: user-manager
...@@ -61,7 +68,7 @@ tests: ...@@ -61,7 +68,7 @@ tests:
content: content:
name: bindings name: bindings
configMap: configMap:
name: bindings-type name: alfa-bindings-type
- contains: - contains:
path: spec.template.spec.volumes path: spec.template.spec.volumes
content: content:
...@@ -73,3 +80,25 @@ tests: ...@@ -73,3 +80,25 @@ tests:
content: content:
name: temp-dir name: temp-dir
emptyDir: {} emptyDir: {}
- notContains:
path: spec.template.spec.volumes
content:
name: sso-tls-certificate
- it: should have sso tls cert mount
set:
usermanagerName: user-manager
sso.tlsCertName: sso-tls-cert
asserts:
- contains:
path: spec.template.spec.volumes
content:
name: sso-tls-certificate
secret:
secretName: sso-tls-cert
- contains:
path: spec.template.spec.containers[0].volumeMounts
content:
name: sso-tls-certificate
mountPath: "/bindings/ca-certificates/sso-tls-crt.pem"
subPath: tls.crt
readOnly: true
\ No newline at end of file
...@@ -29,7 +29,7 @@ release: ...@@ -29,7 +29,7 @@ release:
templates: templates:
- templates/deployment.yaml - templates/deployment.yaml
tests: tests:
- it: should work - it: check default values
asserts: asserts:
- isKind: - isKind:
of: Deployment of: Deployment
...@@ -44,4 +44,22 @@ tests: ...@@ -44,4 +44,22 @@ tests:
value: false value: false
- equal: - equal:
path: spec.template.spec.containers[0].securityContext.runAsNonRoot path: spec.template.spec.containers[0].securityContext.runAsNonRoot
value: false value: true
- isNull:
path: spec.template.spec.containers[0].securityContext.runAsUser
- isNull:
path: spec.template.spec.containers[0].securityContext.runAsGroup
- it: check runAsUser
set:
securityContext.runAsUser: 1000
asserts:
- equal:
path: spec.template.spec.containers[0].securityContext.runAsUser
value: 1000
- it: check runAsGroup
set:
securityContext.runAsGroup: 1000
asserts:
- equal:
path: spec.template.spec.containers[0].securityContext.runAsGroup
value: 1000
\ No newline at end of file
#
# Copyright (C) 2022 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 host aliases
release:
name: alfa
namespace: sh-helm-test
templates:
- templates/deployment.yaml
tests:
- it: should not set hostAliases
asserts:
- isNull:
path: spec.template.spec.hostAliases
- it: should set hostAliases
set:
hostAliases:
- ip: "127.0.0.1"
hostname:
- "eins"
- "zwei"
asserts:
- contains:
path: spec.template.spec.hostAliases
content:
ip: "127.0.0.1"
hostname:
- "eins"
- "zwei"
#
# Copyright (C) 2022 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 deployment
release:
name: alfa
namespace: sh-helm-test
templates:
- templates/deployment.yaml
tests:
- it: should use default imagePull secret
asserts:
- isKind:
of: Deployment
- equal:
path: spec.template.spec.imagePullSecrets[0].name
value: alfa-image-pull-secret
- it: should set the imagePull secret
set:
imagePullSecret: image-pull-secret
asserts:
- isKind:
of: Deployment
- equal:
path: spec.template.spec.imagePullSecrets[0].name
value: image-pull-secret
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment