1# This file has been modified by Chainguard, Inc.
3# Copyright Chainguard, Inc. All Rights Reserved.
4# Chainguard, Inc. modifications are subject to the license
5# available at: https://www.chainguard.dev/legal/software-license-agreement
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
10## @section Global parameters
11## Global Docker image parameters
12## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
15## @param global.imageRegistry Global Docker image registry
16## @param global.imagePullSecrets Global Docker registry secret names as an array
17## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
23 ## - myRegistryKeySecretName
26 defaultStorageClass: ""
27 ## Security parameters
30 ## @param global.security.allowInsecureImages Allows skipping image verification
31 allowInsecureImages: false
32 ## Compatibility adaptations for Kubernetes platforms
35 ## Compatibility adaptations for Openshift
38 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
40 adaptSecurityContext: auto
42## @section Common parameters
44## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
47## @param nameOverride String to partially override moodle.fullname template
50## @param fullnameOverride String to fully override moodle.fullname template
53## @param commonAnnotations Common annotations to add to all Harbor resources (sub-charts are not considered). Evaluated as a template
56## @param commonLabels Common labels to add to all Harbor resources (sub-charts are not considered). Evaluated as a template
59## @param extraDeploy Array with extra yaml to deploy with the chart. Evaluated as a template
62## @param usePasswordFiles Mount credentials as files instead of using environment variables
65## @section Moodle™ parameters
67## Iamguarded Moodle™ image version
68## @param image.registry [default: REGISTRY_NAME] Moodle image registry
69## @param image.repository [default: REPOSITORY_NAME/moodle] Moodle image repository
70## @skip image.tag Moodle image tag (immutable tags are recommended)
71## @param image.digest Moodle image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
72## @param image.pullPolicy Moodle image pull policy
73## @param image.pullSecrets Specify docker-registry secret names as an array
74## @param image.debug Specify if debug logs should be enabled
77 registry: chainreg.biz
78 repository: chainguard-private/moodle-iamguarded
81 ## Specify a imagePullPolicy
82 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
84 pullPolicy: IfNotPresent
85 ## Optionally specify an array of imagePullSecrets.
86 ## Secrets must be manually created in the namespace.
87 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
90 ## - myRegistryKeySecretName
93 ## Set to true if you would like to see extra information on logs
96## @param replicaCount Number of Moodle replicas (requires ReadWriteMany PVC support)
97## Setting this will fix the number replica count needed for Moodle™
98## This can be overridden by setting autoscaling.enabled to true
99## For upgrades set the autoscaling.enabled to false and replicaCount to the desired number of replicas
102## When enabled, the number of Moodle™ replicas will be automatically adjusted based on targets on given metrics.
103## Enabling this feature will override the replicaCount value
104## When disabled, the number of Moodle™ replicas will be fixed and set by the replicaCount parameter
105## Warning: Before enabling ensure that your persistent volume claim has `Access Modes: RWX` since Autoscaling requires ReadWriteMany PVC support.
106## Moodle Autoscaling parameters
107## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
108## @param autoscaling.enabled Enable Horizontal POD autoscaling for Moodle™
109## @param autoscaling.minReplicas Minimum number of Moodle™ replicas
110## @param autoscaling.maxReplicas Maximum number of Moodle™ replicas
111## @param autoscaling.targetCPU Target CPU utilization percentage
112## @param autoscaling.targetMemory Target Memory utilization percentage
120## @param moodleSkipInstall Skip Moodle™ installation wizard. Useful for migrations and restoring from SQL dump
122moodleSkipInstall: false
123## @param moodleSiteName Site name
126## @param moodleLang Site language
129## @param moodleUsername User of the application
132## @param moodlePassword Application password
133## Defaults to a random 10-character alphanumeric string if not set
136## @param moodleEmail Admin email
138moodleEmail: user@example.com
139## @param allowEmptyPassword Allow DB blank passwords
141allowEmptyPassword: true
142## @param command Override default container command (useful when using custom images)
145## @param args Override default container args (useful when using custom images)
148## @param updateStrategy.type Update strategy - only really applicable for deployments with RWO PVs attached
149## If replicas = 1, an update can get "stuck", as the previous pod remains attached to the
150## PV, and the "incoming" pod can never start. Changing the strategy to "Recreate" will
151## terminate the single previous pod, so that the new, incoming pod can attach to the PV
155## @param extraEnvVars An array to add extra env vars
157## - name: BEARER_AUTH
161## @param extraEnvVarsCM ConfigMap with extra environment variables
164## @param extraEnvVarsSecret Secret with extra environment variables (in case of sensitive data)
166extraEnvVarsSecret: ""
167## @param extraVolumes Array of extra volumes to be added to the deployment (evaluated as template). Requires setting `extraVolumeMounts`
170## @param extraVolumeMounts Array of extra volume mounts to be added to the container (evaluated as template). Normally used with `extraVolumes`.
173## @param initContainers Extra init containers to add to the deployment
176## Pod Disruption Budget configuration
177## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
178## @param pdb.create Enable/disable a Pod Disruption Budget creation
179## @param pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
180## @param pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `pdb.minAvailable` and `pdb.maxUnavailable` are empty.
186## @param sidecars Extra sidecar containers to add to the deployment
189## @param automountServiceAccountToken Mount Service Account token in pod
191automountServiceAccountToken: false
192## @param hostAliases [array] Moodle™ pods host aliases
193## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
199## @param tolerations Tolerations for pod assignment
200## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
203## @param priorityClassName Moodle™ pods' priorityClassName
206## @param schedulerName Name of the k8s scheduler (other than default)
207## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
210## @param topologySpreadConstraints Topology Spread Constraints for pod assignment
211## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
212## The value is evaluated as a template
214topologySpreadConstraints: []
215## @param existingSecret Name of a secret with the application password
218## SMTP mail delivery configuration
219## @param smtpHost SMTP host
220## @param smtpPort SMTP port
221## @param smtpUser SMTP user
222## @param smtpPassword SMTP password
223## @param smtpProtocol SMTP Protocol (options: ssl,tls, nil)
230## @param containerPorts [object] Container ports
235## @param extraContainerPorts Optionally specify extra list of additional ports for Moodle&trade container(s)
237## extraContainerPorts:
239## containerPort: 9090
241extraContainerPorts: []
242## @param sessionAffinity Control where client requests go, to the same pod or round-robin
243## Values: ClientIP or None
244## ref: https://kubernetes.io/docs/concepts/services-networking/service/
246sessionAffinity: "None"
247## Enable persistence using Persistent Volume Claims
248## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
251 ## @param persistence.enabled Enable persistence using PVC
254 ## @param persistence.customStorageClass Create a custom storage class
255 ## Requires persistence.enabled: true
256 ## Requires persistence.storageClass: name
257 ## ref: https://kubernetes.io/docs/concepts/storage/storage-classes/
259 ## provisioner: efs.csi.aws.com
261 ## provisioningMode: efs-ap
262 ## fileSystemId: fs-12345678
263 ## directoryPerms: "700"
264 ## gidRangeStart: "1000" # optional
265 ## gidRangeEnd: "2000" # optional
267 customStorageClass: {}
268 ## @param persistence.storageClass PVC Storage Class for Moodle
269 ## If defined, storageClassName: <storageClass>
270 ## If set to "-", storageClassName: "", which disables dynamic provisioning
271 ## If undefined (the default) or set to null, no storageClassName spec is
272 ## set, choosing the default provisioner. (gp2 on AWS, standard on
273 ## GKE, AWS & OpenStack)
276 ## @param persistence.accessModes PVC Access Mode for Moodle
277 ## Requires persistence.enabled: true
278 ## If defined, and no customStorageClass is defined, then
279 ## PVC must be created manually before volume will be bound
283 ## @param persistence.size PVC Storage Request for Moodle
286 ## @param persistence.existingClaim An Existing PVC name
287 ## Requires persistence.enabled: true
288 ## If defined, PVC must be created manually before volume will be bound
291 ## @param persistence.hostPath Host mount path for Moodle
292 ## Requires persistence.enabled: true
293 ## Requires persistence.existingClaim: nil|false
297 ## @param persistence.annotations Persistent Volume Claim annotations
300## @param podAffinityPreset Pod affinity preset
301## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
302## Allowed values: soft, hard
305## @param podAntiAffinityPreset Pod anti-affinity preset
306## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
307## Allowed values: soft, hard
309podAntiAffinityPreset: soft
310## Node affinity preset
311## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
312## Allowed values: soft, hard
315 ## @param nodeAffinityPreset.type Node affinity type
316 ## Allowed values: soft, hard
319 ## @param nodeAffinityPreset.key Node label key to match
321 ## key: "kubernetes.io/e2e-az-name"
324 ## @param nodeAffinityPreset.values Node label values to match
331## @param affinity Map of node/pod affinities
332## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
333## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
336## @param nodeSelector Node labels for pod assignment
337## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
340## Configure resource requests and limits
341## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
342## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
344resourcesPreset: "micro"
345## @param resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
356## Configure Pods Security Context
357## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
358## @param podSecurityContext.enabled Enable Moodle™ pods' Security Context
359## @param podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
360## @param podSecurityContext.sysctls Set kernel settings using the sysctl interface
361## @param podSecurityContext.supplementalGroups Set filesystem extra groups
362## @param podSecurityContext.fsGroup Moodle™ pods' group ID
366 fsGroupChangePolicy: Always
368 supplementalGroups: []
370## Configure Container Security Context (only main container)
371## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
372## @param containerSecurityContext.enabled Enabled containers' Security Context
373## @param containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
374## @param containerSecurityContext.runAsUser Set containers' Security Context runAsUser
375## @param containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
376## @param containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
377## @param containerSecurityContext.privileged Set container's Security Context privileged
378## @param containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
379## @param containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
380## @param containerSecurityContext.capabilities.drop List of capabilities to be dropped
381## @param containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
383containerSecurityContext:
390 readOnlyRootFilesystem: false
391 allowPrivilegeEscalation: false
395 type: "RuntimeDefault"
396## Configure extra options for liveness and readiness probes
397## Moodle™ core exposes /user/login to unauthenticated requests, making it a good
398## default startup and readiness path. However, that may not always be the
399## case. For example, if the image value is overridden to an image containing a
400## module that alters that route, or an image that does not auto-install Moodle™.
401## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
402## @param startupProbe.enabled Enable startupProbe
403## @param startupProbe.path Request path for startupProbe
404## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
405## @param startupProbe.periodSeconds Period seconds for startupProbe
406## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
407## @param startupProbe.failureThreshold Failure threshold for startupProbe
408## @param startupProbe.successThreshold Success threshold for startupProbe
412 path: /login/index.php
413 initialDelaySeconds: 30
418## @param livenessProbe.enabled Enable livenessProbe
419## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
420## @param livenessProbe.periodSeconds Period seconds for livenessProbe
421## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
422## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
423## @param livenessProbe.successThreshold Success threshold for livenessProbe
427 initialDelaySeconds: 600
432## Configure extra options for readiness probe
433## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
434## @param readinessProbe.enabled Enable readinessProbe
435## @param readinessProbe.path Request path for readinessProbe
436## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
437## @param readinessProbe.periodSeconds Period seconds for readinessProbe
438## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
439## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
440## @param readinessProbe.successThreshold Success threshold for readinessProbe
444 path: /login/index.php
445 initialDelaySeconds: 30
450## @param customStartupProbe Override default startup probe
452customStartupProbe: {}
453## @param customLivenessProbe Override default liveness probe
455customLivenessProbe: {}
456## @param customReadinessProbe Override default readiness probe
458customReadinessProbe: {}
459## @param lifecycleHooks LifecycleHook to set additional configuration at startup Evaluated as a template
462## @param podAnnotations Pod annotations
463## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
466## @param podLabels Add additional labels to the pod (evaluated as a template)
467## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
471## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
474 ## @param serviceAccount.create Enable creation of ServiceAccount for Moodle pod
477 ## @param serviceAccount.name The name of the ServiceAccount to use.
478 ## If not set and create is true, a name is generated using the common.names.fullname template
481 ## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
482 ## Can be set to false if pods using this serviceAccount do not need to use K8s API
484 automountServiceAccountToken: false
485 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
488## @section Traffic Exposure Parameters
490## Kubernetes configuration
491## For minikube, set this to NodePort, for ingress ClusterIP, elsewhere use LoadBalancer
494 ## @param service.type Service type
497 ## @param service.ports.http Service HTTP port
498 ## @param service.ports.https Service HTTPS port
503 ## @param service.nodePorts.http Kubernetes HTTP node port
504 ## @param service.nodePorts.https Kubernetes HTTPS node port
506 ## http: <to set explicitly, choose port between 30000-32767>
507 ## https: <to set explicitly, choose port between 30000-32767>
512 ## @param service.clusterIP Service Cluster IP
515 ## @param service.loadBalancerSourceRanges Service load balancer source ranges
516 ## Control hosts connecting to "LoadBalancer" only
517 ## loadBalancerSourceRanges:
520 loadBalancerSourceRanges: []
521 ## @param service.loadBalancerIP loadBalancerIP for the Moodle™ Service (optional, cloud specific)
522 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
525 ## @param service.externalTrafficPolicy Enable client source IP preservation
526 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
528 externalTrafficPolicy: Cluster
529 ## @param service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
532 ## @param service.annotations Additional custom annotations for Moodle™ service
535 ## @param service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
536 ## If "ClientIP", consecutive client requests will be directed to the same Pod
537 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
539 sessionAffinity: None
540 ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
541 ## sessionAffinityConfig:
543 ## timeoutSeconds: 300
545 sessionAffinityConfig: {}
546## Configure the ingress resource that allows you to access the
547## Moodle™ installation. Set up the URL
548## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
551 ## @param ingress.enabled Set to true to enable ingress record generation
554 ## @param ingress.pathType Ingress Path type
556 pathType: ImplementationSpecific
557 ## @param ingress.apiVersion Override API Version (automatically detected if not set)
560 ## @param ingress.hostname When the ingress is enabled, a host pointing to this will be created
562 hostname: moodle.local
563 ## @param ingress.path The Path to Moodle™. You may need to set this to '/*' in order to use this with ALB ingress controllers.
566 ## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
567 ## For a full list of possible ingress annotations, please see
568 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
569 ## Use this parameter to set the required annotations for cert-manager, see
570 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
574 ## kubernetes.io/ingress.class: nginx
575 ## cert-manager.io/cluster-issuer: cluster-issuer-name
578 ## @param ingress.tls Enable TLS configuration for the hostname defined at ingress.hostname parameter
579 ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.ingress.hostname }}
580 ## You can use the ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
583 ## @param ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
584 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
586 ## - name: minio.local
590 ## @param ingress.extraPaths Any additional arbitrary paths that may need to be added to the ingress under the main host.
591 ## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
595 ## serviceName: ssl-redirect
596 ## servicePort: use-annotation
599 ## @param ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
600 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
604 ## secretName: minio.local-tls
607 ## @param ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
608 ## key and certificate should start with -----BEGIN CERTIFICATE----- or
609 ## -----BEGIN RSA PRIVATE KEY-----
611 ## name should line up with a tlsSecret set further up
612 ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
614 ## It is also possible to create and manage the certificates outside of this helm chart
615 ## Please see README.md for more information
617 ## - name: minio.local-tls
622 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
623 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
624 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
627 ## @param ingress.extraRules Additional rules to be covered with this ingress record
628 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
631 ## - host: example.local
641## @section Database parameters
643## MariaDB chart configuration
646 ## @param mariadb.enabled Whether to deploy a mariadb server to satisfy the applications database requirements
647 ## To use an external database set this to false and configure the externalDatabase parameters
650 ## @param mariadb.architecture MariaDB architecture (`standalone` or `replication`)
652 architecture: standalone
653 ## MariaDB Authentication parameters
656 ## @param mariadb.auth.rootPassword Password for the MariaDB `root` user
659 ## @param mariadb.auth.database Database name to create
661 database: iamguarded_moodle
662 ## @param mariadb.auth.username Database user to create
665 ## @param mariadb.auth.password Password for the database
669 ## Enable persistence using Persistent Volume Claims
670 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
673 ## @param mariadb.primary.persistence.enabled Enable database persistence using PVC
676 ## @param mariadb.primary.persistence.storageClass MariaDB primary persistent volume storage Class
677 ## If defined, storageClassName: <storageClass>
678 ## If set to "-", storageClassName: "", which disables dynamic provisioning
679 ## If undefined (the default) or set to null, no storageClassName spec is
680 ## set, choosing the default provisioner. (gp2 on AWS, standard on
681 ## GKE, AWS & OpenStack)
684 ## @param mariadb.primary.persistence.accessModes PVC Access Modes for Moodle™ volume
688 ## @param mariadb.primary.persistence.size Database Persistent Volume Size
691 ## @param mariadb.primary.persistence.hostPath Set path in case you want to use local host path volumes (not recommended in production)
694 ## @param mariadb.primary.persistence.existingClaim Name of an existing `PersistentVolumeClaim` for MariaDB primary replicas
697 ## MariaDB primary container's resource requests and limits
698 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
699 ## We usually recommend not to specify default resources and to leave this as a conscious
700 ## choice for the user. This also increases chances charts run on environments with little
701 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
702 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
703 ## @param mariadb.primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production).
705 resourcesPreset: "micro"
706 ## @param mariadb.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
718 registry: chainreg.biz
719 repository: chainguard-private/mariadb-iamguarded
724 registry: chainreg.biz
725 repository: chainguard-private/prometheus-mysqld-exporter-iamguarded
730 registry: chainreg.biz
731 repository: chainguard-private/os-shell-iamguarded
734## External database configuration
737 ## @param externalDatabase.type Type of the existing database
740 ## @param externalDatabase.host Host of the existing database
743 ## @param externalDatabase.port Port of the existing database
746 ## @param externalDatabase.user Existing username in the external db
749 ## @param externalDatabase.password Password for the above username
752 ## @param externalDatabase.database Name of the existing database
754 database: iamguarded_moodle
755 ## @param externalDatabase.existingSecret Name of an existing secret resource containing the DB password
758## @section Volume Permissions parameters
760## Init containers parameters:
761## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
764 ## @param volumePermissions.enabled Enable init container that changes volume permissions in the data directory (for cases where the default k8s `runAsUser` and `fsUser` values do not work)
767 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] Init container volume-permissions image registry
768 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] Init container volume-permissions image repository
769 ## @skip volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended)
770 ## @param volumePermissions.image.digest Init container volume-permissions image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
771 ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
772 ## @param volumePermissions.image.pullSecrets Specify docker-registry secret names as an array
775 registry: chainreg.biz
776 repository: chainguard-private/os-shell-iamguarded
779 pullPolicy: IfNotPresent
780 ## Optionally specify an array of imagePullSecrets.
781 ## Secrets must be manually created in the namespace.
782 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
785 ## - myRegistryKeySecretName
786 ## Init containers' resource requests and limits
787 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
788 ## We usually recommend not to specify default resources and to leave this as a conscious
789 ## choice for the user. This also increases chances charts run on environments with little
790 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
791 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
792 ## @param volumePermissions.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).
794 resourcesPreset: "nano"
795 ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
806## @section Metrics parameters
808 ## @param metrics.enabled Start a side-car prometheus exporter
811 ## @param metrics.image.registry [default: REGISTRY_NAME] Apache exporter image registry
812 ## @param metrics.image.repository [default: REPOSITORY_NAME/apache-exporter] Apache exporter image repository
813 ## @skip metrics.image.tag Apache exporter image tag (immutable tags are recommended)
814 ## @param metrics.image.digest Apache exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
815 ## @param metrics.image.pullPolicy Apache exporter image pull policy
816 ## @param metrics.image.pullSecrets Specify docker-registry secret names as an array
819 registry: chainreg.biz
820 repository: chainguard-private/apache-exporter-iamguarded
823 pullPolicy: IfNotPresent
824 ## Optionally specify an array of imagePullSecrets.
825 ## Secrets must be manually created in the namespace.
826 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
829 ## - myRegistryKeySecretName
832 ## Prometheus Exporter service configuration
835 ## @param metrics.service.type Prometheus metrics service type
838 ## @param metrics.service.port Prometheus metrics service port
841 ## @param metrics.service.loadBalancerIP Load Balancer IP if the Prometheus metrics server type is `LoadBalancer`, otherwise leave blank
844 ## @param metrics.service.loadBalancerSourceRanges Prometheus metrics service service Load Balancer sources
845 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
847 ## loadBalancerSourceRanges:
850 loadBalancerSourceRanges: []
851 ## @param metrics.service.clusterIP Prometheus metrics service Cluster IP
856 ## @param metrics.service.externalTrafficPolicy Prometheus metrics service service external traffic policy
857 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
859 externalTrafficPolicy: Cluster
860 ## @param metrics.service.annotations [object] Annotations for Prometheus Exporter pods. Evaluated as a template.
861 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
864 prometheus.io/scrape: "true"
865 prometheus.io/port: "{{ .Values.metrics.service.port }}"
866 ## @param metrics.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
867 ## If "ClientIP", consecutive client requests will be directed to the same Pod
868 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
870 sessionAffinity: None
871 ## @param metrics.service.sessionAffinityConfig Additional settings for the sessionAffinity
872 ## sessionAffinityConfig:
874 ## timeoutSeconds: 300
876 sessionAffinityConfig: {}
877 ## @param metrics.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).
879 resourcesPreset: "nano"
880 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
889 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
892 ## @param metrics.podAnnotations [object] Metrics exporter pod Annotation and Labels
895 prometheus.io/scrape: "true"
896 prometheus.io/port: "{{ .Values.metrics.service.port }}"
897## @section Certificate injection parameters
899## Add custom certificates and certificate authorities to Moodle™ container
902 ## @param certificates.customCertificate.certificateSecret Secret containing the certificate and key to add
903 ## @param certificates.customCertificate.chainSecret.name Name of the secret containing the certificate chain
904 ## @param certificates.customCertificate.chainSecret.key Key of the certificate chain file inside the secret
905 ## @param certificates.customCertificate.certificateLocation Location in the container to store the certificate
906 ## @param certificates.customCertificate.keyLocation Location in the container to store the private key
907 ## @param certificates.customCertificate.chainLocation Location in the container to store the certificate chain
910 certificateSecret: ""
914 certificateLocation: /etc/ssl/certs/ssl-cert-snakeoil.pem
915 keyLocation: /etc/ssl/private/ssl-cert-snakeoil.key
916 chainLocation: /etc/ssl/certs/mychain.pem
917 ## @param certificates.customCAs Defines a list of secrets to import into the container trust store
920 ## @param certificates.command Override default container command (useful when using custom images)
923 ## @param certificates.args Override default container args (useful when using custom images)
925 ## - secret: custom-CA
926 ## - secret: more-custom-CAs
929 ## @param certificates.extraEnvVars Container sidecar extra environment variables (eg proxy)
932 ## @param certificates.extraEnvVarsCM ConfigMap with extra environment variables
935 ## @param certificates.extraEnvVarsSecret Secret with extra environment variables
937 extraEnvVarsSecret: ""
938 ## @param certificates.image.registry [default: REGISTRY_NAME] Container sidecar registry
939 ## @param certificates.image.repository [default: REPOSITORY_NAME/os-shell] Container sidecar image repository
940 ## @skip certificates.image.tag Container sidecar image tag (immutable tags are recommended)
941 ## @param certificates.image.digest Container sidecar image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
942 ## @param certificates.image.pullPolicy Container sidecar image pull policy
943 ## @param certificates.image.pullSecrets Container sidecar image pull secrets
946 registry: chainreg.biz
947 repository: chainguard-private/os-shell-iamguarded
950 ## Specify a imagePullPolicy
951 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
953 pullPolicy: IfNotPresent
954 ## Optionally specify an array of imagePullSecrets.
955 ## Secrets must be manually created in the namespace.
956 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
959 ## - myRegistryKeySecretName
962## @section NetworkPolicy parameters
964## Network Policy configuration
965## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
968 ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
971 ## @param networkPolicy.allowExternal Don't require server label for connections
972 ## The Policy model to apply. When set to false, only pods with the correct
973 ## server label will have network access to the ports server is listening
974 ## on. When true, server will accept connections from any source
975 ## (with the correct destination port).
978 ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
980 allowExternalEgress: true
981 ## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
991 ## - matchExpressions:
997 ## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1007 ## - matchExpressions:
1014 ## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1015 ## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1017 ingressNSMatchLabels: {}
1018 ingressNSPodMatchLabels: {}