mirror of
https://github.com/suitenumerique/docs.git
synced 2026-09-03 08:18:47 +02:00
⚡️(helm) create a dedicated svc and deployment for yprovider converter
We want to isolate the converter service built in the yprovider server in order to not mix conversion and collaboration together. We decided to create a dedicated service and deployment, by default they use the values defined in yProvider values but all can be overridden in yProvider.converter. Also, by default these new service and deployment are not enabled, they must be explictly enabled and configured. If not it works like now with only one service and deployment for the yProvider server.
This commit is contained in:
@@ -12,6 +12,7 @@ and this project adheres to
|
||||
- ✨(frontend) comment side panel #2279
|
||||
- ✨(buildpack) add PaaS deployment support, tested with Scalingo #2293
|
||||
- 🔧(backend) allow configuring settings OIDC_OP_USER_ENDPOINT_FORMAT
|
||||
- ⚡️(helm) create a dedicated svc and deployment for yprovider converter #2368
|
||||
|
||||
### Changed
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ backend:
|
||||
replicas: 1
|
||||
envVars:
|
||||
COLLABORATION_SERVER_SECRET: my-secret
|
||||
CONVERSION_UPLOAD_ENABLED: True
|
||||
DJANGO_CSRF_TRUSTED_ORIGINS: https://docs.127.0.0.1.nip.io
|
||||
DJANGO_CONFIGURATION: Feature
|
||||
DJANGO_ALLOWED_HOSTS: docs.127.0.0.1.nip.io
|
||||
@@ -71,7 +72,7 @@ backend:
|
||||
STORAGES_STATICFILES_BACKEND: django.contrib.staticfiles.storage.StaticFilesStorage
|
||||
DOCSPEC_API_URL: http://impress-docs-docspec:4000/conversion
|
||||
USER_RECONCILIATION_FORM_URL: https://docs.127.0.0.1.nip.io
|
||||
Y_PROVIDER_API_BASE_URL: http://impress-docs-y-provider:443/api/
|
||||
Y_PROVIDER_API_BASE_URL: http://impress-docs-y-provider-converter:443/api/
|
||||
Y_PROVIDER_API_KEY: my-secret
|
||||
CACHES_KEY_PREFIX: "{{ now | unixEpoch }}"
|
||||
django:
|
||||
@@ -153,6 +154,11 @@ frontend:
|
||||
runAsNonRoot: false
|
||||
|
||||
yProvider:
|
||||
|
||||
converter:
|
||||
enabled: true
|
||||
replicas: 2
|
||||
|
||||
replicas: 1
|
||||
|
||||
image:
|
||||
|
||||
@@ -17,6 +17,7 @@ backend:
|
||||
replicas: 1
|
||||
envVars:
|
||||
COLLABORATION_SERVER_SECRET: my-secret
|
||||
CONVERSION_UPLOAD_ENABLED: True
|
||||
DJANGO_CSRF_TRUSTED_ORIGINS: https://{{ .Values.feature }}-docs.{{ .Values.domain }}
|
||||
DJANGO_CONFIGURATION: Feature
|
||||
DJANGO_ALLOWED_HOSTS: {{ .Values.feature }}-docs.{{ .Values.domain }}
|
||||
@@ -71,7 +72,7 @@ backend:
|
||||
STORAGES_STATICFILES_BACKEND: django.contrib.staticfiles.storage.StaticFilesStorage
|
||||
DOCSPEC_API_URL: http://impress-docs-docspec:4000/conversion
|
||||
USER_RECONCILIATION_FORM_URL: https://{{ .Values.feature }}-docs.{{ .Values.domain }}
|
||||
Y_PROVIDER_API_BASE_URL: http://impress-docs-y-provider:443/api/
|
||||
Y_PROVIDER_API_BASE_URL: http://impress-docs-y-provider-converter:443/api/
|
||||
Y_PROVIDER_API_KEY: my-secret
|
||||
CACHES_KEY_PREFIX: "{{ now | unixEpoch }}"
|
||||
migrate:
|
||||
@@ -131,6 +132,11 @@ frontend:
|
||||
tag: *tag
|
||||
|
||||
yProvider:
|
||||
|
||||
converter:
|
||||
enabled: true
|
||||
replicas: 1
|
||||
|
||||
replicas: 1
|
||||
|
||||
image:
|
||||
|
||||
@@ -186,6 +186,15 @@ Requires top level scope
|
||||
{{ include "impress.fullname" . }}-y-provider
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Full name for the yProvider converter
|
||||
|
||||
Requires top level scope
|
||||
*/}}
|
||||
{{- define "impress.yProvider.converter.fullname" -}}
|
||||
{{ include "impress.yProvider.fullname" . }}-converter
|
||||
{{- end }}
|
||||
|
||||
|
||||
{{/*
|
||||
Full name for the docSpec
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
{{ if .Values.yProvider.converter.enabled -}}
|
||||
{{- $yProvider := .Values.yProvider -}}
|
||||
{{- $converter := .Values.yProvider.converter -}}
|
||||
{{- $service := mergeOverwrite (dict) (default dict $yProvider.service) (default dict $converter.service) -}}
|
||||
{{- $image := mergeOverwrite (dict) (default dict $yProvider.image) (default dict $converter.image) -}}
|
||||
{{- $probes := mergeOverwrite (dict) (default dict $yProvider.probes) (default dict $converter.probes) -}}
|
||||
{{- $pdb := mergeOverwrite (dict) (default dict $yProvider.pdb) (default dict $converter.pdb) -}}
|
||||
{{- $dpAnnotations := mergeOverwrite (dict) (default dict $yProvider.dpAnnotations) (default dict $converter.dpAnnotations) -}}
|
||||
{{- $podAnnotations := mergeOverwrite (dict) (default dict $yProvider.podAnnotations) (default dict $converter.podAnnotations) -}}
|
||||
{{- $replicas := default $yProvider.replicas $converter.replicas -}}
|
||||
{{- $serviceAccountName := default $yProvider.serviceAccountName $converter.serviceAccountName -}}
|
||||
{{- $shareProcessNamespace := default $yProvider.shareProcessNamespace $converter.shareProcessNamespace -}}
|
||||
{{- $sidecars := default $yProvider.sidecars $converter.sidecars -}}
|
||||
{{- $command := default $yProvider.command $converter.command -}}
|
||||
{{- $args := default $yProvider.args $converter.args -}}
|
||||
{{- $envFrom := default $yProvider.envFrom $converter.envFrom -}}
|
||||
{{- $securityContext := mergeOverwrite (dict) (default dict $yProvider.securityContext) (default dict $converter.securityContext) -}}
|
||||
{{- $resources := mergeOverwrite (dict) (default dict $yProvider.resources) (default dict $converter.resources) -}}
|
||||
{{- $nodeSelector := mergeOverwrite (dict) (default dict $yProvider.nodeSelector) (default dict $converter.nodeSelector) -}}
|
||||
{{- $affinity := mergeOverwrite (dict) (default dict $yProvider.affinity) (default dict $converter.affinity) -}}
|
||||
{{- $tolerations := default $yProvider.tolerations $converter.tolerations -}}
|
||||
{{- $persistence := mergeOverwrite (dict) (default dict $yProvider.persistence) (default dict $converter.persistence) -}}
|
||||
{{- $extraVolumeMounts := default $yProvider.extraVolumeMounts $converter.extraVolumeMounts -}}
|
||||
{{- $extraVolumes := default $yProvider.extraVolumes $converter.extraVolumes -}}
|
||||
{{- $envVarsScope := dict "envVars" (mergeOverwrite (dict) (default dict $yProvider.envVars) (default dict $converter.envVars)) -}}
|
||||
{{- $envVars := include "impress.common.env" (list . $envVarsScope) -}}
|
||||
{{- $fullName := include "impress.yProvider.converter.fullname" . -}}
|
||||
{{- $component := "yProvider-converter" -}}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
namespace: {{ .Release.Namespace | quote }}
|
||||
annotations:
|
||||
{{- with $dpAnnotations }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "impress.common.labels" (list . $component) | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ $replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "impress.common.selectorLabels" (list . $component) | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
{{- with $podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "impress.common.selectorLabels" (list . $component) | nindent 8 }}
|
||||
spec:
|
||||
{{- if $.Values.image.credentials }}
|
||||
imagePullSecrets:
|
||||
- name: {{ include "impress.secret.dockerconfigjson.name" (dict "fullname" (include "impress.fullname" .) "imageCredentials" $.Values.image.credentials) }}
|
||||
{{- end}}
|
||||
{{- if $serviceAccountName }}
|
||||
serviceAccountName: {{ $serviceAccountName }}
|
||||
{{- end }}
|
||||
shareProcessNamespace: {{ $shareProcessNamespace }}
|
||||
containers:
|
||||
{{- with $sidecars }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ $image.repository | default $.Values.image.repository }}:{{ $image.tag | default $.Values.image.tag }}"
|
||||
imagePullPolicy: {{ $image.pullPolicy | default $.Values.image.pullPolicy }}
|
||||
{{- with $command }}
|
||||
command:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with $args }}
|
||||
args:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if $envVars}}
|
||||
env:
|
||||
{{- $envVars | indent 12 }}
|
||||
{{- end }}
|
||||
{{- if $envFrom }}
|
||||
envFrom:
|
||||
{{- toYaml $envFrom | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with $securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: {{ $service.targetPort }}
|
||||
protocol: TCP
|
||||
{{- if $probes.liveness }}
|
||||
livenessProbe:
|
||||
{{- include "impress.probes.abstract" (merge $probes.liveness (dict "targetPort" $service.targetPort )) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if $probes.readiness }}
|
||||
readinessProbe:
|
||||
{{- include "impress.probes.abstract" (merge $probes.readiness (dict "targetPort" $service.targetPort )) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if $probes.startup }}
|
||||
startupProbe:
|
||||
{{- include "impress.probes.abstract" (merge $probes.startup (dict "targetPort" $service.targetPort )) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with $resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- range $index, $value := .Values.mountFiles }}
|
||||
- name: "files-{{ $index }}"
|
||||
mountPath: {{ $value.path }}
|
||||
subPath: content
|
||||
{{- end }}
|
||||
{{- range $name, $volume := $persistence }}
|
||||
- name: "{{ $name }}"
|
||||
mountPath: "{{ $volume.mountPath }}"
|
||||
{{- end }}
|
||||
{{- range $extraVolumeMounts }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .mountPath }}
|
||||
subPath: {{ .subPath | default "" }}
|
||||
readOnly: {{ .readOnly }}
|
||||
{{- end }}
|
||||
{{- with $nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with $affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with $tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- range $index, $value := .Values.mountFiles }}
|
||||
- name: "files-{{ $index }}"
|
||||
configMap:
|
||||
name: "{{ include "impress.fullname" $ }}-files-{{ $index }}"
|
||||
{{- end }}
|
||||
{{- range $name, $volume := $persistence }}
|
||||
- name: "{{ $name }}"
|
||||
{{- if eq $volume.type "emptyDir" }}
|
||||
emptyDir: {}
|
||||
{{- else }}
|
||||
persistentVolumeClaim:
|
||||
claimName: "{{ $fullName }}-{{ $name }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- range $extraVolumes }}
|
||||
- name: {{ .name }}
|
||||
{{- if .existingClaim }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ .existingClaim }}
|
||||
{{- else if .secret }}
|
||||
secret:
|
||||
{{ toYaml .secret | nindent 12 }}
|
||||
{{- else if .hostPath }}
|
||||
hostPath:
|
||||
{{ toYaml .hostPath | nindent 12 }}
|
||||
{{- else if .csi }}
|
||||
csi:
|
||||
{{- toYaml .csi | nindent 12 }}
|
||||
{{- else if .configMap }}
|
||||
configMap:
|
||||
{{- toYaml .configMap | nindent 12 }}
|
||||
{{- else if .emptyDir }}
|
||||
emptyDir:
|
||||
{{- toYaml .emptyDir | nindent 12 }}
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
---
|
||||
{{ if $pdb.enabled }}
|
||||
apiVersion: policy/v1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
namespace: {{ .Release.Namespace | quote }}
|
||||
spec:
|
||||
maxUnavailable: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "impress.common.selectorLabels" (list . $component) | nindent 6 }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
@@ -0,0 +1,25 @@
|
||||
{{ if .Values.yProvider.converter.enabled -}}
|
||||
{{- $yProvider := .Values.yProvider -}}
|
||||
{{- $converter := .Values.yProvider.converter -}}
|
||||
{{- $service := mergeOverwrite (dict) (default dict $yProvider.service) (default dict $converter.service) -}}
|
||||
{{- $fullName := include "impress.yProvider.converter.fullname" . -}}
|
||||
{{- $component := "yProvider-converter" -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
namespace: {{ .Release.Namespace | quote }}
|
||||
labels:
|
||||
{{- include "impress.common.labels" (list . $component) | nindent 4 }}
|
||||
annotations:
|
||||
{{- toYaml $service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: {{ $service.type }}
|
||||
ports:
|
||||
- port: {{ $service.port }}
|
||||
targetPort: {{ $service.targetPort }}
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
{{- include "impress.common.selectorLabels" (list . $component) | nindent 4 }}
|
||||
{{ end -}}
|
||||
@@ -647,6 +647,77 @@ yProvider:
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "latest"
|
||||
|
||||
converter:
|
||||
## @param yProvider.converter.enabled Enable the yProvider converter deployment and service
|
||||
enabled: false
|
||||
|
||||
## @param yProvider.converter.replicas Amount of yProvider replicas
|
||||
replicas: 3
|
||||
|
||||
## @param yProvider.converter.resources Resource requirements for the yProvider container
|
||||
resources: {}
|
||||
|
||||
## @param yProvider.converter.service.type yProvider converter Service type
|
||||
## @param yProvider.converter.service.port yProvider converter Service listening port
|
||||
## @param yProvider.converter.service.targetPort yProvider converter container listening port
|
||||
## @param yProvider.converter.service.annotations Annotations to add to the yProvider converter Service
|
||||
service: {}
|
||||
|
||||
## @param yProvider.converter.command Override the yProvider converter container command
|
||||
command: []
|
||||
|
||||
## @param yProvider.converter.args Override the yProvider converter container args
|
||||
args: []
|
||||
|
||||
## @param yProvider.converter.shareProcessNamespace Enable share process namespace between containers
|
||||
shareProcessNamespace: false
|
||||
|
||||
## @param yProvider.converter.sidecars Add sidecars containers to yProvider converter deployment
|
||||
sidecars: []
|
||||
|
||||
## @skip yProvider.converter.securityContext
|
||||
securityContext: {}
|
||||
|
||||
## @skip yProvider.converter.envVars
|
||||
envVars: {}
|
||||
|
||||
## @skip yProvider.converter.envFrom
|
||||
envFrom: []
|
||||
|
||||
## @param yProvider.converter.podAnnotations Annotations to add to the yProvider converter Pod
|
||||
podAnnotations: {}
|
||||
|
||||
## @param yProvider.converter.dpAnnotations Annotations to add to the yProvider converter Deployment
|
||||
dpAnnotations: {}
|
||||
|
||||
## @skip yProvider.converter.probes
|
||||
probes: {}
|
||||
|
||||
## @param yProvider.converter.nodeSelector Node selector for the yProvider converter Pod
|
||||
nodeSelector: {}
|
||||
|
||||
## @param yProvider.converter.tolerations Tolerations for the yProvider converter Pod
|
||||
tolerations: []
|
||||
|
||||
## @param yProvider.converter.affinity Affinity for the yProvider converter Pod
|
||||
affinity: {}
|
||||
|
||||
## @param yProvider.converter.persistence Additional volumes to create and mount on the yProvider converter
|
||||
persistence: {}
|
||||
|
||||
## @param yProvider.converter.extraVolumeMounts Additional volumes to mount on the yProvider converter
|
||||
extraVolumeMounts: []
|
||||
|
||||
## @param yProvider.converter.extraVolumes Additional volumes to mount on the yProvider converter
|
||||
extraVolumes: []
|
||||
|
||||
## @param yProvider.converter.pdb.enabled Enable pdb on yProvider converter
|
||||
pdb:
|
||||
enabled: true
|
||||
|
||||
## @param yProvider.converter.serviceAccountName Optional service account name to use for yProvider converter pods
|
||||
serviceAccountName: null
|
||||
|
||||
## @param yProvider.command Override the yProvider container command
|
||||
command: []
|
||||
|
||||
|
||||
Reference in New Issue
Block a user