diff --git a/charts/caduser/v0.1.0/templates/cronjob.yaml b/charts/caduser/v0.1.0/templates/cronjob.yaml new file mode 100644 index 0000000..01534f8 --- /dev/null +++ b/charts/caduser/v0.1.0/templates/cronjob.yaml @@ -0,0 +1,103 @@ +{{- if .Values.cronjob.enabled }} +apiVersion: batch/v1 +kind: CronJob +metadata: + name: {{ include "caduser.fullname" . }}-job-controller + labels: + {{- include "caduser.labels" . | nindent 4 }} +spec: + schedule: {{ .Values.cronjob.schedule | quote }} + successfulJobsHistoryLimit: {{ .Values.cronjob.successfulJobsHistoryLimit }} + failedJobsHistoryLimit: {{ .Values.cronjob.failedJobsHistoryLimit }} + concurrencyPolicy: {{ .Values.cronjob.concurrencyPolicy }} + jobTemplate: + spec: + template: + metadata: + labels: + {{- include "caduser.selectorLabels" . | nindent 12 }} + app.kubernetes.io/component: cronjob + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 12 }} + {{- end }} + serviceAccountName: {{ include "caduser.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 12 }} + restartPolicy: OnFailure + containers: + - name: job-controller + securityContext: + {{- toYaml .Values.securityContext | nindent 16 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - /usr/local/bin/python + - /srv/interlegis/caduser/manage.py + - runjob + - job_controller + env: + - name: DATABASE_URL + valueFrom: + secretKeyRef: + name: {{ .Values.postgresql.clusterName }}-app + key: uri + - name: MEMCACHED_LOCATION + value: {{ printf "%s:11211" (include "memcached.fullname" .) | quote }} + - name: ADMINS + value: "{{ .Values.caduser.adminUsers }}" + - name: DEBUG + value: "{{ .Values.caduser.debug }}" + - name: EMAIL_PORT + value: "{{ .Values.caduser.emailPort }}" + - name: EMAIL_HOST + value: "{{ .Values.caduser.emailHost }}" + - name: EMAIL_HOST_USER + value: "{{ .Values.caduser.emailHostUser }}" + - name: EMAIL_HOST_PASSWORD + value: "{{ .Values.caduser.emailHostPassword }}" + - name: EMAIL_SUBJECT_PREFIX + value: "{{ .Values.caduser.emailSubjectPrefix }}" + - name: EMAIL_USE_LOCALTIME + value: "{{ .Values.caduser.emailUseLocaltime }}" + - name: EMAIL_USE_TLS + value: "{{ .Values.caduser.emailUseTls }}" + - name: EMAIL_USE_SSL + value: "{{ .Values.caduser.emailUseSsl }}" + - name: EMAIL_TIMEOUT + value: "{{ .Values.caduser.emailTimeout }}" + - name: DEFAULT_FROM_EMAIL + value: "{{ .Values.caduser.defaultFromEmail }}" + - name: MAXMIND_ACCOUNT_ID + value: "{{ .Values.caduser.maxmindAccountId }}" + - name: MAXMIND_LICENCE_KEY + value: "{{ .Values.caduser.maxmindLicenceKey }}" + - name: MOODLE_BASE_URL + value: "{{ .Values.caduser.moodleBaseUrl }}" + - name: MOODLE_API_TOKEN + value: "{{ .Values.caduser.moodleApiToken }}" + - name: LANG + value: "pt_BR.UTF-8" + volumeMounts: + - mountPath: /srv/interlegis/caduser/media + name: media + resources: + {{- toYaml .Values.cronjob.resources | nindent 16 }} + volumes: + - name: media + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ include "caduser.fullname" . }}-media + {{- else }} + emptyDir: {} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 12 }} + {{- end }} +{{- end }} diff --git a/charts/caduser/v0.1.0/values.yaml b/charts/caduser/v0.1.0/values.yaml index d3013a2..87e4758 100644 --- a/charts/caduser/v0.1.0/values.yaml +++ b/charts/caduser/v0.1.0/values.yaml @@ -90,7 +90,7 @@ postgresql: localeProvider: icu icuLocale: pt-BR # Additional initdb parameters can be added here - + resources: requests: cpu: 40m @@ -129,6 +129,20 @@ autoscaling: targetCPUUtilizationPercentage: 80 # targetMemoryUtilizationPercentage: 80 +cronjob: + enabled: true + schedule: "* * * * *" + successfulJobsHistoryLimit: 3 + failedJobsHistoryLimit: 3 + concurrencyPolicy: Forbid + resources: + requests: + cpu: 35m + memory: 256Mi + limits: + cpu: 500m + memory: 512Mi + nodeSelector: {} tolerations: []