[bitnami/parse] Major change: adapt ingress (#5003)

This commit is contained in:
Javier J. Salmerón-García
2021-01-14 16:51:13 +01:00
committed by GitHub
parent 968ac92508
commit d4deb316ec
13 changed files with 284 additions and 184 deletions

View File

@@ -1,9 +1,9 @@
dependencies:
- name: mongodb
repository: https://charts.bitnami.com/bitnami
version: 10.3.1
version: 10.3.6
- name: common
repository: https://charts.bitnami.com/bitnami
version: 1.1.3
digest: sha256:77c56c817b3a3771b2c0009f4f99f8a00c8d1fae0c555010abae86818fb095ad
generated: "2020-12-18T15:37:47.62088395Z"
version: 1.2.3
digest: sha256:7f66f27b08fab254de183400c01aa1527b75620af68f5bffd7ae2c8a7b59f07d
generated: "2021-01-13T16:49:47.580887+01:00"

View File

@@ -30,4 +30,4 @@ sources:
- https://github.com/bitnami/bitnami-docker-parse
- https://github.com/bitnami/bitnami-docker-parse-dashboard
- https://parse.com/
version: 13.2.3
version: 14.0.0

View File

@@ -48,107 +48,108 @@ The command removes all the Kubernetes components associated with the chart and
The following table lists the configurable parameters of the Parse chart and their default values.
| Parameter | Description | Default |
|----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| `global.imageRegistry` | Global Docker image registry | `nil` |
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `global.storageClass` | Global storage class for dynamic provisioning | `nil` |
| `nameOverride` | String to partially override common.names.fullname template with a string (will prepend the release name) | `nil` |
| `fullnameOverride` | String to fully override common.names.fullname template with a string | `nil` |
| `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 name | `bitnami/minideb` |
| `volumePermissions.image.tag` | Init container volume-permissions image tag | `buster` |
| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `Always` |
| `volumePermissions.resources` | Init container resource requests/limit | `nil` |
| `service.type` | Kubernetes Service type | `LoadBalancer` |
| `service.port` | Service HTTP port (Dashboard) | `80` |
| `service.loadBalancerIP` | `loadBalancerIP` for the Parse Service | `nil` |
| `service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` |
| `service.nodePorts.http` | Kubernetes http node port | `""` |
| `server.image.registry` | Parse image registry | `docker.io` |
| `server.image.repository` | Parse image name | `bitnami/parse` |
| `server.image.tag` | Parse image tag | `{TAG_NAME}` |
| `server.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `server.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `server.securityContext.enabled` | Enable security context for Parse Server | `true` |
| `server.securityContext.fsGroup` | Group ID for Parse Server container | `1001` |
| `server.securityContext.runAsUser` | User ID for Parse Server container | `1001` |
| `server.host` | Hostname to use to access Parse server (when `ingress.enabled=true` is set to `ingress.server.hosts[0].name` by default) | `nil` |
| `server.port` | Parse server port | `1337` |
| `server.mountPath` | Parse server API mount path | `/parse` |
| `server.appId` | Parse server App Id | `myappID` |
| `server.masterKey` | Parse server Master Key | `random 10 character alphanumeric string` |
| `server.enableCloudCode` | Enable Parse Cloud Clode | `false` |
| `server.cloudCodeScripts` | Dictionary of Cloud Code scripts | `nil` |
| `server.existingCloudCodeScriptsCM` | ConfigMap with Cloud Code scripts (Note: Overrides `cloudCodeScripts`). | `nil` |
| `server.resources` | The [resources] to allocate for container | `{}` |
| `server.livenessProbe` | Liveness probe configuration for Server | `Check values.yaml file` |
| `server.readinessProbe` | Readiness probe configuration for Server | `Check values.yaml file` |
| `server.podAffinityPreset` | Parse server pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `server.podAntiAffinityPreset` | Parse server pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `server.nodeAffinityPreset.type` | Parse server node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `server.nodeAffinityPreset.key` | Parse server node label key to match Ignored if `affinity` is set. | `""` |
| `server.nodeAffinityPreset.values` | Parse server node label values to match. Ignored if `affinity` is set. | `[]` |
| `server.affinity` | Parse server affinity for pod assignment | `{}` (evaluated as a template) |
| `server.nodeSelector` | Parse server node labels for pod assignment | `{}` (evaluated as a template) |
| `server.tolerations` | Parse server tolerations for pod assignment | `[]` (evaluated as a template) |
| `server.extraEnvVars` | Array containing extra env vars (evaluated as a template) | `nil` |
| `server.extraEnvVarsCM` | ConfigMap containing extra env vars (evaluated as a template) | `nil` |
| `server.extraEnvVarsSecret` | Secret containing extra env vars (evaluated as a template) | `nil` |
| `dashboard.enabled` | Enable parse dashboard | `true` |
| `dashboard.image.registry` | Dashboard image registry | `docker.io` |
| `dashboard.image.repository` | Dashboard image name | `bitnami/parse-dashboard` |
| `dashboard.image.tag` | Dashboard image tag | `{TAG_NAME}` |
| `dashboard.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `dashboard.securityContext.enabled` | Enable security context for Dashboard | `true` |
| `dashboard.securityContext.fsGroup` | Group ID for Dashboard container | `1001` |
| `dashboard.securityContext.runAsUser` | User ID for Dashboard container | `1001` |
| `dashboard.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `dashboard.username` | Dashboard username | `user` |
| `dashboard.password` | Dashboard user password | `random 10 character alphanumeric string` |
| `dashboard.appName` | Dashboard application name | `MyDashboard` |
| `dashboard.parseServerUrlProtocol` | Protocol used by Parse Dashboard to form the URLs to Parse Server. | `http` |
| `dashboard.resources` | The [resources] to allocate for container | `{}` |
| `dashboard.livenessProbe` | Liveness probe configuration for Dashboard | `Check values.yaml file` |
| `dashboard.readinessProbe` | Readiness probe configuration for Dashboard | `Check values.yaml file` |
| `dashboard.podAffinityPreset` | Parse dashboard pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `dashboard.podAntiAffinityPreset` | Parse dashboard pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `dashboard.nodeAffinityPreset.type` | Parse dashboard node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `dashboard.nodeAffinityPreset.key` | Parse dashboard node label key to match Ignored if `affinity` is set. | `""` |
| `dashboard.nodeAffinityPreset.values` | Parse dashboard node label values to match. Ignored if `affinity` is set. | `[]` |
| `dashboard.affinity` | Parse dashboard affinity for pod assignment | `{}` (evaluated as a template) |
| `dashboard.nodeSelector` | Parse dashboard node labels for pod assignment | `{}` (evaluated as a template) |
| `dashboard.tolerations` | Parse dashboard tolerations for pod assignment | `[]` (evaluated as a template) |
| `dashboard.extraEnvVars` | Array containing extra env vars (evaluated as a template) | `nil` |
| `dashboard.extraEnvVarsCM` | ConfigMap containing extra env vars (evaluated as a template) | `nil` |
| `dashboard.extraEnvVarsSecret` | Secret containing extra env vars (evaluated as a template) | `nil` |
| `persistence.enabled` | Enable Parse persistence using PVC | `true` |
| `persistence.storageClass` | PVC Storage Class for Parse volume | `nil` (uses alpha storage class annotation) |
| `persistence.accessMode` | PVC Access Mode for Parse volume | `ReadWriteOnce` |
| `persistence.size` | PVC Storage Request for Parse volume | `8Gi` |
| `ingress.enabled` | Enable ingress controller resource | `false` |
| `ingress.annotations` | Ingress annotations | `[]` |
| `ingress.certManager` | Add annotations for cert-manager | `false` |
| `ingress.dashboard.hosts[0].name` | Hostname to your Parse Dashboard installation | `ghost.local` |
| `ingress.dashboard.hosts[0].path` | Path within the url structure | `/` |
| `ingress.dashboard.hosts[0].tls` | Utilize TLS backend in ingress | `false` |
| `ingress.dashboard.hosts[0].tlsHosts` | Array of TLS hosts for ingress record (defaults to `ingress.hosts[0].name` if `nil`) | `nil` |
| `ingress.dashboard.hosts[0].tlsSecret` | TLS Secret (certificates) | `ghost.local-tls-secret` |
| `ingress.server.hosts[0].name` | Hostname to your Parse Server installation | `ghost.local` |
| `ingress.server.hosts[0].path` | Path within the url structure | `/` |
| `ingress.server.hosts[0].tls` | Utilize TLS backend in ingress | `false` |
| `ingress.server.hosts[0].tlsHosts` | Array of TLS hosts for ingress record (defaults to `ingress.hosts[0].name` if `nil`) | `nil` |
| `ingress.server.hosts[0].tlsSecret` | TLS Secret (certificates) | `ghost.local-tls-secret` |
| `ingress.secrets[0].name` | TLS Secret Name | `nil` |
| `ingress.secrets[0].certificate` | TLS Secret Certificate | `nil` |
| `ingress.secrets[0].key` | TLS Secret Key | `nil` |
| `mongodb.auth.enabled` | Enable MongoDB password authentication | `true` |
| `mongodb.auth.rootPassword` | MongoDB admin password | `nil` |
| `mongodb.persistence.enabled` | Enable MongoDB persistence using PVC | `true` |
| `mongodb.persistence.storageClass` | PVC Storage Class for MongoDB volume | `nil` (uses alpha storage class annotation) |
| `mongodb.persistence.accessMode` | PVC Access Mode for MongoDB volume | `ReadWriteOnce` |
| `mongodb.persistence.size` | PVC Storage Request for MongoDB volume | `8Gi` |
| Parameter | Description | Default |
|---------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| `global.imageRegistry` | Global Docker image registry | `nil` |
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `global.storageClass` | Global storage class for dynamic provisioning | `nil` |
| `nameOverride` | String to partially override common.names.fullname template with a string (will prepend the release name) | `nil` |
| `fullnameOverride` | String to fully override common.names.fullname template with a string | `nil` |
| `commonLabels` | Labels to add to all deployed objects | `{}` |
| `commonAnnotations` | Annotations to add to all deployed objects | `{}` |
| `extraDeploy` | Array of extra objects to deploy with the release | `[]` (evaluated as a template) |
| `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 name | `bitnami/minideb` |
| `volumePermissions.image.tag` | Init container volume-permissions image tag | `buster` |
| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `Always` |
| `volumePermissions.resources` | Init container resource requests/limit | `nil` |
| `service.type` | Kubernetes Service type | `LoadBalancer` |
| `service.port` | Service HTTP port (Dashboard) | `80` |
| `service.loadBalancerIP` | `loadBalancerIP` for the Parse Service | `nil` |
| `service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` |
| `service.nodePorts.http` | Kubernetes http node port | `""` |
| `server.image.registry` | Parse image registry | `docker.io` |
| `server.image.repository` | Parse image name | `bitnami/parse` |
| `server.image.tag` | Parse image tag | `{TAG_NAME}` |
| `server.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `server.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `server.securityContext.enabled` | Enable security context for Parse Server | `true` |
| `server.securityContext.fsGroup` | Group ID for Parse Server container | `1001` |
| `server.securityContext.runAsUser` | User ID for Parse Server container | `1001` |
| `server.host` | Hostname to use to access Parse server (when `ingress.enabled=true` is set to `ingress.server.hosts[0].name` by default) | `nil` |
| `server.port` | Parse server port | `1337` |
| `server.mountPath` | Parse server API mount path | `/parse` |
| `server.appId` | Parse server App Id | `myappID` |
| `server.masterKey` | Parse server Master Key | `random 10 character alphanumeric string` |
| `server.enableCloudCode` | Enable Parse Cloud Clode | `false` |
| `server.cloudCodeScripts` | Dictionary of Cloud Code scripts | `nil` |
| `server.existingCloudCodeScriptsCM` | ConfigMap with Cloud Code scripts (Note: Overrides `cloudCodeScripts`). | `nil` |
| `server.resources` | The [resources] to allocate for container | `{}` |
| `server.livenessProbe` | Liveness probe configuration for Server | `Check values.yaml file` |
| `server.readinessProbe` | Readiness probe configuration for Server | `Check values.yaml file` |
| `server.podAffinityPreset` | Parse server pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `server.podAntiAffinityPreset` | Parse server pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `server.nodeAffinityPreset.type` | Parse server node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `server.nodeAffinityPreset.key` | Parse server node label key to match Ignored if `affinity` is set. | `""` |
| `server.nodeAffinityPreset.values` | Parse server node label values to match. Ignored if `affinity` is set. | `[]` |
| `server.affinity` | Parse server affinity for pod assignment | `{}` (evaluated as a template) |
| `server.nodeSelector` | Parse server node labels for pod assignment | `{}` (evaluated as a template) |
| `server.tolerations` | Parse server tolerations for pod assignment | `[]` (evaluated as a template) |
| `server.extraEnvVars` | Array containing extra env vars (evaluated as a template) | `nil` |
| `server.extraEnvVarsCM` | ConfigMap containing extra env vars (evaluated as a template) | `nil` |
| `server.extraEnvVarsSecret` | Secret containing extra env vars (evaluated as a template) | `nil` |
| `dashboard.enabled` | Enable parse dashboard | `true` |
| `dashboard.image.registry` | Dashboard image registry | `docker.io` |
| `dashboard.image.repository` | Dashboard image name | `bitnami/parse-dashboard` |
| `dashboard.image.tag` | Dashboard image tag | `{TAG_NAME}` |
| `dashboard.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `dashboard.securityContext.enabled` | Enable security context for Dashboard | `true` |
| `dashboard.securityContext.fsGroup` | Group ID for Dashboard container | `1001` |
| `dashboard.securityContext.runAsUser` | User ID for Dashboard container | `1001` |
| `dashboard.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `dashboard.username` | Dashboard username | `user` |
| `dashboard.password` | Dashboard user password | `random 10 character alphanumeric string` |
| `dashboard.appName` | Dashboard application name | `MyDashboard` |
| `dashboard.parseServerUrlProtocol` | Protocol used by Parse Dashboard to form the URLs to Parse Server. | `http` |
| `dashboard.resources` | The [resources] to allocate for container | `{}` |
| `dashboard.livenessProbe` | Liveness probe configuration for Dashboard | `Check values.yaml file` |
| `dashboard.readinessProbe` | Readiness probe configuration for Dashboard | `Check values.yaml file` |
| `dashboard.podAffinityPreset` | Parse dashboard pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `dashboard.podAntiAffinityPreset` | Parse dashboard pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `dashboard.nodeAffinityPreset.type` | Parse dashboard node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `dashboard.nodeAffinityPreset.key` | Parse dashboard node label key to match Ignored if `affinity` is set. | `""` |
| `dashboard.nodeAffinityPreset.values` | Parse dashboard node label values to match. Ignored if `affinity` is set. | `[]` |
| `dashboard.affinity` | Parse dashboard affinity for pod assignment | `{}` (evaluated as a template) |
| `dashboard.nodeSelector` | Parse dashboard node labels for pod assignment | `{}` (evaluated as a template) |
| `dashboard.tolerations` | Parse dashboard tolerations for pod assignment | `[]` (evaluated as a template) |
| `dashboard.extraEnvVars` | Array containing extra env vars (evaluated as a template) | `nil` |
| `dashboard.extraEnvVarsCM` | ConfigMap containing extra env vars (evaluated as a template) | `nil` |
| `dashboard.extraEnvVarsSecret` | Secret containing extra env vars (evaluated as a template) | `nil` |
| `persistence.enabled` | Enable Parse persistence using PVC | `true` |
| `persistence.storageClass` | PVC Storage Class for Parse volume | `nil` (uses alpha storage class annotation) |
| `persistence.accessMode` | PVC Access Mode for Parse volume | `ReadWriteOnce` |
| `persistence.size` | PVC Storage Request for Parse volume | `8Gi` |
| `ingress.enabled` | Enable ingress controller resource | `false` |
| `ingress.annotations` | Ingress annotations | `[]` |
| `ingress.certManager` | Add annotations for cert-manager | `false` |
| `ingress.dashboard.hostname` | Default host for the ingress resource | `parse-dashboard.local` |
| `ingress.dashboard.extraHosts` | Extra hosts for the ingress resource | `[]` |
| `ingress.dashboard.path` | Default path for the ingress resource | `/` |
| `ingress.dashboard.pathType` | Ingress path type | `ImplementationSpecific` |
| `ingress.server.hostname` | Default host for the ingress resource | `parse-server.local` |
| `ingress.server.path` | Default path for the ingress resource | `/` |
| `ingress.server.pathType` | Ingress path type | `ImplementationSpecific` |
| `ingress.server.extraHosts` | Extra hosts for the ingress resource | `[]` |
| `ingress.secrets[0].name` | TLS Secret Name | `nil` |
| `ingress.secrets[0].certificate` | TLS Secret Certificate | `nil` |
| `ingress.secrets[0].key` | TLS Secret Key | `nil` |
| `mongodb.auth.enabled` | Enable MongoDB password authentication | `true` |
| `mongodb.auth.rootPassword` | MongoDB admin password | `nil` |
| `mongodb.persistence.enabled` | Enable MongoDB persistence using PVC | `true` |
| `mongodb.persistence.storageClass` | PVC Storage Class for MongoDB volume | `nil` (uses alpha storage class annotation) |
| `mongodb.persistence.accessMode` | PVC Access Mode for MongoDB volume | `ReadWriteOnce` |
| `mongodb.persistence.size` | PVC Storage Request for MongoDB volume | `8Gi` |
The above parameters map to the env variables defined in [bitnami/parse](http://github.com/bitnami/bitnami-docker-parse). For more information please refer to the [bitnami/parse](http://github.com/bitnami/bitnami-docker-parse) image documentation.
@@ -240,6 +241,10 @@ Find more information about how to deal with common errors related to Bitnami
## Upgrading
### To 14.0.0
This version standardizes the way of defining Ingress rules. When configuring a single hostname for the Ingress rule, set the `ingress.dashboard.hostname` and `ingress.server.hostname` values. When defining more than one, set the `ingress.dashboard.extraHosts` and `ingress.server.extraHosts` arrays. Apart from this case, no issues are expected to appear when upgrading.
### To 13.0.0
[On November 13, 2020, Helm v2 support was formally finished](https://github.com/helm/charts#status-of-the-project), this major version is the result of the required changes applied to the Helm Chart to be able to incorporate the different features added in Helm v3 and to be consistent with the Helm project itself regarding the Helm v2 EOL.

View File

@@ -10,12 +10,11 @@ Parse Server
1. Get your Parse Server URL:
{{- if .Values.ingress.enabled }}
{{ $ingressHost := first .Values.ingress.server.hosts }}
You should be able to access Parse Server through: {{- range .Values.ingress.server.hosts }} {{ if .tls }}https{{ else }}http{{ end }}://{{ .name }} {{- end }}
You should be able to access Parse Server through: {{ if .Values.ingress.tls }}https{{ else }}http{{ end }}://{{ .Values.ingress.server.hostname }}
For instance:
export SERVICE_HOST={{ $ingressHost.name }}
export SERVICE_HOST={{ .Values.ingress.server.hostname }}
{{- else if contains "NodePort" .Values.service.type }}
@@ -76,7 +75,7 @@ service:
{{- if .Values.ingress.enabled }}
You should be able to access Parse Dashboard through: {{- range .Values.ingress.dashboard.hosts }} {{ if .tls }}https{{ else }}http{{ end }}://{{ .name }} {{- end }}
You should be able to access Parse Dashboard through: {{ if .Values.ingress.tls }}https{{ else }}http{{ end }}://{{ .Values.ingress.dashboard.hostname }}
{{- else if eq .Values.service.type "ClusterIP" }}

View File

@@ -63,8 +63,8 @@ but Helm 2.9 and 2.10 does not support it, so we need to implement this if-else
*/}}
{{- $host := default "" .Values.server.host -}}
{{- if .Values.ingress.enabled -}}
{{- $ingressHost := first .Values.ingress.server.hosts -}}
{{- $serverHost := default $ingressHost.name $host -}}
{{- $ingressHost := .Values.ingress.server.hostname -}}
{{- $serverHost := default $ingressHost $host -}}
{{- default (include "parse.serviceIP" .) $serverHost -}}
{{- else -}}
{{- default (include "parse.serviceIP" .) $host -}}
@@ -129,12 +129,10 @@ Validate values of Parse Dashboard - if tls is enable on server side must provid
*/}}
{{- define "parse.validateValues.dashboard.serverUrlProtocol" -}}
{{- if .Values.ingress.enabled -}}
{{- range .Values.ingress.server.hosts -}}
{{- if and (.tls) (ne $.Values.dashboard.parseServerUrlProtocol "https") -}}
{{- if and .Values.ingress.tls (ne $.Values.dashboard.parseServerUrlProtocol "https") -}}
parse: dashboard.parseServerUrlProtocol
If Parse Server is using ingress with tls enable then It must be set as "https"
in order to form the URLs with this protocol, in another case, Parse Dashboard will always redirect to "http".
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}

View File

@@ -5,6 +5,12 @@ metadata:
name: {{ include "common.names.fullname" . }}-cloud-code-scripts
labels: {{ include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: server
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
data:
{{- with .Files.Glob "files/cloud/*.js" }}
{{ .AsConfig | indent 2 }}

View File

@@ -5,6 +5,12 @@ metadata:
name: {{ include "common.names.fullname" . }}-dashboard
labels: {{ include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: dashboard
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
selector:
matchLabels: {{ include "common.labels.matchLabels" . | nindent 6 }}

View File

@@ -1,5 +1,5 @@
{{- if .Values.ingress.enabled }}
apiVersion: extensions/v1beta1
apiVersion: {{ template "common.capabilities.ingress.apiVersion" . }}
kind: Ingress
metadata:
name: {{ include "common.names.fullname" . }}
@@ -8,58 +8,79 @@ metadata:
{{- if .Values.ingress.certManager }}
kubernetes.io/tls-acme: "true"
{{- end }}
{{- range $key, $value := .Values.ingress.annotations }}
{{ $key }}: {{ $value | quote }}
{{- if .Values.ingress.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.ingress.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
rules:
{{- if .Values.dashboard.enabled }}
{{- range .Values.ingress.dashboard.hosts }}
- host: {{ .name }}
{{- if .Values.ingress.dashboard.hostname }}
- host: {{ .Values.ingress.dashboard.hostname }}
http:
paths:
{{- if .Values.ingress.dashboard.extraPaths }}
{{- toYaml .Values.ingress.dashboard.extraPaths | nindent 10 }}
{{- end }}
- path: {{ .Values.ingress.dashboard.path }}
{{- if eq "true" (include "common.ingress.supportsPathType" .) }}
pathType: {{ .Values.ingress.dashboard.pathType }}
{{- end }}
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" "dashboard-http" "context" $) | nindent 14 }}
{{- end }}
{{- range .Values.ingress.dashboard.extraHosts }}
- host: {{ .name | quote }}
http:
paths:
- path: {{ default "/" .path }}
backend:
serviceName: {{ include "common.names.fullname" $ }}
servicePort: dashboard-http
{{- if eq "true" (include "common.ingress.supportsPathType" $) }}
pathType: {{ default "ImplementationSpecific" .pathType }}
{{- end }}
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" "dashboard-http" "context" $) | nindent 14 }}
{{- end }}
{{- end }}
{{- if .Values.ingress.server.hostname }}
- host: {{ .Values.ingress.server.hostname }}
http:
paths:
{{- if .Values.ingress.server.extraPaths }}
{{- toYaml .Values.ingress.server.extraPaths | nindent 10 }}
{{- end }}
- path: {{ .Values.ingress.server.path }}
{{- if eq "true" (include "common.ingress.supportsPathType" .) }}
pathType: {{ .Values.ingress.server.pathType }}
{{- end }}
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" "server-http" "context" $) | nindent 14 }}
{{- end }}
{{- range .Values.ingress.server.hosts }}
- host: {{ .name }}
{{- range .Values.ingress.server.extraHosts }}
- host: {{ .name | quote }}
http:
paths:
- path: {{ default "/" .path }}
backend:
serviceName: {{ include "common.names.fullname" $ }}
servicePort: server-http
{{- if eq "true" (include "common.ingress.supportsPathType" $) }}
pathType: {{ default "ImplementationSpecific" .pathType }}
{{- end }}
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" "server-http" "context" $) | nindent 14 }}
{{- end }}
{{- if or .Values.ingress.tls .Values.ingress.extraTls }}
tls:
{{- if .Values.ingress.tls }}
{{- if .Values.dashboard.enabled }}
{{- range .Values.ingress.dashboard.hosts }}
{{- if .tls }}
- hosts:
{{- if .tlsHosts }}
{{- range $host := .tlsHosts }}
- {{ $host }}
- {{ .Values.ingress.dashboard.hostname }}
secretName: {{ printf "%s-tls" .Values.ingress.dashboard.hostname }}
{{- end }}
{{- else }}
- {{ .name }}
{{- end }}
secretName: {{ .tlsSecret }}
{{- end }}
{{- end }}
{{- end }}
{{- range .Values.ingress.server.hosts }}
{{- if .tls }}
{{- if .Values.server.enabled }}
- hosts:
{{- if .tlsHosts }}
{{- range $host := .tlsHosts }}
- {{ $host }}
{{- end }}
{{- else }}
- {{ .name }}
{{- end }}
secretName: {{ .tlsSecret }}
- {{ .Values.ingress.server.hostname }}
secretName: {{ printf "%s-tls" .Values.ingress.server.hostname }}
{{- end }}
{{- end }}
{{- if .Values.ingress.extraTls }}
{{- include "common.tplvalues.render" ( dict "value" .Values.ingress.extraTls "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -4,6 +4,12 @@ apiVersion: v1
metadata:
name: {{ include "common.names.fullname" . }}
labels: {{ include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
accessModes:
- {{ .Values.persistence.accessMode | quote }}

View File

@@ -3,6 +3,12 @@ kind: Secret
metadata:
name: {{ include "common.names.fullname" . }}
labels: {{ include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
type: Opaque
data:
{{ if .Values.server.masterKey }}

View File

@@ -4,6 +4,12 @@ metadata:
name: {{ include "common.names.fullname" . }}-server
labels: {{ include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: server
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
selector:
matchLabels: {{ include "common.labels.matchLabels" . | nindent 6 }}

View File

@@ -3,6 +3,12 @@ kind: Service
metadata:
name: {{ include "common.names.fullname" . }}
labels: {{ include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
{{- if and (.Values.service.loadBalancerIP) (eq .Values.service.type "LoadBalancer") }}

View File

@@ -16,6 +16,18 @@
##
# fullnameOverride:
## Force target Kubernetes version (using Helm capabilites if not set)
##
kubeVersion:
## Add labels to all the deployed resources
##
commonLabels: {}
## Add annotations to all the deployed resources
##
commonAnnotations: {}
## Init containers parameters:
## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
##
@@ -45,6 +57,7 @@ service:
##
## nodePorts:
## http: <to set explicitly, choose port between 30000-32767>
##
nodePorts:
http: ""
## Enable client source IP preservation
@@ -361,6 +374,12 @@ ingress:
##
certManager: false
## Enable TLS configuration for the hostname defined at ingress.hostname parameter
## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.ingress.hostname }}
## You can use the ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
##
tls: false
## Ingress annotations done as key:value pairs. If certManager is set to true,
## the annotation 'kubernetes.io/tls-acme: "true"' will automatically be set
## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
@@ -369,50 +388,72 @@ ingress:
# kubernetes.io/ingress.class: nginx
dashboard:
## The list of hostnames to be covered with this ingress record.
## Most likely this will be just one host, but in the event more hosts are needed, this is an array
## When the ingress is enabled, a host pointing to this will be created
##
hosts:
- name: parse.local
path: /
hostname: parse-dashboard.local
## Set this to true in order to enable TLS on the ingress record
##
tls: false
## The Path to WordPress. You may need to set this to '/*' in order to use this
## with ALB ingress controllers.
##
path: /
## Optionally specify the TLS hosts for the ingress record
## Useful when the Ingress controller supports www-redirection
## If not specified, the above host name will be used
# tlsHosts:
# - www.parse.local
# - parse.local
## Ingress Path type
##
pathType: ImplementationSpecific
## If TLS is set to true, you must declare what secret will store the key/certificate for TLS
##
tlsSecret: parse.local-tls
## The list of additional hostnames to be covered with this ingress record.
## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
## extraHosts:
## - name: wordpress.local
## path: /
##
## Any additional arbitrary paths that may need to be added to the ingress under the main host.
## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
## extraPaths:
## - path: /*
## backend:
## serviceName: ssl-redirect
## servicePort: use-annotation
##
server:
## The list of hostnames to be covered with this ingress record.
## Most likely this will be just one host, but in the event more hosts are needed, this is an array
## When the ingress is enabled, a host pointing to this will be created
##
hosts:
- name: parse-server.local
path: /
hostname: parse-server.local
## Set this to true in order to enable TLS on the ingress record
##
tls: false
## The Path to WordPress. You may need to set this to '/*' in order to use this
## with ALB ingress controllers.
##
path: /
## Optionally specify the TLS hosts for the ingress record
## Useful when the Ingress controller supports www-redirection
## If not specified, the above host name will be used
# tlsHosts:
# - www.parse-server.local
# - parse-server.local
## Ingress Path type
##
pathType: ImplementationSpecific
## If TLS is set to true, you must declare what secret will store the key/certificate for TLS
##
tlsSecret: parse.local-tls
## The list of additional hostnames to be covered with this ingress record.
## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
## extraHosts:
## - name: wordpress.local
## path: /
##
## Any additional arbitrary paths that may need to be added to the ingress under the main host.
## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
## extraPaths:
## - path: /*
## backend:
## serviceName: ssl-redirect
## servicePort: use-annotation
##
## The tls configuration for additional hostnames to be covered with this ingress record.
## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
## extraTls:
## - hosts:
## - wordpress.local
## secretName: wordpress.local-tls
##
secrets:
## If you're providing your own certificates, please use this to add the certificates as secrets