apiVersion: apps/v1 kind: Deployment metadata: name: moodle namespace: {{ .namespace }} spec: replicas: 1 strategy: type: Recreate selector: matchLabels: component: web template: metadata: labels: component: web spec: securityContext: runAsNonRoot: true runAsUser: 994 fsGroup: 994 seccompProfile: type: RuntimeDefault containers: - name: moodle image: bitnamilegacy/moodle:4.5.2 ports: - name: http containerPort: 8080 protocol: TCP env: - name: MOODLE_DATABASE_TYPE value: mysqli - name: MOODLE_DATABASE_HOST value: {{ .db.host }} - name: MOODLE_DATABASE_PORT_NUMBER value: "{{ .db.port }}" - name: MOODLE_DATABASE_NAME value: {{ .db.name }} - name: MOODLE_DATABASE_USER value: {{ .db.user }} - name: MOODLE_DATABASE_PASSWORD valueFrom: secretKeyRef: name: moodle-secrets key: dbPassword - name: MOODLE_HOST value: {{ .domain }} - name: MOODLE_SITE_NAME value: Moodle - name: MOODLE_USERNAME value: admin - name: MOODLE_PASSWORD valueFrom: secretKeyRef: name: moodle-secrets key: adminPassword - name: MOODLE_SKIP_BOOTSTRAP value: "no" - name: BITNAMI_DEBUG value: "false" resources: limits: cpu: "2" ephemeral-storage: 1Gi memory: 1Gi requests: cpu: 50m ephemeral-storage: 50Mi memory: 256Mi volumeMounts: - name: moodle-data mountPath: /bitnami startupProbe: httpGet: path: /login/index.php port: 8080 initialDelaySeconds: 120 timeoutSeconds: 10 periodSeconds: 15 failureThreshold: 240 livenessProbe: httpGet: path: /login/index.php port: 8080 timeoutSeconds: 10 periodSeconds: 30 failureThreshold: 6 readinessProbe: httpGet: path: /login/index.php port: 8080 initialDelaySeconds: 120 timeoutSeconds: 5 periodSeconds: 15 failureThreshold: 6 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false volumes: - name: moodle-data persistentVolumeClaim: claimName: moodle-data restartPolicy: Always