[bitnami/*] add ingress extraRules feature (#10253)

* Add extraRules to ingress objects

Signed-off-by: Fran Mulero <fmulero@vmware.com>

* Execute readme generator

Signed-off-by: Fran Mulero <fmulero@vmware.com>

* Version bump

Signed-off-by: Fran Mulero <fmulero@vmware.com>
This commit is contained in:
Fran Mulero
2022-05-16 18:35:09 +02:00
committed by GitHub
parent 7d81f642cc
commit 0f6cbb9099
239 changed files with 2050 additions and 788 deletions

View File

@@ -25,4 +25,4 @@ name: moodle
sources:
- https://github.com/bitnami/bitnami-docker-moodle
- https://www.moodle.org/
version: 14.0.0
version: 14.1.0

View File

@@ -62,6 +62,7 @@ The command removes all the Kubernetes components associated with the chart and
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` |
| `global.storageClass` | Global StorageClass for Persistent Volume(s) | `""` |
### Common parameters
| Name | Description | Value |
@@ -73,95 +74,97 @@ The command removes all the Kubernetes components associated with the chart and
| `commonLabels` | Common labels to add to all Harbor resources (sub-charts are not considered). Evaluated as a template | `{}` |
| `extraDeploy` | Array with extra yaml to deploy with the chart. Evaluated as a template | `[]` |
### Moodle&trade; parameters
| Name | Description | Value |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------- |
| `image.registry` | Moodle image registry | `docker.io` |
| `image.repository` | Moodle image repository | `bitnami/moodle` |
| `image.tag` | Moodle image tag (immutable tags are recommended) | `3.11.5-debian-10-r0` |
| `image.pullPolicy` | Moodle image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
| `image.debug` | Specify if debug logs should be enabled | `false` |
| `replicaCount` | Number of Moodle replicas (requires ReadWriteMany PVC support) | `1` |
| `moodleSkipInstall` | Skip Moodle&trade; installation wizard. Useful for migrations and restoring from SQL dump | `false` |
| `moodleSiteName` | Site name | `""` |
| `moodleUsername` | User of the application | `user` |
| `moodlePassword` | Application password | `""` |
| `moodleEmail` | Admin email | `user@example.com` |
| `allowEmptyPassword` | Allow DB blank passwords | `true` |
| `command` | Override default container command (useful when using custom images) | `[]` |
| `args` | Override default container args (useful when using custom images) | `[]` |
| `updateStrategy.type` | Update strategy - only really applicable for deployments with RWO PVs attached | `RollingUpdate` |
| `extraEnvVars` | An array to add extra env vars | `[]` |
| `extraEnvVarsCM` | ConfigMap with extra environment variables | `""` |
| `extraEnvVarsSecret` | Secret with extra environment variables (in case of sensitive data) | `""` |
| `extraVolumes` | Array of extra volumes to be added to the deployment (evaluated as template). Requires setting `extraVolumeMounts` | `[]` |
| `extraVolumeMounts` | Array of extra volume mounts to be added to the container (evaluated as template). Normally used with `extraVolumes`. | `[]` |
| `initContainers` | Extra init containers to add to the deployment | `[]` |
| `sidecars` | Extra sidecar containers to add to the deployment | `[]` |
| `hostAliases` | Moodle&trade; pods host aliases | `[]` |
| `tolerations` | Tolerations for pod assignment | `[]` |
| `priorityClassName` | Moodle&trade; pods' priorityClassName | `""` |
| `schedulerName` | Name of the k8s scheduler (other than default) | `""` |
| `topologySpreadConstraints` | Topology Spread Constraints for pod assignment | `[]` |
| `existingSecret` | Name of a secret with the application password | `""` |
| `smtpHost` | SMTP host | `""` |
| `smtpPort` | SMTP port | `""` |
| `smtpUser` | SMTP user | `""` |
| `smtpPassword` | SMTP password | `""` |
| `smtpProtocol` | SMTP Protocol (options: ssl,tls, nil) | `""` |
| `containerPorts` | Container ports | `{}` |
| `sessionAffinity` | Control where client requests go, to the same pod or round-robin | `None` |
| `persistence.enabled` | Enable persistence using PVC | `true` |
| `persistence.customStorageClass` | Create a custom storage class | `{}` |
| `persistence.storageClass` | PVC Storage Class for Moodle | `""` |
| `persistence.accessModes` | PVC Access Mode for Moodle | `["ReadWriteOnce"]` |
| `persistence.size` | PVC Storage Request for Moodle | `8Gi` |
| `persistence.existingClaim` | An Existing PVC name | `""` |
| `persistence.hostPath` | Host mount path for Moodle | `""` |
| `persistence.annotations` | Persistent Volume Claim annotations | `{}` |
| `podAffinityPreset` | Pod affinity preset | `""` |
| `podAntiAffinityPreset` | Pod anti-affinity preset | `soft` |
| `nodeAffinityPreset.type` | Node affinity type | `""` |
| `nodeAffinityPreset.key` | Node label key to match | `""` |
| `nodeAffinityPreset.values` | Node label values to match | `[]` |
| `affinity` | Map of node/pod affinities | `{}` |
| `nodeSelector` | Node labels for pod assignment | `{}` |
| `resources.requests` | CPU/Memory resource requests | `{}` |
| `resources.limits` | CPU/Memory resource limits | `{}` |
| `podSecurityContext.enabled` | Enable Moodle&trade; pods' Security Context | `true` |
| `podSecurityContext.fsGroup` | Moodle&trade; pods' group ID | `1001` |
| `containerSecurityContext.enabled` | Enable Moodle&trade; containers' Security Context | `true` |
| `containerSecurityContext.runAsUser` | Moodle&trade; containers' Security Context runAsUser | `1001` |
| `containerSecurityContext.runAsNonRoot` | Moodle&trade; containers' Security Context runAsNonRoot | `true` |
| `startupProbe.enabled` | Enable startupProbe | `false` |
| `startupProbe.path` | Request path for startupProbe | `/login/index.php` |
| `startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `600` |
| `startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
| `startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` |
| `startupProbe.failureThreshold` | Failure threshold for startupProbe | `6` |
| `startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
| `livenessProbe.enabled` | Enable livenessProbe | `true` |
| `livenessProbe.path` | Request path for livenessProbe | `/login/index.php` |
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `600` |
| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `6` |
| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `readinessProbe.enabled` | Enable readinessProbe | `true` |
| `readinessProbe.path` | Request path for readinessProbe | `/login/index.php` |
| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `30` |
| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `5` |
| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `3` |
| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` |
| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `customStartupProbe` | Override default startup probe | `{}` |
| `customLivenessProbe` | Override default liveness probe | `{}` |
| `customReadinessProbe` | Override default readiness probe | `{}` |
| `lifecycleHooks` | LifecycleHook to set additional configuration at startup Evaluated as a template | `""` |
| `podAnnotations` | Pod annotations | `{}` |
| `podLabels` | Add additional labels to the pod (evaluated as a template) | `{}` |
| Name | Description | Value |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------- |
| `image.registry` | Moodle image registry | `docker.io` |
| `image.repository` | Moodle image repository | `bitnami/moodle` |
| `image.tag` | Moodle image tag (immutable tags are recommended) | `4.0.1-debian-10-r0` |
| `image.pullPolicy` | Moodle image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
| `image.debug` | Specify if debug logs should be enabled | `false` |
| `replicaCount` | Number of Moodle replicas (requires ReadWriteMany PVC support) | `1` |
| `moodleSkipInstall` | Skip Moodle&trade; installation wizard. Useful for migrations and restoring from SQL dump | `false` |
| `moodleSiteName` | Site name | `""` |
| `moodleUsername` | User of the application | `user` |
| `moodlePassword` | Application password | `""` |
| `moodleEmail` | Admin email | `user@example.com` |
| `allowEmptyPassword` | Allow DB blank passwords | `true` |
| `command` | Override default container command (useful when using custom images) | `[]` |
| `args` | Override default container args (useful when using custom images) | `[]` |
| `updateStrategy.type` | Update strategy - only really applicable for deployments with RWO PVs attached | `RollingUpdate` |
| `extraEnvVars` | An array to add extra env vars | `[]` |
| `extraEnvVarsCM` | ConfigMap with extra environment variables | `""` |
| `extraEnvVarsSecret` | Secret with extra environment variables (in case of sensitive data) | `""` |
| `extraVolumes` | Array of extra volumes to be added to the deployment (evaluated as template). Requires setting `extraVolumeMounts` | `[]` |
| `extraVolumeMounts` | Array of extra volume mounts to be added to the container (evaluated as template). Normally used with `extraVolumes`. | `[]` |
| `initContainers` | Extra init containers to add to the deployment | `[]` |
| `sidecars` | Extra sidecar containers to add to the deployment | `[]` |
| `hostAliases` | Moodle&trade; pods host aliases | `[]` |
| `tolerations` | Tolerations for pod assignment | `[]` |
| `priorityClassName` | Moodle&trade; pods' priorityClassName | `""` |
| `schedulerName` | Name of the k8s scheduler (other than default) | `""` |
| `topologySpreadConstraints` | Topology Spread Constraints for pod assignment | `[]` |
| `existingSecret` | Name of a secret with the application password | `""` |
| `smtpHost` | SMTP host | `""` |
| `smtpPort` | SMTP port | `""` |
| `smtpUser` | SMTP user | `""` |
| `smtpPassword` | SMTP password | `""` |
| `smtpProtocol` | SMTP Protocol (options: ssl,tls, nil) | `""` |
| `containerPorts` | Container ports | `{}` |
| `sessionAffinity` | Control where client requests go, to the same pod or round-robin | `None` |
| `persistence.enabled` | Enable persistence using PVC | `true` |
| `persistence.customStorageClass` | Create a custom storage class | `{}` |
| `persistence.storageClass` | PVC Storage Class for Moodle | `""` |
| `persistence.accessModes` | PVC Access Mode for Moodle | `["ReadWriteOnce"]` |
| `persistence.size` | PVC Storage Request for Moodle | `8Gi` |
| `persistence.existingClaim` | An Existing PVC name | `""` |
| `persistence.hostPath` | Host mount path for Moodle | `""` |
| `persistence.annotations` | Persistent Volume Claim annotations | `{}` |
| `podAffinityPreset` | Pod affinity preset | `""` |
| `podAntiAffinityPreset` | Pod anti-affinity preset | `soft` |
| `nodeAffinityPreset.type` | Node affinity type | `""` |
| `nodeAffinityPreset.key` | Node label key to match | `""` |
| `nodeAffinityPreset.values` | Node label values to match | `[]` |
| `affinity` | Map of node/pod affinities | `{}` |
| `nodeSelector` | Node labels for pod assignment | `{}` |
| `resources.requests` | CPU/Memory resource requests | `{}` |
| `resources.limits` | CPU/Memory resource limits | `{}` |
| `podSecurityContext.enabled` | Enable Moodle&trade; pods' Security Context | `true` |
| `podSecurityContext.fsGroup` | Moodle&trade; pods' group ID | `1001` |
| `containerSecurityContext.enabled` | Enable Moodle&trade; containers' Security Context | `true` |
| `containerSecurityContext.runAsUser` | Moodle&trade; containers' Security Context runAsUser | `1001` |
| `containerSecurityContext.runAsNonRoot` | Moodle&trade; containers' Security Context runAsNonRoot | `true` |
| `startupProbe.enabled` | Enable startupProbe | `false` |
| `startupProbe.path` | Request path for startupProbe | `/login/index.php` |
| `startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `600` |
| `startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
| `startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` |
| `startupProbe.failureThreshold` | Failure threshold for startupProbe | `6` |
| `startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
| `livenessProbe.enabled` | Enable livenessProbe | `true` |
| `livenessProbe.path` | Request path for livenessProbe | `/login/index.php` |
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `600` |
| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `6` |
| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `readinessProbe.enabled` | Enable readinessProbe | `true` |
| `readinessProbe.path` | Request path for readinessProbe | `/login/index.php` |
| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `30` |
| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `5` |
| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `3` |
| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` |
| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `customStartupProbe` | Override default startup probe | `{}` |
| `customLivenessProbe` | Override default liveness probe | `{}` |
| `customReadinessProbe` | Override default readiness probe | `{}` |
| `lifecycleHooks` | LifecycleHook to set additional configuration at startup Evaluated as a template | `""` |
| `podAnnotations` | Pod annotations | `{}` |
| `podLabels` | Add additional labels to the pod (evaluated as a template) | `{}` |
### Traffic Exposure Parameters
@@ -192,6 +195,8 @@ The command removes all the Kubernetes components associated with the chart and
| `ingress.extraTls` | The tls configuration for additional hostnames to be covered with this ingress record. | `[]` |
| `ingress.secrets` | If you're providing your own certificates, please use this to add the certificates as secrets | `[]` |
| `ingress.ingressClassName` | IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+) | `""` |
| `ingress.extraRules` | Additional rules to be covered with this ingress record | `[]` |
### Database parameters
@@ -217,6 +222,7 @@ The command removes all the Kubernetes components associated with the chart and
| `externalDatabase.database` | Name of the existing database | `bitnami_moodle` |
| `externalDatabase.existingSecret` | Name of an existing secret resource containing the DB password | `""` |
### Volume Permissions parameters
| Name | Description | Value |
@@ -224,12 +230,13 @@ The command removes all the Kubernetes components associated with the chart and
| `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) | `false` |
| `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` |
| `volumePermissions.image.repository` | Init container volume-permissions image repository | `bitnami/bitnami-shell` |
| `volumePermissions.image.tag` | Init container volume-permissions image tag (immutable tags are recommended) | `10-debian-10-r311` |
| `volumePermissions.image.tag` | Init container volume-permissions image tag (immutable tags are recommended) | `10-debian-10-r425` |
| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `IfNotPresent` |
| `volumePermissions.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
| `volumePermissions.resources.limits` | The resources limits for the container | `{}` |
| `volumePermissions.resources.requests` | The requested resources for the container | `{}` |
### Metrics parameters
| Name | Description | Value |
@@ -237,7 +244,7 @@ The command removes all the Kubernetes components associated with the chart and
| `metrics.enabled` | Start a side-car prometheus exporter | `false` |
| `metrics.image.registry` | Apache exporter image registry | `docker.io` |
| `metrics.image.repository` | Apache exporter image repository | `bitnami/apache-exporter` |
| `metrics.image.tag` | Apache exporter image tag (immutable tags are recommended) | `0.11.0-debian-10-r28` |
| `metrics.image.tag` | Apache exporter image tag (immutable tags are recommended) | `0.11.0-debian-10-r144` |
| `metrics.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `metrics.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
| `metrics.service.type` | Prometheus metrics service type | `LoadBalancer` |
@@ -252,6 +259,7 @@ The command removes all the Kubernetes components associated with the chart and
| `metrics.resources` | Exporter resource requests/limit | `{}` |
| `metrics.podAnnotations` | Metrics exporter pod Annotation and Labels | `{}` |
### Certificate injection parameters
| Name | Description | Value |
@@ -270,10 +278,11 @@ The command removes all the Kubernetes components associated with the chart and
| `certificates.extraEnvVarsSecret` | Secret with extra environment variables | `""` |
| `certificates.image.registry` | Container sidecar registry | `docker.io` |
| `certificates.image.repository` | Container sidecar image repository | `bitnami/bitnami-shell` |
| `certificates.image.tag` | Container sidecar image tag (immutable tags are recommended) | `10-debian-10-r311` |
| `certificates.image.tag` | Container sidecar image tag (immutable tags are recommended) | `10-debian-10-r425` |
| `certificates.image.pullPolicy` | Container sidecar image pull policy | `IfNotPresent` |
| `certificates.image.pullSecrets` | Container sidecar image pull secrets | `[]` |
### NetworkPolicy parameters
| Name | Description | Value |
@@ -294,6 +303,7 @@ The command removes all the Kubernetes components associated with the chart and
| `networkPolicy.egressRules.denyConnectionsToExternal` | Enable egress rule that denies outgoing traffic outside the cluster, except for DNS (port 53). | `false` |
| `networkPolicy.egressRules.customRules` | Custom network policy rule | `{}` |
The above parameters map to the env variables defined in [bitnami/moodle](https://github.com/bitnami/bitnami-docker-moodle). For more information please refer to the [bitnami/moodle](https://github.com/bitnami/bitnami-docker-moodle) image documentation.
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,

View File

@@ -46,6 +46,9 @@ spec:
{{- end }}
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" "http" "context" $) | nindent 14 }}
{{- end }}
{{- if .Values.ingress.extraRules }}
{{- include "common.tplvalues.render" (dict "value" .Values.ingress.extraRules "context" $) | nindent 4 }}
{{- end }}
{{- if or .Values.ingress.tls .Values.ingress.extraTls }}
tls:
{{- if .Values.ingress.tls }}

View File

@@ -521,6 +521,20 @@ ingress:
## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
##
ingressClassName: ""
## @param ingress.extraRules Additional rules to be covered with this ingress record
## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
## e.g:
## extraRules:
## - host: example.local
## http:
## path: /
## backend:
## service:
## name: example-svc
## port:
## name: http
##
extraRules: []
## @section Database parameters