From 3c286623e0712b886be322578c710946d763467f Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 6 Dec 2021 17:19:53 +0100 Subject: [PATCH] packaging helm chart with consolidated config --- docs/budibase-0.2.3.tgz | Bin 0 -> 42443 bytes hosting/kubernetes/budibase/Chart.yaml | 4 +- .../budibase/charts/couchdb-3.3.4.tgz | Bin 0 -> 9668 bytes .../budibase/charts/couchdb/Chart.yaml | 19 -- .../budibase/charts/couchdb/README.md | 244 ------------------ .../charts/couchdb/ci/required-values.yaml | 3 - .../budibase/charts/couchdb/ci/sidecar.yaml | 9 - .../budibase/charts/couchdb/password.ini | 2 - .../charts/couchdb/templates/NOTES.txt | 20 -- .../charts/couchdb/templates/_helpers.tpl | 81 ------ .../charts/couchdb/templates/configmap.yaml | 23 -- .../charts/couchdb/templates/headless.yaml | 17 -- .../charts/couchdb/templates/ingress.yaml | 33 --- .../couchdb/templates/networkpolicy.yaml | 31 --- .../charts/couchdb/templates/secrets.yaml | 19 -- .../charts/couchdb/templates/service.yaml | 23 -- .../couchdb/templates/serviceaccount.yaml | 15 -- .../charts/couchdb/templates/statefulset.yaml | 202 --------------- .../budibase/charts/couchdb/values.yaml | 201 --------------- hosting/kubernetes/budibase/values.yaml | 150 ++++++++++- scripts/index.yaml | 30 +++ 21 files changed, 180 insertions(+), 946 deletions(-) create mode 100644 docs/budibase-0.2.3.tgz create mode 100644 hosting/kubernetes/budibase/charts/couchdb-3.3.4.tgz delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/Chart.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/README.md delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/ci/required-values.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/ci/sidecar.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/password.ini delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/templates/NOTES.txt delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/templates/_helpers.tpl delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/templates/configmap.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/templates/headless.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/templates/ingress.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/templates/networkpolicy.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/templates/secrets.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/templates/service.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/templates/serviceaccount.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/templates/statefulset.yaml delete mode 100755 hosting/kubernetes/budibase/charts/couchdb/values.yaml create mode 100644 scripts/index.yaml diff --git a/docs/budibase-0.2.3.tgz b/docs/budibase-0.2.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..23fbe03712063a9a505435306cf01f76a437f727 GIT binary patch literal 42443 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 literal 0 HcmV?d00001 diff --git a/hosting/kubernetes/budibase/Chart.yaml b/hosting/kubernetes/budibase/Chart.yaml index c5233842ad..a8db638a7e 100644 --- a/hosting/kubernetes/budibase/Chart.yaml +++ b/hosting/kubernetes/budibase/Chart.yaml @@ -22,13 +22,13 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.2 +version: 0.2.3 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.9.169" +appVersion: "0.1.6" dependencies: - name: couchdb diff --git a/hosting/kubernetes/budibase/charts/couchdb-3.3.4.tgz b/hosting/kubernetes/budibase/charts/couchdb-3.3.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f7ebfd3e9653ef2e0fba07de4e498b46311de606 GIT binary patch literal 9668 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 GzyJWm|L4yD literal 0 HcmV?d00001 diff --git a/hosting/kubernetes/budibase/charts/couchdb/Chart.yaml b/hosting/kubernetes/budibase/charts/couchdb/Chart.yaml deleted file mode 100755 index 74ae734a17..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/Chart.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -appVersion: 3.1.0 -description: A database featuring seamless multi-master sync, that scales from big - data to mobile, with an intuitive HTTP/JSON API and designed for reliability. -home: https://couchdb.apache.org/ -icon: http://couchdb.apache.org/CouchDB-visual-identity/logo/CouchDB-couch-symbol.svg -keywords: -- couchdb -- database -- nosql -maintainers: -- email: kocolosk@apache.org - name: kocolosk -- email: willholley@apache.org - name: willholley -name: couchdb -sources: -- https://github.com/apache/couchdb-docker -version: 3.3.4 diff --git a/hosting/kubernetes/budibase/charts/couchdb/README.md b/hosting/kubernetes/budibase/charts/couchdb/README.md deleted file mode 100755 index 3227123d06..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/README.md +++ /dev/null @@ -1,244 +0,0 @@ -# CouchDB - -Apache CouchDB is a database featuring seamless multi-master sync, that scales -from big data to mobile, with an intuitive HTTP/JSON API and designed for -reliability. - -This chart deploys a CouchDB cluster as a StatefulSet. It creates a ClusterIP -Service in front of the Deployment for load balancing by default, but can also -be configured to deploy other Service types or an Ingress Controller. The -default persistence mechanism is simply the ephemeral local filesystem, but -production deployments should set `persistentVolume.enabled` to `true` to attach -storage volumes to each Pod in the Deployment. - -## TL;DR - -```bash -$ helm repo add couchdb https://apache.github.io/couchdb-helm -$ helm install couchdb/couchdb \ - --set allowAdminParty=true \ - --set couchdbConfig.couchdb.uuid=$(curl https://www.uuidgenerator.net/api/version4 2>/dev/null | tr -d -) -``` - -## Prerequisites - -- Kubernetes 1.9+ with Beta APIs enabled -- Ingress requires Kubernetes 1.14+ - -## Installing the Chart - -To install the chart with the release name `my-release`: - -Add the CouchDB Helm repository: - -```bash -$ helm repo add couchdb https://apache.github.io/couchdb-helm -``` - -Afterwards install the chart replacing the UUID -`decafbaddecafbaddecafbaddecafbad` with a custom one: - -```bash -$ helm install \ - --name my-release \ - --set couchdbConfig.couchdb.uuid=decafbaddecafbaddecafbaddecafbad \ - couchdb/couchdb -``` - -This will create a Secret containing the admin credentials for the cluster. -Those credentials can be retrieved as follows: - -```bash -$ kubectl get secret my-release-couchdb -o go-template='{{ .data.adminPassword }}' | base64 --decode -``` - -If you prefer to configure the admin credentials directly you can create a -Secret containing `adminUsername`, `adminPassword` and `cookieAuthSecret` keys: - -```bash -$ kubectl create secret generic my-release-couchdb --from-literal=adminUsername=foo --from-literal=adminPassword=bar --from-literal=cookieAuthSecret=baz -``` - -If you want to set the `adminHash` directly to achieve consistent salts between -different nodes you need to addionally add the key `password.ini` to the secret: - -```bash -$ kubectl create secret generic my-release-couchdb \ - --from-literal=adminUsername=foo \ - --from-literal=cookieAuthSecret=baz \ - --from-file=./my-password.ini -``` - -With the following contents in `my-password.ini`: - -``` -[admins] -foo = -``` - -and then install the chart while overriding the `createAdminSecret` setting: - -```bash -$ helm install \ - --name my-release \ - --set createAdminSecret=false \ - --set couchdbConfig.couchdb.uuid=decafbaddecafbaddecafbaddecafbad \ - couchdb/couchdb -``` - -This Helm chart deploys CouchDB on the Kubernetes cluster in a default -configuration. The [configuration](#configuration) section lists -the parameters that can be configured during installation. - -> **Tip**: List all releases using `helm list` - -## Uninstalling the Chart - -To uninstall/delete the `my-release` Deployment: - -```bash -$ helm delete my-release -``` - -The command removes all the Kubernetes components associated with the chart and -deletes the release. - -## Upgrading an existing Release to a new major version - -A major chart version change (like v0.2.3 -> v1.0.0) indicates that there is an -incompatible breaking change needing manual actions. - -### Upgrade to 3.0.0 - -Since version 3.0.0 setting the CouchDB server instance UUID is mandatory. -Therefore you need to generate a UUID and supply it as a value during the -upgrade as follows: - -```bash -$ helm upgrade \ - --reuse-values \ - --set couchdbConfig.couchdb.uuid= \ - couchdb/couchdb -``` - -## Migrating from stable/couchdb - -This chart replaces the `stable/couchdb` chart previously hosted by Helm and continues the -version semantics. You can upgrade directly from `stable/couchdb` to this chart using: - -```bash -$ helm repo add couchdb https://apache.github.io/couchdb-helm -$ helm upgrade my-release couchdb/couchdb -``` - -## Configuration - -The following table lists the most commonly configured parameters of the -CouchDB chart and their default values: - -| Parameter | Description | Default | -|---------------------------------|-------------------------------------------------------|----------------------------------------| -| `clusterSize` | The initial number of nodes in the CouchDB cluster | 3 | -| `couchdbConfig` | Map allowing override elements of server .ini config | *See below* | -| `allowAdminParty` | If enabled, start cluster without admin account | false (requires creating a Secret) | -| `createAdminSecret` | If enabled, create an admin account and cookie secret | true | -| `schedulerName` | Name of the k8s scheduler (other than default) | `nil` | -| `erlangFlags` | Map of flags supplied to the underlying Erlang VM | name: couchdb, setcookie: monster -| `persistentVolume.enabled` | Boolean determining whether to attach a PV to each node | false -| `persistentVolume.size` | If enabled, the size of the persistent volume to attach | 10Gi -| `enableSearch` | Adds a sidecar for Lucene-powered text search | false | - -You can set the values of the `couchdbConfig` map according to the -[official configuration][4]. The following shows the map's default values and -required options to set: - -| Parameter | Description | Default | -|---------------------------------|--------------------------------------------------------------------|----------------------------------------| -| `couchdb.uuid` | UUID for this CouchDB server instance ([Required in a cluster][5]) | | -| `chttpd.bind_address` | listens on all interfaces when set to any | any | -| `chttpd.require_valid_user` | disables all the anonymous requests to the port 5984 when true | false | - -A variety of other parameters are also configurable. See the comments in the -`values.yaml` file for further details: - -| Parameter | Default | -|--------------------------------------|----------------------------------------| -| `adminUsername` | admin | -| `adminPassword` | auto-generated | -| `adminHash` | | -| `cookieAuthSecret` | auto-generated | -| `image.repository` | couchdb | -| `image.tag` | 3.1.0 | -| `image.pullPolicy` | IfNotPresent | -| `searchImage.repository` | kocolosk/couchdb-search | -| `searchImage.tag` | 0.1.0 | -| `searchImage.pullPolicy` | IfNotPresent | -| `initImage.repository` | busybox | -| `initImage.tag` | latest | -| `initImage.pullPolicy` | Always | -| `ingress.enabled` | false | -| `ingress.hosts` | chart-example.local | -| `ingress.annotations` | | -| `ingress.path` | / | -| `ingress.tls` | | -| `persistentVolume.accessModes` | ReadWriteOnce | -| `persistentVolume.storageClass` | Default for the Kube cluster | -| `podManagementPolicy` | Parallel | -| `affinity` | | -| `annotations` | | -| `tolerations` | | -| `resources` | | -| `service.annotations` | | -| `service.enabled` | true | -| `service.type` | ClusterIP | -| `service.externalPort` | 5984 | -| `dns.clusterDomainSuffix` | cluster.local | -| `networkPolicy.enabled` | true | -| `serviceAccount.enabled` | true | -| `serviceAccount.create` | true | -| `serviceAccount.imagePullSecrets` | | -| `sidecars` | {} | -| `livenessProbe.enabled` | true | -| `livenessProbe.failureThreshold` | 3 | -| `livenessProbe.initialDelaySeconds` | 0 | -| `livenessProbe.periodSeconds` | 10 | -| `livenessProbe.successThreshold` | 1 | -| `livenessProbe.timeoutSeconds` | 1 | -| `readinessProbe.enabled` | true | -| `readinessProbe.failureThreshold` | 3 | -| `readinessProbe.initialDelaySeconds` | 0 | -| `readinessProbe.periodSeconds` | 10 | -| `readinessProbe.successThreshold` | 1 | -| `readinessProbe.timeoutSeconds` | 1 | - -## Feedback, Issues, Contributing - -General feedback is welcome at our [user][1] or [developer][2] mailing lists. - -Apache CouchDB has a [CONTRIBUTING][3] file with details on how to get started -with issue reporting or contributing to the upkeep of this project. In short, -use GitHub Issues, do not report anything on Docker's website. - -## Non-Apache CouchDB Development Team Contributors - -- [@natarajaya](https://github.com/natarajaya) -- [@satchpx](https://github.com/satchpx) -- [@spanato](https://github.com/spanato) -- [@jpds](https://github.com/jpds) -- [@sebastien-prudhomme](https://github.com/sebastien-prudhomme) -- [@stepanstipl](https://github.com/sebastien-stepanstipl) -- [@amatas](https://github.com/amatas) -- [@Chimney42](https://github.com/Chimney42) -- [@mattjmcnaughton](https://github.com/mattjmcnaughton) -- [@mainephd](https://github.com/mainephd) -- [@AdamDang](https://github.com/AdamDang) -- [@mrtyler](https://github.com/mrtyler) -- [@kevinwlau](https://github.com/kevinwlau) -- [@jeyenzo](https://github.com/jeyenzo) -- [@Pinpin31.](https://github.com/Pinpin31) - -[1]: http://mail-archives.apache.org/mod_mbox/couchdb-user/ -[2]: http://mail-archives.apache.org/mod_mbox/couchdb-dev/ -[3]: https://github.com/apache/couchdb/blob/master/CONTRIBUTING.md -[4]: https://docs.couchdb.org/en/stable/config/index.html -[5]: https://docs.couchdb.org/en/latest/setup/cluster.html#preparing-couchdb-nodes-to-be-joined-into-a-cluster diff --git a/hosting/kubernetes/budibase/charts/couchdb/ci/required-values.yaml b/hosting/kubernetes/budibase/charts/couchdb/ci/required-values.yaml deleted file mode 100755 index 79589d2e04..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/ci/required-values.yaml +++ /dev/null @@ -1,3 +0,0 @@ -couchdbConfig: - couchdb: - uuid: "decafbaddecafbaddecafbaddecafbad" diff --git a/hosting/kubernetes/budibase/charts/couchdb/ci/sidecar.yaml b/hosting/kubernetes/budibase/charts/couchdb/ci/sidecar.yaml deleted file mode 100755 index aa570bdf74..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/ci/sidecar.yaml +++ /dev/null @@ -1,9 +0,0 @@ -sidecars: - - name: foo - image: "busybox" - imagePullPolicy: IfNotPresent - resources: - requests: - cpu: "0.1" - memory: 10Mi - command: ['while true; do echo "foo"; sleep 5; done;'] diff --git a/hosting/kubernetes/budibase/charts/couchdb/password.ini b/hosting/kubernetes/budibase/charts/couchdb/password.ini deleted file mode 100755 index 4ce8445aae..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/password.ini +++ /dev/null @@ -1,2 +0,0 @@ -[admins] -{{ .Values.adminUsername }} = {{ .Values.adminHash }} diff --git a/hosting/kubernetes/budibase/charts/couchdb/templates/NOTES.txt b/hosting/kubernetes/budibase/charts/couchdb/templates/NOTES.txt deleted file mode 100755 index a3658bd37f..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/templates/NOTES.txt +++ /dev/null @@ -1,20 +0,0 @@ -Apache CouchDB is starting. Check the status of the Pods using: - - kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "couchdb.name" . }},release={{ .Release.Name }}" - -Once all of the Pods are fully Ready, execute the following command to create -some required system databases: - - kubectl exec --namespace {{ .Release.Namespace }} {{ if not .Values.allowAdminParty }}-it {{ end }}{{ template "couchdb.fullname" . }}-0 -c couchdb -- \ - curl -s \ - http://127.0.0.1:5984/_cluster_setup \ - -X POST \ - -H "Content-Type: application/json" \ -{{- if .Values.allowAdminParty }} - -d '{"action": "finish_cluster"}' -{{- else }} - -d '{"action": "finish_cluster"}' \ - -u -{{- end }} - -Then it's time to relax. diff --git a/hosting/kubernetes/budibase/charts/couchdb/templates/_helpers.tpl b/hosting/kubernetes/budibase/charts/couchdb/templates/_helpers.tpl deleted file mode 100755 index f9d013e487..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/templates/_helpers.tpl +++ /dev/null @@ -1,81 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "couchdb.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -*/}} -{{- define "couchdb.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- printf "%s-%s" .Values.fullnameOverride .Chart.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} - -{{/* -In the event that we create both a headless service and a traditional one, -ensure that the latter gets a unique name. -*/}} -{{- define "couchdb.svcname" -}} -{{- if .Values.fullnameOverride -}} -{{- printf "%s-svc-%s" .Values.fullnameOverride .Chart.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- printf "%s-svc-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} - -{{/* -Create a random string if the supplied key does not exist -*/}} -{{- define "couchdb.defaultsecret" -}} -{{- if . -}} -{{- . | b64enc | quote -}} -{{- else -}} -{{- randAlphaNum 20 | b64enc | quote -}} -{{- end -}} -{{- end -}} - -{{/* -Labels used to define Pods in the CouchDB statefulset -*/}} -{{- define "couchdb.ss.selector" -}} -app: {{ template "couchdb.name" . }} -release: {{ .Release.Name }} -{{- end -}} - -{{/* -Generates a comma delimited list of nodes in the cluster -*/}} -{{- define "couchdb.seedlist" -}} -{{- $nodeCount := min 5 .Values.clusterSize | int }} - {{- range $index0 := until $nodeCount -}} - {{- $index1 := $index0 | add1 -}} - {{ $.Values.erlangFlags.name }}@{{ template "couchdb.fullname" $ }}-{{ $index0 }}.{{ template "couchdb.fullname" $ }}.{{ $.Release.Namespace }}.svc.{{ $.Values.dns.clusterDomainSuffix }}{{ if ne $index1 $nodeCount }},{{ end }} - {{- end -}} -{{- end -}} - -{{/* -If serviceAccount.name is specified, use that, else use the couchdb instance name -*/}} -{{- define "couchdb.serviceAccount" -}} -{{- if .Values.serviceAccount.name -}} -{{- .Values.serviceAccount.name }} -{{- else -}} -{{- template "couchdb.fullname" . -}} -{{- end -}} -{{- end -}} - -{{/* -Fail if couchdbConfig.couchdb.uuid is undefined -*/}} -{{- define "couchdb.uuid" -}} -{{- required "A value for couchdbConfig.couchdb.uuid must be set" (.Values.couchdbConfig.couchdb | default dict).uuid -}} -{{- end -}} \ No newline at end of file diff --git a/hosting/kubernetes/budibase/charts/couchdb/templates/configmap.yaml b/hosting/kubernetes/budibase/charts/couchdb/templates/configmap.yaml deleted file mode 100755 index a6a20e0574..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/templates/configmap.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ template "couchdb.fullname" . }} - labels: - app: {{ template "couchdb.name" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - heritage: {{ .Release.Service | quote }} - release: {{ .Release.Name | quote }} -data: - inifile: | - {{ $couchdbConfig := dict "couchdb" (dict "uuid" (include "couchdb.uuid" .)) -}} - {{- $couchdbConfig := merge $couchdbConfig .Values.couchdbConfig -}} - {{- range $section, $settings := $couchdbConfig -}} - {{ printf "[%s]" $section }} - {{ range $key, $value := $settings -}} - {{ printf "%s = %s" $key ($value | toString) }} - {{ end }} - {{ end }} - - seedlistinifile: | - [cluster] - seedlist = {{ template "couchdb.seedlist" . }} diff --git a/hosting/kubernetes/budibase/charts/couchdb/templates/headless.yaml b/hosting/kubernetes/budibase/charts/couchdb/templates/headless.yaml deleted file mode 100755 index 0ce3ef0f35..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/templates/headless.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "couchdb.fullname" . }} - labels: - app: {{ template "couchdb.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - clusterIP: None - publishNotReadyAddresses: true - ports: - - name: couchdb - port: 5984 - selector: -{{ include "couchdb.ss.selector" . | indent 4 }} diff --git a/hosting/kubernetes/budibase/charts/couchdb/templates/ingress.yaml b/hosting/kubernetes/budibase/charts/couchdb/templates/ingress.yaml deleted file mode 100755 index c547847ce5..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/templates/ingress.yaml +++ /dev/null @@ -1,33 +0,0 @@ -{{- if .Values.ingress.enabled -}} -{{- $serviceName := include "couchdb.fullname" . -}} -{{- $servicePort := .Values.service.externalPort -}} -{{- $path := .Values.ingress.path | quote -}} -apiVersion: networking.k8s.io/v1beta1 -kind: Ingress -metadata: - name: {{ template "couchdb.fullname" . }} - labels: - app: {{ template "couchdb.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} - annotations: - {{- range $key, $value := .Values.ingress.annotations }} - {{ $key }}: {{ $value | quote }} - {{- end }} -spec: - rules: - {{- range $host := .Values.ingress.hosts }} - - host: {{ $host }} - http: - paths: - - path: {{ $path }} - backend: - serviceName: {{ $serviceName }} - servicePort: {{ $servicePort }} - {{- end -}} - {{- if .Values.ingress.tls }} - tls: -{{ toYaml .Values.ingress.tls | indent 4 }} - {{- end -}} -{{- end -}} diff --git a/hosting/kubernetes/budibase/charts/couchdb/templates/networkpolicy.yaml b/hosting/kubernetes/budibase/charts/couchdb/templates/networkpolicy.yaml deleted file mode 100755 index 2830708bef..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/templates/networkpolicy.yaml +++ /dev/null @@ -1,31 +0,0 @@ - -{{- if .Values.networkPolicy.enabled }} -kind: NetworkPolicy -apiVersion: networking.k8s.io/v1 -metadata: - name: {{ template "couchdb.fullname" . }} - labels: - app: {{ template "couchdb.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - podSelector: - matchLabels: -{{ include "couchdb.ss.selector" . | indent 6 }} - ingress: - - ports: - - protocol: TCP - port: 5984 - - ports: - - protocol: TCP - port: 9100 - - protocol: TCP - port: 4369 - from: - - podSelector: - matchLabels: -{{ include "couchdb.ss.selector" . | indent 14 }} - policyTypes: - - Ingress -{{- end }} diff --git a/hosting/kubernetes/budibase/charts/couchdb/templates/secrets.yaml b/hosting/kubernetes/budibase/charts/couchdb/templates/secrets.yaml deleted file mode 100755 index 92f55c6d6b..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/templates/secrets.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if .Values.createAdminSecret -}} -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "couchdb.fullname" . }} - labels: - app: {{ template "couchdb.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -type: Opaque -data: - adminUsername: {{ template "couchdb.defaultsecret" .Values.adminUsername }} - adminPassword: {{ template "couchdb.defaultsecret" .Values.adminPassword }} - cookieAuthSecret: {{ template "couchdb.defaultsecret" .Values.cookieAuthSecret }} -{{- if .Values.adminHash }} - password.ini: {{ tpl (.Files.Get "password.ini") . | b64enc }} -{{- end -}} -{{- end -}} diff --git a/hosting/kubernetes/budibase/charts/couchdb/templates/service.yaml b/hosting/kubernetes/budibase/charts/couchdb/templates/service.yaml deleted file mode 100755 index 6d0382477d..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/templates/service.yaml +++ /dev/null @@ -1,23 +0,0 @@ -{{- if .Values.service.enabled -}} -apiVersion: v1 -kind: Service -metadata: - name: {{ template "couchdb.svcname" . }} - labels: - app: {{ template "couchdb.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -{{- if .Values.service.annotations }} - annotations: -{{ toYaml .Values.service.annotations | indent 4 }} -{{- end }} -spec: - ports: - - port: {{ .Values.service.externalPort }} - protocol: TCP - targetPort: 5984 - type: {{ .Values.service.type }} - selector: -{{ include "couchdb.ss.selector" . | indent 4 }} -{{- end -}} diff --git a/hosting/kubernetes/budibase/charts/couchdb/templates/serviceaccount.yaml b/hosting/kubernetes/budibase/charts/couchdb/templates/serviceaccount.yaml deleted file mode 100755 index bb82799a49..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/templates/serviceaccount.yaml +++ /dev/null @@ -1,15 +0,0 @@ -{{- if .Values.serviceAccount.create }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ template "couchdb.serviceAccount" . }} - labels: - app: {{ template "couchdb.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -{{- if .Values.serviceAccount.imagePullSecrets }} -imagePullSecrets: -{{ toYaml .Values.serviceAccount.imagePullSecrets }} -{{- end }} -{{- end }} diff --git a/hosting/kubernetes/budibase/charts/couchdb/templates/statefulset.yaml b/hosting/kubernetes/budibase/charts/couchdb/templates/statefulset.yaml deleted file mode 100755 index 6225fbe98c..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/templates/statefulset.yaml +++ /dev/null @@ -1,202 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: {{ template "couchdb.fullname" . }} - labels: - app: {{ template "couchdb.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - replicas: {{ .Values.clusterSize }} - serviceName: {{ template "couchdb.fullname" . }} - podManagementPolicy: {{ .Values.podManagementPolicy }} - selector: - matchLabels: -{{ include "couchdb.ss.selector" . | indent 6 }} - template: - metadata: - labels: -{{ include "couchdb.ss.selector" . | indent 8 }} -{{- with .Values.annotations }} - annotations: - checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.schedulerName }} - schedulerName: "{{ .Values.schedulerName }}" - {{- end }} - {{- if .Values.serviceAccount.enabled }} - serviceAccountName: {{ template "couchdb.serviceAccount" . }} - {{- end }} - initContainers: - - name: init-copy - image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}" - imagePullPolicy: {{ .Values.initImage.pullPolicy }} - command: ['sh','-c','cp /tmp/chart.ini /default.d; cp /tmp/seedlist.ini /default.d; ls -lrt /default.d;'] - volumeMounts: - - name: config - mountPath: /tmp/ - - name: config-storage - mountPath: /default.d -{{- if .Values.adminHash }} - - name: admin-hash-copy - image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}" - imagePullPolicy: {{ .Values.initImage.pullPolicy }} - command: ['sh','-c','cp /tmp/password.ini /local.d/ ;'] - volumeMounts: - - name: admin-password - mountPath: /tmp/password.ini - subPath: "password.ini" - - name: local-config-storage - mountPath: /local.d -{{- end }} - containers: - - name: couchdb - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - ports: - - name: couchdb - containerPort: 5984 - - name: epmd - containerPort: 4369 - - containerPort: 9100 - env: -{{- if not .Values.allowAdminParty }} - - name: COUCHDB_USER - valueFrom: - secretKeyRef: - name: {{ template "couchdb.fullname" . }} - key: adminUsername - - name: COUCHDB_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "couchdb.fullname" . }} - key: adminPassword - - name: COUCHDB_SECRET - valueFrom: - secretKeyRef: - name: {{ template "couchdb.fullname" . }} - key: cookieAuthSecret -{{- end }} - - name: ERL_FLAGS - value: "{{ range $k, $v := .Values.erlangFlags }} -{{ $k }} {{ $v }} {{ end }}" -{{- if .Values.livenessProbe.enabled }} - livenessProbe: -{{- if .Values.couchdbConfig.chttpd.require_valid_user }} - exec: - command: - - sh - - -c - - curl -G --silent --fail -u ${COUCHDB_USER}:${COUCHDB_PASSWORD} http://localhost:5984/_up -{{- else }} - httpGet: - path: /_up - port: 5984 -{{- end }} - failureThreshold: {{ .Values.livenessProbe.failureThreshold }} - initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.livenessProbe.periodSeconds }} - successThreshold: {{ .Values.livenessProbe.successThreshold }} - timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} -{{- end }} -{{- if .Values.readinessProbe.enabled }} - readinessProbe: -{{- if .Values.couchdbConfig.chttpd.require_valid_user }} - exec: - command: - - sh - - -c - - curl -G --silent --fail -u ${COUCHDB_USER}:${COUCHDB_PASSWORD} http://localhost:5984/_up -{{- else }} - httpGet: - path: /_up - port: 5984 -{{- end }} - failureThreshold: {{ .Values.readinessProbe.failureThreshold }} - initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.readinessProbe.periodSeconds }} - successThreshold: {{ .Values.readinessProbe.successThreshold }} - timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} -{{- end }} - resources: -{{ toYaml .Values.resources | indent 12 }} - volumeMounts: - - name: config-storage - mountPath: /opt/couchdb/etc/default.d -{{- if .Values.adminHash }} - - name: local-config-storage - mountPath: /opt/couchdb/etc/local.d -{{- end }} - - name: database-storage - mountPath: /opt/couchdb/data -{{- if .Values.enableSearch }} - - name: clouseau - image: "{{ .Values.searchImage.repository }}:{{ .Values.searchImage.tag }}" - imagePullPolicy: {{ .Values.searchImage.pullPolicy }} - volumeMounts: - - name: database-storage - mountPath: /opt/couchdb-search/data -{{- end }} -{{- if .Values.sidecars }} -{{ toYaml .Values.sidecars | indent 8}} -{{- end }} -{{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8 }} -{{- end }} -{{- with .Values.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} -{{- with .Values.affinity }} - affinity: -{{ toYaml . | indent 8 }} -{{- end }} - volumes: - - name: config-storage - emptyDir: {} - - name: config - configMap: - name: {{ template "couchdb.fullname" . }} - items: - - key: inifile - path: chart.ini - - key: seedlistinifile - path: seedlist.ini - -{{- if .Values.adminHash }} - - name: local-config-storage - emptyDir: {} - - name: admin-password - secret: - secretName: {{ template "couchdb.fullname" . }} -{{- end -}} - -{{- if not .Values.persistentVolume.enabled }} - - name: database-storage - emptyDir: {} -{{- else }} - volumeClaimTemplates: - - metadata: - name: database-storage - labels: - app: {{ template "couchdb.name" . }} - release: {{ .Release.Name }} - spec: - accessModes: - {{- range .Values.persistentVolume.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistentVolume.size | quote }} - {{- if .Values.persistentVolume.storageClass }} - {{- if (eq "-" .Values.persistentVolume.storageClass) }} - storageClassName: "" - {{- else }} - storageClassName: "{{ .Values.persistentVolume.storageClass }}" - {{- end }} - {{- end }} -{{- end }} diff --git a/hosting/kubernetes/budibase/charts/couchdb/values.yaml b/hosting/kubernetes/budibase/charts/couchdb/values.yaml deleted file mode 100755 index 5a5025f816..0000000000 --- a/hosting/kubernetes/budibase/charts/couchdb/values.yaml +++ /dev/null @@ -1,201 +0,0 @@ -## clusterSize is the initial size of the CouchDB cluster. -clusterSize: 3 - -## If allowAdminParty is enabled the cluster will start up without any database -## administrator account; i.e., all users will be granted administrative -## access. Otherwise, the system will look for a Secret called -## -couchdb containing `adminUsername`, `adminPassword` and -## `cookieAuthSecret` keys. See the `createAdminSecret` flag. -## ref: https://kubernetes.io/docs/concepts/configuration/secret/ -allowAdminParty: false - -## If createAdminSecret is enabled a Secret called -couchdb will -## be created containing auto-generated credentials. Users who prefer to set -## these values themselves have a couple of options: -## -## 1) The `adminUsername`, `adminPassword`, `adminHash`, and `cookieAuthSecret` -## can be defined directly in the chart's values. Note that all of a chart's -## values are currently stored in plaintext in a ConfigMap in the tiller -## namespace. -## -## 2) This flag can be disabled and a Secret with the required keys can be -## created ahead of time. -createAdminSecret: true - -# adminUsername: budibase -# adminPassword: budibase -# adminHash: -pbkdf2-this_is_not_necessarily_secure_either -# cookieAuthSecret: admin - -## When enabled, will deploy a networkpolicy that allows CouchDB pods to -## communicate with each other for clustering and ingress on port 5984 -networkPolicy: - enabled: true - -## Use an alternate scheduler, e.g. "stork". -## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ -## -# schedulerName: - -# Use a service account -serviceAccount: - enabled: true - create: true -# name: -# imagePullSecrets: -# - name: myimagepullsecret - -## The storage volume used by each Pod in the StatefulSet. If a -## persistentVolume is not enabled, the Pods will use `emptyDir` ephemeral -## local storage. Setting the storageClass attribute to "-" disables dynamic -## provisioning of Persistent Volumes; leaving it unset will invoke the default -## provisioner. -persistentVolume: - enabled: false - accessModes: - - ReadWriteOnce - size: 10Gi - storageClass: "" - -## The CouchDB image -image: - repository: couchdb - tag: 3.1.0 - pullPolicy: IfNotPresent - -## Experimental integration with Lucene-powered fulltext search -searchImage: - repository: kocolosk/couchdb-search - tag: 0.2.0 - pullPolicy: IfNotPresent - -## Flip this to flag to include the Search container in each Pod -enableSearch: true - -initImage: - repository: busybox - tag: latest - pullPolicy: Always - -## CouchDB is happy to spin up cluster nodes in parallel, but if you encounter -## problems you can try setting podManagementPolicy to the StatefulSet default -## `OrderedReady` -podManagementPolicy: Parallel - -## To better tolerate Node failures, we can prevent Kubernetes scheduler from -## assigning more than one Pod of CouchDB StatefulSet per Node using podAntiAffinity. -affinity: {} - # podAntiAffinity: - # requiredDuringSchedulingIgnoredDuringExecution: - # - labelSelector: - # matchExpressions: - # - key: "app" - # operator: In - # values: - # - couchdb - # topologyKey: "kubernetes.io/hostname" - -## Optional pod annotations -annotations: {} - -## Optional tolerations -tolerations: [] - -## A StatefulSet requires a headless Service to establish the stable network -## identities of the Pods, and that Service is created automatically by this -## chart without any additional configuration. The Service block below refers -## to a second Service that governs how clients connect to the CouchDB cluster. -service: - # annotations: - enabled: true - type: ClusterIP - externalPort: 5984 - -## An Ingress resource can provide name-based virtual hosting and TLS -## termination among other things for CouchDB deployments which are accessed -## from outside the Kubernetes cluster. -## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/ -ingress: - enabled: false - hosts: - - chart-example.local - path: / - annotations: [] - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - tls: - # Secrets must be manually created in the namespace. - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - -## Optional resource requests and limits for the CouchDB container -## ref: http://kubernetes.io/docs/user-guide/compute-resources/ -resources: - {} - # requests: - # cpu: 100m - # memory: 128Mi - # limits: - # cpu: 56 - # memory: 256Gi - -## erlangFlags is a map that is passed to the Erlang VM as flags using the -## ERL_FLAGS env. `name` and `setcookie` flags are minimally required to -## establish connectivity between cluster nodes. -## ref: http://erlang.org/doc/man/erl.html#init_flags -erlangFlags: - name: couchdb - setcookie: monster - -## couchdbConfig will override default CouchDB configuration settings. -## The contents of this map are reformatted into a .ini file laid down -## by a ConfigMap object. -## ref: http://docs.couchdb.org/en/latest/config/index.html -couchdbConfig: - couchdb: - uuid: budibase-couchdb # REQUIRED: Unique identifier for this CouchDB server instance - # cluster: - # q: 8 # Create 8 shards for each database - chttpd: - bind_address: any - # chttpd.require_valid_user disables all the anonymous requests to the port - # 5984 when is set to true. - require_valid_user: false - -# Kubernetes local cluster domain. -# This is used to generate FQDNs for peers when joining the CouchDB cluster. -dns: - clusterDomainSuffix: cluster.local - -## Configure liveness and readiness probe values -## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes -livenessProbe: - enabled: true - failureThreshold: 3 - initialDelaySeconds: 0 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 -readinessProbe: - enabled: true - failureThreshold: 3 - initialDelaySeconds: 0 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - -# Configure arbitrary sidecar containers for CouchDB pods created by the -# StatefulSet -sidecars: {} - # - name: foo - # image: "busybox" - # imagePullPolicy: IfNotPresent - # resources: - # requests: - # cpu: "0.1" - # memory: 10Mi - # command: ['echo "foo";'] - # volumeMounts: - # - name: database-storage - # mountPath: /opt/couchdb/data/ diff --git a/hosting/kubernetes/budibase/values.yaml b/hosting/kubernetes/budibase/values.yaml index bd9f6543b3..ec3629e094 100644 --- a/hosting/kubernetes/budibase/values.yaml +++ b/hosting/kubernetes/budibase/values.yaml @@ -126,12 +126,10 @@ services: couchdb: enabled: true - replicaCount: 3 # url: "" # only change if pointing to existing couch server # user: "" # only change if pointing to existing couch server # password: "" # only change if pointing to existing couch server port: 5984 - storage: 100Mi redis: enabled: true # disable if using external redis @@ -151,3 +149,151 @@ services: region: "" # AWS_REGION if using S3 or existing minio secret url: "" # only change if pointing to existing minio cluster and minio: false storage: 100Mi + +# Override values in couchDB subchart +couchdb: + ## clusterSize is the initial size of the CouchDB cluster. + clusterSize: 3 + allowAdminParty: false + + # Secret Management + createAdminSecret: true + + # adminUsername: budibase + # adminPassword: budibase + # adminHash: -pbkdf2-this_is_not_necessarily_secure_either + # cookieAuthSecret: admin + + ## When enabled, will deploy a networkpolicy that allows CouchDB pods to + ## communicate with each other for clustering and ingress on port 5984 + networkPolicy: + enabled: true + + # Use a service account + serviceAccount: + enabled: true + create: true + # name: + # imagePullSecrets: + # - name: myimagepullsecret + + ## The storage volume used by each Pod in the StatefulSet. If a + ## persistentVolume is not enabled, the Pods will use `emptyDir` ephemeral + ## local storage. Setting the storageClass attribute to "-" disables dynamic + ## provisioning of Persistent Volumes; leaving it unset will invoke the default + ## provisioner. + persistentVolume: + enabled: false + accessModes: + - ReadWriteOnce + size: 10Gi + storageClass: "" + + ## The CouchDB image + image: + repository: couchdb + tag: 3.1.0 + pullPolicy: IfNotPresent + + ## Experimental integration with Lucene-powered fulltext search + enableSearch: true + searchImage: + repository: kocolosk/couchdb-search + tag: 0.2.0 + pullPolicy: IfNotPresent + + initImage: + repository: busybox + tag: latest + pullPolicy: Always + + ## CouchDB is happy to spin up cluster nodes in parallel, but if you encounter + ## problems you can try setting podManagementPolicy to the StatefulSet default + ## `OrderedReady` + podManagementPolicy: Parallel + + ## Optional pod annotations + annotations: {} + + ## Optional tolerations + tolerations: [] + + service: + # annotations: + enabled: true + type: ClusterIP + externalPort: 5984 + + ## An Ingress resource can provide name-based virtual hosting and TLS + ## termination among other things for CouchDB deployments which are accessed + ## from outside the Kubernetes cluster. + ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/ + ingress: + enabled: false + hosts: + - chart-example.local + path: / + annotations: [] + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + tls: + # Secrets must be manually created in the namespace. + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + + ## Optional resource requests and limits for the CouchDB container + ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ + resources: + {} + # requests: + # cpu: 100m + # memory: 128Mi + # limits: + # cpu: 56 + # memory: 256Gi + + ## erlangFlags is a map that is passed to the Erlang VM as flags using the + ## ERL_FLAGS env. `name` and `setcookie` flags are minimally required to + ## establish connectivity between cluster nodes. + ## ref: http://erlang.org/doc/man/erl.html#init_flags + erlangFlags: + name: couchdb + setcookie: monster + + ## couchdbConfig will override default CouchDB configuration settings. + ## The contents of this map are reformatted into a .ini file laid down + ## by a ConfigMap object. + ## ref: http://docs.couchdb.org/en/latest/config/index.html + couchdbConfig: + couchdb: + uuid: budibase-couchdb # REQUIRED: Unique identifier for this CouchDB server instance + # cluster: + # q: 8 # Create 8 shards for each database + chttpd: + bind_address: any + # chttpd.require_valid_user disables all the anonymous requests to the port + # 5984 when is set to true. + require_valid_user: false + + # Kubernetes local cluster domain. + # This is used to generate FQDNs for peers when joining the CouchDB cluster. + dns: + clusterDomainSuffix: cluster.local + + ## Configure liveness and readiness probe values + ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + livenessProbe: + enabled: true + failureThreshold: 3 + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + readinessProbe: + enabled: true + failureThreshold: 3 + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 \ No newline at end of file diff --git a/scripts/index.yaml b/scripts/index.yaml new file mode 100644 index 0000000000..2990f842ce --- /dev/null +++ b/scripts/index.yaml @@ -0,0 +1,30 @@ +apiVersion: v1 +entries: + budibase: + - apiVersion: v2 + appVersion: 0.1.6 + created: "2021-12-06T17:18:57.819135+01:00" + dependencies: + - condition: services.couchdb.enabled + name: couchdb + repository: https://apache.github.io/couchdb-helm + version: 3.3.4 + - condition: ingress.nginx + name: ingress-nginx + repository: https://github.com/kubernetes/ingress-nginx + version: 3.35.0 + description: Budibase is an open source low-code platform, helping thousands of teams build apps for their workplace in minutes. + digest: 5bd6418e9a78bf4d8df6de077d4392a647ea30324e33cae38da480e162af3c22 + keywords: + - low-code + - database + - cluster + name: budibase + sources: + - https://github.com/Budibase/budibase + - https://budibase.com + type: application + urls: + - https://budibase.github.io/budibase/budibase-0.2.3.tgz + version: 0.2.3 +generated: "2021-12-06T17:18:57.814315+01:00"