feat: made compatible with OCP (OKD or OpenShift) (#953)
Reviewed-on: https://code.forgejo.org/forgejo-helm/forgejo-helm/pulls/953 Reviewed-by: Michael Kriese <michael.kriese@gmx.de> Co-authored-by: Lucien Weller <lucien@wellernet.ch> Co-committed-by: Lucien Weller <lucien@wellernet.ch>
This commit is contained in:
parent
b691f297f1
commit
8bd2c48184
4 changed files with 69 additions and 8 deletions
11
README.md
11
README.md
|
@ -689,6 +689,17 @@ gitea:
|
||||||
existingSecret: gitea-oauth-secret
|
existingSecret: gitea-oauth-secret
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Compatibility with OCP (OKD or OpenShift)
|
||||||
|
|
||||||
|
Normally OCP is automatically detected and the compatibility mode set accordingly. To enforce the OCP compatibility mode use the following configuration:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
global:
|
||||||
|
compatibility:
|
||||||
|
openshift:
|
||||||
|
adaptSecurityContext: force
|
||||||
|
```
|
||||||
|
|
||||||
## Configure commit signing
|
## Configure commit signing
|
||||||
|
|
||||||
When using the rootless image the gpg key folder is not persistent by default.
|
When using the rootless image the gpg key folder is not persistent by default.
|
||||||
|
|
|
@ -57,7 +57,7 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- include "gitea.images.pullSecrets" . | nindent 6 }}
|
{{- include "gitea.images.pullSecrets" . | nindent 6 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.podSecurityContext "context" $) | nindent 8 }}
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: init-directories
|
- name: init-directories
|
||||||
image: "{{ include "gitea.image" . }}"
|
image: "{{ include "gitea.image" . }}"
|
||||||
|
@ -91,7 +91,7 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- include "gitea.init-additional-mounts" . | nindent 12 }}
|
{{- include "gitea.init-additional-mounts" . | nindent 12 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{- toYaml .Values.containerSecurityContext | nindent 12 }}
|
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }}
|
||||||
resources:
|
resources:
|
||||||
{{- toYaml .Values.initContainers.resources | nindent 12 }}
|
{{- toYaml .Values.initContainers.resources | nindent 12 }}
|
||||||
- name: init-app-ini
|
- name: init-app-ini
|
||||||
|
@ -131,7 +131,7 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- include "gitea.init-additional-mounts" . | nindent 12 }}
|
{{- include "gitea.init-additional-mounts" . | nindent 12 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{- toYaml .Values.containerSecurityContext | nindent 12 }}
|
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }}
|
||||||
resources:
|
resources:
|
||||||
{{- toYaml .Values.initContainers.resources | nindent 12 }}
|
{{- toYaml .Values.initContainers.resources | nindent 12 }}
|
||||||
{{- if .Values.signing.enabled }}
|
{{- if .Values.signing.enabled }}
|
||||||
|
@ -145,7 +145,7 @@ spec:
|
||||||
{{- if not (hasKey $csc "runAsUser") -}}
|
{{- if not (hasKey $csc "runAsUser") -}}
|
||||||
{{- $_ := set $csc "runAsUser" 1000 -}}
|
{{- $_ := set $csc "runAsUser" 1000 -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- toYaml $csc | nindent 12 }}
|
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" $csc "context" $) | nindent 12 }}
|
||||||
env:
|
env:
|
||||||
- name: GNUPGHOME
|
- name: GNUPGHOME
|
||||||
value: {{ .Values.signing.gpgHome }}
|
value: {{ .Values.signing.gpgHome }}
|
||||||
|
@ -176,7 +176,7 @@ spec:
|
||||||
{{- if not (hasKey $csc "runAsUser") -}}
|
{{- if not (hasKey $csc "runAsUser") -}}
|
||||||
{{- $_ := set $csc "runAsUser" 1000 -}}
|
{{- $_ := set $csc "runAsUser" 1000 -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- toYaml $csc | nindent 12 }}
|
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" $csc "context" $) | nindent 12 }}
|
||||||
env:
|
env:
|
||||||
- name: GITEA_APP_INI
|
- name: GITEA_APP_INI
|
||||||
value: /data/gitea/conf/app.ini
|
value: /data/gitea/conf/app.ini
|
||||||
|
@ -327,9 +327,9 @@ spec:
|
||||||
securityContext:
|
securityContext:
|
||||||
{{- /* Honor the deprecated securityContext variable when defined */ -}}
|
{{- /* Honor the deprecated securityContext variable when defined */ -}}
|
||||||
{{- if .Values.containerSecurityContext -}}
|
{{- if .Values.containerSecurityContext -}}
|
||||||
{{ toYaml .Values.containerSecurityContext | nindent 12 -}}
|
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{ toYaml .Values.securityContext | nindent 12 -}}
|
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.securityContext "context" $) | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: temp
|
- name: temp
|
||||||
|
|
25
unittests/deployment/security-context-normal.yaml
Normal file
25
unittests/deployment/security-context-normal.yaml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# $schema: https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
|
||||||
|
suite: deployment template (security context)
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/deployment.yaml
|
||||||
|
- templates/gitea/config.yaml
|
||||||
|
tests:
|
||||||
|
- it: FS group set to 1000
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
image.rootless: false
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.securityContext.fsGroup
|
||||||
|
value: 1000
|
||||||
|
- it: run configure-gitea with UID 1000
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
image.rootless: false
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.initContainers[?(@.name == 'configure-gitea')].securityContext.runAsUser
|
||||||
|
value: 1000
|
25
unittests/deployment/security-context-ocp.yaml
Normal file
25
unittests/deployment/security-context-ocp.yaml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# $schema: https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
|
||||||
|
suite: deployment template (security context)
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/deployment.yaml
|
||||||
|
- templates/gitea/config.yaml
|
||||||
|
tests:
|
||||||
|
- it: FS group not set
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
image.rootless: false
|
||||||
|
global.compatibility.openshift.adaptSecurityContext: force
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.securityContext.fsGroup
|
||||||
|
- it: configure-gitea without runaAsUser
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
image.rootless: false
|
||||||
|
global.compatibility.openshift.adaptSecurityContext: force
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.initContainers[?(@.name == 'configure-gitea')].securityContext.runAsUser
|
Loading…
Reference in a new issue