Skip to content
Snippets Groups Projects
Verified Commit 61736722 authored by Antoine R. Dumont's avatar Antoine R. Dumont
Browse files

web: Add cronjob to refresh save code now statuses

Refs. swh/infra/sysadm-environment#4812
parent f8c533a6
No related branches found
No related tags found
1 merge request!151swh: Support dynamic webapp configuration
{{ if and .Values.web.enabled .Values.web.refreshSavecodenowStatus.enabled -}}
{{- with .Values.web.refreshSavecodenowStatus -}}
{{- $log_level := .logLevel -}}
apiVersion: batch/v1
kind: CronJob
metadata:
name: refresh-savecodenow-statuses-cronjob
spec:
# By default, every 4h at midnight
schedule: {{ .cron | default "* * * * *" | quote}}
jobTemplate:
spec:
{{- if .concurrencyPolicy }}
concurrencyPolicy: {{ .concurrencyPolicy }}
{{- end }}
template:
spec:
{{- if and $.Values.podPriority.enabled .priorityClassName }}
priorityClassName: {{ $.Values.namespace }}-{{ .priorityClassName }}
{{ end }}
initContainers:
- name: prepare-configuration
image: debian:bullseye
imagePullPolicy: IfNotPresent
command:
- /bin/bash
args:
- -c
- eval echo "\"$(</etc/swh/configuration-template/config.yml.template)\"" > /etc/swh/config.yml
env:
{{- if $.Values.web.webConfigurationRef }}
{{- include "swh.secrets.environment" (dict "Values" $.Values
"configurationRef" $.Values.web.webConfigurationRef) | nindent 16 -}}
{{ end }}
{{- if $.Values.web.djangoConfigurationRef }}
{{- include "swh.secrets.environment" (dict "Values" $.Values
"configurationRef" $.Values.web.djangoConfigurationRef) | nindent 16 }}
{{ end }}
{{- if $.Values.web.depositConfigurationRef -}}
{{- include "swh.secrets.environment" (dict "Values" $.Values
"configurationRef" $.Values.web.depositConfigurationRef) | nindent 16 }}
{{ end }}
{{- if $.Values.web.giveConfigurationRef -}}
{{- include "swh.secrets.environment" (dict "Values" $.Values
"configurationRef" $.Values.web.giveConfigurationRef) | nindent 16 }}
{{ end }}
{{- if $.Values.web.sentry.enabled }}
- name: SWH_SENTRY_DSN
valueFrom:
secretKeyRef:
name: {{ $.Values.web.sentry.secretKeyRef }}
key: {{ $.Values.web.sentry.secretKeyName }}
# 'name' secret should exist & include key
# if the setting doesn't exist, sentry pushes will be disabled
optional: true
{{ end }}
volumeMounts:
- name: configuration
mountPath: /etc/swh
- name: configuration-template
mountPath: /etc/swh/configuration-template
containers:
- name: refresh-savecodenow-statuses
resources:
requests:
memory: {{ .requestedMemory | default "512Mi" }}
cpu: {{ .requestedCpu | default "500m" }}
{{- if or .limitedMemory .limitedCpu }}
limits:
{{- if .limitedMemory }}
memory: {{ .limitedMemory }}
{{- end }}
{{- if .limitedCpu }}
cpu: {{ .limitedCpu }}
{{- end }}
{{ end }}
image: {{ $.Values.swh_web_image }}:{{ $.Values.swh_web_image_version }}
command:
- /opt/swh/entrypoint.sh
args:
# - shell
# - sleep
# - infinity
- refresh
env:
- name: STATSD_HOST
value: {{ $.Values.statsdExternalHost | default "prometheus-statsd-exporter" }}
- name: STATSD_PORT
value: {{ $.Values.statsdPort | default "9125" | quote }}
- name: SWH_CONFIG_FILENAME
value: /etc/swh/config.yml
- name: LOG_LEVEL
value: {{ $log_level | default "INFO" }}
{{- if $.Values.web.sentry.enabled }}
- name: SWH_SENTRY_ENVIRONMENT
value: {{ $.Values.sentry.environment }}
- name: SWH_MAIN_PACKAGE
value: swh.web
- name: SWH_SENTRY_DSN
valueFrom:
secretKeyRef:
name: {{ $.Values.web.sentry.secretKeyRef }}
key: {{ $.Values.web.sentry.secretKeyName }}
# if the setting doesn't exist, sentry issue pushes will be disabled
optional: false
- name: SWH_SENTRY_DISABLE_LOGGING_EVENTS
value: "true"
{{- end }}
imagePullPolicy: IfNotPresent
volumeMounts:
- name: configuration
mountPath: /etc/swh
volumes:
- name: configuration
emptyDir: {}
- name: configuration-template
configMap:
name: web-configuration-template
items:
- key: "config.yml.template"
path: "config.yml.template"
restartPolicy: OnFailure
{{ end }}
{{- end -}}
......@@ -500,6 +500,13 @@ web:
requestedMemory: 100Mi
autoScaling:
maxReplicaCount: 1
refreshSavecodenowStatus:
enabled: false
priorityClassName: frontend-rpc-workload
logLevel: INFO
# concurrencyPolicy: Forbid
# At every minute
cron: "* * * * *"
# gunicorn:
# threads: 5
# workers: 2
......
......@@ -140,6 +140,9 @@ web:
djangoConfigurationRef: djangoWebConfiguration
depositConfigurationRef: fakeDepositConfiguration
giveConfigurationRef: giveConfiguration
refreshSavecodenowStatus:
enabled: false
cron: "* 9 * * *"
sentry:
enabled: false
secretKeyRef: sentry-secrets
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment