mirror of
https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk.git
synced 2025-12-07 16:01:37 +01:00
fix(helmfile): Add seLinuxOptions for all applications
This commit is contained in:
committed by
Thorsten Rossner
parent
c2087efcf9
commit
02d04faa2a
@@ -126,7 +126,7 @@ securityContext:
|
|||||||
- "NET_RAW"
|
- "NET_RAW"
|
||||||
- "SYS_CHROOT"
|
- "SYS_CHROOT"
|
||||||
- "MKNOD"
|
- "MKNOD"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.collabora }}
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
create: true
|
create: true
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ securityContext:
|
|||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
runAsUser: 4001
|
runAsUser: 4001
|
||||||
runAsGroup: 4001
|
runAsGroup: 4001
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.cryptpad }}
|
||||||
|
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
create: true
|
create: true
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.element }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.matrixNeoBoardWidget }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.matrixNeoChoiceWidget }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -35,5 +35,6 @@ securityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.synapseCreateUser }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.matrixNeoDateFixBot }}
|
||||||
|
|
||||||
extraEnvVars:
|
extraEnvVars:
|
||||||
- name: "ACCESS_TOKEN"
|
- name: "ACCESS_TOKEN"
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.matrixNeoDateFixWidget }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -35,4 +35,5 @@ securityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.synapseCreateUser }}
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.matrixUserVerificationService }}
|
||||||
|
|
||||||
extraEnvVars:
|
extraEnvVars:
|
||||||
- name: "UVS_ACCESS_TOKEN"
|
- name: "UVS_ACCESS_TOKEN"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.synapseWeb }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ containerSecurityContext:
|
|||||||
runAsGroup: 10991
|
runAsGroup: 10991
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.synapse }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.wellKnown }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.intercom }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 1993
|
runAsUser: 1993
|
||||||
runAsGroup: 1993
|
runAsGroup: 1993
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.jitsiKeycloakAdapter }}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
||||||
@@ -74,6 +75,7 @@ jitsi:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.jitsi }}
|
||||||
prosody:
|
prosody:
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.prosody.registry }}/{{ .Values.images.prosody.repository }}"
|
repository: "{{ .Values.global.imageRegistry | default .Values.images.prosody.registry }}/{{ .Values.images.prosody.repository }}"
|
||||||
@@ -121,6 +123,7 @@ jitsi:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.prosody }}
|
||||||
jicofo:
|
jicofo:
|
||||||
replicaCount: {{ .Values.replicas.jicofo }}
|
replicaCount: {{ .Values.replicas.jicofo }}
|
||||||
image:
|
image:
|
||||||
@@ -142,6 +145,7 @@ jitsi:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.jicofo }}
|
||||||
jvb:
|
jvb:
|
||||||
replicaCount: {{ .Values.replicas.jvb }}
|
replicaCount: {{ .Values.replicas.jvb }}
|
||||||
image:
|
image:
|
||||||
@@ -164,6 +168,7 @@ jitsi:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.jvb }}
|
||||||
jibri:
|
jibri:
|
||||||
replicaCount: {{ .Values.replicas.jibri }}
|
replicaCount: {{ .Values.replicas.jibri }}
|
||||||
image:
|
image:
|
||||||
@@ -201,6 +206,7 @@ patchJVB:
|
|||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.jitsiPatchJVB }}
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.jitsiPatchJVB.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.jitsiPatchJVB.registry | quote }}
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.nextcloudManagement }}
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"1"{{ end }}
|
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"1"{{ end }}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ exporter:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.nextcloudExporter }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.nextcloudExporter.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.nextcloudExporter.registry | quote }}
|
||||||
repository: "{{ .Values.images.nextcloudExporter.repository }}"
|
repository: "{{ .Values.images.nextcloudExporter.repository }}"
|
||||||
@@ -77,6 +78,7 @@ php:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.nextcloudPHP }}
|
||||||
cron:
|
cron:
|
||||||
successfulJobsHistoryLimit: {{ if .Values.debug.enabled }}"3"{{ else }}"0"{{ end }}
|
successfulJobsHistoryLimit: {{ if .Values.debug.enabled }}"3"{{ else }}"0"{{ end }}
|
||||||
debug:
|
debug:
|
||||||
@@ -116,6 +118,7 @@ apache2:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.nextcloudApache2 }}
|
||||||
ingress:
|
ingress:
|
||||||
enabled: {{ .Values.ingress.enabled }}
|
enabled: {{ .Values.ingress.enabled }}
|
||||||
ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
|
ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ containerSecurityContext:
|
|||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.dovecot }}
|
||||||
|
|
||||||
podSecurityContext:
|
podSecurityContext:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ nextcloud-integration-ui:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeNextcloudIntegrationUI }}
|
||||||
|
|
||||||
public-sector-ui:
|
public-sector-ui:
|
||||||
image:
|
image:
|
||||||
@@ -66,6 +67,7 @@ public-sector-ui:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangePublicSectorUI }}
|
||||||
|
|
||||||
appsuite:
|
appsuite:
|
||||||
appsuite-toolkit:
|
appsuite-toolkit:
|
||||||
@@ -129,6 +131,7 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeGotenberg }}
|
||||||
hooks:
|
hooks:
|
||||||
beforeAppsuiteStart:
|
beforeAppsuiteStart:
|
||||||
create-guard-dir.sh: |
|
create-guard-dir.sh: |
|
||||||
@@ -353,6 +356,7 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeCoreUI }}
|
||||||
|
|
||||||
core-ui-middleware:
|
core-ui-middleware:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -394,7 +398,7 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeCoreUIMiddleware }}
|
||||||
core-cacheservice:
|
core-cacheservice:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
@@ -424,6 +428,7 @@ appsuite:
|
|||||||
- "ALL"
|
- "ALL"
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeDocumentConverter }}
|
||||||
|
|
||||||
core-documents-collaboration:
|
core-documents-collaboration:
|
||||||
enabled: false
|
enabled: false
|
||||||
@@ -465,6 +470,7 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeCoreGuidedtours }}
|
||||||
|
|
||||||
core-imageconverter:
|
core-imageconverter:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -494,6 +500,7 @@ appsuite:
|
|||||||
- "ALL"
|
- "ALL"
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeImageConverter }}
|
||||||
|
|
||||||
guard-ui:
|
guard-ui:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -519,7 +526,7 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeGuardUI }}
|
||||||
core-spellcheck:
|
core-spellcheck:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
@@ -548,4 +555,5 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeCoreUserGuide }}
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openprojectBootstrap }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openprojectBootstrap.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.openprojectBootstrap.registry | quote }}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.openproject }}
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
# For more details and more options see
|
# For more details and more options see
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ securityContext:
|
|||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.oxConnector }}
|
||||||
|
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
create: true
|
create: true
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ clamd:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.clamd }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.clamd.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.clamd.registry | quote }}
|
||||||
repository: {{ .Values.images.clamd.repository | quote }}
|
repository: {{ .Values.images.clamd.repository | quote }}
|
||||||
@@ -40,6 +41,7 @@ containerSecurityContext:
|
|||||||
capabilities:
|
capabilities:
|
||||||
drop: []
|
drop: []
|
||||||
privileged: false
|
privileged: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.clamav }}
|
||||||
|
|
||||||
freshclam:
|
freshclam:
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
@@ -55,6 +57,7 @@ freshclam:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.freshclam }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.freshclam.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.freshclam.registry | quote }}
|
||||||
repository: {{ .Values.images.freshclam.repository | quote }}
|
repository: {{ .Values.images.freshclam.repository | quote }}
|
||||||
@@ -86,6 +89,7 @@ icap:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.icap }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.icap.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.icap.registry | quote }}
|
||||||
repository: {{ .Values.images.icap.repository | quote }}
|
repository: {{ .Values.images.icap.repository | quote }}
|
||||||
@@ -113,6 +117,7 @@ milter:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.milter }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.milter.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.milter.registry | quote }}
|
||||||
repository: {{ .Values.images.milter.repository | quote }}
|
repository: {{ .Values.images.milter.repository | quote }}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.clamavSimple }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.mariadb }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ containerSecurityContext:
|
|||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.memcached }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ containerSecurityContext:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.minio }}
|
||||||
|
|
||||||
defaultBuckets: "openproject,openxchange,ums,nextcloud"
|
defaultBuckets: "openproject,openxchange,ums,nextcloud"
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
privileged: true
|
privileged: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.postfix }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.postgresql }}
|
||||||
|
|
||||||
job:
|
job:
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ master:
|
|||||||
capabilities:
|
capabilities:
|
||||||
drop:
|
drop:
|
||||||
- "ALL"
|
- "ALL"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.redis }}
|
||||||
count: {{ .Values.replicas.redis }}
|
count: {{ .Values.replicas.redis }}
|
||||||
persistence:
|
persistence:
|
||||||
size: {{ .Values.persistence.size.redis | quote }}
|
size: {{ .Values.persistence.size.redis | quote }}
|
||||||
|
|||||||
@@ -55,5 +55,6 @@ securityContext:
|
|||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsGuardianAuthorizationApi }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -73,5 +73,6 @@ securityContext:
|
|||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsGuardianManagementApi }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -46,5 +46,6 @@ securityContext:
|
|||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsGuardianManagementUi }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsLdapNotifier }}
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
claims:
|
claims:
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsLdapServer }}
|
||||||
|
|
||||||
service:
|
service:
|
||||||
type: "ClusterIP"
|
type: "ClusterIP"
|
||||||
|
|||||||
@@ -44,5 +44,6 @@ securityContext:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsNotificationsApi }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -46,5 +46,6 @@ securityContext:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsOpenPolicyAgent }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -597,6 +597,7 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.opendeskKeycloakBootstrap }}
|
||||||
|
|
||||||
podAnnotations:
|
podAnnotations:
|
||||||
intents.otterize.com/service-name: "ums-keycloak-bootstrap"
|
intents.otterize.com/service-name: "ums-keycloak-bootstrap"
|
||||||
|
|||||||
@@ -110,5 +110,5 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsPortalFrontend }}
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -75,5 +75,6 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsPortalListener }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -50,5 +50,6 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsPortalServer }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ dispatcher:
|
|||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsProvisioningDispatcher }}
|
||||||
|
|
||||||
events-and-consumer-api:
|
events-and-consumer-api:
|
||||||
image:
|
image:
|
||||||
@@ -62,6 +63,7 @@ events-and-consumer-api:
|
|||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsProvisioningEventsAndConsumerApi }}
|
||||||
|
|
||||||
udm-listener:
|
udm-listener:
|
||||||
image:
|
image:
|
||||||
@@ -104,6 +106,7 @@ udm-listener:
|
|||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsProvisioningUdmListener }}
|
||||||
|
|
||||||
nats:
|
nats:
|
||||||
global:
|
global:
|
||||||
|
|||||||
@@ -73,5 +73,6 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsSelfserviceListener }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsDataLoader }}
|
||||||
|
|
||||||
stackDataContext:
|
stackDataContext:
|
||||||
ldapBase: "dc=swp-ldap,dc=internal"
|
ldapBase: "dc=swp-ldap,dc=internal"
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsDataLoader }}
|
||||||
|
|
||||||
stackDataContext:
|
stackDataContext:
|
||||||
idpSamlMetadataUrlInternal: null
|
idpSamlMetadataUrlInternal: null
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsStoreDav }}
|
||||||
|
|
||||||
storeDav:
|
storeDav:
|
||||||
auth:
|
auth:
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsUdmRestApi }}
|
||||||
|
|
||||||
udmRestApi:
|
udmRestApi:
|
||||||
# TODO: Stub value currently
|
# TODO: Stub value currently
|
||||||
|
|||||||
@@ -58,5 +58,6 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsUmcGateway }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsUmcServer }}
|
||||||
|
|
||||||
umcServer:
|
umcServer:
|
||||||
certPemFile: "/var/secrets/ssl/tls.crt"
|
certPemFile: "/var/secrets/ssl/tls.crt"
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsKeycloakBootstrap }}
|
||||||
|
|
||||||
podAnnotations:
|
podAnnotations:
|
||||||
intents.otterize.com/service-name: "ums-keycloak-bootstrap"
|
intents.otterize.com/service-name: "ums-keycloak-bootstrap"
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ handler:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsKeycloakExtensionHandler }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsKeycloakExtensionHandler | toYaml | nindent 4 }}
|
{{ .Values.resources.umsKeycloakExtensionHandler | toYaml | nindent 4 }}
|
||||||
postgresql:
|
postgresql:
|
||||||
@@ -88,6 +89,7 @@ proxy:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsKeycloakExtensionProxy }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsKeycloakExtensionProxy | toYaml | nindent 4 }}
|
{{ .Values.resources.umsKeycloakExtensionProxy | toYaml | nindent 4 }}
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ containerSecurityContext:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsKeycloak }}
|
||||||
|
|
||||||
podSecurityContext:
|
podSecurityContext:
|
||||||
fsGroup: 1000
|
fsGroup: 1000
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ containerSecurityContext:
|
|||||||
- "ALL"
|
- "ALL"
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.umsStackGateway }}
|
||||||
|
|
||||||
service:
|
service:
|
||||||
type: "ClusterIP"
|
type: "ClusterIP"
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ containerSecurityContext:
|
|||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
|
seLinuxOptions: {{ .Values.seLinuxOptions.xwiki }}
|
||||||
|
|
||||||
customConfigs:
|
customConfigs:
|
||||||
xwiki.cfg:
|
xwiki.cfg:
|
||||||
|
|||||||
95
helmfile/environments/default/selinux.yaml
Normal file
95
helmfile/environments/default/selinux.yaml
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# Disclaimer:
|
||||||
|
# We assume that you are very aware of what you are doing when working wih SELinux settings and that you can easily
|
||||||
|
# break the affected components with these settings.
|
||||||
|
---
|
||||||
|
seLinuxOptions:
|
||||||
|
clamavSimple: ~
|
||||||
|
clamd: ~
|
||||||
|
collabora: ~
|
||||||
|
cryptpad: ~
|
||||||
|
dovecot: ~
|
||||||
|
element: ~
|
||||||
|
freshclam: ~
|
||||||
|
icap: ~
|
||||||
|
intercom: ~
|
||||||
|
# The Jibri Helm chart does not support setting the securityContext externally.
|
||||||
|
#jibri: ~
|
||||||
|
jicofo: ~
|
||||||
|
jitsi: ~
|
||||||
|
jitsiKeycloakAdapter: ~
|
||||||
|
jitsiPatchJVB: ~
|
||||||
|
jvb: ~
|
||||||
|
mariadb: ~
|
||||||
|
matrixNeoBoardWidget: ~
|
||||||
|
matrixNeoChoiceWidget: ~
|
||||||
|
matrixNeoDateFixBot: ~
|
||||||
|
matrixNeoDateFixWidget: ~
|
||||||
|
matrixUserVerificationService: ~
|
||||||
|
memcached: ~
|
||||||
|
milter: ~
|
||||||
|
minio: ~
|
||||||
|
nextcloudApache2: ~
|
||||||
|
nextcloudExporter: ~
|
||||||
|
nextcloudManagement: ~
|
||||||
|
nextcloudPHP: ~
|
||||||
|
opendeskKeycloakBootstrap: ~
|
||||||
|
openproject: ~
|
||||||
|
openprojectBootstrap: ~
|
||||||
|
openprojectInitDb: ~
|
||||||
|
openxchangeBootstrap: ~
|
||||||
|
openxchangeCoreGuidedtours: ~
|
||||||
|
openxchangeCoreMW: ~
|
||||||
|
openxchangeCoreUI: ~
|
||||||
|
openxchangeCoreUIMiddleware: ~
|
||||||
|
openxchangeCoreUserGuide: ~
|
||||||
|
openxchangeDocumentConverter: ~
|
||||||
|
openxchangeGotenberg: ~
|
||||||
|
openxchangeGuardUI: ~
|
||||||
|
openxchangeImageConverter: ~
|
||||||
|
openxchangeNextcloudIntegrationUI: ~
|
||||||
|
openxchangePublicSectorUI: ~
|
||||||
|
oxConnector: ~
|
||||||
|
postfix: ~
|
||||||
|
postgresql: ~
|
||||||
|
prosody: ~
|
||||||
|
redis: ~
|
||||||
|
synapse: ~
|
||||||
|
synapseCreateUser: ~
|
||||||
|
synapseGuestModule: ~
|
||||||
|
synapseWeb: ~
|
||||||
|
umsConfigHtpasswd: ~
|
||||||
|
umsDataLoader: ~
|
||||||
|
umsGuardianAuthorizationApi: ~
|
||||||
|
umsGuardianManagementApi: ~
|
||||||
|
umsGuardianManagementUi: ~
|
||||||
|
umsKeycloak: ~
|
||||||
|
umsKeycloakBootstrap: ~
|
||||||
|
umsKeycloakExtensionHandler: ~
|
||||||
|
umsKeycloakExtensionProxy: ~
|
||||||
|
umsLdapNotifier: ~
|
||||||
|
umsLdapServer: ~
|
||||||
|
umsNotificationsApi: ~
|
||||||
|
umsOpenPolicyAgent: ~
|
||||||
|
umsPortalFrontend: ~
|
||||||
|
umsPortalListener: ~
|
||||||
|
umsPortalServer: ~
|
||||||
|
umsProvisioningDispatcher: ~
|
||||||
|
umsProvisioningEventsAndConsumerApi: ~
|
||||||
|
umsProvisioningNats: ~
|
||||||
|
umsProvisioningNatsBox: ~
|
||||||
|
umsProvisioningNatsReloader: ~
|
||||||
|
umsProvisioningUdmListener: ~
|
||||||
|
umsSelfserviceInvitation: ~
|
||||||
|
umsSelfserviceListener: ~
|
||||||
|
umsStackGateway: ~
|
||||||
|
umsStoreDav: ~
|
||||||
|
umsUdmRestApi: ~
|
||||||
|
umsUmcGateway: ~
|
||||||
|
umsUmcServer: ~
|
||||||
|
umsWaitForDependency: ~
|
||||||
|
wellKnown: ~
|
||||||
|
xwiki: ~
|
||||||
|
...
|
||||||
Reference in New Issue
Block a user