From 623e0ae5e44eb801c7e9ed1e2172ea3e140b61aa Mon Sep 17 00:00:00 2001 From: mjeffin <44426886+mjeffin@users.noreply.github.com> Date: Sun, 21 Mar 2021 09:50:15 +0530 Subject: [PATCH 01/32] Update helm command to remove name option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit   │  ~/c/h/timescaledb-single  helm install --namespace tsdb --name tsdbtraining . Error: unknown flag: --name --- charts/timescaledb-single/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/timescaledb-single/README.md b/charts/timescaledb-single/README.md index 72910efe..51973a15 100644 --- a/charts/timescaledb-single/README.md +++ b/charts/timescaledb-single/README.md @@ -113,7 +113,7 @@ chart itself. * And install the chart: ```console - helm install --name my-release . + helm install my-release . ``` To keep the repo up to date with new versions you can do: From 1d7756f3e66412868c301f67467ba260118872ab Mon Sep 17 00:00:00 2001 From: Feike Steenbergen Date: Mon, 12 Apr 2021 14:16:06 +0200 Subject: [PATCH 02/32] Point default Docker image to timescale --- charts/timescaledb-multinode/admin-guide.md | 2 +- charts/timescaledb-multinode/values.yaml | 2 +- charts/timescaledb-single/admin-guide.md | 2 +- charts/timescaledb-single/values.yaml | 4 ++-- tests/wait_for_example_job.yaml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/charts/timescaledb-multinode/admin-guide.md b/charts/timescaledb-multinode/admin-guide.md index 4a8f9514..b06ca784 100644 --- a/charts/timescaledb-multinode/admin-guide.md +++ b/charts/timescaledb-multinode/admin-guide.md @@ -19,7 +19,7 @@ The following table lists the configurable parameters of the TimescaleDB Helm ch | `nameOverride` | Override the name of the chart | `timescaledb` | | `fullnameOverride` | Override the fullname of the chart | `nil` | | `replicaCount` | Amount of pods to spawn | `3` | -| `image.repository` | The image to pull | `timescaledev/timescaledb-ha` | +| `image.repository` | The image to pull | `timescale/timescaledb-ha` | | `image.tag` | The version of the image to pull | `pg12.5-ts2.0.0-p0` | `image.pullPolicy` | The pull policy | `IfNotPresent` | | `credentials.accessNode.superuser`| Password of the superuser for the Access Node | `tea` | diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index 566c9973..f991dbd3 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -10,7 +10,7 @@ nameOverride: timescaledb image: # Image was built from # https://github.com/timescale/timescaledb-docker-ha - repository: timescaledev/timescaledb-ha + repository: timescale/timescaledb-ha tag: pg12-ts2.0.0-p0 pullPolicy: IfNotPresent diff --git a/charts/timescaledb-single/admin-guide.md b/charts/timescaledb-single/admin-guide.md index 40098d7c..bec05ea2 100644 --- a/charts/timescaledb-single/admin-guide.md +++ b/charts/timescaledb-single/admin-guide.md @@ -34,7 +34,7 @@ The following table lists the configurable parameters of the TimescaleDB Helm ch | `envFrom` | Extra custom environment variables, expressed as [EnvFrom](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#envfromsource-v1-core) | `[]` | | `fullnameOverride` | Override the fullname of the chart | `nil` | | `image.pullPolicy` | The pull policy | `IfNotPresent` | -| `image.repository` | The image to pull | `timescaledev/timescaledb-ha` | +| `image.repository` | The image to pull | `timescale/timescaledb-ha` | | `image.tag` | The version of the image to pull | `pg12-ts2.0-latest` | `loadBalancer.annotations` | Pass on annotations to the Load Balancer | An AWS ELB annotation to increase the idle timeout | | `loadBalancer.enabled` | If enabled, creates a LB for the primary | `true` | diff --git a/charts/timescaledb-single/values.yaml b/charts/timescaledb-single/values.yaml index ee030ca7..35434081 100644 --- a/charts/timescaledb-single/values.yaml +++ b/charts/timescaledb-single/values.yaml @@ -19,8 +19,8 @@ version: image: # Image was built from # https://github.com/timescale/timescaledb-docker-ha - repository: timescaledev/timescaledb-ha - tag: pg12-ts2.0-latest + repository: timescale/timescaledb-ha + tag: pg12-ts2.1-latest pullPolicy: Always # These secrets should exist before the Helm is used to deploy this TimescaleDB. diff --git a/tests/wait_for_example_job.yaml b/tests/wait_for_example_job.yaml index 004e6b17..e09b3427 100644 --- a/tests/wait_for_example_job.yaml +++ b/tests/wait_for_example_job.yaml @@ -11,7 +11,7 @@ spec: restartPolicy: OnFailure containers: - name: waiter - image: timescaledev/timescaledb-ha:pg12-ts2.0-latest + image: timescale/timescaledb-ha:pg13-ts2.1-latest resources: limits: cpu: 100m From 3beb6f6f68a182a340e8e516ccb3a69922b7589a Mon Sep 17 00:00:00 2001 From: Feike Steenbergen Date: Mon, 12 Apr 2021 14:26:52 +0200 Subject: [PATCH 03/32] Support PostgreSQL 13 --- CHANGELOG.md | 13 ++++- charts/repo/index.yaml | 62 +++++++++++++-------- charts/repo/timescaledb-single-0.9.0.tgz | Bin 0 -> 55901 bytes charts/timescaledb-single/Chart.yaml | 2 +- charts/timescaledb-single/README.md | 2 +- charts/timescaledb-single/admin-guide.md | 4 +- charts/timescaledb-single/upgrade-guide.md | 15 +++++ charts/timescaledb-single/values.yaml | 2 +- 8 files changed, 69 insertions(+), 31 deletions(-) create mode 100644 charts/repo/timescaledb-single-0.9.0.tgz diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a7cbef8..9d232b92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [v0.8.2 - 2020-01-13] +## [v0.9.0 - 2020-08-14] + +The reason for the bump in minor version is that the default PostgreSQL version is changed from 12 to 13, +which is an incompatible change for older deployments. +### Changed + * Use the PostgreSQL 13 Docker Image by default + +## [v0.8.2 - 2021-01-13] ### Fixed * Allow `podManagementPolicy` to be specified in the `values.yaml` -## [v0.8.1 - 2020-01-13] +## [v0.8.1 - 2021-01-13] ### Fixed * Port name for postgres-exporter fits the k8s constraints -## [v0.8.0 - 2020-01-12] +## [v0.8.0 - 2021-01-12] ### Added * Validate `values` schema diff --git a/charts/repo/index.yaml b/charts/repo/index.yaml index 3c136631..a4715288 100644 --- a/charts/repo/index.yaml +++ b/charts/repo/index.yaml @@ -2,7 +2,7 @@ apiVersion: v1 entries: timescaledb-multinode: - apiVersion: v1 - created: "2021-01-13T16:56:11.863178873+01:00" + created: "2021-04-12T14:27:32.368475328+02:00" description: TimescaleDB Multinode Deployment. digest: 101d72220765f49e6b081c134c1f793bbe90d7f67a4f4c36c794be989e34623d home: https://github.com/timescale/timescaledb-kubernetes @@ -18,7 +18,7 @@ entries: - timescaledb-multinode-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-01-13T16:56:11.862237198+01:00" + created: "2021-04-12T14:27:32.367943817+02:00" description: TimescaleDB Multinode Deployment. digest: db2bea7290cd265835e11859a39e72562c7e21f1a90df0401e14e05d7adea1d6 home: https://github.com/timescale/timescaledb-kubernetes @@ -34,7 +34,7 @@ entries: - timescaledb-multinode-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-01-13T16:56:11.860772557+01:00" + created: "2021-04-12T14:27:32.36740087+02:00" description: TimescaleDB Multinode Deployment. digest: d537d361eb0f72bce12d8e4f993dbc980f7850a22bb1a7bcd8825a7a4a00d38f home: https://github.com/timescale/timescaledb-kubernetes @@ -50,7 +50,7 @@ entries: - timescaledb-multinode-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2021-01-13T16:56:11.860050244+01:00" + created: "2021-04-12T14:27:32.36684507+02:00" description: TimescaleDB Multinode Deployment. digest: a6c664a75489e069cdd2d36dff87ca6d2b3a38a3edf16de4234418b354e40eea home: https://github.com/timescale/timescaledb-kubernetes @@ -67,7 +67,23 @@ entries: version: 0.3.0 timescaledb-single: - apiVersion: v1 - created: "2021-01-13T16:56:11.904331054+01:00" + created: "2021-04-12T14:27:32.398815015+02:00" + description: TimescaleDB HA Deployment. + digest: 8bb26c938538e767a0da086f7535e1b81fa03af292becf44d406d7a8d8da9321 + home: https://github.com/timescale/timescaledb-kubernetes + maintainers: + - email: support@timescale.com + name: TimescaleDB + name: timescaledb-single + sources: + - https://github.com/timescale/timescaledb-kubernetes + - https://github.com/timescale/timescaledb-docker-ha + - https://github.com/zalando/patroni + urls: + - timescaledb-single-0.9.0.tgz + version: 0.9.0 + - apiVersion: v1 + created: "2021-04-12T14:27:32.396520469+02:00" description: TimescaleDB HA Deployment. digest: a976fc399539e012942a3e55dce1d735c5c36bb4678e57a66ac7d280c8bfceb9 home: https://github.com/timescale/timescaledb-kubernetes @@ -83,7 +99,7 @@ entries: - timescaledb-single-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-01-13T16:56:11.901618938+01:00" + created: "2021-04-12T14:27:32.39453048+02:00" description: TimescaleDB HA Deployment. digest: d047ac65b447b75f748c6fe94cec7ed208e91c20b42eb912baa7aa4f4131518c home: https://github.com/timescale/timescaledb-kubernetes @@ -99,7 +115,7 @@ entries: - timescaledb-single-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-01-13T16:56:11.898339636+01:00" + created: "2021-04-12T14:27:32.392625053+02:00" description: TimescaleDB HA Deployment. digest: 63a9d362ea53efbe6103b8fd0cf07400aa2ccb090740eda213f862d588320c79 home: https://github.com/timescale/timescaledb-kubernetes @@ -115,7 +131,7 @@ entries: - timescaledb-single-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-01-13T16:56:11.895674981+01:00" + created: "2021-04-12T14:27:32.390635441+02:00" description: TimescaleDB HA Deployment. digest: 1948357489eff42eb81bcb59a465615e20b791dc54178d1bbaf1a650b7f46de1 home: https://github.com/timescale/timescaledb-kubernetes @@ -131,7 +147,7 @@ entries: - timescaledb-single-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2021-01-13T16:56:11.893042284+01:00" + created: "2021-04-12T14:27:32.388602011+02:00" description: TimescaleDB HA Deployment. digest: 39e270f51713dd0f2be64c8a80d747bc1e78173fd3e2c6172ff993f9a7dacd1b home: https://github.com/timescale/timescaledb-kubernetes @@ -147,7 +163,7 @@ entries: - timescaledb-single-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-01-13T16:56:11.890570782+01:00" + created: "2021-04-12T14:27:32.386868236+02:00" description: TimescaleDB HA Deployment. digest: 463bf4eca84cbefbd2e4a88928fe1ccc59a69fb95a4952ce15ca746adb479a29 home: https://github.com/timescale/timescaledb-kubernetes @@ -163,7 +179,7 @@ entries: - timescaledb-single-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2021-01-13T16:56:11.887679824+01:00" + created: "2021-04-12T14:27:32.38534498+02:00" description: TimescaleDB HA Deployment. digest: 8ad82438d3fc818e6729afa77607521b7510b68fa4e0b4e7d0836f33990f0a63 home: https://github.com/timescale/timescaledb-kubernetes @@ -179,7 +195,7 @@ entries: - timescaledb-single-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2021-01-13T16:56:11.885692035+01:00" + created: "2021-04-12T14:27:32.383853585+02:00" description: TimescaleDB HA Deployment. digest: b1c985faf6852aea91e6931230d19656f126fb7eabff004e92ffa2fb411cfbe2 home: https://github.com/timescale/timescaledb-kubernetes @@ -195,7 +211,7 @@ entries: - timescaledb-single-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2021-01-13T16:56:11.883224742+01:00" + created: "2021-04-12T14:27:32.382306958+02:00" description: TimescaleDB HA Deployment. digest: 977ccd3dfe52e84a18e9ecf8c4138a937621910f743071fff58b497c357afb7c home: https://github.com/timescale/timescaledb-kubernetes @@ -211,7 +227,7 @@ entries: - timescaledb-single-0.5.8.tgz version: 0.5.8 - apiVersion: v1 - created: "2021-01-13T16:56:11.880199611+01:00" + created: "2021-04-12T14:27:32.380478308+02:00" description: TimescaleDB HA Deployment. digest: 069c515c7055289ecf8189962e648e033053e8e7bdb47c39f9ec058e99911183 home: https://github.com/timescale/timescaledb-kubernetes @@ -227,7 +243,7 @@ entries: - timescaledb-single-0.5.7.tgz version: 0.5.7 - apiVersion: v1 - created: "2021-01-13T16:56:11.877398505+01:00" + created: "2021-04-12T14:27:32.378981809+02:00" description: TimescaleDB HA Deployment. digest: f0c9b30a4bf3d3e9c221efa37946bef05bad7fe79eb1808a7c8088c2d24e1075 home: https://github.com/timescale/timescaledb-kubernetes @@ -243,7 +259,7 @@ entries: - timescaledb-single-0.5.6.tgz version: 0.5.6 - apiVersion: v1 - created: "2021-01-13T16:56:11.875486182+01:00" + created: "2021-04-12T14:27:32.37748912+02:00" description: TimescaleDB HA Deployment. digest: 27098601d61f727ac71c2bfb67a1240c99188fc56ab4d0a0375cf5abc09547dc home: https://github.com/timescale/timescaledb-kubernetes @@ -259,7 +275,7 @@ entries: - timescaledb-single-0.5.5.tgz version: 0.5.5 - apiVersion: v1 - created: "2021-01-13T16:56:11.873363364+01:00" + created: "2021-04-12T14:27:32.376116858+02:00" description: TimescaleDB HA Deployment. digest: 5bd289b789c7fae00b98ae9d1ce0b86e6b8463fbe4fbdaf20d59b60aca137580 home: https://github.com/timescale/timescaledb-kubernetes @@ -275,7 +291,7 @@ entries: - timescaledb-single-0.5.4.tgz version: 0.5.4 - apiVersion: v1 - created: "2021-01-13T16:56:11.871510635+01:00" + created: "2021-04-12T14:27:32.374771844+02:00" description: TimescaleDB HA Deployment. digest: 6cd19bcb822c9610ad13fbe49b03c3bd9d5f4655920b44e41f937487ecf86d9d home: https://github.com/timescale/timescaledb-kubernetes @@ -291,7 +307,7 @@ entries: - timescaledb-single-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2021-01-13T16:56:11.869136225+01:00" + created: "2021-04-12T14:27:32.373587337+02:00" description: TimescaleDB HA Deployment. digest: 9e2570426e0445a2e4f079fe757bbaadbc95a764c12ce10903f426d3b69cfde9 home: https://github.com/timescale/timescaledb-kubernetes @@ -307,7 +323,7 @@ entries: - timescaledb-single-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2021-01-13T16:56:11.867617969+01:00" + created: "2021-04-12T14:27:32.371986155+02:00" description: TimescaleDB HA Deployment. digest: 128a7f0738f176a2abe6b7e1c3a1173ac6c4a77f7816704add3f0664609915aa home: https://github.com/timescale/timescaledb-kubernetes @@ -323,7 +339,7 @@ entries: - timescaledb-single-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2021-01-13T16:56:11.866190572+01:00" + created: "2021-04-12T14:27:32.370764712+02:00" description: TimescaleDB HA Deployment. digest: f4e0e05c989f04c78d9bd0a5b7ab2c6e1d2227af72ad05f7451a3e01b462bba0 home: https://github.com/timescale/timescaledb-kubernetes @@ -339,7 +355,7 @@ entries: - timescaledb-single-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2021-01-13T16:56:11.864563794+01:00" + created: "2021-04-12T14:27:32.369619685+02:00" description: TimescaleDB HA Deployment. digest: 2ae9d4a4ba25caf626e837244bf092721439e822d486f2c17f238b479012dedb home: https://github.com/timescale/timescaledb-kubernetes @@ -354,4 +370,4 @@ entries: urls: - timescaledb-single-0.4.0.tgz version: 0.4.0 -generated: "2021-01-13T16:56:11.858641406+01:00" +generated: "2021-04-12T14:27:32.366210995+02:00" diff --git a/charts/repo/timescaledb-single-0.9.0.tgz b/charts/repo/timescaledb-single-0.9.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..263e3c776d261f7b74465e2cc2d468557889ef5d GIT binary patch literal 55901 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 a=g0Ho`SE Date: Wed, 17 Mar 2021 16:55:30 +0200 Subject: [PATCH 04/32] generate secrets manually --- charts/repo/timescaledb-multinode-0.8.1.tgz | Bin 0 -> 10434 bytes charts/timescaledb-multinode/Chart.yaml | 2 +- charts/timescaledb-multinode/README.md | 21 ++++++++++++++++++ charts/timescaledb-multinode/admin-guide.md | 2 ++ .../templates/sec-timescaledb.yaml | 2 ++ .../templates/svc-timescaledb-access.yaml | 2 +- charts/timescaledb-multinode/values.yaml | 6 +++++ 7 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 charts/repo/timescaledb-multinode-0.8.1.tgz diff --git a/charts/repo/timescaledb-multinode-0.8.1.tgz b/charts/repo/timescaledb-multinode-0.8.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..d6cb2399520acef4c1c30487b6ec2aa92a73b591 GIT binary patch literal 10434 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 literal 0 HcmV?d00001 diff --git a/charts/timescaledb-multinode/Chart.yaml b/charts/timescaledb-multinode/Chart.yaml index b59b46e5..68d121c4 100644 --- a/charts/timescaledb-multinode/Chart.yaml +++ b/charts/timescaledb-multinode/Chart.yaml @@ -4,7 +4,7 @@ apiVersion: v1 name: timescaledb-multinode description: 'TimescaleDB Multinode Deployment.' -version: 0.8.0 +version: 0.8.1 # appVersion specifies the version of the software, which can vary wildly, # e.g. TimescaleDB 1.4.1 on PostgreSQL 11 or TimescaleDB 1.5.0 on PostgreSQL 12. # https://github.com/helm/helm/blob/master/docs/charts.md#the-appversion-field diff --git a/charts/timescaledb-multinode/README.md b/charts/timescaledb-multinode/README.md index fe94a34a..68fddce0 100644 --- a/charts/timescaledb-multinode/README.md +++ b/charts/timescaledb-multinode/README.md @@ -38,6 +38,20 @@ Alternatively, a YAML file that specifies the values for the parameters can be p ```console helm upgrade --install my-release -f myvalues.yaml . ``` +### Secret override + +Instead of setting secrets in values.yaml, they can be manually generated. The following example is for timescaledb-access node and timescaledb-data node. + +In values.yaml set: +```console +credentials: + fromValues: false +``` + +```console +kubectl create secret generic `my-release`-access --from-literal=password-superuser='' +kubectl create secret generic `my-release`-data --from-literal=password-superuser='' +``` For details about what parameters you can set, have a look at the [Administrator Guide](admin-guide.md#configure) @@ -108,6 +122,13 @@ our [TimescaleDB > Tutorial: Scaling out TimescaleDB](https://docs.timescale.com to create distributed hypertables and start using multinode TimescaleDB. ### Connecting from another pod +If you are connecting from inside a pod in the Kubernetes cluster set service type to ClusterIP. Edit the following in values.yaml: + +```console +access: + service: + type: ClusterIP +``` From inside a pod in the Kubernetes cluster, you need to use the internal DNS address, e.g., diff --git a/charts/timescaledb-multinode/admin-guide.md b/charts/timescaledb-multinode/admin-guide.md index b06ca784..4a324b89 100644 --- a/charts/timescaledb-multinode/admin-guide.md +++ b/charts/timescaledb-multinode/admin-guide.md @@ -23,6 +23,8 @@ The following table lists the configurable parameters of the TimescaleDB Helm ch | `image.tag` | The version of the image to pull | `pg12.5-ts2.0.0-p0` | `image.pullPolicy` | The pull policy | `IfNotPresent` | | `credentials.accessNode.superuser`| Password of the superuser for the Access Node | `tea` | +| `accessNode.service.type` | Setup external access using LoadBalancer or ClusterIP | `LoadBalancer` | +| `credentials.fromValues` | Load credentials from values.yaml | `true` | | `credentials.dataNode.superuser` | Password of the superuser for the Data Nodes | `coffee` | | `env` | Extra custom environment variables, expressed as [EnvVar](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#envvarsource-v1-core) | `PGDATA` and some language settings | | `resources` | Any resources you wish to assign to the pod | `{}` | diff --git a/charts/timescaledb-multinode/templates/sec-timescaledb.yaml b/charts/timescaledb-multinode/templates/sec-timescaledb.yaml index dcf5bd02..1af6cf35 100644 --- a/charts/timescaledb-multinode/templates/sec-timescaledb.yaml +++ b/charts/timescaledb-multinode/templates/sec-timescaledb.yaml @@ -1,6 +1,7 @@ # This file and its contents are licensed under the Apache License 2.0. # Please see the included NOTICE for copyright information and LICENSE for a copy of the license. +{{- if .Values.credentials.fromValues }} --- apiVersion: v1 kind: Secret @@ -29,3 +30,4 @@ type: Opaque data: password-superuser: {{ .Values.credentials.dataNode.superuser | b64enc }} ... +{{- end }} diff --git a/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml b/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml index 205d7068..4362c4b8 100644 --- a/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml +++ b/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml @@ -14,7 +14,7 @@ metadata: annotations: service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "4000" spec: - type: LoadBalancer + type: {{ .Values.accessNode.service.type }} ports: - name: postgresql port: 5432 diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index f991dbd3..27564c3c 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -14,8 +14,14 @@ image: tag: pg12-ts2.0.0-p0 pullPolicy: IfNotPresent +#enable external access using LoadBalancer +accessNode: + service: + type: LoadBalancer + # Credentials used by PostgreSQL credentials: + fromValues: true accessNode: superuser: tea dataNode: From 50bc738d4fd2fc5b8b143eb362be903209d0e99a Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Thu, 13 May 2021 13:14:02 +0300 Subject: [PATCH 05/32] update chart index --- charts/repo/index.yaml | 64 ++++++++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 24 deletions(-) diff --git a/charts/repo/index.yaml b/charts/repo/index.yaml index a4715288..6bf84a9b 100644 --- a/charts/repo/index.yaml +++ b/charts/repo/index.yaml @@ -2,7 +2,23 @@ apiVersion: v1 entries: timescaledb-multinode: - apiVersion: v1 - created: "2021-04-12T14:27:32.368475328+02:00" + created: "2021-05-13T13:09:01.247651322+03:00" + description: TimescaleDB Multinode Deployment. + digest: e0729d1731fb22f769494b921b275153d625aebcbdb68c432c2ccd1897f4d66c + home: https://github.com/timescale/timescaledb-kubernetes + maintainers: + - email: support@timescale.com + name: TimescaleDB + name: timescaledb-multinode + sources: + - https://github.com/timescale/timescaledb-kubernetes + - https://github.com/timescale/timescaledb-docker-ha + - https://github.com/zalando/patroni + urls: + - timescaledb-multinode-0.8.1.tgz + version: 0.8.1 + - apiVersion: v1 + created: "2021-05-13T13:09:01.246624251+03:00" description: TimescaleDB Multinode Deployment. digest: 101d72220765f49e6b081c134c1f793bbe90d7f67a4f4c36c794be989e34623d home: https://github.com/timescale/timescaledb-kubernetes @@ -18,7 +34,7 @@ entries: - timescaledb-multinode-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-04-12T14:27:32.367943817+02:00" + created: "2021-05-13T13:09:01.245629073+03:00" description: TimescaleDB Multinode Deployment. digest: db2bea7290cd265835e11859a39e72562c7e21f1a90df0401e14e05d7adea1d6 home: https://github.com/timescale/timescaledb-kubernetes @@ -34,7 +50,7 @@ entries: - timescaledb-multinode-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-04-12T14:27:32.36740087+02:00" + created: "2021-05-13T13:09:01.244786115+03:00" description: TimescaleDB Multinode Deployment. digest: d537d361eb0f72bce12d8e4f993dbc980f7850a22bb1a7bcd8825a7a4a00d38f home: https://github.com/timescale/timescaledb-kubernetes @@ -50,7 +66,7 @@ entries: - timescaledb-multinode-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2021-04-12T14:27:32.36684507+02:00" + created: "2021-05-13T13:09:01.243937539+03:00" description: TimescaleDB Multinode Deployment. digest: a6c664a75489e069cdd2d36dff87ca6d2b3a38a3edf16de4234418b354e40eea home: https://github.com/timescale/timescaledb-kubernetes @@ -67,7 +83,7 @@ entries: version: 0.3.0 timescaledb-single: - apiVersion: v1 - created: "2021-04-12T14:27:32.398815015+02:00" + created: "2021-05-13T13:09:01.289668593+03:00" description: TimescaleDB HA Deployment. digest: 8bb26c938538e767a0da086f7535e1b81fa03af292becf44d406d7a8d8da9321 home: https://github.com/timescale/timescaledb-kubernetes @@ -83,7 +99,7 @@ entries: - timescaledb-single-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-04-12T14:27:32.396520469+02:00" + created: "2021-05-13T13:09:01.287079814+03:00" description: TimescaleDB HA Deployment. digest: a976fc399539e012942a3e55dce1d735c5c36bb4678e57a66ac7d280c8bfceb9 home: https://github.com/timescale/timescaledb-kubernetes @@ -99,7 +115,7 @@ entries: - timescaledb-single-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-04-12T14:27:32.39453048+02:00" + created: "2021-05-13T13:09:01.284499288+03:00" description: TimescaleDB HA Deployment. digest: d047ac65b447b75f748c6fe94cec7ed208e91c20b42eb912baa7aa4f4131518c home: https://github.com/timescale/timescaledb-kubernetes @@ -115,7 +131,7 @@ entries: - timescaledb-single-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-04-12T14:27:32.392625053+02:00" + created: "2021-05-13T13:09:01.28137738+03:00" description: TimescaleDB HA Deployment. digest: 63a9d362ea53efbe6103b8fd0cf07400aa2ccb090740eda213f862d588320c79 home: https://github.com/timescale/timescaledb-kubernetes @@ -131,7 +147,7 @@ entries: - timescaledb-single-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-04-12T14:27:32.390635441+02:00" + created: "2021-05-13T13:09:01.278776541+03:00" description: TimescaleDB HA Deployment. digest: 1948357489eff42eb81bcb59a465615e20b791dc54178d1bbaf1a650b7f46de1 home: https://github.com/timescale/timescaledb-kubernetes @@ -147,7 +163,7 @@ entries: - timescaledb-single-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2021-04-12T14:27:32.388602011+02:00" + created: "2021-05-13T13:09:01.276469421+03:00" description: TimescaleDB HA Deployment. digest: 39e270f51713dd0f2be64c8a80d747bc1e78173fd3e2c6172ff993f9a7dacd1b home: https://github.com/timescale/timescaledb-kubernetes @@ -163,7 +179,7 @@ entries: - timescaledb-single-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-04-12T14:27:32.386868236+02:00" + created: "2021-05-13T13:09:01.274253356+03:00" description: TimescaleDB HA Deployment. digest: 463bf4eca84cbefbd2e4a88928fe1ccc59a69fb95a4952ce15ca746adb479a29 home: https://github.com/timescale/timescaledb-kubernetes @@ -179,7 +195,7 @@ entries: - timescaledb-single-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2021-04-12T14:27:32.38534498+02:00" + created: "2021-05-13T13:09:01.271762387+03:00" description: TimescaleDB HA Deployment. digest: 8ad82438d3fc818e6729afa77607521b7510b68fa4e0b4e7d0836f33990f0a63 home: https://github.com/timescale/timescaledb-kubernetes @@ -195,7 +211,7 @@ entries: - timescaledb-single-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2021-04-12T14:27:32.383853585+02:00" + created: "2021-05-13T13:09:01.269739924+03:00" description: TimescaleDB HA Deployment. digest: b1c985faf6852aea91e6931230d19656f126fb7eabff004e92ffa2fb411cfbe2 home: https://github.com/timescale/timescaledb-kubernetes @@ -211,7 +227,7 @@ entries: - timescaledb-single-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2021-04-12T14:27:32.382306958+02:00" + created: "2021-05-13T13:09:01.267672714+03:00" description: TimescaleDB HA Deployment. digest: 977ccd3dfe52e84a18e9ecf8c4138a937621910f743071fff58b497c357afb7c home: https://github.com/timescale/timescaledb-kubernetes @@ -227,7 +243,7 @@ entries: - timescaledb-single-0.5.8.tgz version: 0.5.8 - apiVersion: v1 - created: "2021-04-12T14:27:32.380478308+02:00" + created: "2021-05-13T13:09:01.265591514+03:00" description: TimescaleDB HA Deployment. digest: 069c515c7055289ecf8189962e648e033053e8e7bdb47c39f9ec058e99911183 home: https://github.com/timescale/timescaledb-kubernetes @@ -243,7 +259,7 @@ entries: - timescaledb-single-0.5.7.tgz version: 0.5.7 - apiVersion: v1 - created: "2021-04-12T14:27:32.378981809+02:00" + created: "2021-05-13T13:09:01.263428848+03:00" description: TimescaleDB HA Deployment. digest: f0c9b30a4bf3d3e9c221efa37946bef05bad7fe79eb1808a7c8088c2d24e1075 home: https://github.com/timescale/timescaledb-kubernetes @@ -259,7 +275,7 @@ entries: - timescaledb-single-0.5.6.tgz version: 0.5.6 - apiVersion: v1 - created: "2021-04-12T14:27:32.37748912+02:00" + created: "2021-05-13T13:09:01.260465687+03:00" description: TimescaleDB HA Deployment. digest: 27098601d61f727ac71c2bfb67a1240c99188fc56ab4d0a0375cf5abc09547dc home: https://github.com/timescale/timescaledb-kubernetes @@ -275,7 +291,7 @@ entries: - timescaledb-single-0.5.5.tgz version: 0.5.5 - apiVersion: v1 - created: "2021-04-12T14:27:32.376116858+02:00" + created: "2021-05-13T13:09:01.258470296+03:00" description: TimescaleDB HA Deployment. digest: 5bd289b789c7fae00b98ae9d1ce0b86e6b8463fbe4fbdaf20d59b60aca137580 home: https://github.com/timescale/timescaledb-kubernetes @@ -291,7 +307,7 @@ entries: - timescaledb-single-0.5.4.tgz version: 0.5.4 - apiVersion: v1 - created: "2021-04-12T14:27:32.374771844+02:00" + created: "2021-05-13T13:09:01.256537783+03:00" description: TimescaleDB HA Deployment. digest: 6cd19bcb822c9610ad13fbe49b03c3bd9d5f4655920b44e41f937487ecf86d9d home: https://github.com/timescale/timescaledb-kubernetes @@ -307,7 +323,7 @@ entries: - timescaledb-single-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2021-04-12T14:27:32.373587337+02:00" + created: "2021-05-13T13:09:01.254878767+03:00" description: TimescaleDB HA Deployment. digest: 9e2570426e0445a2e4f079fe757bbaadbc95a764c12ce10903f426d3b69cfde9 home: https://github.com/timescale/timescaledb-kubernetes @@ -323,7 +339,7 @@ entries: - timescaledb-single-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2021-04-12T14:27:32.371986155+02:00" + created: "2021-05-13T13:09:01.253205762+03:00" description: TimescaleDB HA Deployment. digest: 128a7f0738f176a2abe6b7e1c3a1173ac6c4a77f7816704add3f0664609915aa home: https://github.com/timescale/timescaledb-kubernetes @@ -339,7 +355,7 @@ entries: - timescaledb-single-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2021-04-12T14:27:32.370764712+02:00" + created: "2021-05-13T13:09:01.25158199+03:00" description: TimescaleDB HA Deployment. digest: f4e0e05c989f04c78d9bd0a5b7ab2c6e1d2227af72ad05f7451a3e01b462bba0 home: https://github.com/timescale/timescaledb-kubernetes @@ -355,7 +371,7 @@ entries: - timescaledb-single-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2021-04-12T14:27:32.369619685+02:00" + created: "2021-05-13T13:09:01.249941877+03:00" description: TimescaleDB HA Deployment. digest: 2ae9d4a4ba25caf626e837244bf092721439e822d486f2c17f238b479012dedb home: https://github.com/timescale/timescaledb-kubernetes @@ -370,4 +386,4 @@ entries: urls: - timescaledb-single-0.4.0.tgz version: 0.4.0 -generated: "2021-04-12T14:27:32.366210995+02:00" +generated: "2021-05-13T13:09:01.243032071+03:00" From 67b5fa11bda2637242704cd2417f95af9c3bb387 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Fri, 18 Jun 2021 17:13:40 +0300 Subject: [PATCH 06/32] separate configs --- .../statefulset-timescaledb-accessnode.yaml | 2 +- .../statefulset-timescaledb-datanode.yaml | 2 +- charts/timescaledb-multinode/values.yaml | 43 +++++++++++-------- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index dd06740a..46cee640 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -44,7 +44,7 @@ spec: env: - name: POSTGRESQL_CUSTOM_PARAMETERS value: | - {{- range $key, $value := .Values.postgresql.parameters }} + {{- range $key, $value := .Values.postgresql.parameters.access_node }} {{ printf "%s = '%s'" $key ($value | toString) }} {{- end }} - name: POSTGRES_PASSWORD diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index b1661168..3279a3ee 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -44,7 +44,7 @@ spec: env: - name: POSTGRESQL_CUSTOM_PARAMETERS value: | - {{- range $key, $value := .Values.postgresql.parameters }} + {{- range $key, $value := .Values.postgresql.parameters.data_node }} {{ printf "%s = '%s'" $key ($value | toString) }} {{- end }} - name: POSTGRES_PASSWORD diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index 27564c3c..288285b8 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -73,25 +73,30 @@ postgresql: - postgres - example parameters: - max_connections: 100 - max_prepared_transactions: 150 - # This is rather small, but as this Helm Chart may be used to spin up - # 1 access node and 4 data nodes on a single minikube/microk8s this is set - # to a conservative value - shared_buffers: 300MB - work_mem: 16MB - timescaledb.passfile: '../.pgpass' - log_connections: 'on' - log_line_prefix: "%t [%p]: [%c-%l] %u@%d,app=%a [%e] " - log_min_duration_statement: '1s' - log_statement: ddl - log_checkpoints: 'on' - log_lock_waits: 'on' - # These values are set as the default data volume size - # is small as well. - min_wal_size: 256MB - max_wal_size: 512MB - temp_file_limit: 1GB + data_node: + max_connections: 100 + max_prepared_transactions: 150 + # This is rather small, but as this Helm Chart may be used to spin up + # 1 access node and 4 data nodes on a single minikube/microk8s this is set + # to a conservative value + shared_buffers: 300MB + work_mem: 16MB + timescaledb.passfile: '../.pgpass' + log_connections: 'on' + log_line_prefix: "%t [%p]: [%c-%l] %u@%d,app=%a [%e] " + log_min_duration_statement: '1s' + log_statement: ddl + log_checkpoints: 'on' + log_lock_waits: 'on' + # These values are set as the default data volume size + # is small as well. + min_wal_size: 256MB + max_wal_size: 512MB + temp_file_limit: 1GB + + access_node: + enable_partitionwise_aggregate: on + jit: off # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector nodeSelector: {} From 9f3b6d047893aa835c8ce614ebfe4d5dc637dbcb Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Fri, 18 Jun 2021 17:16:32 +0300 Subject: [PATCH 07/32] max transaction --- charts/timescaledb-multinode/values.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index 288285b8..d586c656 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -95,6 +95,7 @@ postgresql: temp_file_limit: 1GB access_node: + max_prepared_transactions: 150 enable_partitionwise_aggregate: on jit: off From 2236731b991f6c448fe5af74c655767995d7b0b4 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Fri, 18 Jun 2021 19:57:46 +0300 Subject: [PATCH 08/32] split all values --- .../statefulset-timescaledb-accessnode.yaml | 30 ++++---- .../statefulset-timescaledb-datanode.yaml | 30 ++++---- charts/timescaledb-multinode/values.yaml | 71 +++++++++++-------- 3 files changed, 70 insertions(+), 61 deletions(-) diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index 46cee640..fbae8026 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -44,7 +44,7 @@ spec: env: - name: POSTGRESQL_CUSTOM_PARAMETERS value: | - {{- range $key, $value := .Values.postgresql.parameters.access_node }} + {{- range $key, $value := .Values.postgresql.access_node.parameters }} {{ printf "%s = '%s'" $key ($value | toString) }} {{- end }} - name: POSTGRES_PASSWORD @@ -81,8 +81,8 @@ spec: chmod 0600 "${PGDATA}/../.pgpass" volumeMounts: - name: storage-volume - mountPath: "{{ .Values.persistentVolume.mountPath }}" - subPath: "{{ .Values.persistentVolume.subPath }}" + mountPath: "{{ .Values.postgresql.access_node.persistentVolume.mountPath }}" + subPath: "{{ .Values.postgresql.access_node.persistentVolume.subPath }}" containers: - name: timescaledb securityContext: @@ -107,10 +107,10 @@ spec: - containerPort: 5432 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.persistentVolume.mountPath }}" - subPath: "{{ .Values.persistentVolume.subPath }}" + mountPath: "{{ .Values.postgresql.access_node.persistentVolume.mountPath }}" + subPath: "{{ .Values.postgresql.access_node.persistentVolume.subPath }}" resources: -{{ toYaml .Values.resources | indent 10 }} +{{ toYaml .Values.postgresql.access_node.resources | indent 10 }} {{- with .Values.nodeSelector }} nodeSelector: {{ toYaml . | indent 8 }} @@ -129,17 +129,17 @@ spec: affinity: {{ tpl .Values.affinityTemplate . | indent 8 }} {{- end }} - {{- if not .Values.persistentVolume.enabled }} + {{- if not .Values.postgresql.access_node.persistentVolume.enabled }} - name: storage-volume emptyDir: {} {{- end }} - {{- if .Values.persistentVolume.enabled }} + {{- if .Values.postgresql.access_node.persistentVolume.enabled }} volumeClaimTemplates: - metadata: name: storage-volume annotations: - {{- if .Values.persistentVolume.annotations }} -{{ toYaml .Values.persistentVolume.annotations | indent 8 }} + {{- if .Values.postgresql.access_node.persistentVolume.annotations }} +{{ toYaml .Values.postgresql.access_node.persistentVolume.annotations | indent 8 }} {{- end }} labels: app: {{ template "timescaledb.fullname" . }} @@ -147,15 +147,15 @@ spec: heritage: {{ .Release.Service }} spec: accessModes: -{{ toYaml .Values.persistentVolume.accessModes | indent 8 }} +{{ toYaml .Values.postgresql.access_node.persistentVolume.accessModes | indent 8 }} resources: requests: - storage: "{{ .Values.persistentVolume.size }}" - {{- if .Values.persistentVolume.storageClass }} - {{- if (eq "-" .Values.persistentVolume.storageClass) }} + storage: "{{ .Values.postgresql.access_node.persistentVolume.size }}" + {{- if .Values.postgresql.access_node.persistentVolume.storageClass }} + {{- if (eq "-" .Values.postgresql.access_node.persistentVolume.storageClass) }} storageClassName: "" {{- else }} - storageClassName: "{{ .Values.persistentVolume.storageClass }}" + storageClassName: "{{ .Values.postgresql.access_node.persistentVolume.storageClass }}" {{- end }} {{- end }} {{- end }} diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index 3279a3ee..342599fa 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -44,7 +44,7 @@ spec: env: - name: POSTGRESQL_CUSTOM_PARAMETERS value: | - {{- range $key, $value := .Values.postgresql.parameters.data_node }} + {{- range $key, $value := .Values.postgresql.data_node.parameters }} {{ printf "%s = '%s'" $key ($value | toString) }} {{- end }} - name: POSTGRES_PASSWORD @@ -76,8 +76,8 @@ spec: echo "DROP EXTENSION timescaledb" | /docker-entrypoint.sh postgres --single -D "${PGDATA}" template1 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.persistentVolume.mountPath }}" - subPath: "{{ .Values.persistentVolume.subPath }}" + mountPath: "{{ .Values.postgresql.data_node.persistentVolume.mountPath }}" + subPath: "{{ .Values.postgresql.data_node.persistentVolume.subPath }}" containers: - name: timescaledb securityContext: @@ -102,10 +102,10 @@ spec: - containerPort: 5432 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.persistentVolume.mountPath }}" - subPath: "{{ .Values.persistentVolume.subPath }}" + mountPath: "{{ .Values.postgresql.data_node.persistentVolume.mountPath }}" + subPath: "{{ .Values.postgresql.data_node.persistentVolume.subPath }}" resources: -{{ toYaml .Values.resources | indent 10 }} +{{ toYaml .Values.postgresql.data_node.resources | indent 10 }} {{- with .Values.nodeSelector }} nodeSelector: {{ toYaml . | indent 8 }} @@ -124,17 +124,17 @@ spec: affinity: {{ tpl .Values.affinityTemplate . | indent 8 }} {{- end }} - {{- if not .Values.persistentVolume.enabled }} + {{- if not .Values.postgresql.data_node.persistentVolume.enabled }} - name: storage-volume emptyDir: {} {{- end }} - {{- if .Values.persistentVolume.enabled }} + {{- if .Values.postgresql.data_node.persistentVolume.enabled }} volumeClaimTemplates: - metadata: name: storage-volume annotations: - {{- if .Values.persistentVolume.annotations }} -{{ toYaml .Values.persistentVolume.annotations | indent 8 }} + {{- if .Values.postgresql.data_node.persistentVolume.annotations }} +{{ toYaml .Values.postgresql.data_node.persistentVolume.annotations | indent 8 }} {{- end }} labels: app: {{ template "timescaledb.fullname" . }} @@ -142,15 +142,15 @@ spec: heritage: {{ .Release.Service }} spec: accessModes: -{{ toYaml .Values.persistentVolume.accessModes | indent 8 }} +{{ toYaml .Values.postgresql.data_node.persistentVolume.accessModes | indent 8 }} resources: requests: - storage: "{{ .Values.persistentVolume.size }}" - {{- if .Values.persistentVolume.storageClass }} - {{- if (eq "-" .Values.persistentVolume.storageClass) }} + storage: "{{ .Values.postgresql.data_node.persistentVolume.size }}" + {{- if .Values.postgresql.data_node.persistentVolume.storageClass }} + {{- if (eq "-" .Values.postgresql.data_node.persistentVolume.storageClass) }} storageClassName: "" {{- else }} - storageClassName: "{{ .Values.persistentVolume.storageClass }}" + storageClassName: "{{ .Values.postgresql.data_node.persistentVolume.storageClass }}" {{- end }} {{- end }} {{- end }} diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index d586c656..a48c7090 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -41,39 +41,21 @@ env: # a Docker Volume in many Docker images, which means the data is not actually persisted. value: /var/lib/postgresql/pgdata -persistentVolume: - enabled: true - size: 5G - ## database data Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - ## - # storageClass: "-" - subPath: "" - mountPath: "/var/lib/postgresql" - annotations: {} - accessModes: - - ReadWriteOnce - -resources: {} - # If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - postgresql: databases: - postgres - example - parameters: - data_node: + data_node: + resources: {} + # If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + parameters: max_connections: 100 max_prepared_transactions: 150 # This is rather small, but as this Helm Chart may be used to spin up @@ -94,11 +76,38 @@ postgresql: max_wal_size: 512MB temp_file_limit: 1GB - access_node: - max_prepared_transactions: 150 + persistentVolume: + enabled: true + size: 5G + ## database data Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" + subPath: "" + mountPath: "/var/lib/postgresql" + annotations: {} + accessModes: + - ReadWriteOnce + + access_node: + resources: {} + parameters: enable_partitionwise_aggregate: on jit: off + persistentVolume: + enabled: true + size: 5G + subPath: "" + mountPath: "/var/lib/postgresql" + annotations: {} + accessModes: + - ReadWriteOnce + # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector nodeSelector: {} From 68e474dce63d89280c11baf122dd808cec876475 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Fri, 18 Jun 2021 20:51:33 +0300 Subject: [PATCH 09/32] add chart to repo --- charts/repo/index.yaml | 66 ++++++++++++-------- charts/repo/timescaledb-multinode-0.8.2.tgz | Bin 0 -> 11094 bytes charts/timescaledb-multinode/Chart.yaml | 2 +- 3 files changed, 42 insertions(+), 26 deletions(-) create mode 100644 charts/repo/timescaledb-multinode-0.8.2.tgz diff --git a/charts/repo/index.yaml b/charts/repo/index.yaml index 6bf84a9b..ca93ef3a 100644 --- a/charts/repo/index.yaml +++ b/charts/repo/index.yaml @@ -2,7 +2,23 @@ apiVersion: v1 entries: timescaledb-multinode: - apiVersion: v1 - created: "2021-05-13T13:09:01.247651322+03:00" + created: "2021-06-18T20:50:20.468566267+03:00" + description: TimescaleDB Multinode Deployment. + digest: bc4f70989a2bdc35e5a4a9efe311a87ffcef3e0acb5ee704a010d49ecb372765 + home: https://github.com/timescale/timescaledb-kubernetes + maintainers: + - email: support@timescale.com + name: TimescaleDB + name: timescaledb-multinode + sources: + - https://github.com/timescale/timescaledb-kubernetes + - https://github.com/timescale/timescaledb-docker-ha + - https://github.com/zalando/patroni + urls: + - timescaledb-multinode-0.8.2.tgz + version: 0.8.2 + - apiVersion: v1 + created: "2021-06-18T20:50:20.467628196+03:00" description: TimescaleDB Multinode Deployment. digest: e0729d1731fb22f769494b921b275153d625aebcbdb68c432c2ccd1897f4d66c home: https://github.com/timescale/timescaledb-kubernetes @@ -18,7 +34,7 @@ entries: - timescaledb-multinode-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-05-13T13:09:01.246624251+03:00" + created: "2021-06-18T20:50:20.46677215+03:00" description: TimescaleDB Multinode Deployment. digest: 101d72220765f49e6b081c134c1f793bbe90d7f67a4f4c36c794be989e34623d home: https://github.com/timescale/timescaledb-kubernetes @@ -34,7 +50,7 @@ entries: - timescaledb-multinode-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-05-13T13:09:01.245629073+03:00" + created: "2021-06-18T20:50:20.465969438+03:00" description: TimescaleDB Multinode Deployment. digest: db2bea7290cd265835e11859a39e72562c7e21f1a90df0401e14e05d7adea1d6 home: https://github.com/timescale/timescaledb-kubernetes @@ -50,7 +66,7 @@ entries: - timescaledb-multinode-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-05-13T13:09:01.244786115+03:00" + created: "2021-06-18T20:50:20.465038522+03:00" description: TimescaleDB Multinode Deployment. digest: d537d361eb0f72bce12d8e4f993dbc980f7850a22bb1a7bcd8825a7a4a00d38f home: https://github.com/timescale/timescaledb-kubernetes @@ -66,7 +82,7 @@ entries: - timescaledb-multinode-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2021-05-13T13:09:01.243937539+03:00" + created: "2021-06-18T20:50:20.464148867+03:00" description: TimescaleDB Multinode Deployment. digest: a6c664a75489e069cdd2d36dff87ca6d2b3a38a3edf16de4234418b354e40eea home: https://github.com/timescale/timescaledb-kubernetes @@ -83,7 +99,7 @@ entries: version: 0.3.0 timescaledb-single: - apiVersion: v1 - created: "2021-05-13T13:09:01.289668593+03:00" + created: "2021-06-18T20:50:20.512155388+03:00" description: TimescaleDB HA Deployment. digest: 8bb26c938538e767a0da086f7535e1b81fa03af292becf44d406d7a8d8da9321 home: https://github.com/timescale/timescaledb-kubernetes @@ -99,7 +115,7 @@ entries: - timescaledb-single-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-05-13T13:09:01.287079814+03:00" + created: "2021-06-18T20:50:20.509473707+03:00" description: TimescaleDB HA Deployment. digest: a976fc399539e012942a3e55dce1d735c5c36bb4678e57a66ac7d280c8bfceb9 home: https://github.com/timescale/timescaledb-kubernetes @@ -115,7 +131,7 @@ entries: - timescaledb-single-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-05-13T13:09:01.284499288+03:00" + created: "2021-06-18T20:50:20.506832633+03:00" description: TimescaleDB HA Deployment. digest: d047ac65b447b75f748c6fe94cec7ed208e91c20b42eb912baa7aa4f4131518c home: https://github.com/timescale/timescaledb-kubernetes @@ -131,7 +147,7 @@ entries: - timescaledb-single-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-05-13T13:09:01.28137738+03:00" + created: "2021-06-18T20:50:20.50414541+03:00" description: TimescaleDB HA Deployment. digest: 63a9d362ea53efbe6103b8fd0cf07400aa2ccb090740eda213f862d588320c79 home: https://github.com/timescale/timescaledb-kubernetes @@ -147,7 +163,7 @@ entries: - timescaledb-single-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-05-13T13:09:01.278776541+03:00" + created: "2021-06-18T20:50:20.500984727+03:00" description: TimescaleDB HA Deployment. digest: 1948357489eff42eb81bcb59a465615e20b791dc54178d1bbaf1a650b7f46de1 home: https://github.com/timescale/timescaledb-kubernetes @@ -163,7 +179,7 @@ entries: - timescaledb-single-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2021-05-13T13:09:01.276469421+03:00" + created: "2021-06-18T20:50:20.498558081+03:00" description: TimescaleDB HA Deployment. digest: 39e270f51713dd0f2be64c8a80d747bc1e78173fd3e2c6172ff993f9a7dacd1b home: https://github.com/timescale/timescaledb-kubernetes @@ -179,7 +195,7 @@ entries: - timescaledb-single-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-05-13T13:09:01.274253356+03:00" + created: "2021-06-18T20:50:20.496179858+03:00" description: TimescaleDB HA Deployment. digest: 463bf4eca84cbefbd2e4a88928fe1ccc59a69fb95a4952ce15ca746adb479a29 home: https://github.com/timescale/timescaledb-kubernetes @@ -195,7 +211,7 @@ entries: - timescaledb-single-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2021-05-13T13:09:01.271762387+03:00" + created: "2021-06-18T20:50:20.494042405+03:00" description: TimescaleDB HA Deployment. digest: 8ad82438d3fc818e6729afa77607521b7510b68fa4e0b4e7d0836f33990f0a63 home: https://github.com/timescale/timescaledb-kubernetes @@ -211,7 +227,7 @@ entries: - timescaledb-single-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2021-05-13T13:09:01.269739924+03:00" + created: "2021-06-18T20:50:20.49118191+03:00" description: TimescaleDB HA Deployment. digest: b1c985faf6852aea91e6931230d19656f126fb7eabff004e92ffa2fb411cfbe2 home: https://github.com/timescale/timescaledb-kubernetes @@ -227,7 +243,7 @@ entries: - timescaledb-single-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2021-05-13T13:09:01.267672714+03:00" + created: "2021-06-18T20:50:20.489056089+03:00" description: TimescaleDB HA Deployment. digest: 977ccd3dfe52e84a18e9ecf8c4138a937621910f743071fff58b497c357afb7c home: https://github.com/timescale/timescaledb-kubernetes @@ -243,7 +259,7 @@ entries: - timescaledb-single-0.5.8.tgz version: 0.5.8 - apiVersion: v1 - created: "2021-05-13T13:09:01.265591514+03:00" + created: "2021-06-18T20:50:20.486950049+03:00" description: TimescaleDB HA Deployment. digest: 069c515c7055289ecf8189962e648e033053e8e7bdb47c39f9ec058e99911183 home: https://github.com/timescale/timescaledb-kubernetes @@ -259,7 +275,7 @@ entries: - timescaledb-single-0.5.7.tgz version: 0.5.7 - apiVersion: v1 - created: "2021-05-13T13:09:01.263428848+03:00" + created: "2021-06-18T20:50:20.484773378+03:00" description: TimescaleDB HA Deployment. digest: f0c9b30a4bf3d3e9c221efa37946bef05bad7fe79eb1808a7c8088c2d24e1075 home: https://github.com/timescale/timescaledb-kubernetes @@ -275,7 +291,7 @@ entries: - timescaledb-single-0.5.6.tgz version: 0.5.6 - apiVersion: v1 - created: "2021-05-13T13:09:01.260465687+03:00" + created: "2021-06-18T20:50:20.482054131+03:00" description: TimescaleDB HA Deployment. digest: 27098601d61f727ac71c2bfb67a1240c99188fc56ab4d0a0375cf5abc09547dc home: https://github.com/timescale/timescaledb-kubernetes @@ -291,7 +307,7 @@ entries: - timescaledb-single-0.5.5.tgz version: 0.5.5 - apiVersion: v1 - created: "2021-05-13T13:09:01.258470296+03:00" + created: "2021-06-18T20:50:20.479821868+03:00" description: TimescaleDB HA Deployment. digest: 5bd289b789c7fae00b98ae9d1ce0b86e6b8463fbe4fbdaf20d59b60aca137580 home: https://github.com/timescale/timescaledb-kubernetes @@ -307,7 +323,7 @@ entries: - timescaledb-single-0.5.4.tgz version: 0.5.4 - apiVersion: v1 - created: "2021-05-13T13:09:01.256537783+03:00" + created: "2021-06-18T20:50:20.477591479+03:00" description: TimescaleDB HA Deployment. digest: 6cd19bcb822c9610ad13fbe49b03c3bd9d5f4655920b44e41f937487ecf86d9d home: https://github.com/timescale/timescaledb-kubernetes @@ -323,7 +339,7 @@ entries: - timescaledb-single-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2021-05-13T13:09:01.254878767+03:00" + created: "2021-06-18T20:50:20.475930435+03:00" description: TimescaleDB HA Deployment. digest: 9e2570426e0445a2e4f079fe757bbaadbc95a764c12ce10903f426d3b69cfde9 home: https://github.com/timescale/timescaledb-kubernetes @@ -339,7 +355,7 @@ entries: - timescaledb-single-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2021-05-13T13:09:01.253205762+03:00" + created: "2021-06-18T20:50:20.474185982+03:00" description: TimescaleDB HA Deployment. digest: 128a7f0738f176a2abe6b7e1c3a1173ac6c4a77f7816704add3f0664609915aa home: https://github.com/timescale/timescaledb-kubernetes @@ -355,7 +371,7 @@ entries: - timescaledb-single-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2021-05-13T13:09:01.25158199+03:00" + created: "2021-06-18T20:50:20.472518425+03:00" description: TimescaleDB HA Deployment. digest: f4e0e05c989f04c78d9bd0a5b7ab2c6e1d2227af72ad05f7451a3e01b462bba0 home: https://github.com/timescale/timescaledb-kubernetes @@ -371,7 +387,7 @@ entries: - timescaledb-single-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2021-05-13T13:09:01.249941877+03:00" + created: "2021-06-18T20:50:20.470272739+03:00" description: TimescaleDB HA Deployment. digest: 2ae9d4a4ba25caf626e837244bf092721439e822d486f2c17f238b479012dedb home: https://github.com/timescale/timescaledb-kubernetes @@ -386,4 +402,4 @@ entries: urls: - timescaledb-single-0.4.0.tgz version: 0.4.0 -generated: "2021-05-13T13:09:01.243032071+03:00" +generated: "2021-06-18T20:50:20.463120355+03:00" diff --git a/charts/repo/timescaledb-multinode-0.8.2.tgz b/charts/repo/timescaledb-multinode-0.8.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..86c9e808a03ec3c749c54940b2688f0204fc616b GIT binary patch literal 11094 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 literal 0 HcmV?d00001 diff --git a/charts/timescaledb-multinode/Chart.yaml b/charts/timescaledb-multinode/Chart.yaml index 68d121c4..816cf19f 100644 --- a/charts/timescaledb-multinode/Chart.yaml +++ b/charts/timescaledb-multinode/Chart.yaml @@ -4,7 +4,7 @@ apiVersion: v1 name: timescaledb-multinode description: 'TimescaleDB Multinode Deployment.' -version: 0.8.1 +version: 0.8.2 # appVersion specifies the version of the software, which can vary wildly, # e.g. TimescaleDB 1.4.1 on PostgreSQL 11 or TimescaleDB 1.5.0 on PostgreSQL 12. # https://github.com/helm/helm/blob/master/docs/charts.md#the-appversion-field From 6576fb1e29313f44d6d78784d7e50b9a7e8127c5 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Fri, 18 Jun 2021 20:57:33 +0300 Subject: [PATCH 10/32] reorder params --- charts/timescaledb-multinode/values.yaml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index a48c7090..9469f495 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -56,7 +56,6 @@ postgresql: # cpu: 100m # memory: 128Mi parameters: - max_connections: 100 max_prepared_transactions: 150 # This is rather small, but as this Helm Chart may be used to spin up # 1 access node and 4 data nodes on a single minikube/microk8s this is set @@ -64,12 +63,6 @@ postgresql: shared_buffers: 300MB work_mem: 16MB timescaledb.passfile: '../.pgpass' - log_connections: 'on' - log_line_prefix: "%t [%p]: [%c-%l] %u@%d,app=%a [%e] " - log_min_duration_statement: '1s' - log_statement: ddl - log_checkpoints: 'on' - log_lock_waits: 'on' # These values are set as the default data volume size # is small as well. min_wal_size: 256MB @@ -98,6 +91,21 @@ postgresql: parameters: enable_partitionwise_aggregate: on jit: off + max_connections: 100 + shared_buffers: 300MB + work_mem: 16MB + timescaledb.passfile: '../.pgpass' + log_connections: 'on' + log_line_prefix: "%t [%p]: [%c-%l] %u@%d,app=%a [%e] " + log_min_duration_statement: '1s' + log_statement: ddl + log_checkpoints: 'on' + log_lock_waits: 'on' + # These values are set as the default data volume size + # is small as well. + min_wal_size: 256MB + max_wal_size: 512MB + temp_file_limit: 1GB persistentVolume: enabled: true From f28114c6ccba4c4c80d67198e2cf50fdbcaee5e3 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Wed, 23 Jun 2021 10:22:59 +0300 Subject: [PATCH 11/32] split config each node --- charts/timescaledb-multinode/Chart.yaml | 2 +- .../templates/job-attach-datanode.yaml | 4 +- .../templates/job-create-databases.yaml | 2 +- .../statefulset-timescaledb-accessnode.yaml | 30 +++---- .../statefulset-timescaledb-datanode.yaml | 32 +++---- .../templates/svc-timescaledb-access.yaml | 2 +- charts/timescaledb-multinode/values.yaml | 86 +++++++++---------- 7 files changed, 78 insertions(+), 80 deletions(-) diff --git a/charts/timescaledb-multinode/Chart.yaml b/charts/timescaledb-multinode/Chart.yaml index 816cf19f..4750bd35 100644 --- a/charts/timescaledb-multinode/Chart.yaml +++ b/charts/timescaledb-multinode/Chart.yaml @@ -4,7 +4,7 @@ apiVersion: v1 name: timescaledb-multinode description: 'TimescaleDB Multinode Deployment.' -version: 0.8.2 +version: 0.9.0 # appVersion specifies the version of the software, which can vary wildly, # e.g. TimescaleDB 1.4.1 on PostgreSQL 11 or TimescaleDB 1.5.0 on PostgreSQL 12. # https://github.com/helm/helm/blob/master/docs/charts.md#the-appversion-field diff --git a/charts/timescaledb-multinode/templates/job-attach-datanode.yaml b/charts/timescaledb-multinode/templates/job-attach-datanode.yaml index ea706c99..27d22a59 100644 --- a/charts/timescaledb-multinode/templates/job-attach-datanode.yaml +++ b/charts/timescaledb-multinode/templates/job-attach-datanode.yaml @@ -1,8 +1,8 @@ # This file and its contents are licensed under the Apache License 2.0. # Please see the included NOTICE for copyright information and LICENSE for a copy of the license. -{{- range $pod, $e := until ( .Values.dataNodes | int) }} -{{- range $index, $dbname := $.Values.postgresql.databases }} +{{- range $pod, $e := until ( .Values.data_node.replicas | int) }} +{{- range $index, $dbname := $.Values.access_node.postgresql.databases }} --- apiVersion: batch/v1 kind: Job diff --git a/charts/timescaledb-multinode/templates/job-create-databases.yaml b/charts/timescaledb-multinode/templates/job-create-databases.yaml index 9b4fae33..f822edb6 100644 --- a/charts/timescaledb-multinode/templates/job-create-databases.yaml +++ b/charts/timescaledb-multinode/templates/job-create-databases.yaml @@ -1,7 +1,7 @@ # This file and its contents are licensed under the Apache License 2.0. # Please see the included NOTICE for copyright information and LICENSE for a copy of the license. -{{- range $index, $dbname := .Values.postgresql.databases }} +{{- range $index, $dbname := .Values.access_node.postgresql.databases }} --- apiVersion: batch/v1 kind: Job diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index fbae8026..5fe5d592 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -44,7 +44,7 @@ spec: env: - name: POSTGRESQL_CUSTOM_PARAMETERS value: | - {{- range $key, $value := .Values.postgresql.access_node.parameters }} + {{- range $key, $value := .Values.access_node.postgresql.parameters }} {{ printf "%s = '%s'" $key ($value | toString) }} {{- end }} - name: POSTGRES_PASSWORD @@ -81,8 +81,8 @@ spec: chmod 0600 "${PGDATA}/../.pgpass" volumeMounts: - name: storage-volume - mountPath: "{{ .Values.postgresql.access_node.persistentVolume.mountPath }}" - subPath: "{{ .Values.postgresql.access_node.persistentVolume.subPath }}" + mountPath: "{{ .Values.access_node.postgresql.persistentVolume.mountPath }}" + subPath: "{{ .Values.access_node.postgresql.persistentVolume.subPath }}" containers: - name: timescaledb securityContext: @@ -107,10 +107,10 @@ spec: - containerPort: 5432 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.postgresql.access_node.persistentVolume.mountPath }}" - subPath: "{{ .Values.postgresql.access_node.persistentVolume.subPath }}" + mountPath: "{{ .Values.access_node.postgresql.persistentVolume.mountPath }}" + subPath: "{{ .Values.access_node.postgresql.persistentVolume.subPath }}" resources: -{{ toYaml .Values.postgresql.access_node.resources | indent 10 }} +{{ toYaml .Values.access_node.postgresql.resources | indent 10 }} {{- with .Values.nodeSelector }} nodeSelector: {{ toYaml . | indent 8 }} @@ -129,17 +129,17 @@ spec: affinity: {{ tpl .Values.affinityTemplate . | indent 8 }} {{- end }} - {{- if not .Values.postgresql.access_node.persistentVolume.enabled }} + {{- if not .Values.access_node.postgresql.persistentVolume.enabled }} - name: storage-volume emptyDir: {} {{- end }} - {{- if .Values.postgresql.access_node.persistentVolume.enabled }} + {{- if .Values.access_node.postgresql.persistentVolume.enabled }} volumeClaimTemplates: - metadata: name: storage-volume annotations: - {{- if .Values.postgresql.access_node.persistentVolume.annotations }} -{{ toYaml .Values.postgresql.access_node.persistentVolume.annotations | indent 8 }} + {{- if .Values.access_node.postgresql.persistentVolume.annotations }} +{{ toYaml .Values.access_node.postgresql.persistentVolume.annotations | indent 8 }} {{- end }} labels: app: {{ template "timescaledb.fullname" . }} @@ -147,15 +147,15 @@ spec: heritage: {{ .Release.Service }} spec: accessModes: -{{ toYaml .Values.postgresql.access_node.persistentVolume.accessModes | indent 8 }} +{{ toYaml .Values.access_node.postgresql.persistentVolume.accessModes | indent 8 }} resources: requests: - storage: "{{ .Values.postgresql.access_node.persistentVolume.size }}" - {{- if .Values.postgresql.access_node.persistentVolume.storageClass }} - {{- if (eq "-" .Values.postgresql.access_node.persistentVolume.storageClass) }} + storage: "{{ .Values.access_node.postgresql.persistentVolume.size }}" + {{- if .Values.access_node.postgresql.persistentVolume.storageClass }} + {{- if (eq "-" .Values.access_node.postgresql.persistentVolume.storageClass) }} storageClassName: "" {{- else }} - storageClassName: "{{ .Values.postgresql.access_node.persistentVolume.storageClass }}" + storageClassName: "{{ .Values.access_node.postgresql.persistentVolume.storageClass }}" {{- end }} {{- end }} {{- end }} diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index 342599fa..572c3df0 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -12,7 +12,7 @@ metadata: heritage: {{ .Release.Service }} spec: serviceName: {{ template "timescaledb.dataname" . }} - replicas: {{ .Values.dataNodes }} + replicas: {{ .Values.data_node.replicas }} podManagementPolicy: Parallel selector: matchLabels: @@ -44,7 +44,7 @@ spec: env: - name: POSTGRESQL_CUSTOM_PARAMETERS value: | - {{- range $key, $value := .Values.postgresql.data_node.parameters }} + {{- range $key, $value := .Values.data_node.postgresql.parameters }} {{ printf "%s = '%s'" $key ($value | toString) }} {{- end }} - name: POSTGRES_PASSWORD @@ -76,8 +76,8 @@ spec: echo "DROP EXTENSION timescaledb" | /docker-entrypoint.sh postgres --single -D "${PGDATA}" template1 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.postgresql.data_node.persistentVolume.mountPath }}" - subPath: "{{ .Values.postgresql.data_node.persistentVolume.subPath }}" + mountPath: "{{ .Values.data_node.postgresql.persistentVolume.mountPath }}" + subPath: "{{ .Values.data_node.postgresql.persistentVolume.subPath }}" containers: - name: timescaledb securityContext: @@ -102,10 +102,10 @@ spec: - containerPort: 5432 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.postgresql.data_node.persistentVolume.mountPath }}" - subPath: "{{ .Values.postgresql.data_node.persistentVolume.subPath }}" + mountPath: "{{ .Values.data_node.postgresql.persistentVolume.mountPath }}" + subPath: "{{ .Values.data_node.postgresql.persistentVolume.subPath }}" resources: -{{ toYaml .Values.postgresql.data_node.resources | indent 10 }} +{{ toYaml .Values.data_node.postgresql.resources | indent 10 }} {{- with .Values.nodeSelector }} nodeSelector: {{ toYaml . | indent 8 }} @@ -124,17 +124,17 @@ spec: affinity: {{ tpl .Values.affinityTemplate . | indent 8 }} {{- end }} - {{- if not .Values.postgresql.data_node.persistentVolume.enabled }} + {{- if not .Values.data_node.postgresql.persistentVolume.enabled }} - name: storage-volume emptyDir: {} {{- end }} - {{- if .Values.postgresql.data_node.persistentVolume.enabled }} + {{- if .Values.data_node.postgresql.persistentVolume.enabled }} volumeClaimTemplates: - metadata: name: storage-volume annotations: - {{- if .Values.postgresql.data_node.persistentVolume.annotations }} -{{ toYaml .Values.postgresql.data_node.persistentVolume.annotations | indent 8 }} + {{- if .Values.data_node.postgresql.persistentVolume.annotations }} +{{ toYaml .Values.data_node.postgresql.persistentVolume.annotations | indent 8 }} {{- end }} labels: app: {{ template "timescaledb.fullname" . }} @@ -142,15 +142,15 @@ spec: heritage: {{ .Release.Service }} spec: accessModes: -{{ toYaml .Values.postgresql.data_node.persistentVolume.accessModes | indent 8 }} +{{ toYaml .Values.data_node.postgresql.persistentVolume.accessModes | indent 8 }} resources: requests: - storage: "{{ .Values.postgresql.data_node.persistentVolume.size }}" - {{- if .Values.postgresql.data_node.persistentVolume.storageClass }} - {{- if (eq "-" .Values.postgresql.data_node.persistentVolume.storageClass) }} + storage: "{{ .Values.data_node.postgresql.persistentVolume.size }}" + {{- if .Values.data_node.postgresql.persistentVolume.storageClass }} + {{- if (eq "-" .Values.data_node.postgresql.persistentVolume.storageClass) }} storageClassName: "" {{- else }} - storageClassName: "{{ .Values.postgresql.data_node.persistentVolume.storageClass }}" + storageClassName: "{{ .Values.data_node.postgresql.persistentVolume.storageClass }}" {{- end }} {{- end }} {{- end }} diff --git a/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml b/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml index 4362c4b8..01b030b3 100644 --- a/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml +++ b/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml @@ -14,7 +14,7 @@ metadata: annotations: service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "4000" spec: - type: {{ .Values.accessNode.service.type }} + type: {{ .Values.access_node.service.type }} ports: - name: postgresql port: 5432 diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index 9469f495..ef66e01e 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -1,8 +1,6 @@ # This file and its contents are licensed under the Apache License 2.0. # Please see the included NOTICE for copyright information and LICENSE for a copy of the license. -dataNodes: 3 - # To prevent very long names, we override the name, otherwise it would default to # timescaledb-multinode (the name of the chart) nameOverride: timescaledb @@ -14,11 +12,6 @@ image: tag: pg12-ts2.0.0-p0 pullPolicy: IfNotPresent -#enable external access using LoadBalancer -accessNode: - service: - type: LoadBalancer - # Credentials used by PostgreSQL credentials: fromValues: true @@ -41,28 +34,28 @@ env: # a Docker Volume in many Docker images, which means the data is not actually persisted. value: /var/lib/postgresql/pgdata -postgresql: - databases: - - postgres - - example - data_node: - resources: {} - # If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi +access_node: + #enable external access using LoadBalancer + service: + type: LoadBalancer + resources: {} + postgresql: + databases: + - postgres + - example parameters: - max_prepared_transactions: 150 - # This is rather small, but as this Helm Chart may be used to spin up - # 1 access node and 4 data nodes on a single minikube/microk8s this is set - # to a conservative value + enable_partitionwise_aggregate: on + jit: off + max_connections: 100 shared_buffers: 300MB work_mem: 16MB timescaledb.passfile: '../.pgpass' + log_connections: 'on' + log_line_prefix: "%t [%p]: [%c-%l] %u@%d,app=%a [%e] " + log_min_duration_statement: '1s' + log_statement: ddl + log_checkpoints: 'on' + log_lock_waits: 'on' # These values are set as the default data volume size # is small as well. min_wal_size: 256MB @@ -72,35 +65,32 @@ postgresql: persistentVolume: enabled: true size: 5G - ## database data Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - ## - # storageClass: "-" subPath: "" mountPath: "/var/lib/postgresql" annotations: {} accessModes: - ReadWriteOnce - access_node: - resources: {} +data_node: + replicas: 3 + resources: {} + # If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + postgresql: parameters: - enable_partitionwise_aggregate: on - jit: off - max_connections: 100 + max_prepared_transactions: 150 + # This is rather small, but as this Helm Chart may be used to spin up + # 1 access node and 4 data nodes on a single minikube/microk8s this is set + # to a conservative value shared_buffers: 300MB work_mem: 16MB timescaledb.passfile: '../.pgpass' - log_connections: 'on' - log_line_prefix: "%t [%p]: [%c-%l] %u@%d,app=%a [%e] " - log_min_duration_statement: '1s' - log_statement: ddl - log_checkpoints: 'on' - log_lock_waits: 'on' # These values are set as the default data volume size # is small as well. min_wal_size: 256MB @@ -110,6 +100,14 @@ postgresql: persistentVolume: enabled: true size: 5G + ## database data Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" subPath: "" mountPath: "/var/lib/postgresql" annotations: {} From 49fb4a571bf44d455448ed149a33a7002be0d68e Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Thu, 24 Jun 2021 15:14:11 +0300 Subject: [PATCH 12/32] variable camelcase --- charts/timescaledb-multinode/admin-guide.md | 5 +-- .../templates/job-attach-datanode.yaml | 4 +- .../templates/job-create-databases.yaml | 2 +- .../statefulset-timescaledb-accessnode.yaml | 39 ++++++++---------- .../statefulset-timescaledb-datanode.yaml | 41 ++++++++----------- .../templates/svc-timescaledb-access.yaml | 2 +- charts/timescaledb-multinode/values.yaml | 29 ++++--------- 7 files changed, 50 insertions(+), 72 deletions(-) diff --git a/charts/timescaledb-multinode/admin-guide.md b/charts/timescaledb-multinode/admin-guide.md index 4a324b89..1fafe844 100644 --- a/charts/timescaledb-multinode/admin-guide.md +++ b/charts/timescaledb-multinode/admin-guide.md @@ -29,8 +29,7 @@ The following table lists the configurable parameters of the TimescaleDB Helm ch | `env` | Extra custom environment variables, expressed as [EnvVar](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#envvarsource-v1-core) | `PGDATA` and some language settings | | `resources` | Any resources you wish to assign to the pod | `{}` | | `nodeSelector` | Node label to use for scheduling | `{}` | -| `tolerations` | List of node taints to tolerate | `[]` | -| `affinityTemplate` | A template string to use to generate the affinity settings | Anti-affinity preferred on hostname | +| `tolerations` | List of node taints to tolerate | `[]` | `affinity` | Affinity settings. Overrides `affinityTemplate` if set. | `{}` | | `postgresql.databases` | List of databases to automatically create a multinode setup for | `["postgres", "example"]` | | `postgresql.parameters` | [PostgreSQL parameters](https://www.postgresql.org/docs/current/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE)) | Some required and preferred settings | @@ -123,7 +122,7 @@ kubectl logs $(kubectl get pod -l release=my-release,timescaleNodeType=access) t ### Verify multinode topology ```console -$ kubectl exec -ti $(kubectl get pod -l timescaleNodeType=access -o name) -c timescaledb -- psql -d example -c 'select node_name from timescaledb_information.data_nodes' +$ kubectl exec -ti $(kubectl get pod -l timescaleNodeType=access -o name) -c timescaledb -- psql -d example -c 'select node_name from timescaledb_information.dataNodes' ``` ```text node_name diff --git a/charts/timescaledb-multinode/templates/job-attach-datanode.yaml b/charts/timescaledb-multinode/templates/job-attach-datanode.yaml index 27d22a59..91eadf2c 100644 --- a/charts/timescaledb-multinode/templates/job-attach-datanode.yaml +++ b/charts/timescaledb-multinode/templates/job-attach-datanode.yaml @@ -1,8 +1,8 @@ # This file and its contents are licensed under the Apache License 2.0. # Please see the included NOTICE for copyright information and LICENSE for a copy of the license. -{{- range $pod, $e := until ( .Values.data_node.replicas | int) }} -{{- range $index, $dbname := $.Values.access_node.postgresql.databases }} +{{- range $pod, $e := until ( .Values.dataNode.replicas | int) }} +{{- range $index, $dbname := $.Values.accessNode.postgresql.databases }} --- apiVersion: batch/v1 kind: Job diff --git a/charts/timescaledb-multinode/templates/job-create-databases.yaml b/charts/timescaledb-multinode/templates/job-create-databases.yaml index f822edb6..c44a63cf 100644 --- a/charts/timescaledb-multinode/templates/job-create-databases.yaml +++ b/charts/timescaledb-multinode/templates/job-create-databases.yaml @@ -1,7 +1,7 @@ # This file and its contents are licensed under the Apache License 2.0. # Please see the included NOTICE for copyright information and LICENSE for a copy of the license. -{{- range $index, $dbname := .Values.access_node.postgresql.databases }} +{{- range $index, $dbname := .Values.accessNode.postgresql.databases }} --- apiVersion: batch/v1 kind: Job diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index 5fe5d592..e2fdb91e 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -44,7 +44,7 @@ spec: env: - name: POSTGRESQL_CUSTOM_PARAMETERS value: | - {{- range $key, $value := .Values.access_node.postgresql.parameters }} + {{- range $key, $value := .Values.accessNode.postgresql.parameters }} {{ printf "%s = '%s'" $key ($value | toString) }} {{- end }} - name: POSTGRES_PASSWORD @@ -81,8 +81,8 @@ spec: chmod 0600 "${PGDATA}/../.pgpass" volumeMounts: - name: storage-volume - mountPath: "{{ .Values.access_node.postgresql.persistentVolume.mountPath }}" - subPath: "{{ .Values.access_node.postgresql.persistentVolume.subPath }}" + mountPath: "{{ .Values.accessNode.postgresql.persistentVolume.mountPath }}" + subPath: "{{ .Values.accessNode.postgresql.persistentVolume.subPath }}" containers: - name: timescaledb securityContext: @@ -107,39 +107,34 @@ spec: - containerPort: 5432 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.access_node.postgresql.persistentVolume.mountPath }}" - subPath: "{{ .Values.access_node.postgresql.persistentVolume.subPath }}" + mountPath: "{{ .Values.accessNode.postgresql.persistentVolume.mountPath }}" + subPath: "{{ .Values.accessNode.postgresql.persistentVolume.subPath }}" resources: -{{ toYaml .Values.access_node.postgresql.resources | indent 10 }} - {{- with .Values.nodeSelector }} +{{ toYaml .Values.accessNode.postgresql.resources | indent 10 }} + {{- with .Values.accessNode.nodeSelector }} nodeSelector: {{ toYaml . | indent 8 }} {{- end }} - {{- with .Values.tolerations }} + {{- with .Values.accessNode.tolerations }} tolerations: {{ toYaml . | indent 8 }} {{- end }} {{- if .Values.schedulerName }} schedulerName: {{ .Values.schedulerName }} {{- end }} - {{- if .Values.affinity }} affinity: {{ .Values.affinity | toYaml | indent 8 }} - {{- else if .Values.affinityTemplate }} - affinity: -{{ tpl .Values.affinityTemplate . | indent 8 }} - {{- end }} - {{- if not .Values.access_node.postgresql.persistentVolume.enabled }} + {{- if not .Values.accessNode.postgresql.persistentVolume.enabled }} - name: storage-volume emptyDir: {} {{- end }} - {{- if .Values.access_node.postgresql.persistentVolume.enabled }} + {{- if .Values.accessNode.postgresql.persistentVolume.enabled }} volumeClaimTemplates: - metadata: name: storage-volume annotations: - {{- if .Values.access_node.postgresql.persistentVolume.annotations }} -{{ toYaml .Values.access_node.postgresql.persistentVolume.annotations | indent 8 }} + {{- if .Values.accessNode.postgresql.persistentVolume.annotations }} +{{ toYaml .Values.accessNode.postgresql.persistentVolume.annotations | indent 8 }} {{- end }} labels: app: {{ template "timescaledb.fullname" . }} @@ -147,15 +142,15 @@ spec: heritage: {{ .Release.Service }} spec: accessModes: -{{ toYaml .Values.access_node.postgresql.persistentVolume.accessModes | indent 8 }} +{{ toYaml .Values.accessNode.postgresql.persistentVolume.accessModes | indent 8 }} resources: requests: - storage: "{{ .Values.access_node.postgresql.persistentVolume.size }}" - {{- if .Values.access_node.postgresql.persistentVolume.storageClass }} - {{- if (eq "-" .Values.access_node.postgresql.persistentVolume.storageClass) }} + storage: "{{ .Values.accessNode.postgresql.persistentVolume.size }}" + {{- if .Values.accessNode.postgresql.persistentVolume.storageClass }} + {{- if (eq "-" .Values.accessNode.postgresql.persistentVolume.storageClass) }} storageClassName: "" {{- else }} - storageClassName: "{{ .Values.access_node.postgresql.persistentVolume.storageClass }}" + storageClassName: "{{ .Values.accessNode.postgresql.persistentVolume.storageClass }}" {{- end }} {{- end }} {{- end }} diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index 572c3df0..ad26c648 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -12,7 +12,7 @@ metadata: heritage: {{ .Release.Service }} spec: serviceName: {{ template "timescaledb.dataname" . }} - replicas: {{ .Values.data_node.replicas }} + replicas: {{ .Values.dataNode.replicas }} podManagementPolicy: Parallel selector: matchLabels: @@ -44,7 +44,7 @@ spec: env: - name: POSTGRESQL_CUSTOM_PARAMETERS value: | - {{- range $key, $value := .Values.data_node.postgresql.parameters }} + {{- range $key, $value := .Values.dataNode.postgresql.parameters }} {{ printf "%s = '%s'" $key ($value | toString) }} {{- end }} - name: POSTGRES_PASSWORD @@ -76,8 +76,8 @@ spec: echo "DROP EXTENSION timescaledb" | /docker-entrypoint.sh postgres --single -D "${PGDATA}" template1 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.data_node.postgresql.persistentVolume.mountPath }}" - subPath: "{{ .Values.data_node.postgresql.persistentVolume.subPath }}" + mountPath: "{{ .Values.dataNode.postgresql.persistentVolume.mountPath }}" + subPath: "{{ .Values.dataNode.postgresql.persistentVolume.subPath }}" containers: - name: timescaledb securityContext: @@ -102,39 +102,34 @@ spec: - containerPort: 5432 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.data_node.postgresql.persistentVolume.mountPath }}" - subPath: "{{ .Values.data_node.postgresql.persistentVolume.subPath }}" + mountPath: "{{ .Values.dataNode.postgresql.persistentVolume.mountPath }}" + subPath: "{{ .Values.dataNode.postgresql.persistentVolume.subPath }}" resources: -{{ toYaml .Values.data_node.postgresql.resources | indent 10 }} - {{- with .Values.nodeSelector }} +{{ toYaml .Values.dataNode.postgresql.resources | indent 10 }} + {{- with .Values.dataNode.nodeSelector }} nodeSelector: {{ toYaml . | indent 8 }} {{- end }} - {{- with .Values.tolerations }} + {{- with .Values.dataNode.tolerations }} tolerations: {{ toYaml . | indent 8 }} {{- end }} {{- if .Values.schedulerName }} schedulerName: {{ .Values.schedulerName }} {{- end }} - {{- if .Values.affinity }} affinity: {{ .Values.affinity | toYaml | indent 8 }} - {{- else if .Values.affinityTemplate }} - affinity: -{{ tpl .Values.affinityTemplate . | indent 8 }} - {{- end }} - {{- if not .Values.data_node.postgresql.persistentVolume.enabled }} + {{- if not .Values.dataNode.postgresql.persistentVolume.enabled }} - name: storage-volume emptyDir: {} {{- end }} - {{- if .Values.data_node.postgresql.persistentVolume.enabled }} + {{- if .Values.dataNode.postgresql.persistentVolume.enabled }} volumeClaimTemplates: - metadata: name: storage-volume annotations: - {{- if .Values.data_node.postgresql.persistentVolume.annotations }} -{{ toYaml .Values.data_node.postgresql.persistentVolume.annotations | indent 8 }} + {{- if .Values.dataNode.postgresql.persistentVolume.annotations }} +{{ toYaml .Values.dataNode.postgresql.persistentVolume.annotations | indent 8 }} {{- end }} labels: app: {{ template "timescaledb.fullname" . }} @@ -142,15 +137,15 @@ spec: heritage: {{ .Release.Service }} spec: accessModes: -{{ toYaml .Values.data_node.postgresql.persistentVolume.accessModes | indent 8 }} +{{ toYaml .Values.dataNode.postgresql.persistentVolume.accessModes | indent 8 }} resources: requests: - storage: "{{ .Values.data_node.postgresql.persistentVolume.size }}" - {{- if .Values.data_node.postgresql.persistentVolume.storageClass }} - {{- if (eq "-" .Values.data_node.postgresql.persistentVolume.storageClass) }} + storage: "{{ .Values.dataNode.postgresql.persistentVolume.size }}" + {{- if .Values.dataNode.postgresql.persistentVolume.storageClass }} + {{- if (eq "-" .Values.dataNode.postgresql.persistentVolume.storageClass) }} storageClassName: "" {{- else }} - storageClassName: "{{ .Values.data_node.postgresql.persistentVolume.storageClass }}" + storageClassName: "{{ .Values.dataNode.postgresql.persistentVolume.storageClass }}" {{- end }} {{- end }} {{- end }} diff --git a/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml b/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml index 01b030b3..4362c4b8 100644 --- a/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml +++ b/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml @@ -14,7 +14,7 @@ metadata: annotations: service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "4000" spec: - type: {{ .Values.access_node.service.type }} + type: {{ .Values.accessNode.service.type }} ports: - name: postgresql port: 5432 diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index ef66e01e..57515298 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -34,7 +34,7 @@ env: # a Docker Volume in many Docker images, which means the data is not actually persisted. value: /var/lib/postgresql/pgdata -access_node: +accessNode: #enable external access using LoadBalancer service: type: LoadBalancer @@ -71,7 +71,11 @@ access_node: accessModes: - ReadWriteOnce -data_node: + nodeSelector: {} + tolerations: [] + affinity: {} + +dataNode: replicas: 3 resources: {} # If you do want to specify resources, uncomment the following @@ -114,24 +118,9 @@ data_node: accessModes: - ReadWriteOnce -# https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector -nodeSelector: {} - -# https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ -tolerations: [] - -# https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity -affinityTemplate: | - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - podAffinityTerm: - topologyKey: "kubernetes.io/hostname" - labelSelector: - matchLabels: - app: {{ template "timescaledb.name" . }} - release: {{ .Release.Name | quote }} -affinity: {} + nodeSelector: {} + tolerations: [] + affinity: {} ## Use an alternate scheduler, e.g. "stork". ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ From c5f6fc9030c92769156937a0dbb6776539e92f9c Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Thu, 24 Jun 2021 17:46:19 +0300 Subject: [PATCH 13/32] revert affinityTemplate --- charts/timescaledb-multinode/README.md | 2 + charts/timescaledb-multinode/admin-guide.md | 5 +- .../statefulset-timescaledb-accessnode.yaml | 31 ++++++---- .../statefulset-timescaledb-datanode.yaml | 31 ++++++---- charts/timescaledb-multinode/values.yaml | 62 ++++++++++++------- 5 files changed, 79 insertions(+), 52 deletions(-) diff --git a/charts/timescaledb-multinode/README.md b/charts/timescaledb-multinode/README.md index 68fddce0..1407b755 100644 --- a/charts/timescaledb-multinode/README.md +++ b/charts/timescaledb-multinode/README.md @@ -24,6 +24,7 @@ To install the chart as a release and name it `my-release`: ```console helm upgrade --install my-release . ``` +Configurations can be defined seprately for each node type - access node and data node. You can override parameters using the `--set key=value[,key=value]` argument to `helm upgrade --install`, e.g., to install the chart with randomly generated passwords: @@ -38,6 +39,7 @@ Alternatively, a YAML file that specifies the values for the parameters can be p ```console helm upgrade --install my-release -f myvalues.yaml . ``` + ### Secret override Instead of setting secrets in values.yaml, they can be manually generated. The following example is for timescaledb-access node and timescaledb-data node. diff --git a/charts/timescaledb-multinode/admin-guide.md b/charts/timescaledb-multinode/admin-guide.md index 1fafe844..4a324b89 100644 --- a/charts/timescaledb-multinode/admin-guide.md +++ b/charts/timescaledb-multinode/admin-guide.md @@ -29,7 +29,8 @@ The following table lists the configurable parameters of the TimescaleDB Helm ch | `env` | Extra custom environment variables, expressed as [EnvVar](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#envvarsource-v1-core) | `PGDATA` and some language settings | | `resources` | Any resources you wish to assign to the pod | `{}` | | `nodeSelector` | Node label to use for scheduling | `{}` | -| `tolerations` | List of node taints to tolerate | `[]` +| `tolerations` | List of node taints to tolerate | `[]` | +| `affinityTemplate` | A template string to use to generate the affinity settings | Anti-affinity preferred on hostname | | `affinity` | Affinity settings. Overrides `affinityTemplate` if set. | `{}` | | `postgresql.databases` | List of databases to automatically create a multinode setup for | `["postgres", "example"]` | | `postgresql.parameters` | [PostgreSQL parameters](https://www.postgresql.org/docs/current/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE)) | Some required and preferred settings | @@ -122,7 +123,7 @@ kubectl logs $(kubectl get pod -l release=my-release,timescaleNodeType=access) t ### Verify multinode topology ```console -$ kubectl exec -ti $(kubectl get pod -l timescaleNodeType=access -o name) -c timescaledb -- psql -d example -c 'select node_name from timescaledb_information.dataNodes' +$ kubectl exec -ti $(kubectl get pod -l timescaleNodeType=access -o name) -c timescaledb -- psql -d example -c 'select node_name from timescaledb_information.data_nodes' ``` ```text node_name diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index e2fdb91e..8ba14880 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -81,8 +81,8 @@ spec: chmod 0600 "${PGDATA}/../.pgpass" volumeMounts: - name: storage-volume - mountPath: "{{ .Values.accessNode.postgresql.persistentVolume.mountPath }}" - subPath: "{{ .Values.accessNode.postgresql.persistentVolume.subPath }}" + mountPath: "{{ .Values.accessNode.persistentVolume.mountPath }}" + subPath: "{{ .Values.accessNode.persistentVolume.subPath }}" containers: - name: timescaledb securityContext: @@ -107,8 +107,8 @@ spec: - containerPort: 5432 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.accessNode.postgresql.persistentVolume.mountPath }}" - subPath: "{{ .Values.accessNode.postgresql.persistentVolume.subPath }}" + mountPath: "{{ .Values.accessNode.persistentVolume.mountPath }}" + subPath: "{{ .Values.accessNode.persistentVolume.subPath }}" resources: {{ toYaml .Values.accessNode.postgresql.resources | indent 10 }} {{- with .Values.accessNode.nodeSelector }} @@ -122,19 +122,24 @@ spec: {{- if .Values.schedulerName }} schedulerName: {{ .Values.schedulerName }} {{- end }} + {{- if .Values.affinity }} affinity: {{ .Values.affinity | toYaml | indent 8 }} - {{- if not .Values.accessNode.postgresql.persistentVolume.enabled }} + {{- else if .Values.affinityTemplate }} + affinity: +{{ tpl .Values.affinityTemplate . | indent 8 }} + {{- end }} + {{- if not .Values.accessNode.persistentVolume.enabled }} - name: storage-volume emptyDir: {} {{- end }} - {{- if .Values.accessNode.postgresql.persistentVolume.enabled }} + {{- if .Values.accessNode.persistentVolume.enabled }} volumeClaimTemplates: - metadata: name: storage-volume annotations: - {{- if .Values.accessNode.postgresql.persistentVolume.annotations }} -{{ toYaml .Values.accessNode.postgresql.persistentVolume.annotations | indent 8 }} + {{- if .Values.accessNode.persistentVolume.annotations }} +{{ toYaml .Values.accessNode.persistentVolume.annotations | indent 8 }} {{- end }} labels: app: {{ template "timescaledb.fullname" . }} @@ -142,15 +147,15 @@ spec: heritage: {{ .Release.Service }} spec: accessModes: -{{ toYaml .Values.accessNode.postgresql.persistentVolume.accessModes | indent 8 }} +{{ toYaml .Values.accessNode.persistentVolume.accessModes | indent 8 }} resources: requests: - storage: "{{ .Values.accessNode.postgresql.persistentVolume.size }}" - {{- if .Values.accessNode.postgresql.persistentVolume.storageClass }} - {{- if (eq "-" .Values.accessNode.postgresql.persistentVolume.storageClass) }} + storage: "{{ .Values.accessNode.persistentVolume.size }}" + {{- if .Values.accessNode.persistentVolume.storageClass }} + {{- if (eq "-" .Values.accessNode.persistentVolume.storageClass) }} storageClassName: "" {{- else }} - storageClassName: "{{ .Values.accessNode.postgresql.persistentVolume.storageClass }}" + storageClassName: "{{ .Values.accessNode.persistentVolume.storageClass }}" {{- end }} {{- end }} {{- end }} diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index ad26c648..604a12b6 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -76,8 +76,8 @@ spec: echo "DROP EXTENSION timescaledb" | /docker-entrypoint.sh postgres --single -D "${PGDATA}" template1 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.dataNode.postgresql.persistentVolume.mountPath }}" - subPath: "{{ .Values.dataNode.postgresql.persistentVolume.subPath }}" + mountPath: "{{ .Values.dataNode.persistentVolume.mountPath }}" + subPath: "{{ .Values.dataNode.persistentVolume.subPath }}" containers: - name: timescaledb securityContext: @@ -102,8 +102,8 @@ spec: - containerPort: 5432 volumeMounts: - name: storage-volume - mountPath: "{{ .Values.dataNode.postgresql.persistentVolume.mountPath }}" - subPath: "{{ .Values.dataNode.postgresql.persistentVolume.subPath }}" + mountPath: "{{ .Values.dataNode.persistentVolume.mountPath }}" + subPath: "{{ .Values.dataNode.persistentVolume.subPath }}" resources: {{ toYaml .Values.dataNode.postgresql.resources | indent 10 }} {{- with .Values.dataNode.nodeSelector }} @@ -117,19 +117,24 @@ spec: {{- if .Values.schedulerName }} schedulerName: {{ .Values.schedulerName }} {{- end }} + {{- if .Values.affinity }} affinity: {{ .Values.affinity | toYaml | indent 8 }} - {{- if not .Values.dataNode.postgresql.persistentVolume.enabled }} + {{- else if .Values.affinityTemplate }} + affinity: +{{ tpl .Values.affinityTemplate . | indent 8 }} + {{- end }} + {{- if not .Values.dataNode.persistentVolume.enabled }} - name: storage-volume emptyDir: {} {{- end }} - {{- if .Values.dataNode.postgresql.persistentVolume.enabled }} + {{- if .Values.dataNode.persistentVolume.enabled }} volumeClaimTemplates: - metadata: name: storage-volume annotations: - {{- if .Values.dataNode.postgresql.persistentVolume.annotations }} -{{ toYaml .Values.dataNode.postgresql.persistentVolume.annotations | indent 8 }} + {{- if .Values.dataNode.persistentVolume.annotations }} +{{ toYaml .Values.dataNode.persistentVolume.annotations | indent 8 }} {{- end }} labels: app: {{ template "timescaledb.fullname" . }} @@ -137,15 +142,15 @@ spec: heritage: {{ .Release.Service }} spec: accessModes: -{{ toYaml .Values.dataNode.postgresql.persistentVolume.accessModes | indent 8 }} +{{ toYaml .Values.dataNode.persistentVolume.accessModes | indent 8 }} resources: requests: - storage: "{{ .Values.dataNode.postgresql.persistentVolume.size }}" - {{- if .Values.dataNode.postgresql.persistentVolume.storageClass }} - {{- if (eq "-" .Values.dataNode.postgresql.persistentVolume.storageClass) }} + storage: "{{ .Values.dataNode.persistentVolume.size }}" + {{- if .Values.dataNode.persistentVolume.storageClass }} + {{- if (eq "-" .Values.dataNode.persistentVolume.storageClass) }} storageClassName: "" {{- else }} - storageClassName: "{{ .Values.dataNode.postgresql.persistentVolume.storageClass }}" + storageClassName: "{{ .Values.dataNode.persistentVolume.storageClass }}" {{- end }} {{- end }} {{- end }} diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index 57515298..3f3be4b2 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -62,14 +62,14 @@ accessNode: max_wal_size: 512MB temp_file_limit: 1GB - persistentVolume: - enabled: true - size: 5G - subPath: "" - mountPath: "/var/lib/postgresql" - annotations: {} - accessModes: - - ReadWriteOnce + persistentVolume: + enabled: true + size: 5G + subPath: "" + mountPath: "/var/lib/postgresql" + annotations: {} + accessModes: + - ReadWriteOnce nodeSelector: {} tolerations: [] @@ -101,27 +101,41 @@ dataNode: max_wal_size: 512MB temp_file_limit: 1GB - persistentVolume: - enabled: true - size: 5G - ## database data Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - ## - # storageClass: "-" - subPath: "" - mountPath: "/var/lib/postgresql" - annotations: {} - accessModes: - - ReadWriteOnce + persistentVolume: + enabled: true + size: 5G + ## database data Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" + subPath: "" + mountPath: "/var/lib/postgresql" + annotations: {} + accessModes: + - ReadWriteOnce nodeSelector: {} tolerations: [] affinity: {} + +# https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity +affinityTemplate: | + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + podAffinityTerm: + topologyKey: "kubernetes.io/hostname" + labelSelector: + matchLabels: + app: {{ template "timescaledb.name" . }} + release: {{ .Release.Name | quote }} +affinity: {} + ## Use an alternate scheduler, e.g. "stork". ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ ## From a3addf7f58bd455167ed3bcd0fa159d64ac78fcc Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Fri, 25 Jun 2021 12:23:04 +0300 Subject: [PATCH 14/32] update admin guide and repo --- charts/repo/index.yaml | 68 ++++++++++++-------- charts/repo/timescaledb-multinode-0.9.0.tgz | Bin 0 -> 11270 bytes charts/timescaledb-multinode/admin-guide.md | 52 ++++++++++----- charts/timescaledb-multinode/values.yaml | 4 +- 4 files changed, 81 insertions(+), 43 deletions(-) create mode 100644 charts/repo/timescaledb-multinode-0.9.0.tgz diff --git a/charts/repo/index.yaml b/charts/repo/index.yaml index ca93ef3a..b7fa26cb 100644 --- a/charts/repo/index.yaml +++ b/charts/repo/index.yaml @@ -2,7 +2,23 @@ apiVersion: v1 entries: timescaledb-multinode: - apiVersion: v1 - created: "2021-06-18T20:50:20.468566267+03:00" + created: "2021-06-25T12:22:38.592878527+03:00" + description: TimescaleDB Multinode Deployment. + digest: ab65866f8518e1d5c31e998679968539d3656a3379f427ae1199a05a2dff1296 + home: https://github.com/timescale/timescaledb-kubernetes + maintainers: + - email: support@timescale.com + name: TimescaleDB + name: timescaledb-multinode + sources: + - https://github.com/timescale/timescaledb-kubernetes + - https://github.com/timescale/timescaledb-docker-ha + - https://github.com/zalando/patroni + urls: + - timescaledb-multinode-0.9.0.tgz + version: 0.9.0 + - apiVersion: v1 + created: "2021-06-25T12:22:38.591961934+03:00" description: TimescaleDB Multinode Deployment. digest: bc4f70989a2bdc35e5a4a9efe311a87ffcef3e0acb5ee704a010d49ecb372765 home: https://github.com/timescale/timescaledb-kubernetes @@ -18,7 +34,7 @@ entries: - timescaledb-multinode-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-06-18T20:50:20.467628196+03:00" + created: "2021-06-25T12:22:38.591097175+03:00" description: TimescaleDB Multinode Deployment. digest: e0729d1731fb22f769494b921b275153d625aebcbdb68c432c2ccd1897f4d66c home: https://github.com/timescale/timescaledb-kubernetes @@ -34,7 +50,7 @@ entries: - timescaledb-multinode-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-06-18T20:50:20.46677215+03:00" + created: "2021-06-25T12:22:38.590299035+03:00" description: TimescaleDB Multinode Deployment. digest: 101d72220765f49e6b081c134c1f793bbe90d7f67a4f4c36c794be989e34623d home: https://github.com/timescale/timescaledb-kubernetes @@ -50,7 +66,7 @@ entries: - timescaledb-multinode-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-06-18T20:50:20.465969438+03:00" + created: "2021-06-25T12:22:38.589525808+03:00" description: TimescaleDB Multinode Deployment. digest: db2bea7290cd265835e11859a39e72562c7e21f1a90df0401e14e05d7adea1d6 home: https://github.com/timescale/timescaledb-kubernetes @@ -66,7 +82,7 @@ entries: - timescaledb-multinode-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-06-18T20:50:20.465038522+03:00" + created: "2021-06-25T12:22:38.588760962+03:00" description: TimescaleDB Multinode Deployment. digest: d537d361eb0f72bce12d8e4f993dbc980f7850a22bb1a7bcd8825a7a4a00d38f home: https://github.com/timescale/timescaledb-kubernetes @@ -82,7 +98,7 @@ entries: - timescaledb-multinode-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2021-06-18T20:50:20.464148867+03:00" + created: "2021-06-25T12:22:38.58796345+03:00" description: TimescaleDB Multinode Deployment. digest: a6c664a75489e069cdd2d36dff87ca6d2b3a38a3edf16de4234418b354e40eea home: https://github.com/timescale/timescaledb-kubernetes @@ -99,7 +115,7 @@ entries: version: 0.3.0 timescaledb-single: - apiVersion: v1 - created: "2021-06-18T20:50:20.512155388+03:00" + created: "2021-06-25T12:22:38.636214942+03:00" description: TimescaleDB HA Deployment. digest: 8bb26c938538e767a0da086f7535e1b81fa03af292becf44d406d7a8d8da9321 home: https://github.com/timescale/timescaledb-kubernetes @@ -115,7 +131,7 @@ entries: - timescaledb-single-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-06-18T20:50:20.509473707+03:00" + created: "2021-06-25T12:22:38.633580284+03:00" description: TimescaleDB HA Deployment. digest: a976fc399539e012942a3e55dce1d735c5c36bb4678e57a66ac7d280c8bfceb9 home: https://github.com/timescale/timescaledb-kubernetes @@ -131,7 +147,7 @@ entries: - timescaledb-single-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-06-18T20:50:20.506832633+03:00" + created: "2021-06-25T12:22:38.630985352+03:00" description: TimescaleDB HA Deployment. digest: d047ac65b447b75f748c6fe94cec7ed208e91c20b42eb912baa7aa4f4131518c home: https://github.com/timescale/timescaledb-kubernetes @@ -147,7 +163,7 @@ entries: - timescaledb-single-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-06-18T20:50:20.50414541+03:00" + created: "2021-06-25T12:22:38.628374645+03:00" description: TimescaleDB HA Deployment. digest: 63a9d362ea53efbe6103b8fd0cf07400aa2ccb090740eda213f862d588320c79 home: https://github.com/timescale/timescaledb-kubernetes @@ -163,7 +179,7 @@ entries: - timescaledb-single-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-06-18T20:50:20.500984727+03:00" + created: "2021-06-25T12:22:38.625338228+03:00" description: TimescaleDB HA Deployment. digest: 1948357489eff42eb81bcb59a465615e20b791dc54178d1bbaf1a650b7f46de1 home: https://github.com/timescale/timescaledb-kubernetes @@ -179,7 +195,7 @@ entries: - timescaledb-single-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2021-06-18T20:50:20.498558081+03:00" + created: "2021-06-25T12:22:38.622999842+03:00" description: TimescaleDB HA Deployment. digest: 39e270f51713dd0f2be64c8a80d747bc1e78173fd3e2c6172ff993f9a7dacd1b home: https://github.com/timescale/timescaledb-kubernetes @@ -195,7 +211,7 @@ entries: - timescaledb-single-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-06-18T20:50:20.496179858+03:00" + created: "2021-06-25T12:22:38.620758951+03:00" description: TimescaleDB HA Deployment. digest: 463bf4eca84cbefbd2e4a88928fe1ccc59a69fb95a4952ce15ca746adb479a29 home: https://github.com/timescale/timescaledb-kubernetes @@ -211,7 +227,7 @@ entries: - timescaledb-single-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2021-06-18T20:50:20.494042405+03:00" + created: "2021-06-25T12:22:38.618602396+03:00" description: TimescaleDB HA Deployment. digest: 8ad82438d3fc818e6729afa77607521b7510b68fa4e0b4e7d0836f33990f0a63 home: https://github.com/timescale/timescaledb-kubernetes @@ -227,7 +243,7 @@ entries: - timescaledb-single-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2021-06-18T20:50:20.49118191+03:00" + created: "2021-06-25T12:22:38.615914877+03:00" description: TimescaleDB HA Deployment. digest: b1c985faf6852aea91e6931230d19656f126fb7eabff004e92ffa2fb411cfbe2 home: https://github.com/timescale/timescaledb-kubernetes @@ -243,7 +259,7 @@ entries: - timescaledb-single-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2021-06-18T20:50:20.489056089+03:00" + created: "2021-06-25T12:22:38.613679259+03:00" description: TimescaleDB HA Deployment. digest: 977ccd3dfe52e84a18e9ecf8c4138a937621910f743071fff58b497c357afb7c home: https://github.com/timescale/timescaledb-kubernetes @@ -259,7 +275,7 @@ entries: - timescaledb-single-0.5.8.tgz version: 0.5.8 - apiVersion: v1 - created: "2021-06-18T20:50:20.486950049+03:00" + created: "2021-06-25T12:22:38.611506898+03:00" description: TimescaleDB HA Deployment. digest: 069c515c7055289ecf8189962e648e033053e8e7bdb47c39f9ec058e99911183 home: https://github.com/timescale/timescaledb-kubernetes @@ -275,7 +291,7 @@ entries: - timescaledb-single-0.5.7.tgz version: 0.5.7 - apiVersion: v1 - created: "2021-06-18T20:50:20.484773378+03:00" + created: "2021-06-25T12:22:38.609359765+03:00" description: TimescaleDB HA Deployment. digest: f0c9b30a4bf3d3e9c221efa37946bef05bad7fe79eb1808a7c8088c2d24e1075 home: https://github.com/timescale/timescaledb-kubernetes @@ -291,7 +307,7 @@ entries: - timescaledb-single-0.5.6.tgz version: 0.5.6 - apiVersion: v1 - created: "2021-06-18T20:50:20.482054131+03:00" + created: "2021-06-25T12:22:38.606701917+03:00" description: TimescaleDB HA Deployment. digest: 27098601d61f727ac71c2bfb67a1240c99188fc56ab4d0a0375cf5abc09547dc home: https://github.com/timescale/timescaledb-kubernetes @@ -307,7 +323,7 @@ entries: - timescaledb-single-0.5.5.tgz version: 0.5.5 - apiVersion: v1 - created: "2021-06-18T20:50:20.479821868+03:00" + created: "2021-06-25T12:22:38.604649904+03:00" description: TimescaleDB HA Deployment. digest: 5bd289b789c7fae00b98ae9d1ce0b86e6b8463fbe4fbdaf20d59b60aca137580 home: https://github.com/timescale/timescaledb-kubernetes @@ -323,7 +339,7 @@ entries: - timescaledb-single-0.5.4.tgz version: 0.5.4 - apiVersion: v1 - created: "2021-06-18T20:50:20.477591479+03:00" + created: "2021-06-25T12:22:38.602753865+03:00" description: TimescaleDB HA Deployment. digest: 6cd19bcb822c9610ad13fbe49b03c3bd9d5f4655920b44e41f937487ecf86d9d home: https://github.com/timescale/timescaledb-kubernetes @@ -339,7 +355,7 @@ entries: - timescaledb-single-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2021-06-18T20:50:20.475930435+03:00" + created: "2021-06-25T12:22:38.60109882+03:00" description: TimescaleDB HA Deployment. digest: 9e2570426e0445a2e4f079fe757bbaadbc95a764c12ce10903f426d3b69cfde9 home: https://github.com/timescale/timescaledb-kubernetes @@ -355,7 +371,7 @@ entries: - timescaledb-single-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2021-06-18T20:50:20.474185982+03:00" + created: "2021-06-25T12:22:38.599434438+03:00" description: TimescaleDB HA Deployment. digest: 128a7f0738f176a2abe6b7e1c3a1173ac6c4a77f7816704add3f0664609915aa home: https://github.com/timescale/timescaledb-kubernetes @@ -371,7 +387,7 @@ entries: - timescaledb-single-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2021-06-18T20:50:20.472518425+03:00" + created: "2021-06-25T12:22:38.597759138+03:00" description: TimescaleDB HA Deployment. digest: f4e0e05c989f04c78d9bd0a5b7ab2c6e1d2227af72ad05f7451a3e01b462bba0 home: https://github.com/timescale/timescaledb-kubernetes @@ -387,7 +403,7 @@ entries: - timescaledb-single-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2021-06-18T20:50:20.470272739+03:00" + created: "2021-06-25T12:22:38.594573842+03:00" description: TimescaleDB HA Deployment. digest: 2ae9d4a4ba25caf626e837244bf092721439e822d486f2c17f238b479012dedb home: https://github.com/timescale/timescaledb-kubernetes @@ -402,4 +418,4 @@ entries: urls: - timescaledb-single-0.4.0.tgz version: 0.4.0 -generated: "2021-06-18T20:50:20.463120355+03:00" +generated: "2021-06-25T12:22:38.58706716+03:00" diff --git a/charts/repo/timescaledb-multinode-0.9.0.tgz b/charts/repo/timescaledb-multinode-0.9.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c158380196d68e1b51149dd0a6c82115ec497b81 GIT binary patch literal 11270 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 literal 0 HcmV?d00001 diff --git a/charts/timescaledb-multinode/admin-guide.md b/charts/timescaledb-multinode/admin-guide.md index 4a324b89..b59f3b0c 100644 --- a/charts/timescaledb-multinode/admin-guide.md +++ b/charts/timescaledb-multinode/admin-guide.md @@ -14,37 +14,59 @@ Please see the included NOTICE for copyright information and LICENSE for a copy ## Configuration The following table lists the configurable parameters of the TimescaleDB Helm chart and their default values. +##### Global Parameters | Parameter | Description | Default | |-----------------------------------|---------------------------------------------|-----------------------------------------------------| | `nameOverride` | Override the name of the chart | `timescaledb` | | `fullnameOverride` | Override the fullname of the chart | `nil` | -| `replicaCount` | Amount of pods to spawn | `3` | | `image.repository` | The image to pull | `timescale/timescaledb-ha` | | `image.tag` | The version of the image to pull | `pg12.5-ts2.0.0-p0` | `image.pullPolicy` | The pull policy | `IfNotPresent` | -| `credentials.accessNode.superuser`| Password of the superuser for the Access Node | `tea` | -| `accessNode.service.type` | Setup external access using LoadBalancer or ClusterIP | `LoadBalancer` | | `credentials.fromValues` | Load credentials from values.yaml | `true` | +| `credentials.accessNode.superuser`| Password of the superuser for the Access Node | `tea` | | `credentials.dataNode.superuser` | Password of the superuser for the Data Nodes | `coffee` | | `env` | Extra custom environment variables, expressed as [EnvVar](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#envvarsource-v1-core) | `PGDATA` and some language settings | -| `resources` | Any resources you wish to assign to the pod | `{}` | -| `nodeSelector` | Node label to use for scheduling | `{}` | -| `tolerations` | List of node taints to tolerate | `[]` | +| `schedulerName` | Alternate scheduler name | `nil` | | `affinityTemplate` | A template string to use to generate the affinity settings | Anti-affinity preferred on hostname | | `affinity` | Affinity settings. Overrides `affinityTemplate` if set. | `{}` | -| `postgresql.databases` | List of databases to automatically create a multinode setup for | `["postgres", "example"]` | -| `postgresql.parameters` | [PostgreSQL parameters](https://www.postgresql.org/docs/current/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE)) | Some required and preferred settings | -| `schedulerName` | Alternate scheduler name | `nil` | -| `persistentVolume.accessModes` | Persistent Volume access modes | `[ReadWriteOnce]` | -| `persistentVolume.annotations` | Annotations for Persistent Volume Claim` | `{}` | -| `persistentVolume.mountPath` | Persistent Volume mount root path | `/var/lib/postgresql` | -| `persistentVolume.size` | Persistent Volume size | `5Gi` | -| `persistentVolume.storageClass` | Persistent Volume Storage Class | `volume.alpha.kubernetes.io/storage-class: default` | -| `persistentVolume.subPath` | Subdirectory of Persistent Volume to mount | `""` | | `rbac.create` | Create required role and rolebindings | `true` | | `serviceAccount.create` | If true, create a new service account | `true` | | `serviceAccount.name` | Service account to be used. If not set and `serviceAccount.create` is `true`, a name is generated using the fullname template | `nil` | + +##### Access Node Parameters +| Parameter | Description | Default | +|----------------------------------------------|---------------------------------------------|-----------------------------------------------------| +| `accessNode.service.type` | Setup external access using LoadBalancer or ClusterIP | `LoadBalancer` | +| `accessNode.resources` | Any resources you wish to assign to the Access Node pod |`{}` | +| `accessNode.postgresql.databases` | List of databases to automatically create a multinode setup for | `["postgres", "example"]` | +| `accessNode.postgresql.parameters` | [PostgreSQL parameters](https://www.postgresql.org/docs/current/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE)) | Some required and preferred settings | +| `accessNode.persistentVolume.accessModes` | Persistent Volume access modes | `[ReadWriteOnce]` | +| `accessNode.persistentVolume.annotations` | Annotations for Persistent Volume Claim` | `{}` | +| `accessNode.persistentVolume.mountPath` | Persistent Volume mount root path | `/var/lib/postgresql` | +| `accessNode.persistentVolume.size` | Persistent Volume size | `5Gi` | +| `accessNode.persistentVolume.storageClass` | Persistent Volume Storage Class | `volume.alpha.kubernetes.io/storage-class: default` | +| `accessNode.persistentVolume.subPath` | Subdirectory of Persistent Volume to mount | `""` | +| `accessNode.nodeSelector` | Access Node label to use for scheduling | `{}` | +| `accessNode.tolerations` | List of node taints to tolerate by Access Node | `[]` | +| `accessNode.affinity` | Affinity settings | `{}` | + +##### Data Nodes Parameters +| Parameter | Description | Default | +|--------------------------------------------|---------------------------------------------|-----------------------------------------------------| +| `dataNode.replicas` | Number of Data Node replicas | `3` | +| `dataNode.resources` | Any resources you wish to assign to the Access Node pod | `{}` | +| `dataNode.postgresql.parameters` | [PostgreSQL parameters](https://www.postgresql.org/docs/current/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE)) | Some required and preferred settings | +| `dataNode.persistentVolume.accessModes` | Persistent Volume access modes | `[ReadWriteOnce]` | +| `dataNode.persistentVolume.annotations` | Annotations for Persistent Volume Claim` | `{}` | +| `dataNode.persistentVolume.mountPath` | Persistent Volume mount root path | `/var/lib/postgresql` | +| `dataNode.persistentVolume.size` | Persistent Volume size | `5Gi` | +| `dataNode.persistentVolume.storageClass` | Persistent Volume Storage Class | `volume.alpha.kubernetes.io/storage-class: default` | +| `dataNode.persistentVolume.subPath` | Subdirectory of Persistent Volume to mount | `""` | +| `dataNode.nodeSelector` | Access Node label to use for scheduling | `{}` | +| `dataNode.tolerations` | List of node taints to tolerate by Access Node | `[]` | +| `dataNode.affinity` | Affinity settings | `{}` | + ### Examples - Override value using commandline parameters ```console diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index 3f3be4b2..dc541666 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -64,7 +64,7 @@ accessNode: persistentVolume: enabled: true - size: 5G + size: 5Gi subPath: "" mountPath: "/var/lib/postgresql" annotations: {} @@ -103,7 +103,7 @@ dataNode: persistentVolume: enabled: true - size: 5G + size: 5Gi ## database data Persistent Volume Storage Class ## If defined, storageClassName: ## If set to "-", storageClassName: "", which disables dynamic provisioning From 37ee54edd1ba1942f305158fa30ad06c23ed032f Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Sat, 26 Jun 2021 21:34:23 +0300 Subject: [PATCH 15/32] fix access data node affinity --- .../statefulset-timescaledb-accessnode.yaml | 4 ++-- .../templates/statefulset-timescaledb-datanode.yaml | 4 ++-- charts/timescaledb-multinode/values.yaml | 13 ++++++------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index 8ba14880..4b619571 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -122,9 +122,9 @@ spec: {{- if .Values.schedulerName }} schedulerName: {{ .Values.schedulerName }} {{- end }} - {{- if .Values.affinity }} + {{- if .Values.accessNode.affinity }} affinity: -{{ .Values.affinity | toYaml | indent 8 }} +{{ .Values.accessNode.affinity | toYaml | indent 8 }} {{- else if .Values.affinityTemplate }} affinity: {{ tpl .Values.affinityTemplate . | indent 8 }} diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index 604a12b6..e8768764 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -117,9 +117,9 @@ spec: {{- if .Values.schedulerName }} schedulerName: {{ .Values.schedulerName }} {{- end }} - {{- if .Values.affinity }} + {{- if .Values.dataNode.affinity }} affinity: -{{ .Values.affinity | toYaml | indent 8 }} +{{ .Values.dataNode.affinity | toYaml | indent 8 }} {{- else if .Values.affinityTemplate }} affinity: {{ tpl .Values.affinityTemplate . | indent 8 }} diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index dc541666..de1ebdac 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -71,9 +71,9 @@ accessNode: accessModes: - ReadWriteOnce - nodeSelector: {} - tolerations: [] - affinity: {} + nodeSelector: {} + tolerations: [] + affinity: {} dataNode: replicas: 3 @@ -118,10 +118,9 @@ dataNode: accessModes: - ReadWriteOnce - nodeSelector: {} - tolerations: [] - affinity: {} - + nodeSelector: {} + tolerations: [] + affinity: {} # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity affinityTemplate: | From 5721dfb086b07d2d1128a829029b2e32c9d43fb5 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Mon, 28 Jun 2021 09:41:14 +0300 Subject: [PATCH 16/32] same ver multinode --- charts/repo/timescaledb-multinode-0.9.0.tgz | Bin 11270 -> 11286 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/charts/repo/timescaledb-multinode-0.9.0.tgz b/charts/repo/timescaledb-multinode-0.9.0.tgz index c158380196d68e1b51149dd0a6c82115ec497b81..c1d349f0c323cf2635469c9da67aa76c99d170a6 100644 GIT binary patch delta 11200 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 delta 11182 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

S-pH3ML*5v_@;&=WASzIFVIl)OEt8!YD3& z>JR$P2&TkZV^ddKN*-3OxGe=F1PVv_H=VG)BFfg}u-7Lc`WSxAh%$fE5Afx-*UyBB z9<>_<;V4ZpVzWa<0~MH^sfGtx?CcRHB>X6uU@pi|LhME>#dOG3fUx>i84xgY#>jAI zJqYa^uRP#pS+8n$W>cY2H7DMl%U86o``Loo6E$j7KVe1&Q^%&r==$YlP^4kG@17OY%SM>^*7B z=6~7S*?oxry^m+@f9e@$^*%}JIGLz(9Giw=u#`e@5)#Zex8Sp9^tAl_)LyM%F8YBDb^BW~{Q2sV(PU_Y z_kO+-l)@M#Q+=x-<{R+$zpDo4o6OQk1y)=E{zL>cJpg^tp~zSQ4e#3X)}$6rR54Y1 zvJ2{p7)9?m^3;C;BlYF)&-0s!WQ(##bHR?>8nqU4;H(s{dGkG6%BueBXu2{prHLM#W8L#j9~q9 z<5B(bwG#jKFAC~8eRp`_b&h}9udO$0-dX3>(aG_CZGETa9e4L@>z{X9{+K32P)3sB zwJp(p-TSHi`faDXU(+gleO-T0s(ej0I9H%^{FC`w@nxpIComTh(Y5uN4r?W3)HJE1 zI8UBIVhn$?b#l=v<2b5$*K)pQ$5C8)<@8+)W2RfVE=xTYC967f&{5e>Wgn&X7q>m% zuCtzWq_Mm5OKiYfbgRFcmap&2Snf?D+b9d)q|G$st8_NIdGLsg(|L})jTMy5}^YA=8f8^)?2LJ&7 M|N5aL5&-Z30Ix^g1^@s6 From efbc85afbbbfa521a1de5cbde33c48580e5da0c0 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Fri, 2 Jul 2021 20:35:39 +0300 Subject: [PATCH 17/32] headless --- .../templates/svc-timescaledb-access.yaml | 3 +++ charts/timescaledb-multinode/values.yaml | 1 + 2 files changed, 4 insertions(+) diff --git a/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml b/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml index 4362c4b8..d7e6cd97 100644 --- a/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml +++ b/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml @@ -15,6 +15,9 @@ metadata: service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "4000" spec: type: {{ .Values.accessNode.service.type }} + {{- if .Values.accessNode.service.headless }} + clusterIP: None + {{- end }} ports: - name: postgresql port: 5432 diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index de1ebdac..ce8fc2e8 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -38,6 +38,7 @@ accessNode: #enable external access using LoadBalancer service: type: LoadBalancer + headless: true resources: {} postgresql: databases: From 23f9ded1e2dbe2c630267ba9482d6f795737f827 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Mon, 5 Jul 2021 10:57:31 +0300 Subject: [PATCH 18/32] allow specify IP --- charts/timescaledb-multinode/README.md | 1 + charts/timescaledb-multinode/admin-guide.md | 1 + .../templates/svc-timescaledb-access.yaml | 4 ++-- charts/timescaledb-multinode/values.yaml | 1 - 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/charts/timescaledb-multinode/README.md b/charts/timescaledb-multinode/README.md index 1407b755..b0e1f6ab 100644 --- a/charts/timescaledb-multinode/README.md +++ b/charts/timescaledb-multinode/README.md @@ -131,6 +131,7 @@ access: service: type: ClusterIP ``` +Additionaly, when running the service as ClusterIP, you can specify a static IP addess or run service in headless mode by setting `accessNode.service.clusterIP` to `None` From inside a pod in the Kubernetes cluster, you need to use the internal DNS address, e.g., diff --git a/charts/timescaledb-multinode/admin-guide.md b/charts/timescaledb-multinode/admin-guide.md index b59f3b0c..3a91d432 100644 --- a/charts/timescaledb-multinode/admin-guide.md +++ b/charts/timescaledb-multinode/admin-guide.md @@ -38,6 +38,7 @@ The following table lists the configurable parameters of the TimescaleDB Helm ch | Parameter | Description | Default | |----------------------------------------------|---------------------------------------------|-----------------------------------------------------| | `accessNode.service.type` | Setup external access using LoadBalancer or ClusterIP | `LoadBalancer` | +| `accessNode.service.clusterIP` | Setup service to run in headless mode or with static IP| `nil` | | `accessNode.resources` | Any resources you wish to assign to the Access Node pod |`{}` | | `accessNode.postgresql.databases` | List of databases to automatically create a multinode setup for | `["postgres", "example"]` | | `accessNode.postgresql.parameters` | [PostgreSQL parameters](https://www.postgresql.org/docs/current/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE)) | Some required and preferred settings | diff --git a/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml b/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml index d7e6cd97..766d6d97 100644 --- a/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml +++ b/charts/timescaledb-multinode/templates/svc-timescaledb-access.yaml @@ -15,8 +15,8 @@ metadata: service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "4000" spec: type: {{ .Values.accessNode.service.type }} - {{- if .Values.accessNode.service.headless }} - clusterIP: None + {{- if .Values.accessNode.service.clusterIP }} + clusterIP: {{ .Values.accessNode.service.clusterIP }} {{- end }} ports: - name: postgresql diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index ce8fc2e8..de1ebdac 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -38,7 +38,6 @@ accessNode: #enable external access using LoadBalancer service: type: LoadBalancer - headless: true resources: {} postgresql: databases: From eb4fb85d6907932d23ae622cf1e2f9baf28b5b47 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Mon, 5 Jul 2021 12:16:50 +0300 Subject: [PATCH 19/32] chart package --- charts/repo/index.yaml | 56 ++++++++++---------- charts/repo/timescaledb-multinode-0.9.0.tgz | Bin 11286 -> 11390 bytes 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/charts/repo/index.yaml b/charts/repo/index.yaml index b7fa26cb..e5e7ba4e 100644 --- a/charts/repo/index.yaml +++ b/charts/repo/index.yaml @@ -2,9 +2,9 @@ apiVersion: v1 entries: timescaledb-multinode: - apiVersion: v1 - created: "2021-06-25T12:22:38.592878527+03:00" + created: "2021-07-05T11:22:15.406892156+03:00" description: TimescaleDB Multinode Deployment. - digest: ab65866f8518e1d5c31e998679968539d3656a3379f427ae1199a05a2dff1296 + digest: b6f265da0ec1eb26725096075ab8ad9b452b36c07de44ad8b6d5fd944a52695c home: https://github.com/timescale/timescaledb-kubernetes maintainers: - email: support@timescale.com @@ -18,7 +18,7 @@ entries: - timescaledb-multinode-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-06-25T12:22:38.591961934+03:00" + created: "2021-07-05T11:22:15.406010504+03:00" description: TimescaleDB Multinode Deployment. digest: bc4f70989a2bdc35e5a4a9efe311a87ffcef3e0acb5ee704a010d49ecb372765 home: https://github.com/timescale/timescaledb-kubernetes @@ -34,7 +34,7 @@ entries: - timescaledb-multinode-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-06-25T12:22:38.591097175+03:00" + created: "2021-07-05T11:22:15.404975292+03:00" description: TimescaleDB Multinode Deployment. digest: e0729d1731fb22f769494b921b275153d625aebcbdb68c432c2ccd1897f4d66c home: https://github.com/timescale/timescaledb-kubernetes @@ -50,7 +50,7 @@ entries: - timescaledb-multinode-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-06-25T12:22:38.590299035+03:00" + created: "2021-07-05T11:22:15.403787611+03:00" description: TimescaleDB Multinode Deployment. digest: 101d72220765f49e6b081c134c1f793bbe90d7f67a4f4c36c794be989e34623d home: https://github.com/timescale/timescaledb-kubernetes @@ -66,7 +66,7 @@ entries: - timescaledb-multinode-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-06-25T12:22:38.589525808+03:00" + created: "2021-07-05T11:22:15.402799146+03:00" description: TimescaleDB Multinode Deployment. digest: db2bea7290cd265835e11859a39e72562c7e21f1a90df0401e14e05d7adea1d6 home: https://github.com/timescale/timescaledb-kubernetes @@ -82,7 +82,7 @@ entries: - timescaledb-multinode-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-06-25T12:22:38.588760962+03:00" + created: "2021-07-05T11:22:15.401133258+03:00" description: TimescaleDB Multinode Deployment. digest: d537d361eb0f72bce12d8e4f993dbc980f7850a22bb1a7bcd8825a7a4a00d38f home: https://github.com/timescale/timescaledb-kubernetes @@ -98,7 +98,7 @@ entries: - timescaledb-multinode-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2021-06-25T12:22:38.58796345+03:00" + created: "2021-07-05T11:22:15.399467051+03:00" description: TimescaleDB Multinode Deployment. digest: a6c664a75489e069cdd2d36dff87ca6d2b3a38a3edf16de4234418b354e40eea home: https://github.com/timescale/timescaledb-kubernetes @@ -115,7 +115,7 @@ entries: version: 0.3.0 timescaledb-single: - apiVersion: v1 - created: "2021-06-25T12:22:38.636214942+03:00" + created: "2021-07-05T11:22:15.453538989+03:00" description: TimescaleDB HA Deployment. digest: 8bb26c938538e767a0da086f7535e1b81fa03af292becf44d406d7a8d8da9321 home: https://github.com/timescale/timescaledb-kubernetes @@ -131,7 +131,7 @@ entries: - timescaledb-single-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-06-25T12:22:38.633580284+03:00" + created: "2021-07-05T11:22:15.450007539+03:00" description: TimescaleDB HA Deployment. digest: a976fc399539e012942a3e55dce1d735c5c36bb4678e57a66ac7d280c8bfceb9 home: https://github.com/timescale/timescaledb-kubernetes @@ -147,7 +147,7 @@ entries: - timescaledb-single-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-06-25T12:22:38.630985352+03:00" + created: "2021-07-05T11:22:15.447114861+03:00" description: TimescaleDB HA Deployment. digest: d047ac65b447b75f748c6fe94cec7ed208e91c20b42eb912baa7aa4f4131518c home: https://github.com/timescale/timescaledb-kubernetes @@ -163,7 +163,7 @@ entries: - timescaledb-single-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-06-25T12:22:38.628374645+03:00" + created: "2021-07-05T11:22:15.444374469+03:00" description: TimescaleDB HA Deployment. digest: 63a9d362ea53efbe6103b8fd0cf07400aa2ccb090740eda213f862d588320c79 home: https://github.com/timescale/timescaledb-kubernetes @@ -179,7 +179,7 @@ entries: - timescaledb-single-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-06-25T12:22:38.625338228+03:00" + created: "2021-07-05T11:22:15.441256266+03:00" description: TimescaleDB HA Deployment. digest: 1948357489eff42eb81bcb59a465615e20b791dc54178d1bbaf1a650b7f46de1 home: https://github.com/timescale/timescaledb-kubernetes @@ -195,7 +195,7 @@ entries: - timescaledb-single-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2021-06-25T12:22:38.622999842+03:00" + created: "2021-07-05T11:22:15.438588507+03:00" description: TimescaleDB HA Deployment. digest: 39e270f51713dd0f2be64c8a80d747bc1e78173fd3e2c6172ff993f9a7dacd1b home: https://github.com/timescale/timescaledb-kubernetes @@ -211,7 +211,7 @@ entries: - timescaledb-single-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-06-25T12:22:38.620758951+03:00" + created: "2021-07-05T11:22:15.436103379+03:00" description: TimescaleDB HA Deployment. digest: 463bf4eca84cbefbd2e4a88928fe1ccc59a69fb95a4952ce15ca746adb479a29 home: https://github.com/timescale/timescaledb-kubernetes @@ -227,7 +227,7 @@ entries: - timescaledb-single-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2021-06-25T12:22:38.618602396+03:00" + created: "2021-07-05T11:22:15.433801598+03:00" description: TimescaleDB HA Deployment. digest: 8ad82438d3fc818e6729afa77607521b7510b68fa4e0b4e7d0836f33990f0a63 home: https://github.com/timescale/timescaledb-kubernetes @@ -243,7 +243,7 @@ entries: - timescaledb-single-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2021-06-25T12:22:38.615914877+03:00" + created: "2021-07-05T11:22:15.431669001+03:00" description: TimescaleDB HA Deployment. digest: b1c985faf6852aea91e6931230d19656f126fb7eabff004e92ffa2fb411cfbe2 home: https://github.com/timescale/timescaledb-kubernetes @@ -259,7 +259,7 @@ entries: - timescaledb-single-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2021-06-25T12:22:38.613679259+03:00" + created: "2021-07-05T11:22:15.428782316+03:00" description: TimescaleDB HA Deployment. digest: 977ccd3dfe52e84a18e9ecf8c4138a937621910f743071fff58b497c357afb7c home: https://github.com/timescale/timescaledb-kubernetes @@ -275,7 +275,7 @@ entries: - timescaledb-single-0.5.8.tgz version: 0.5.8 - apiVersion: v1 - created: "2021-06-25T12:22:38.611506898+03:00" + created: "2021-07-05T11:22:15.42659203+03:00" description: TimescaleDB HA Deployment. digest: 069c515c7055289ecf8189962e648e033053e8e7bdb47c39f9ec058e99911183 home: https://github.com/timescale/timescaledb-kubernetes @@ -291,7 +291,7 @@ entries: - timescaledb-single-0.5.7.tgz version: 0.5.7 - apiVersion: v1 - created: "2021-06-25T12:22:38.609359765+03:00" + created: "2021-07-05T11:22:15.424351494+03:00" description: TimescaleDB HA Deployment. digest: f0c9b30a4bf3d3e9c221efa37946bef05bad7fe79eb1808a7c8088c2d24e1075 home: https://github.com/timescale/timescaledb-kubernetes @@ -307,7 +307,7 @@ entries: - timescaledb-single-0.5.6.tgz version: 0.5.6 - apiVersion: v1 - created: "2021-06-25T12:22:38.606701917+03:00" + created: "2021-07-05T11:22:15.421406043+03:00" description: TimescaleDB HA Deployment. digest: 27098601d61f727ac71c2bfb67a1240c99188fc56ab4d0a0375cf5abc09547dc home: https://github.com/timescale/timescaledb-kubernetes @@ -323,7 +323,7 @@ entries: - timescaledb-single-0.5.5.tgz version: 0.5.5 - apiVersion: v1 - created: "2021-06-25T12:22:38.604649904+03:00" + created: "2021-07-05T11:22:15.419141856+03:00" description: TimescaleDB HA Deployment. digest: 5bd289b789c7fae00b98ae9d1ce0b86e6b8463fbe4fbdaf20d59b60aca137580 home: https://github.com/timescale/timescaledb-kubernetes @@ -339,7 +339,7 @@ entries: - timescaledb-single-0.5.4.tgz version: 0.5.4 - apiVersion: v1 - created: "2021-06-25T12:22:38.602753865+03:00" + created: "2021-07-05T11:22:15.41685284+03:00" description: TimescaleDB HA Deployment. digest: 6cd19bcb822c9610ad13fbe49b03c3bd9d5f4655920b44e41f937487ecf86d9d home: https://github.com/timescale/timescaledb-kubernetes @@ -355,7 +355,7 @@ entries: - timescaledb-single-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2021-06-25T12:22:38.60109882+03:00" + created: "2021-07-05T11:22:15.414890835+03:00" description: TimescaleDB HA Deployment. digest: 9e2570426e0445a2e4f079fe757bbaadbc95a764c12ce10903f426d3b69cfde9 home: https://github.com/timescale/timescaledb-kubernetes @@ -371,7 +371,7 @@ entries: - timescaledb-single-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2021-06-25T12:22:38.599434438+03:00" + created: "2021-07-05T11:22:15.412988055+03:00" description: TimescaleDB HA Deployment. digest: 128a7f0738f176a2abe6b7e1c3a1173ac6c4a77f7816704add3f0664609915aa home: https://github.com/timescale/timescaledb-kubernetes @@ -387,7 +387,7 @@ entries: - timescaledb-single-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2021-06-25T12:22:38.597759138+03:00" + created: "2021-07-05T11:22:15.410900735+03:00" description: TimescaleDB HA Deployment. digest: f4e0e05c989f04c78d9bd0a5b7ab2c6e1d2227af72ad05f7451a3e01b462bba0 home: https://github.com/timescale/timescaledb-kubernetes @@ -403,7 +403,7 @@ entries: - timescaledb-single-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2021-06-25T12:22:38.594573842+03:00" + created: "2021-07-05T11:22:15.408760828+03:00" description: TimescaleDB HA Deployment. digest: 2ae9d4a4ba25caf626e837244bf092721439e822d486f2c17f238b479012dedb home: https://github.com/timescale/timescaledb-kubernetes @@ -418,4 +418,4 @@ entries: urls: - timescaledb-single-0.4.0.tgz version: 0.4.0 -generated: "2021-06-25T12:22:38.58706716+03:00" +generated: "2021-07-05T11:22:15.388252998+03:00" diff --git a/charts/repo/timescaledb-multinode-0.9.0.tgz b/charts/repo/timescaledb-multinode-0.9.0.tgz index c1d349f0c323cf2635469c9da67aa76c99d170a6..454d0952b3fe6a528a7f2b769df2a0b46afcbde5 100644 GIT binary patch delta 11326 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 zí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⪼3RYB90AA_UaE0@m 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 a=izyH9-eRF`Tqd`0RR6%7fvAn@BjcJ&mX-2 From 8ed41040a34784328a494c020212ffc560820dc0 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Thu, 15 Jul 2021 19:51:01 +0300 Subject: [PATCH 20/32] fix resources location --- .../templates/statefulset-timescaledb-accessnode.yaml | 2 +- .../templates/statefulset-timescaledb-datanode.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index 4b619571..4129f61d 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -110,7 +110,7 @@ spec: mountPath: "{{ .Values.accessNode.persistentVolume.mountPath }}" subPath: "{{ .Values.accessNode.persistentVolume.subPath }}" resources: -{{ toYaml .Values.accessNode.postgresql.resources | indent 10 }} +{{ toYaml .Values.accessNode.resources | indent 10 }} {{- with .Values.accessNode.nodeSelector }} nodeSelector: {{ toYaml . | indent 8 }} diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index e8768764..dde2b17f 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -105,7 +105,7 @@ spec: mountPath: "{{ .Values.dataNode.persistentVolume.mountPath }}" subPath: "{{ .Values.dataNode.persistentVolume.subPath }}" resources: -{{ toYaml .Values.dataNode.postgresql.resources | indent 10 }} +{{ toYaml .Values.dataNode.resources | indent 10 }} {{- with .Values.dataNode.nodeSelector }} nodeSelector: {{ toYaml . | indent 8 }} From 7bce9cc5cd7532b4b29ca42f9dc9d413e7f82678 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Thu, 15 Jul 2021 20:08:21 +0300 Subject: [PATCH 21/32] chart repo --- charts/repo/index.yaml | 56 ++++++++++---------- charts/repo/timescaledb-multinode-0.9.0.tgz | Bin 11390 -> 11389 bytes 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/charts/repo/index.yaml b/charts/repo/index.yaml index e5e7ba4e..72452906 100644 --- a/charts/repo/index.yaml +++ b/charts/repo/index.yaml @@ -2,9 +2,9 @@ apiVersion: v1 entries: timescaledb-multinode: - apiVersion: v1 - created: "2021-07-05T11:22:15.406892156+03:00" + created: "2021-07-15T20:06:30.409952582+03:00" description: TimescaleDB Multinode Deployment. - digest: b6f265da0ec1eb26725096075ab8ad9b452b36c07de44ad8b6d5fd944a52695c + digest: f59535d924e9a71be25d281ce519cdfe21aeae4f9357401611edff6dbb4e2a66 home: https://github.com/timescale/timescaledb-kubernetes maintainers: - email: support@timescale.com @@ -18,7 +18,7 @@ entries: - timescaledb-multinode-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-07-05T11:22:15.406010504+03:00" + created: "2021-07-15T20:06:30.40902768+03:00" description: TimescaleDB Multinode Deployment. digest: bc4f70989a2bdc35e5a4a9efe311a87ffcef3e0acb5ee704a010d49ecb372765 home: https://github.com/timescale/timescaledb-kubernetes @@ -34,7 +34,7 @@ entries: - timescaledb-multinode-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-07-05T11:22:15.404975292+03:00" + created: "2021-07-15T20:06:30.407926266+03:00" description: TimescaleDB Multinode Deployment. digest: e0729d1731fb22f769494b921b275153d625aebcbdb68c432c2ccd1897f4d66c home: https://github.com/timescale/timescaledb-kubernetes @@ -50,7 +50,7 @@ entries: - timescaledb-multinode-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-07-05T11:22:15.403787611+03:00" + created: "2021-07-15T20:06:30.406245831+03:00" description: TimescaleDB Multinode Deployment. digest: 101d72220765f49e6b081c134c1f793bbe90d7f67a4f4c36c794be989e34623d home: https://github.com/timescale/timescaledb-kubernetes @@ -66,7 +66,7 @@ entries: - timescaledb-multinode-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-07-05T11:22:15.402799146+03:00" + created: "2021-07-15T20:06:30.405327103+03:00" description: TimescaleDB Multinode Deployment. digest: db2bea7290cd265835e11859a39e72562c7e21f1a90df0401e14e05d7adea1d6 home: https://github.com/timescale/timescaledb-kubernetes @@ -82,7 +82,7 @@ entries: - timescaledb-multinode-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-07-05T11:22:15.401133258+03:00" + created: "2021-07-15T20:06:30.404438757+03:00" description: TimescaleDB Multinode Deployment. digest: d537d361eb0f72bce12d8e4f993dbc980f7850a22bb1a7bcd8825a7a4a00d38f home: https://github.com/timescale/timescaledb-kubernetes @@ -98,7 +98,7 @@ entries: - timescaledb-multinode-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2021-07-05T11:22:15.399467051+03:00" + created: "2021-07-15T20:06:30.403453813+03:00" description: TimescaleDB Multinode Deployment. digest: a6c664a75489e069cdd2d36dff87ca6d2b3a38a3edf16de4234418b354e40eea home: https://github.com/timescale/timescaledb-kubernetes @@ -115,7 +115,7 @@ entries: version: 0.3.0 timescaledb-single: - apiVersion: v1 - created: "2021-07-05T11:22:15.453538989+03:00" + created: "2021-07-15T20:06:30.456681648+03:00" description: TimescaleDB HA Deployment. digest: 8bb26c938538e767a0da086f7535e1b81fa03af292becf44d406d7a8d8da9321 home: https://github.com/timescale/timescaledb-kubernetes @@ -131,7 +131,7 @@ entries: - timescaledb-single-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-07-05T11:22:15.450007539+03:00" + created: "2021-07-15T20:06:30.453459744+03:00" description: TimescaleDB HA Deployment. digest: a976fc399539e012942a3e55dce1d735c5c36bb4678e57a66ac7d280c8bfceb9 home: https://github.com/timescale/timescaledb-kubernetes @@ -147,7 +147,7 @@ entries: - timescaledb-single-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-07-05T11:22:15.447114861+03:00" + created: "2021-07-15T20:06:30.45062083+03:00" description: TimescaleDB HA Deployment. digest: d047ac65b447b75f748c6fe94cec7ed208e91c20b42eb912baa7aa4f4131518c home: https://github.com/timescale/timescaledb-kubernetes @@ -163,7 +163,7 @@ entries: - timescaledb-single-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-07-05T11:22:15.444374469+03:00" + created: "2021-07-15T20:06:30.447862537+03:00" description: TimescaleDB HA Deployment. digest: 63a9d362ea53efbe6103b8fd0cf07400aa2ccb090740eda213f862d588320c79 home: https://github.com/timescale/timescaledb-kubernetes @@ -179,7 +179,7 @@ entries: - timescaledb-single-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-07-05T11:22:15.441256266+03:00" + created: "2021-07-15T20:06:30.44504336+03:00" description: TimescaleDB HA Deployment. digest: 1948357489eff42eb81bcb59a465615e20b791dc54178d1bbaf1a650b7f46de1 home: https://github.com/timescale/timescaledb-kubernetes @@ -195,7 +195,7 @@ entries: - timescaledb-single-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2021-07-05T11:22:15.438588507+03:00" + created: "2021-07-15T20:06:30.441949462+03:00" description: TimescaleDB HA Deployment. digest: 39e270f51713dd0f2be64c8a80d747bc1e78173fd3e2c6172ff993f9a7dacd1b home: https://github.com/timescale/timescaledb-kubernetes @@ -211,7 +211,7 @@ entries: - timescaledb-single-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-07-05T11:22:15.436103379+03:00" + created: "2021-07-15T20:06:30.439548272+03:00" description: TimescaleDB HA Deployment. digest: 463bf4eca84cbefbd2e4a88928fe1ccc59a69fb95a4952ce15ca746adb479a29 home: https://github.com/timescale/timescaledb-kubernetes @@ -227,7 +227,7 @@ entries: - timescaledb-single-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2021-07-05T11:22:15.433801598+03:00" + created: "2021-07-15T20:06:30.437370762+03:00" description: TimescaleDB HA Deployment. digest: 8ad82438d3fc818e6729afa77607521b7510b68fa4e0b4e7d0836f33990f0a63 home: https://github.com/timescale/timescaledb-kubernetes @@ -243,7 +243,7 @@ entries: - timescaledb-single-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2021-07-05T11:22:15.431669001+03:00" + created: "2021-07-15T20:06:30.434923638+03:00" description: TimescaleDB HA Deployment. digest: b1c985faf6852aea91e6931230d19656f126fb7eabff004e92ffa2fb411cfbe2 home: https://github.com/timescale/timescaledb-kubernetes @@ -259,7 +259,7 @@ entries: - timescaledb-single-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2021-07-05T11:22:15.428782316+03:00" + created: "2021-07-15T20:06:30.431954084+03:00" description: TimescaleDB HA Deployment. digest: 977ccd3dfe52e84a18e9ecf8c4138a937621910f743071fff58b497c357afb7c home: https://github.com/timescale/timescaledb-kubernetes @@ -275,7 +275,7 @@ entries: - timescaledb-single-0.5.8.tgz version: 0.5.8 - apiVersion: v1 - created: "2021-07-05T11:22:15.42659203+03:00" + created: "2021-07-15T20:06:30.429674364+03:00" description: TimescaleDB HA Deployment. digest: 069c515c7055289ecf8189962e648e033053e8e7bdb47c39f9ec058e99911183 home: https://github.com/timescale/timescaledb-kubernetes @@ -291,7 +291,7 @@ entries: - timescaledb-single-0.5.7.tgz version: 0.5.7 - apiVersion: v1 - created: "2021-07-05T11:22:15.424351494+03:00" + created: "2021-07-15T20:06:30.427330747+03:00" description: TimescaleDB HA Deployment. digest: f0c9b30a4bf3d3e9c221efa37946bef05bad7fe79eb1808a7c8088c2d24e1075 home: https://github.com/timescale/timescaledb-kubernetes @@ -307,7 +307,7 @@ entries: - timescaledb-single-0.5.6.tgz version: 0.5.6 - apiVersion: v1 - created: "2021-07-05T11:22:15.421406043+03:00" + created: "2021-07-15T20:06:30.424487581+03:00" description: TimescaleDB HA Deployment. digest: 27098601d61f727ac71c2bfb67a1240c99188fc56ab4d0a0375cf5abc09547dc home: https://github.com/timescale/timescaledb-kubernetes @@ -323,7 +323,7 @@ entries: - timescaledb-single-0.5.5.tgz version: 0.5.5 - apiVersion: v1 - created: "2021-07-05T11:22:15.419141856+03:00" + created: "2021-07-15T20:06:30.421618075+03:00" description: TimescaleDB HA Deployment. digest: 5bd289b789c7fae00b98ae9d1ce0b86e6b8463fbe4fbdaf20d59b60aca137580 home: https://github.com/timescale/timescaledb-kubernetes @@ -339,7 +339,7 @@ entries: - timescaledb-single-0.5.4.tgz version: 0.5.4 - apiVersion: v1 - created: "2021-07-05T11:22:15.41685284+03:00" + created: "2021-07-15T20:06:30.419508316+03:00" description: TimescaleDB HA Deployment. digest: 6cd19bcb822c9610ad13fbe49b03c3bd9d5f4655920b44e41f937487ecf86d9d home: https://github.com/timescale/timescaledb-kubernetes @@ -355,7 +355,7 @@ entries: - timescaledb-single-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2021-07-05T11:22:15.414890835+03:00" + created: "2021-07-15T20:06:30.417698833+03:00" description: TimescaleDB HA Deployment. digest: 9e2570426e0445a2e4f079fe757bbaadbc95a764c12ce10903f426d3b69cfde9 home: https://github.com/timescale/timescaledb-kubernetes @@ -371,7 +371,7 @@ entries: - timescaledb-single-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2021-07-05T11:22:15.412988055+03:00" + created: "2021-07-15T20:06:30.415850406+03:00" description: TimescaleDB HA Deployment. digest: 128a7f0738f176a2abe6b7e1c3a1173ac6c4a77f7816704add3f0664609915aa home: https://github.com/timescale/timescaledb-kubernetes @@ -387,7 +387,7 @@ entries: - timescaledb-single-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2021-07-05T11:22:15.410900735+03:00" + created: "2021-07-15T20:06:30.414151699+03:00" description: TimescaleDB HA Deployment. digest: f4e0e05c989f04c78d9bd0a5b7ab2c6e1d2227af72ad05f7451a3e01b462bba0 home: https://github.com/timescale/timescaledb-kubernetes @@ -403,7 +403,7 @@ entries: - timescaledb-single-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2021-07-05T11:22:15.408760828+03:00" + created: "2021-07-15T20:06:30.412382674+03:00" description: TimescaleDB HA Deployment. digest: 2ae9d4a4ba25caf626e837244bf092721439e822d486f2c17f238b479012dedb home: https://github.com/timescale/timescaledb-kubernetes @@ -418,4 +418,4 @@ entries: urls: - timescaledb-single-0.4.0.tgz version: 0.4.0 -generated: "2021-07-05T11:22:15.388252998+03:00" +generated: "2021-07-15T20:06:30.402269419+03:00" diff --git a/charts/repo/timescaledb-multinode-0.9.0.tgz b/charts/repo/timescaledb-multinode-0.9.0.tgz index 454d0952b3fe6a528a7f2b769df2a0b46afcbde5..4f98bf0ad56a9ac8a2aa458622f18cf7303503b4 100644 GIT binary patch delta 11173 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 zíRwaXrjBIC0n5HA7!}Ry_{!8V`!2B}6pK-XFvS$a``M>kdarfxt7>-`K!+&t* z<@>*ulJ>2I+{b6`vrPXJIP_ftx=TusCHi0U`HL4*`d{?RfrvEv?B~E^d zph!+prQqeNT~{;CYVB@0zYOlKxdpe>+=432ZMouBrE!=v1t$smEyZ3o>RA?V>Q|uF zQK*aa3D?kj{tVMlb)Z=NSHyT>o`3yo;yaIDn2+r&H0f*Xtjqbo9+`~}yW3WA{i_LgnJL-ws7T{mkGIIA z(=<61-s-GhBTREO{}gc)$2ivAxS0$pav0niWh)@T$;qPRqH`@@*>eEP`~|ls0QenV zhG3q@V6MYp(a6e5+eZ+lYbH=2G|#`IZLOLsuCf8T(6G$8udKKl2<(wU}6hT zIT@1}4{%4}9htPeeH1&UP3sA&IqHOd6%>gh;pV0_^I4(++&CTz{r1#J7dca-$R+8b z&gMHT5A*b-d;a>Y)BV?*i-ULF^OLt1r|q-$+s=9CtRiZtY&mw^yr1x78`gEH-@}5OoY_4`foIf^$`H2VZ(Rjt}Ett6%Xi!AG$t+HTZD? zA&TSdxIg1$Kq!g9wy+eXf&*k*Cb87Df?*ZHn(muGl3X7EoA8U0qPMR*J&EZrTPPo6Yzig{0eH> znYE3A30(|vJi0L1Z0!g|p!UIyngfxOu1kNc@;qN(TkrNQdwKbCQAee2O#AOSk!q@J z3SNhLP78)A8B{eo7m%usY!(C^+^CrF`ev4YFKbJ|T@CiFdRYImXy4JH0fKQk7e}}1 z>}gB=FAu;d`mW%sH&f#)vI&-34u|ZD7C{|3RaRI1U4saRBNjp9d84rmFq6ITt(MPb zcY2$&&Nro;F5EnI4wrWK?y2;IL0+XKn7AqMR&2;taGIGPXX9q^&O3bgVwpa>qTRKB z1#{C|5V9!-!Wbj9akv?=bKBL_{8R`-glTVoVL$@(l6TQKi$-p@Zn|B z<)IGx?w+;}R*+eA4ulGMWy(%i{-`S%s>_thAkRtk4aAa!@$&M^Df*Og+0uEh{=1f} zo7h+92QWBWtOOK!0dw3o8;~Cf_strAsA$8@ds*PUlnv7bqGIZ%CT&q?PDV|~%HgEh zynR=$Vcboo=xF_=9E&a=sjRTL4`(o0TFIiPJkg|AJ^6W!1q&fR&+m3Rl?ZfBk1~np zS6Km_`CuuNE77jas9V%uveNJKq&1R1V%-BBiK02PqD_ zbVuVR4$s-Mne|(+XYwEH@a9`kf}7QNW`%9y-*m>3+cs1((o|)Qc9)gnB8!W!iiGk| zYE^5uaxwpj!{F}f|GP~xkY)aVzuoEk-*)yIjYt3Ay*z(q|KCFoHM*VmZ)UWG@6X|X zv*}ZAZXT3pP$wb#oqoYeQ}s9X3ffUU`UJD~euq!+(Ixob=Mv1>)?djX_~=o4^r(Fk zkJ^;WKr!_odi1kB`q{p!pUp@fu7H6*OH6e_RC_rKWm2Ca9U~I!W1qc$Nye|7dnc*H zypMAah+2d_#-xxOB}sOBRMBh1D9&=bItjl-py1(HElbTlI7`f(q8U`eTrZI^>t+S& z4$n?bodbdnH&<9&b zN$0oo)a5Pw@qW6ztB3D@rOSu1qK|I2`~&jP&8OEt*gv;o$M@`=n-A4e-`r|d|5Bd0 z1t|H${c;N!@j|cMf_k^{$*tDRALo%+oge6mj7XIcl!MA z&Wq;rNB`e_JP*kKw;;)YX6?6e{mtw#56tyfAp=+kPtd~>1?3BWdeN2eV}>HXhhjuS z%>5!~xlf`P`!)qs3u@0AjYh4=)~CHs)$tKohpNo7z@@CLHBKF!nhN=!%leqASK{co zs+Ea#g_fZalav*%gfq!P7PsL1;B>}ydF#2Ke}pdxf968hmV&|^mNpOG8t(1i!V3;&8wHUAHWI3AG!WgLHnK9=SGX*8Zs z-T%J#{PF(R`+1%Q2^~Bx&A;qZz5dTS?Zda7U=)3oK9ZfHr&#GDqBXpQWi_X8OXK=5$C7Sw0ho7(Pba77|H+^;=<)~G@K zrRTjLVrmIPfxsxV-*=(&&u+`}p>6+)k&q;WHw;C8@S`=Pz-H&ok6YkGwwlPXA)--? zfwNSa=&q3I8@44!{XPlJCEOUCDGxkvZ4Hi0JQkq?&pT&%cvf-Eutr^WJGWXl)ZWH@ zIhy$P{bkGZE-x=bMg@zpr(`)ulL1E&2H(%xEXqTmihBocY_8CW(tFrm{~Lk82}csg z6TL!zv6@SB4c;Wd;FoU3Q()zn>;<0pZ)CDEPGqK;b2Yw8ljr>tp6u(ufDhaG z&ySZybf08!Sv{i5Z4U>7VB19QO(RbGcsZgG8^seCV2ZgWx-3Lel#ymiUSwZka|^y? z!D^}b2$F*zg>cdK|34r3|M46CKj0dM7)9WJhr2u9!_6wVw?S!U^vg1@?$_2gr$F1P z>DlwzvBaF(dmpv|!N1#Y-x#K@V;hyqNczOCp|Q!9n_X<^%!r-$gtIYG+}qseKyt!# zF42cqiWEMhQ4-_r+mW2#htb3Uq0LE_2EDblHJdaxCl}9Ct3qLw^+8~%SCk2x6+kF| zIIV0e;3nA+Mu?^;c4u3Ma1~rRgI%p(jfojYM?uijMzD;yk4gY2_*yO|oC#Gbb&;qz z3qaDNb}A@#9?IAOh6U$@-mfPm83rTbdicvl~*(!tCx8&pS-HdK=*}j#;93 z(zfEiL_oq(D2XaszD*+)IBO)HKrbb+w3{32&)Lirw^E}VqOo3b43bm~RX>t{=?!3@ zMluQPsS3-g8O3UYF!Vje(A2V$sf}1HV#qT1-V#dGoNtJ1`;8DDG3wzlieY_oWWPfm z2R2qXf*(^7M}UChD?6r59dv2KsD+KjHsQ^s!J7TLkl40b-qG9kYjdC9{%9ga)PwW( zYxB3lTI4q&22$|k?09)Ix81MJUNIe? znBmO*D$$@oUB+SIzn0QT*C0b198QYPX!e6&@` z=yV*SPoy)z3Xikj0N=Ma`xLhc6?=v=BprmyQmM}<71C%%8&}9seFmo?z<5#t@OHiq z2TX}%a>!Xa7&?ubVN-0RzE6~0={EG8jhl*c62|40)14<-0Ph5bOFRBc^>LstzCk6e zs2W?Uq;-nbs}ZJgqW)8V>joA*=l?!+3mm+8*FEo?`A4Vb@6P|7cg~L6Z}Jz#b9!=i zzS-R>UbJ6#yv1MvXvsMjoB^7RpxI~y&Ak`FcMSj-V?K!)9jH|o*qvEvUjW)%-P+xG z{;XL)KTy!T_=lbQclm1SeAe<$3`eKASYttgO`}C<)lA9cio(r*RLUXtN^s3e=3BG0 zJthb)6)|2G%h@Z$ip@-I%H)e8mwPTy5&@SIqsy(*G#dgR&d0?x@vHw%vo_VRO)psr zDKGoAzh*a5wK#^D<6=-I>R4~|=7fpbPBR%^-*IS`{1Ly! zp1ls|UAJ?VBjWvk(fLo19gczxwN)I6BdP$95;_N%ZNrrm;+1xpq27>;$5LLhLBLBm zPbK37#VzQDNQ>Qy4OQAHl*%9ED^1%gtX+c8L0#I0g!6KL%To-=NOqADBuFn+y3lZv zV6M+u8UiqsVWzusGYhJjZ)OTeSd?*H#BqL6dRELHBSqRMU?l{{dSKzz$Ck2%thG(a z;2`sR1<;9zEE`*L;<6X=jPtEadfMMQC8r1YsPwXtWXwOrnUL{ZII zRGI9dkSIxisJIe}BE?e}*Z1ya^$FD~W2`=n6n=Y?T+6v!6bhktj>}_4akj2kLuh%= zQo^6&Uiy@bVxNb{T?Hw}LTrOpsJ+W-mL6C(7l?6~ffZ;m_tL0_*=f0LFUE31%L-Oh zQ~+M-)o_LLn+O%S&bcU~8&q$Ds<=EFJL_y_*hXV}m2%B_I7X2+ zqWLQ|vZczo4ET_R+T5fiu~k{^2obvVz5TIwZJ_s7k(Qd$bl41Pr6r!)~CH`jXR zmwszmtg4Z59mO~}OO?ztWK8YaA2-)z`OQ|Qbr+p@WkaMEy7Xx?W1h_cQm-8=mqm$- z0>`^$O%;Uaej6(WWyp9PvmT0_6UW|lrqSj1(at{C&hJBP%r9!%s-Nq*`sSeps#opMI1b$t^hNF-0IDf-X_(@S-8XbiBCAHFQ2pjB-_1vT46!TF+>f>h6d|qF}bUa4fnB4tw(+?TPTWY}Oy!WM1_myNHBRWXc zLa{oiFheYzKCK$;HDnG*TpVIGe6h0ho!QXzfzgUZ*)9TBh0fuVE4nQA1sbI;JLg&q z7TQ!2KmU+u9CI82qmU)in1W<~?l7*QJ>5Z&b8AsG6rw$xfx^$1o0ZU`A>lm~+8gky zD_z?dk0QMdXI9!%KYD~ldiYuCJF|z%Tlp?akR0`OI<4)@0%a@$xjDtu{OXX<8M?jB z0>|?{joU62I0_V$N{bcPh*k3jrp>qt!fiDU9g88H=z_vjn(xawX=ZDG;M&W?GnXyi zQbsF{t9ZVxxOQh*>~~0Ra}FrY5#o$b6lbmjYveJrR&on4URe1wS-M{rk>@<195Y@u zP`SyIX=}}lnUHZ~;m+-g%X#WFEcwag`Epd7PKpD}#(ze{Ps9&J zBKVwi5xFnovJBrFBD7b3GXJhYOC?jPrE$3DY{rQd(->AVz%^Wc$n*BqwxMS2ShbIr z%YiBsvoeSK;8-z>GR0PYb#>)7!}!3)?WLS!D(go3^X;Ay4CN?ZJ2*Lhb@bZrcFxa_ zj$ixc&v$3-^P`hv|JBi(&X(HGwQ(-z@!A2IZ(!vOeZ^eUmu5tNr+E=DWwNC*GNMy? zQZ7H7VHCaRMB)<~;*YBk!g8RB1CN&(Z5G)G)LhO2sk1HE(qDxj=Vny7%*H+ogf0V| zF$oEh!!oAoW5nw*={f1KmO;4`C_(-+wdKwNrBeq~HxHM4ugTp+vlWwPU(NxlYs!E* z(LV*$*pfk<45!b3w`OTFLRGJo89y#p0Lo;txh%TrroAGDnDr}wl+4bk0;*Q~-8ALq zu9>q-xy)4`RLkU9MfFzLRy!7aH9~jN+{_awGtO(GKoOx*^Ilt1yRoL!ybmieg84w* zMc%%ZByGhoM<=|i6!s^S!R}20n@J(PV7`viQBO%%{Q~KKd0uKw%e%{LK~8UfoG^3u zHMKY~?ZXorR!W3(ze2-G>5A@GWLO~u+kFcRi?axQ6LDd+%s%%jEG$iWcmJY7W$L?c zD=1W@$os}(!c6MAKU7G7j?of@=NH}=lQ`Vi4s1rwm{8Y!rz4G=XbaFs{gd6#j~T{dRnXCV96rz-E??%hFMd%dEWmL;qfbS0u(Joj|Fm{%S**4SpmVv|t84 z`!R9yqB@`zoGfc4*XE1tuT!Z;eMmTq@*J=Qj*En9;Sh(PbgI&ekg3^Hbb28XA7I&n z-JQ2T=0&d<|8z0JqZTxuJFmqMaU5Or(tcmH413Lgtdhd!T_>|&fx|p9JB#5t!y`5} zrw^R)Yd6qepUzW*(uIC9fje2r?IQa)&stKFjnh`du+Sz>6P(lXd=vXry(0=8>$3$t z95XtwCUxy!G;0WX82Tp3JthzUjtUs}}q?J8ie`#zQe}>)pyD>Zd{gj78V*zOzi=^xF17 zS|Nh!m~X_hdBIUO!?BtI9pYso!E!4yiIwJYSqauo$4WS}5+Bd20E5IO=_|Edg5m^$xdxw9FB@zYlxw#!(rZg*-^VNo?F z-k!;wv~T*^g6Y#edQ?ASPWltasUcayVm6qR3WJl&$E+l&24`NAp(z|);)N6Ur=2<% znmjhL!z>bimTpSiyd`gm>B*aSe$24^#h;stKks;(yTI9%Fo$&>Scvb!r#k-E3a)_| zevLksysNQ9{~rGJ1QK1WLGQLi+*53 z-~L7izg%B&Mh98&-Y?gZF&H5_F}Dh0u>pVoyKZo{$ux;{V8u1y&qPAg127jI%9K-R zcsHK6rZiuoi|N|qUC>v=XnMzyrw4Iu+TxCbrSWbV7G3e@ zUH9UunZ~^}KoS&dlduDb4+M--lMX8zAJo^eNe0HZQ5@s;!U)#CG@jI--e{3)|FWQ- z)Axs$lSnHbe;6f_aY6?-S&8f74)MHVy zsxt>2mHkxqQEGpF+q3OD>&ZkKyDPuM2E2I(+g-8Ze-{tTnJp}R3zP3heB$$znr}lQ z6q)%W^ci+-c_q;Jp}G7AB#v>yxD2vc*2K^!9QRl(1Hx>joL|BEaTk2wh_udYQ_Mm! zGtK3%&Xklt*q49W?3dO1zvU&0#osd5d)2cn|KrZ|{m;!8&E3cRZ};*%p!~lsGikwx gkAK!B81?u(K9A4i^B|u8KL7y#|A7 Date: Tue, 20 Jul 2021 15:29:18 +0300 Subject: [PATCH 22/32] extra pod labels --- .../templates/statefulset-timescaledb-accessnode.yaml | 3 +++ .../templates/statefulset-timescaledb-datanode.yaml | 5 ++++- charts/timescaledb-multinode/values.yaml | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index 4129f61d..64d60725 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -26,6 +26,9 @@ spec: app: {{ template "timescaledb.fullname" . }} release: {{ .Release.Name }} timescaleNodeType: access + {{ with .Values.accessNode.extraPodLabels -}} +{{ toYaml . }} + {{- end }} spec: serviceAccountName: {{ template "timescaledb.serviceAccountName" . }} securityContext: diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index dde2b17f..a30ea57a 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -16,7 +16,7 @@ spec: podManagementPolicy: Parallel selector: matchLabels: - app: {{ template "timescaledb.fullname" . }} + app: {{ template "timescaledb.fullname" . }}`` release: {{ .Release.Name }} timescaleNodeType: data template: @@ -26,6 +26,9 @@ spec: app: {{ template "timescaledb.fullname" . }} release: {{ .Release.Name }} timescaleNodeType: data + {{ with .Values.dataNode.extraPodLabels -}} +{{ toYaml . }} + {{- end }} spec: serviceAccountName: {{ template "timescaledb.serviceAccountName" . }} securityContext: diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index de1ebdac..eb3af260 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -35,6 +35,7 @@ env: value: /var/lib/postgresql/pgdata accessNode: + extraPodLabels: {} #enable external access using LoadBalancer service: type: LoadBalancer @@ -76,6 +77,7 @@ accessNode: affinity: {} dataNode: + extraPodLabels: {} replicas: 3 resources: {} # If you do want to specify resources, uncomment the following From 8d46f16d7d182438a50999633abad38a1c2d0759 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Tue, 20 Jul 2021 15:33:29 +0300 Subject: [PATCH 23/32] cleanup --- .../templates/statefulset-timescaledb-datanode.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index a30ea57a..b80873ba 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -16,7 +16,7 @@ spec: podManagementPolicy: Parallel selector: matchLabels: - app: {{ template "timescaledb.fullname" . }}`` + app: {{ template "timescaledb.fullname" . }} release: {{ .Release.Name }} timescaleNodeType: data template: From a0876fcfd73af07710e5c502a7968db449855b87 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Wed, 21 Jul 2021 10:54:37 +0300 Subject: [PATCH 24/32] indentation --- .../templates/statefulset-timescaledb-accessnode.yaml | 2 +- .../templates/statefulset-timescaledb-datanode.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index 64d60725..2a5a06a8 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -27,7 +27,7 @@ spec: release: {{ .Release.Name }} timescaleNodeType: access {{ with .Values.accessNode.extraPodLabels -}} -{{ toYaml . }} + {{ toYaml . }} {{- end }} spec: serviceAccountName: {{ template "timescaledb.serviceAccountName" . }} diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index b80873ba..abf57f7b 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -27,7 +27,7 @@ spec: release: {{ .Release.Name }} timescaleNodeType: data {{ with .Values.dataNode.extraPodLabels -}} -{{ toYaml . }} + {{ toYaml . }} {{- end }} spec: serviceAccountName: {{ template "timescaledb.serviceAccountName" . }} From 0442d6b32a296703742d14ba2b91d056584c7c6c Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Wed, 21 Jul 2021 11:22:09 +0300 Subject: [PATCH 25/32] cleanup --- .../templates/statefulset-timescaledb-datanode.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index abf57f7b..8b7c3c57 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -26,7 +26,7 @@ spec: app: {{ template "timescaledb.fullname" . }} release: {{ .Release.Name }} timescaleNodeType: data - {{ with .Values.dataNode.extraPodLabels -}} + {{- with .Values.dataNode.extraPodLabels }} {{ toYaml . }} {{- end }} spec: From d80681c14211b4e35428e59b7a391251c2508d76 Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Wed, 21 Jul 2021 11:42:25 +0300 Subject: [PATCH 26/32] replicast to instances --- charts/timescaledb-multinode/admin-guide.md | 2 +- charts/timescaledb-multinode/templates/job-attach-datanode.yaml | 2 +- .../templates/statefulset-timescaledb-accessnode.yaml | 2 +- .../templates/statefulset-timescaledb-datanode.yaml | 2 +- charts/timescaledb-multinode/values.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/charts/timescaledb-multinode/admin-guide.md b/charts/timescaledb-multinode/admin-guide.md index 3a91d432..696da0b9 100644 --- a/charts/timescaledb-multinode/admin-guide.md +++ b/charts/timescaledb-multinode/admin-guide.md @@ -55,7 +55,7 @@ The following table lists the configurable parameters of the TimescaleDB Helm ch ##### Data Nodes Parameters | Parameter | Description | Default | |--------------------------------------------|---------------------------------------------|-----------------------------------------------------| -| `dataNode.replicas` | Number of Data Node replicas | `3` | +| `dataNode.instances` | Number of Data Node instances | `3` | | `dataNode.resources` | Any resources you wish to assign to the Access Node pod | `{}` | | `dataNode.postgresql.parameters` | [PostgreSQL parameters](https://www.postgresql.org/docs/current/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE)) | Some required and preferred settings | | `dataNode.persistentVolume.accessModes` | Persistent Volume access modes | `[ReadWriteOnce]` | diff --git a/charts/timescaledb-multinode/templates/job-attach-datanode.yaml b/charts/timescaledb-multinode/templates/job-attach-datanode.yaml index 91eadf2c..0c9d8c9c 100644 --- a/charts/timescaledb-multinode/templates/job-attach-datanode.yaml +++ b/charts/timescaledb-multinode/templates/job-attach-datanode.yaml @@ -1,7 +1,7 @@ # This file and its contents are licensed under the Apache License 2.0. # Please see the included NOTICE for copyright information and LICENSE for a copy of the license. -{{- range $pod, $e := until ( .Values.dataNode.replicas | int) }} +{{- range $pod, $e := until ( .Values.dataNode.instances | int) }} {{- range $index, $dbname := $.Values.accessNode.postgresql.databases }} --- apiVersion: batch/v1 diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index 2a5a06a8..55ab1349 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -12,7 +12,7 @@ metadata: heritage: {{ .Release.Service }} spec: serviceName: {{ template "timescaledb.accessname" . }} - replicas: 1 + instances: 1 podManagementPolicy: Parallel selector: matchLabels: diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index 8b7c3c57..4b041c04 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -12,7 +12,7 @@ metadata: heritage: {{ .Release.Service }} spec: serviceName: {{ template "timescaledb.dataname" . }} - replicas: {{ .Values.dataNode.replicas }} + replicas: {{ .Values.dataNode.instances }} podManagementPolicy: Parallel selector: matchLabels: diff --git a/charts/timescaledb-multinode/values.yaml b/charts/timescaledb-multinode/values.yaml index eb3af260..f264fb6a 100644 --- a/charts/timescaledb-multinode/values.yaml +++ b/charts/timescaledb-multinode/values.yaml @@ -78,7 +78,7 @@ accessNode: dataNode: extraPodLabels: {} - replicas: 3 + instances: 3 resources: {} # If you do want to specify resources, uncomment the following # lines, adjust them as necessary, and remove the curly braces after 'resources:'. From 27087332a8416fb5fb29cdee3d0f009643d9592d Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Wed, 21 Jul 2021 12:22:41 +0300 Subject: [PATCH 27/32] replicas --- .../templates/statefulset-timescaledb-accessnode.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index 55ab1349..2a5a06a8 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -12,7 +12,7 @@ metadata: heritage: {{ .Release.Service }} spec: serviceName: {{ template "timescaledb.accessname" . }} - instances: 1 + replicas: 1 podManagementPolicy: Parallel selector: matchLabels: From d0f5e9ab22f2043c2cec786a7f0406f44da6d46c Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Wed, 21 Jul 2021 12:29:53 +0300 Subject: [PATCH 28/32] fix inndet --- .../templates/statefulset-timescaledb-accessnode.yaml | 2 +- .../templates/statefulset-timescaledb-datanode.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index 2a5a06a8..9186c27a 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -27,7 +27,7 @@ spec: release: {{ .Release.Name }} timescaleNodeType: access {{ with .Values.accessNode.extraPodLabels -}} - {{ toYaml . }} + {{- toYaml . | nindent 8 }} {{- end }} spec: serviceAccountName: {{ template "timescaledb.serviceAccountName" . }} diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml index 4b041c04..4fc31501 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-datanode.yaml @@ -27,7 +27,7 @@ spec: release: {{ .Release.Name }} timescaleNodeType: data {{- with .Values.dataNode.extraPodLabels }} - {{ toYaml . }} + {{- toYaml . | nindent 8 }} {{- end }} spec: serviceAccountName: {{ template "timescaledb.serviceAccountName" . }} From d9bbd54bba5768748357f3feeb309e88c85943df Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Wed, 21 Jul 2021 12:36:56 +0300 Subject: [PATCH 29/32] new chart --- charts/repo/index.yaml | 56 ++++++++-------- charts/repo/timescaledb-multinode-0.9.0.tgz | Bin 11389 -> 11433 bytes charts/timescaledb-multinode/install.sh | 61 ++++++++++++++++++ .../statefulset-timescaledb-accessnode.yaml | 2 +- 4 files changed, 90 insertions(+), 29 deletions(-) create mode 100755 charts/timescaledb-multinode/install.sh diff --git a/charts/repo/index.yaml b/charts/repo/index.yaml index 72452906..b7c121df 100644 --- a/charts/repo/index.yaml +++ b/charts/repo/index.yaml @@ -2,9 +2,9 @@ apiVersion: v1 entries: timescaledb-multinode: - apiVersion: v1 - created: "2021-07-15T20:06:30.409952582+03:00" + created: "2021-07-21T12:36:40.481444211+03:00" description: TimescaleDB Multinode Deployment. - digest: f59535d924e9a71be25d281ce519cdfe21aeae4f9357401611edff6dbb4e2a66 + digest: 0a4af802b3bd48c010ad893ae68dd1361e95b12d2bdf4f0e5d12445154f61490 home: https://github.com/timescale/timescaledb-kubernetes maintainers: - email: support@timescale.com @@ -18,7 +18,7 @@ entries: - timescaledb-multinode-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-07-15T20:06:30.40902768+03:00" + created: "2021-07-21T12:36:40.480433927+03:00" description: TimescaleDB Multinode Deployment. digest: bc4f70989a2bdc35e5a4a9efe311a87ffcef3e0acb5ee704a010d49ecb372765 home: https://github.com/timescale/timescaledb-kubernetes @@ -34,7 +34,7 @@ entries: - timescaledb-multinode-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-07-15T20:06:30.407926266+03:00" + created: "2021-07-21T12:36:40.47953443+03:00" description: TimescaleDB Multinode Deployment. digest: e0729d1731fb22f769494b921b275153d625aebcbdb68c432c2ccd1897f4d66c home: https://github.com/timescale/timescaledb-kubernetes @@ -50,7 +50,7 @@ entries: - timescaledb-multinode-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-07-15T20:06:30.406245831+03:00" + created: "2021-07-21T12:36:40.478716355+03:00" description: TimescaleDB Multinode Deployment. digest: 101d72220765f49e6b081c134c1f793bbe90d7f67a4f4c36c794be989e34623d home: https://github.com/timescale/timescaledb-kubernetes @@ -66,7 +66,7 @@ entries: - timescaledb-multinode-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-07-15T20:06:30.405327103+03:00" + created: "2021-07-21T12:36:40.477931168+03:00" description: TimescaleDB Multinode Deployment. digest: db2bea7290cd265835e11859a39e72562c7e21f1a90df0401e14e05d7adea1d6 home: https://github.com/timescale/timescaledb-kubernetes @@ -82,7 +82,7 @@ entries: - timescaledb-multinode-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-07-15T20:06:30.404438757+03:00" + created: "2021-07-21T12:36:40.477154234+03:00" description: TimescaleDB Multinode Deployment. digest: d537d361eb0f72bce12d8e4f993dbc980f7850a22bb1a7bcd8825a7a4a00d38f home: https://github.com/timescale/timescaledb-kubernetes @@ -98,7 +98,7 @@ entries: - timescaledb-multinode-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2021-07-15T20:06:30.403453813+03:00" + created: "2021-07-21T12:36:40.476346972+03:00" description: TimescaleDB Multinode Deployment. digest: a6c664a75489e069cdd2d36dff87ca6d2b3a38a3edf16de4234418b354e40eea home: https://github.com/timescale/timescaledb-kubernetes @@ -115,7 +115,7 @@ entries: version: 0.3.0 timescaledb-single: - apiVersion: v1 - created: "2021-07-15T20:06:30.456681648+03:00" + created: "2021-07-21T12:36:40.524305441+03:00" description: TimescaleDB HA Deployment. digest: 8bb26c938538e767a0da086f7535e1b81fa03af292becf44d406d7a8d8da9321 home: https://github.com/timescale/timescaledb-kubernetes @@ -131,7 +131,7 @@ entries: - timescaledb-single-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-07-15T20:06:30.453459744+03:00" + created: "2021-07-21T12:36:40.521703971+03:00" description: TimescaleDB HA Deployment. digest: a976fc399539e012942a3e55dce1d735c5c36bb4678e57a66ac7d280c8bfceb9 home: https://github.com/timescale/timescaledb-kubernetes @@ -147,7 +147,7 @@ entries: - timescaledb-single-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-07-15T20:06:30.45062083+03:00" + created: "2021-07-21T12:36:40.519122924+03:00" description: TimescaleDB HA Deployment. digest: d047ac65b447b75f748c6fe94cec7ed208e91c20b42eb912baa7aa4f4131518c home: https://github.com/timescale/timescaledb-kubernetes @@ -163,7 +163,7 @@ entries: - timescaledb-single-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-07-15T20:06:30.447862537+03:00" + created: "2021-07-21T12:36:40.516534523+03:00" description: TimescaleDB HA Deployment. digest: 63a9d362ea53efbe6103b8fd0cf07400aa2ccb090740eda213f862d588320c79 home: https://github.com/timescale/timescaledb-kubernetes @@ -179,7 +179,7 @@ entries: - timescaledb-single-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-07-15T20:06:30.44504336+03:00" + created: "2021-07-21T12:36:40.513562526+03:00" description: TimescaleDB HA Deployment. digest: 1948357489eff42eb81bcb59a465615e20b791dc54178d1bbaf1a650b7f46de1 home: https://github.com/timescale/timescaledb-kubernetes @@ -195,7 +195,7 @@ entries: - timescaledb-single-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2021-07-15T20:06:30.441949462+03:00" + created: "2021-07-21T12:36:40.511201402+03:00" description: TimescaleDB HA Deployment. digest: 39e270f51713dd0f2be64c8a80d747bc1e78173fd3e2c6172ff993f9a7dacd1b home: https://github.com/timescale/timescaledb-kubernetes @@ -211,7 +211,7 @@ entries: - timescaledb-single-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-07-15T20:06:30.439548272+03:00" + created: "2021-07-21T12:36:40.508838822+03:00" description: TimescaleDB HA Deployment. digest: 463bf4eca84cbefbd2e4a88928fe1ccc59a69fb95a4952ce15ca746adb479a29 home: https://github.com/timescale/timescaledb-kubernetes @@ -227,7 +227,7 @@ entries: - timescaledb-single-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2021-07-15T20:06:30.437370762+03:00" + created: "2021-07-21T12:36:40.506671799+03:00" description: TimescaleDB HA Deployment. digest: 8ad82438d3fc818e6729afa77607521b7510b68fa4e0b4e7d0836f33990f0a63 home: https://github.com/timescale/timescaledb-kubernetes @@ -243,7 +243,7 @@ entries: - timescaledb-single-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2021-07-15T20:06:30.434923638+03:00" + created: "2021-07-21T12:36:40.504071552+03:00" description: TimescaleDB HA Deployment. digest: b1c985faf6852aea91e6931230d19656f126fb7eabff004e92ffa2fb411cfbe2 home: https://github.com/timescale/timescaledb-kubernetes @@ -259,7 +259,7 @@ entries: - timescaledb-single-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2021-07-15T20:06:30.431954084+03:00" + created: "2021-07-21T12:36:40.501883256+03:00" description: TimescaleDB HA Deployment. digest: 977ccd3dfe52e84a18e9ecf8c4138a937621910f743071fff58b497c357afb7c home: https://github.com/timescale/timescaledb-kubernetes @@ -275,7 +275,7 @@ entries: - timescaledb-single-0.5.8.tgz version: 0.5.8 - apiVersion: v1 - created: "2021-07-15T20:06:30.429674364+03:00" + created: "2021-07-21T12:36:40.499712607+03:00" description: TimescaleDB HA Deployment. digest: 069c515c7055289ecf8189962e648e033053e8e7bdb47c39f9ec058e99911183 home: https://github.com/timescale/timescaledb-kubernetes @@ -291,7 +291,7 @@ entries: - timescaledb-single-0.5.7.tgz version: 0.5.7 - apiVersion: v1 - created: "2021-07-15T20:06:30.427330747+03:00" + created: "2021-07-21T12:36:40.497563507+03:00" description: TimescaleDB HA Deployment. digest: f0c9b30a4bf3d3e9c221efa37946bef05bad7fe79eb1808a7c8088c2d24e1075 home: https://github.com/timescale/timescaledb-kubernetes @@ -307,7 +307,7 @@ entries: - timescaledb-single-0.5.6.tgz version: 0.5.6 - apiVersion: v1 - created: "2021-07-15T20:06:30.424487581+03:00" + created: "2021-07-21T12:36:40.494892848+03:00" description: TimescaleDB HA Deployment. digest: 27098601d61f727ac71c2bfb67a1240c99188fc56ab4d0a0375cf5abc09547dc home: https://github.com/timescale/timescaledb-kubernetes @@ -323,7 +323,7 @@ entries: - timescaledb-single-0.5.5.tgz version: 0.5.5 - apiVersion: v1 - created: "2021-07-15T20:06:30.421618075+03:00" + created: "2021-07-21T12:36:40.492810796+03:00" description: TimescaleDB HA Deployment. digest: 5bd289b789c7fae00b98ae9d1ce0b86e6b8463fbe4fbdaf20d59b60aca137580 home: https://github.com/timescale/timescaledb-kubernetes @@ -339,7 +339,7 @@ entries: - timescaledb-single-0.5.4.tgz version: 0.5.4 - apiVersion: v1 - created: "2021-07-15T20:06:30.419508316+03:00" + created: "2021-07-21T12:36:40.490891174+03:00" description: TimescaleDB HA Deployment. digest: 6cd19bcb822c9610ad13fbe49b03c3bd9d5f4655920b44e41f937487ecf86d9d home: https://github.com/timescale/timescaledb-kubernetes @@ -355,7 +355,7 @@ entries: - timescaledb-single-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2021-07-15T20:06:30.417698833+03:00" + created: "2021-07-21T12:36:40.489172404+03:00" description: TimescaleDB HA Deployment. digest: 9e2570426e0445a2e4f079fe757bbaadbc95a764c12ce10903f426d3b69cfde9 home: https://github.com/timescale/timescaledb-kubernetes @@ -371,7 +371,7 @@ entries: - timescaledb-single-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2021-07-15T20:06:30.415850406+03:00" + created: "2021-07-21T12:36:40.487503444+03:00" description: TimescaleDB HA Deployment. digest: 128a7f0738f176a2abe6b7e1c3a1173ac6c4a77f7816704add3f0664609915aa home: https://github.com/timescale/timescaledb-kubernetes @@ -387,7 +387,7 @@ entries: - timescaledb-single-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2021-07-15T20:06:30.414151699+03:00" + created: "2021-07-21T12:36:40.485840872+03:00" description: TimescaleDB HA Deployment. digest: f4e0e05c989f04c78d9bd0a5b7ab2c6e1d2227af72ad05f7451a3e01b462bba0 home: https://github.com/timescale/timescaledb-kubernetes @@ -403,7 +403,7 @@ entries: - timescaledb-single-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2021-07-15T20:06:30.412382674+03:00" + created: "2021-07-21T12:36:40.48349002+03:00" description: TimescaleDB HA Deployment. digest: 2ae9d4a4ba25caf626e837244bf092721439e822d486f2c17f238b479012dedb home: https://github.com/timescale/timescaledb-kubernetes @@ -418,4 +418,4 @@ entries: urls: - timescaledb-single-0.4.0.tgz version: 0.4.0 -generated: "2021-07-15T20:06:30.402269419+03:00" +generated: "2021-07-21T12:36:40.475474375+03:00" diff --git a/charts/repo/timescaledb-multinode-0.9.0.tgz b/charts/repo/timescaledb-multinode-0.9.0.tgz index 4f98bf0ad56a9ac8a2aa458622f18cf7303503b4..76351aacd4a18afddc557fc9d0280de0770ec62a 100644 GIT binary patch literal 11433 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 D#fO)} delta 11382 zcmV-+EQ!;pS^Zd$JAZwBTiZDH=>F|baejd=(2Jb}N;{hw`usAGcDUODOXzg>cKQUx zRuWAe$s@_3*}`|fk6vuci9-U@q00{5XSTuC%hA!%(RtI6Bx5W>6yvDxkJDHZ$|77p z7$Gi$DH_Lr`3g^?(P%t>_DuiVXf$U3ZS1{x_Lt_f#*1f-=YM-Ud(FQzntRXo_WlBm zuhIFkClwO$zchY#U$cXIAP-8&&zK9sXbUDyFTx_^B$4{>^NcnQe}uOgZNMQ;Vm2LP zDg$rC#<&F|DHGAE*M~%o(tZ%KaXlxix=Uc6(mv)CODw!GB2*$mF&8b*2Rue3Zh=UX zgmL-5c_r1D2Y*13>c@e{GjA%X*Apz|A=d5Q1+-h#idgswbAN=YEBzbAh(@fQAjuge z-Xz0xBlug;@V@ojtEYPXPf(m<@wFJh&FjC}c+qIiuKyQ}XOHXuKAtr=9}xiq5@SF# z0wM*3j7m(U0K_rGB*awU2vQnh4swK{ouF`p;f?tMJAXkV@Ydio#zri0OgR~jBoI1ae2f&I(cQi|I_MmCO(~?y0UPLcZ2y7ht-(2igyRXO z5+;~WA!c-_d4t%7OAKs+IVX|nU%lQ2CP$cG5`lq8xMXP@L4*e=jU`CttyMD+*vuNp zfC$xoxPPUY&WY`$#C$xDjL{IcJb*PgQa|Am3FxOJmN4L&hppX(tpISGFhL~aQ>VvL zX~Kt)KR%FiJi z3@}zebUsUtAWVg1W59GmIHO}d!H5&okFij+bw0w1v_^UY`-)PbLnl8Yz70r#R1}Qj zm|Y5(vJ@l(LVv}f1c5`2r2s-D(-Z0R;1v^6F#mwCdc;Ce=XiiQrXj8mF~uB7967~& zlz))=q!~1y*VizeOc3`cO+REDdzentaDBUHy*cQ$-@MV|*G#nq2f@4ZSN?ZynfCGP zn@gO&K5U=2bs4*09bAA&`w`(dR78?dY@)Urp_cK_EKbK5Hpu`Goo;E271IotB#wb% z9H|9iIvAvJJcTi$ijEV^$3&=YO9ar41%KOyR1i9Z`ULTMO#1c2G$wwF>uSP*2#AOX zS<2B6N5u>gVcSP=s0kb_XoRZHrrBG)l+=nIk#GcKjHu8<${MFk0t#h{6qMOGqrk;r z6>P~+HQ;$=s$IiWQ5oRR5_5`TOVoCZZy1VxRGWB+xd$LHpODa!vz#Vs?#d-N&VPgt z_;Rh*U*5l|q(JB+fra@~&2UyEe}O-vaS~(wcY-(?W2vPi^WDJPOAwbtu}{U^dT2Q0 zc!(r!0i(9yuSB+h4F>klG5XvK8KpQ>wL}Y=jfVXsMu_96*G~rn)e-DA8gGBJ-!2*d z)Enb*3!2aKmk##{5+sD$JzB641b_7)8LAf>wqVSLfP8L2?TLgB zPm+%<`0yn3pTr;GN&3G}qHUBU`%e&jc!EDd&8a*lv=^mZZz4S*k;H0Qw_u}L>fiYi zMX?Lm2#22%MyRX+jD??imx#=K$~cjckM#a1urw5o^PNQ#>cr5tApgdBWq-A9$0&|f zg-aaAK{hvp_AXJ}Q-xcwvsYkR&06tguenpq0Ujqkh4@}f#%ijYuYdFu#my{yLpO$M zqMUUD*cM+C%bWYBNRC=iGZ-GTluG-iVlkOQh*Bnzomoxp*`Dy0MJ|b-VHCaRMB)<~ zVg;nyWxF`mEX!7vEXF)*?0>^YwY>}mgc3Q`1w3~z;W&v&h!m+-tU0|05A;qDF}Orj z?e!oM9FoDbD7_6S4cS<4Hfr_;Ozj|q4s8>PHpMoe=+{)}5@R)O6sz$eKHb)G3&&$N zF#<=J@^}h;jzUEl1Bp3o6rgPcd9!0hRrW7{FiG`V9OrMwc&vB(=6}w2Z;5@&@oy;> zx2reHd**qGqOOGFL@$5I5fv!s4touU<~8>Qj+8WINO&9ismxjXPdFZfHX6VfP1UZX z1qzLJLLp7^wwf7()q<8n;WM*d)ZYS>I0%aM##pTiqPE=nn1q~t`Yzu_)SAm1luQeZ zRPkmc$;2+sKb*Dw*MG8twY7YgGT@))&14&PS2DG?!$FLM$SNHT)TjwnTfQ&_^!H;e z!TjL9dg;_rNRtd|eyyrnt(M6F5fNG(glJ09n1qmUHX%wb$(O8dPpK&y3M0kaiP!?h zv#w~W$d|IY?lh0c#T2!q1eV(nju_L@fIG2y@0bSwo5N&B(UUs|3k!;MORxXl*;b$7 zuai*+6MvlfMmaiUG{lM2KL%uIx9d6*f()sju*la2hqbIpAJNE1R1!aX<7Ge2@i>XK zjB};AThykKv@=i)i_>B|$I)TR2_1IB5suQB(BaXLvix=DGY(U2;_?g@F0oQdU6Dw& zo_EW~8Nw7Y5*D-J^zV4uf?9dNBPOJh*K2v{7=QI~oTD>;troKkM{m?u;l2hyNzwxN z@6=r5_4c-Z@NugMaz7m5l z_`-Y}a4-y@rbzNrEl`Cy9<*+nXo}(*$56J%Kx+6kF zwe3UiX*hxjL69&mVei?l-ib>RJsci)&GH&>HikmJ6g#bGE;}sd#WGW8H(XbAj*E9HK>VF5X+p0|lSKuY%D8$su7mAVVS1PQmy2 z*fik#+BCMGclb*t$N88}pjO~^f4z!mYEA{E`6^g_-?se@=9?X@isM_Xio)JCiwiv! zm3a6nXwc-g1O>9BSKj}38h?$w$Nm3a zo-beOPra`r0{qbez|;EmwWr{P2^qJvAgy4Q(**C2)ij19+=9H6*ZG{NmMeXEd27Bk zT2!f7eo;c}{DBFJ(Rx*2d|`p>5`-%y%hM2^@9Ljq+)W1q@>%Kfd1F{{oa<}Pz<6M^ z0F?J(d@sMHC|2r8r1U`zeShG+$EI~%UaCISNCfn8h*E`jHpcMxTrsoq4#9Dh&El9y zW0cc&w9Woh%LoueFC3LS#))vmPON8dP4b6fp?eb6}MeYC8pw_G1 zoz={;Lu(yTs#M8jaaiL($|jZLMN7F{EU+dI-x{yJe90$f({2_E=YDHZn|dg-OK7I` zn*C8*sga6x@~t=NKk!*5|NYAPK9Xv0)yrFby>(dF68Z1>ZgXcw{@ZE3c=0Iz-N%zL z3>ts@#6jjHhASXcZe{D+wm@ivKX1c&)X!vr^{j;=KqM&qDnTB(p&Igi-*Y2p`$&eP z`lRW7A~b5j|7Cq|j3rWaT6y^DmoGWTH!CWl{uALxef57xBDDvsm$&*&1E*r~tSdR8 z!!6iUqc6R2_5#iPV#lwb{Ru1VuIrggLGOQ2H&n5ESYFI`<3Nn+BgQ`Y5stCMexf7UYAw(&MH+?}M>z77+^VWc8Fz8WXe8PLiTNu+ zi5TIi1<$o(CmWFI!JVMoSL1kNZjHISU~e@Hu8KwTUwu5aUT`)TkdUC*)B`y} zQrmcWO0{vOK(H~|xK1-4#HjSAA3A@o!Fvpsh)B&_@;EXbeju3%8w4jt>Bg#V>_Sy# z_44q?=;bd}=q^ z_rdp73;u5@=0u^T61-n#I)%mKTUZoH)KhcX%d6zLU%6^T#s2)P<<)dpsM>$(Pra_v z)bnT@_%$64W2Jr*q2qiAH(ENTBIOt^u|n>Kgb|ux=>Fr44Q?fje(#ys2pbfc#U_z> z3JAvNR~_>Zrkuzr#29@7B#nRWFBB&+Av~8@he&ynX@^Qb)|71zVib`e+8z%v`GjFZ zVxjQ60gP|M#sM1R_y7sK5qRGDsBlqQ&+{Oq8dy6X0evJ!x$z+DkWh(v!m)|P%7T9b z-C$`#wYVVCzQDhwm`Z4Em=7D8u6kL`yf@0qIMZx}g<;AA&&&MTmzRH+?q1LM&_*w$ zoMS5MC`o+Pd@z#Zc&&YU>YsN1@y0(oKJT2Jp1f(FADtWZuAWmHWFOL_B5@-nY><^TTn;yK+>w+;D;w ztK0y|LImGs?{m8-_||`X^H(K?;4;S2hi>Oh=inTk&ajVHXD4p~MNu#3ADgX>G8@`x zwagI)HNUX`65Ik26&u??20hAT4}T^?3ROh%6mQK9qws;u4&xPP<8t_k@xT2YPtWk6 zH3M`m#a83hHR-I+2B-jh!qXPa`wwj?j+GiFv!eRek?c=d7c|2I&0rsC(Xp z&Dr&48lPK*My*PQy^L(f2q{H<0^ZrZa%E0_G#Gi4vnzCmH+4<*r=eT=xatueW z++jHL^8KGnN&D79?&GuYS*HI99QrN+-6bW+68*3F{KbEZ8U3&M?Ah+4{&yeG1JnPU z;1VZ4MNlNCs8aB9)vl`oL>fa*W7|zYHmT5=C)jMtI{}3nu3!A{gz@c8}&Sk zH}xw}>nPO4`GhOzKYxa4s5(%r{wrdi@;qGrUmaX{eZ7bgxutKzkg8%GA0}(6;u}lXzeExb(pccq z;)&11C`m+NvhP|V?f%(>yUdhqdDQW( z$6I95X_}l0Z*|tMF{Zhie~LJYV;t*l+)M@)IShYpjj|Px;N)aca?!b#uk1O1W&VQO z69D`UFGH}%W3bR+aMQ@jj)M7J=x$qgh;rhBY_gSJLTss~L{r1#J7dcm>$R+8b&gMHT5A*b- zd;a>Y)BVSr-od->`N`YfY5T1GwsYP&tB8LZDqD^nH}5Ar-G+5tYPpZMNN+W3*K~Zh zPXz44#uKqo)2+j%ZQXU%&ehJPrbWZ--Mj5}E(6Rm+wBcN_wrDxKNS2q#r`(Hn`v;Q ze@rJf{KtKBm7n>EiI93$|Aoe}J_4XLZ1}F+b;aDS;sM?8L)T}p20uLo5Y0Rc}ipURQx1<6^5q2euo z+}xgo3W;clgIQojnk4a5HRSs?+uDd-s`j^?UZvd(#z;uD69~l&sdiQB1RJGR2aMw( zXDN-g4ewIrQXLT;F>^R|%sAFi5)^-ve`{`5LhIEGsY&q5E*w3cI0m0N{^X(adkl>i zjfVB{nxv`MWgku5=GHA{CJ-a1g$x}(Ks~~fI!)uaRDZ~E0{(BGUqLN9v$jz%q236` z$Yw#%!HtRuuWx4gvbGf5)nMPMhxIQv?K?U&Krk*B;^)f z7-OV14mTrqP8_%21AV}saj04YpV)lW`wkO^)AspK`bGQvr|a4hKD=WrhaPHlJMZ7zXbaz;!wToqr(9n@D9@ly zLiRiTf|aJ~Z|W7aqk8lSX6^kBpWvfQ@W0O`n6s@vlSA;)qxR@g`z9W>8JB@#>Ou7A zXM6OseN{i3kvxA~0Rw-QnCgV6_Hq`=q&`JDK_u44KKs**UpeXml zAvsEt?DnXl*N9P^<#u%veu+TA!?9YHntgDVm^(!?sD!y*B4gIg3e+8*ot!!c1RZX! zu(s-=@efO@alXT^>i{S=*WYFSU);>2zwXgrS3HmYx-x(I9>8*4;;VCv3b*mp<<B-wW@zA&)f|t`NREkH*nt@ zy>d6yyNyq7wPyY}kKD?`_;2&a-S@N9|2GLM&i&mk4aBni4|}__=YMxzG@n2E|L)^? zK>oiQk_>-nE`J->-`sZdz+8V7;(&GV1br+~P`;oST?#*DDDwL#Ml{6SFLIXqB#Nup)QW6<+WS-;Dv@=l$}Edv%F0^f)X}M_kpH=?kC}QU=ANrsnS@tZnlxgP zvci>cCRxbh7MvfP&bcmcJ@<=`@C8BepTFDOmj8ci#ro^!e{DARcIWcHKHmR(KhK|( z|NpmyemD&Dm{I(n$PIPq!h_(2f5xYp{|6%+kI9fSj=w@5%kuv;8qa6$f8Trlc>nAD zJWqp!4j-51pZ2L<|7V@{;oD9yj=oACOX7cb_jYz>*MFn&>~a0y$MeJgD6#5cTmbF+ zFFk*6trQXPHX~Wjj3FXii!amSnqCAy;dpFsX_X8joWx9L$j<7*2dBx8n^{)qA(5lB zAB1dN&sRy^SugdiO#BK==cWst+B#w;GKtx^otEeMU~XVl5LrLIJCdhQ+a}gPNls6n zLaNFDa&L70;KVr>V3t*Vlee1D5GPX9FByOTq!fSsN^%y*n3rPu>sx^Xn8rvFV@OzJ zE{M+jpu1ZcLKRd`pB^HKG^C;cl`=WP+y&T;%l4sz!jWoOM~I@rA)2MS&xd@dUClO} z)TTH$v?S(YPK!yj_IA(vfsBVBc(`8+>T~Q(ZFe=eB#|8L*PcIX)S&*-^WKjzwS<46 zKwuQw@4L|Xd$;BJ(6)cYNJtXG8-^nI(Hc@3wXk|BXQ4gd>ULsa~O2&84{p zZ<=86OE=>wu<}dx0?+#wOHJDK>^5yDGSket8sCM<^Zp4>_jO>vhwc35$BQDmPcpcu z9?`|Nhl63TZ6fz(5vSd~9MOo4<0%X=#at6z79uIiNHZmS*;m-yf-hOHT55kjg5=;w zA@th*|MQXmZ@=OH4X$8>Q3QUtyYoF0%&EQi zVH*(qtNr$kVd^@zQK^h%K-oMdUxTU&oyvq@ufa`8O1Dil`P00fqLMVYW!0fd6n%C-V-nhjx$ zXo_NYwsil*Mmm7b#0YhWsjzEMl z!BqBUk?TUD5u^w$!V-~K0P3?;!lj~Vhis>o$p|dB&0QG?V#e&H7Z^UYqcNdGNRA}q z@H!pI!{e6X6c4izKP)2jIkg&3tY968hJj=R|L@@8(kUz@#RHa;=Knfq0uVS&1g z!@_~}{us(~fD?b7cS1uWz8BCN!AMif48axw?A!SQw63L0#Bum&tCG>_I7FXFXMhzR zXTJfyZ*TS~ZWAi@3};9>2$!W&pHV8L(Tp}Ok)iqwPD6n4v;yGmd>sy%63OIlCY3 zBTVB&{ioIq-1MCP>(ni9@aA3jymRIsotnQp|2*%U9k<`)FN){% zN+^mHPhni&yO-4`RI7}!`ZQMf?N4(p=i;VN2)%P$95afub-fxw%X^j*{uKApr(_iS zJUs3yNI4c_8?-|0T~xF5z_PhOOu`JTK#RE-Mm5Y%%WZoxmK$1Du%e;@@KUdaOPqh- zM5w@Z&P5sBpn4lr#eD+4FXa?`pO3Rk|Fqb%?;M%2msaf`;|bgJZc>;1x#IgS*a)H-U`YQ}bS5MxBsL>rDc z9xKkQ=`=x?6i3FUmyxHL2|+S;R+4``%}t(Vfip?@&@euIeIb!}EVf}YnS>j{-5s{{ zN~cT-pko{nV=^+}M1cYg#X@N_TuaYb|JFVU4DNb?fi4){656S{Gz6<`ng)DZys8pDrN`AT#x&b@~5{ZV33K~czCQ>lN#6o|-uHYgWHg|$O zUkb&@8h+BaDEcW5>@FCwZqM9%elr%~;%IQp|i z4DfC6q9MU_a&wg{=zM>c9A(KLT>E==W3^JYJ|{}+!jaM`KXmBiXT)#x^K(4F9Mcfj zbB~Hs%tr~SPntpVd3_Dj$pmp@a`z`qKV%$lsR5hw-WNvQSCV~<=rC0a#pYzINktwq&Pi1u&>3O`@2S3-}5g!fTsZ@{arbY){aiu5*| zS!qxG=o1?0;b*1q%pNLl<+~_Bax~ECw6-$~l(7ip<`h%&t3yKP==LfL9MAhSZo5?A zC{R!;EmmM7RxN)Tm^R}o2)ETZbS#E&q6-RBX}&M#q?xUOD=!nzT()>i8Lc#~;`z4X z+MQ*w-yyjzIH0sZh%-J>oVgCHk;lwh$t}QmVdc|g>3+S5JQo4wnDMHC%1xe3TWjXb zgp3;tcWz%?&QoV$$qy+nmZREqTAXDz{xc#*+6yfN8Pb0We~C8kU9HN$Zi3HAtCag9 zF3Rw|Awqj4^Y0q8R5GPn8i#w%W}H|tjbSANT*1YMJa1oZ8*0{$Rr`3c9H>GuD|5IH zjuo>gQ*7mzmzQocj1O(xUdlP9vTn3L-|iW~NRH#RgOlS|N3Z>E=luNW__c5Te0SD9 zKRP+~UmbtF>1?U}TpQJE`M$vmt zBtD@b{O;c_fn+3a+%UtzA zwM?E>RBwfCwPV3oBXlR@%_4y^+xtSPax% z8&=ARbH75vN|}r9S7cZr1>1cK3^ykf`X=JSYDs?XRajV>^zQyeg~}{=-&Rnl%9i(y z#e}&mc7Ldl03D+x3ePXRFD7xgu^rfqoH2i)uKP|$8adGxppW`5KOr(3(L3j@D3vJu z75nY@5>4}N=YY*D9T%me7#CT2^@skw2CqnrO*(;6QT^41FdO_xG;F~feD-7Fzx!O0LZp*(hB^P`c1hCU7S!xm{!*=UGcivT@pq7#7;ZX@YZFo^N8Gs&_=8V|})uk7GuM)}*fe zi^h(nqmE3bS`*t-f}7B}m}wh1Ie&jpvUFzQ(1aqXA~Pdg5UNzvNhV<)yPsRmPLbq{ zlFYc4$CKH1);HZaYt@1uXQ%D<-FPUbZM|E0MEy(%fU)Qr-glM>oL<`=NGn889rKNN zHZM5JW;j+;phLV&Bv@`mCb7~yE-Jyg2o{En>m2V@b@T|%M;KTtlT>EY(pP_5{+Prl z4~SM1e`!mVCTVGyxqi+%?ZbZoK=-_T{;r$7>z=pI&bu~#JYms-*zw{F06??eG?i^A zrg|DhKh5U&riK(_@lEls&`|ShHMFy8L*9z$zEx=d-J<#RQxVd?w-YqK+YO#8$bU$% zb}YTrg-sNH^SkEXY!ts5(anGTn8Rh@+TPW3tQes4{6HDSFSEZ?Keh)4bE_fFc`}mK z*eH%n2m0=*8wu5!OFhIDE8DRG?ACYl%9_Kxgr`rBj$fTTeG2-hvSJU4LJCe|qgTg- zrV{Hoq2f5Raj+F}LWTj4(Nu?OA(P~q4d7SS7kL0!!Xoj#XCgGs2XlXa1=nJ&wW;eZ zB@c1e+?D~75{0Aun@OHu5k_nC>6=p-eGI>)M4Rac_;TCpr_zRpW*Y?&C`mBlvqMD# z9VDLWh6icv>=8CR{fJJmkYuPJb|a@^HWWGnSpTXFPMA6GWVy2$gz?i?9=6L^uWol{ zQ(;jxC*GdRowRTI*@A!B(>;1rKVwb?Q^%%@nDkM4dd&qC=0=2~V$X^D(@ve9CXbEmFpI>WrJEf$Z^>I?dh!;XA2Tff z=FiQWKks;(yTI9{Fo$&>Scvb9Pj&pS6Lz7V8s>S&qPAg127jI%9K-Rc-Nk{rZiuoi|N{vUC>v=XnMzyrwSSul;W=I{ydGZVrW0s(h?_wA;-Kuq2>ai$U)tQ5i%6=;QD7C-1?fG_{^<*NA-IZTr1Ky&8 z?XFnyiwEY+7M8w+$@e2Z^?6Fow-FJF%=|I>47+}|yb@^q&|Lll62~}UTn5=JYhoA> zj{7W@0b#aM&aYtoxC_2-L|W&yDQ2OVo96OYXG+Q+?92by?3dO1zvU&0#osd5d)2cn z|KrY!XEXc%i{|cQ{RV|3o6#BmnRL E01erP3;+NC diff --git a/charts/timescaledb-multinode/install.sh b/charts/timescaledb-multinode/install.sh new file mode 100755 index 00000000..48dc220e --- /dev/null +++ b/charts/timescaledb-multinode/install.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env bash +set -e + +USAGE="$(basename $0) [namespace]" + +dependencies() { + helm dependency list | grep -q 'missing\|wrong version\|too many matches' && { + helm dependency update || exit 1 + } + return 0 +} + +# validate helm v3 is installed +type helm &>/dev/null || { + echo "couldn't find 'helm' command in the path, make sure it's installed" >&2 + exit 1 +} +helm version | cut -d '"' -f 2 | grep -q v3 || { + echo "helm V3 is required" >&2 + exit 1 +} + +# at least 2 args must be passed +[ $# -lt 2 ] && { + echo $USAGE >&2 + exit 1 +} + +# change to script directory +cd ${0%/*} +NAME=`basename $PWD` +ENV="$1" +REGION="$2" +NS="${3:-monitoring}" +REGIONAL_VALUES="values/$REGION.yaml" +ENV_VALUES="values/$ENV.yaml" +VALUES="values/$ENV/$REGION.yaml" + +test -f "$REGIONAL_VALUES" && { + echo "regional values file $REGIONAL_VALUES will be used" +} || REGIONAL_VALUES=/dev/null + +test -f "$ENV_VALUES" && { + echo "env values file $ENV_VALUES will be used" +} || ENV_VALUES=/dev/null + +test -f "$VALUES" && { + echo "values file $VALUES will be used" +} || VALUES=/dev/null + +# validate chart dependencies +dependencies + +helm upgrade --install timescaledb \ + --reset-values --dry-run\ + --history-max 3 \ + --kube-context teleport.$REGION.$ENV.firebolt.io \ + --namespace $NS --create-namespace \ + --values $REGIONAL_VALUES \ + --values $ENV_VALUES \ + --values $VALUES . diff --git a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml index 9186c27a..d8a23e1c 100644 --- a/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml +++ b/charts/timescaledb-multinode/templates/statefulset-timescaledb-accessnode.yaml @@ -26,7 +26,7 @@ spec: app: {{ template "timescaledb.fullname" . }} release: {{ .Release.Name }} timescaleNodeType: access - {{ with .Values.accessNode.extraPodLabels -}} + {{- with .Values.accessNode.extraPodLabels }} {{- toYaml . | nindent 8 }} {{- end }} spec: From a707be243a179b55efcab4890bb0a6f37efc7a8d Mon Sep 17 00:00:00 2001 From: Elad Dolev Date: Wed, 21 Jul 2021 12:39:44 +0300 Subject: [PATCH 30/32] Delete install.sh committed by mistake --- charts/timescaledb-multinode/install.sh | 61 ------------------------- 1 file changed, 61 deletions(-) delete mode 100755 charts/timescaledb-multinode/install.sh diff --git a/charts/timescaledb-multinode/install.sh b/charts/timescaledb-multinode/install.sh deleted file mode 100755 index 48dc220e..00000000 --- a/charts/timescaledb-multinode/install.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env bash -set -e - -USAGE="$(basename $0) [namespace]" - -dependencies() { - helm dependency list | grep -q 'missing\|wrong version\|too many matches' && { - helm dependency update || exit 1 - } - return 0 -} - -# validate helm v3 is installed -type helm &>/dev/null || { - echo "couldn't find 'helm' command in the path, make sure it's installed" >&2 - exit 1 -} -helm version | cut -d '"' -f 2 | grep -q v3 || { - echo "helm V3 is required" >&2 - exit 1 -} - -# at least 2 args must be passed -[ $# -lt 2 ] && { - echo $USAGE >&2 - exit 1 -} - -# change to script directory -cd ${0%/*} -NAME=`basename $PWD` -ENV="$1" -REGION="$2" -NS="${3:-monitoring}" -REGIONAL_VALUES="values/$REGION.yaml" -ENV_VALUES="values/$ENV.yaml" -VALUES="values/$ENV/$REGION.yaml" - -test -f "$REGIONAL_VALUES" && { - echo "regional values file $REGIONAL_VALUES will be used" -} || REGIONAL_VALUES=/dev/null - -test -f "$ENV_VALUES" && { - echo "env values file $ENV_VALUES will be used" -} || ENV_VALUES=/dev/null - -test -f "$VALUES" && { - echo "values file $VALUES will be used" -} || VALUES=/dev/null - -# validate chart dependencies -dependencies - -helm upgrade --install timescaledb \ - --reset-values --dry-run\ - --history-max 3 \ - --kube-context teleport.$REGION.$ENV.firebolt.io \ - --namespace $NS --create-namespace \ - --values $REGIONAL_VALUES \ - --values $ENV_VALUES \ - --values $VALUES . From 956ff4898f08a4b948de7adb3bb786d3e48785fb Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Thu, 22 Jul 2021 09:46:30 +0300 Subject: [PATCH 31/32] increase job backofflimit --- charts/timescaledb-multinode/templates/job-attach-datanode.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/timescaledb-multinode/templates/job-attach-datanode.yaml b/charts/timescaledb-multinode/templates/job-attach-datanode.yaml index 0c9d8c9c..c6ceaf5d 100644 --- a/charts/timescaledb-multinode/templates/job-attach-datanode.yaml +++ b/charts/timescaledb-multinode/templates/job-attach-datanode.yaml @@ -71,7 +71,7 @@ https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-INTERPOLATION name: {{ template "timescaledb.accessname" $ }} key: password-superuser restartPolicy: OnFailure - backoffLimit: 2 + backoffLimit: 20 ... {{ end }} {{ end }} From 1720e3564997281697f20e3376b54007e534f94c Mon Sep 17 00:00:00 2001 From: raresfirebolt Date: Thu, 22 Jul 2021 09:58:38 +0300 Subject: [PATCH 32/32] chart package --- charts/repo/index.yaml | 56 ++++++++++---------- charts/repo/timescaledb-multinode-0.9.0.tgz | Bin 11433 -> 10856 bytes 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/charts/repo/index.yaml b/charts/repo/index.yaml index b7c121df..be77e0c1 100644 --- a/charts/repo/index.yaml +++ b/charts/repo/index.yaml @@ -2,9 +2,9 @@ apiVersion: v1 entries: timescaledb-multinode: - apiVersion: v1 - created: "2021-07-21T12:36:40.481444211+03:00" + created: "2021-07-22T09:54:55.736858883+03:00" description: TimescaleDB Multinode Deployment. - digest: 0a4af802b3bd48c010ad893ae68dd1361e95b12d2bdf4f0e5d12445154f61490 + digest: f07bab11cdb498809c07d807974cd4499a304fae9c9251779a4a6eaac3551515 home: https://github.com/timescale/timescaledb-kubernetes maintainers: - email: support@timescale.com @@ -18,7 +18,7 @@ entries: - timescaledb-multinode-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-07-21T12:36:40.480433927+03:00" + created: "2021-07-22T09:54:55.735903222+03:00" description: TimescaleDB Multinode Deployment. digest: bc4f70989a2bdc35e5a4a9efe311a87ffcef3e0acb5ee704a010d49ecb372765 home: https://github.com/timescale/timescaledb-kubernetes @@ -34,7 +34,7 @@ entries: - timescaledb-multinode-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-07-21T12:36:40.47953443+03:00" + created: "2021-07-22T09:54:55.734946117+03:00" description: TimescaleDB Multinode Deployment. digest: e0729d1731fb22f769494b921b275153d625aebcbdb68c432c2ccd1897f4d66c home: https://github.com/timescale/timescaledb-kubernetes @@ -50,7 +50,7 @@ entries: - timescaledb-multinode-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-07-21T12:36:40.478716355+03:00" + created: "2021-07-22T09:54:55.734141299+03:00" description: TimescaleDB Multinode Deployment. digest: 101d72220765f49e6b081c134c1f793bbe90d7f67a4f4c36c794be989e34623d home: https://github.com/timescale/timescaledb-kubernetes @@ -66,7 +66,7 @@ entries: - timescaledb-multinode-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-07-21T12:36:40.477931168+03:00" + created: "2021-07-22T09:54:55.733314553+03:00" description: TimescaleDB Multinode Deployment. digest: db2bea7290cd265835e11859a39e72562c7e21f1a90df0401e14e05d7adea1d6 home: https://github.com/timescale/timescaledb-kubernetes @@ -82,7 +82,7 @@ entries: - timescaledb-multinode-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-07-21T12:36:40.477154234+03:00" + created: "2021-07-22T09:54:55.732478183+03:00" description: TimescaleDB Multinode Deployment. digest: d537d361eb0f72bce12d8e4f993dbc980f7850a22bb1a7bcd8825a7a4a00d38f home: https://github.com/timescale/timescaledb-kubernetes @@ -98,7 +98,7 @@ entries: - timescaledb-multinode-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2021-07-21T12:36:40.476346972+03:00" + created: "2021-07-22T09:54:55.731592561+03:00" description: TimescaleDB Multinode Deployment. digest: a6c664a75489e069cdd2d36dff87ca6d2b3a38a3edf16de4234418b354e40eea home: https://github.com/timescale/timescaledb-kubernetes @@ -115,7 +115,7 @@ entries: version: 0.3.0 timescaledb-single: - apiVersion: v1 - created: "2021-07-21T12:36:40.524305441+03:00" + created: "2021-07-22T09:54:55.779912355+03:00" description: TimescaleDB HA Deployment. digest: 8bb26c938538e767a0da086f7535e1b81fa03af292becf44d406d7a8d8da9321 home: https://github.com/timescale/timescaledb-kubernetes @@ -131,7 +131,7 @@ entries: - timescaledb-single-0.9.0.tgz version: 0.9.0 - apiVersion: v1 - created: "2021-07-21T12:36:40.521703971+03:00" + created: "2021-07-22T09:54:55.777334123+03:00" description: TimescaleDB HA Deployment. digest: a976fc399539e012942a3e55dce1d735c5c36bb4678e57a66ac7d280c8bfceb9 home: https://github.com/timescale/timescaledb-kubernetes @@ -147,7 +147,7 @@ entries: - timescaledb-single-0.8.2.tgz version: 0.8.2 - apiVersion: v1 - created: "2021-07-21T12:36:40.519122924+03:00" + created: "2021-07-22T09:54:55.774752711+03:00" description: TimescaleDB HA Deployment. digest: d047ac65b447b75f748c6fe94cec7ed208e91c20b42eb912baa7aa4f4131518c home: https://github.com/timescale/timescaledb-kubernetes @@ -163,7 +163,7 @@ entries: - timescaledb-single-0.8.1.tgz version: 0.8.1 - apiVersion: v1 - created: "2021-07-21T12:36:40.516534523+03:00" + created: "2021-07-22T09:54:55.772154048+03:00" description: TimescaleDB HA Deployment. digest: 63a9d362ea53efbe6103b8fd0cf07400aa2ccb090740eda213f862d588320c79 home: https://github.com/timescale/timescaledb-kubernetes @@ -179,7 +179,7 @@ entries: - timescaledb-single-0.8.0.tgz version: 0.8.0 - apiVersion: v1 - created: "2021-07-21T12:36:40.513562526+03:00" + created: "2021-07-22T09:54:55.769156425+03:00" description: TimescaleDB HA Deployment. digest: 1948357489eff42eb81bcb59a465615e20b791dc54178d1bbaf1a650b7f46de1 home: https://github.com/timescale/timescaledb-kubernetes @@ -195,7 +195,7 @@ entries: - timescaledb-single-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2021-07-21T12:36:40.511201402+03:00" + created: "2021-07-22T09:54:55.766780779+03:00" description: TimescaleDB HA Deployment. digest: 39e270f51713dd0f2be64c8a80d747bc1e78173fd3e2c6172ff993f9a7dacd1b home: https://github.com/timescale/timescaledb-kubernetes @@ -211,7 +211,7 @@ entries: - timescaledb-single-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2021-07-21T12:36:40.508838822+03:00" + created: "2021-07-22T09:54:55.764406695+03:00" description: TimescaleDB HA Deployment. digest: 463bf4eca84cbefbd2e4a88928fe1ccc59a69fb95a4952ce15ca746adb479a29 home: https://github.com/timescale/timescaledb-kubernetes @@ -227,7 +227,7 @@ entries: - timescaledb-single-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2021-07-21T12:36:40.506671799+03:00" + created: "2021-07-22T09:54:55.762224915+03:00" description: TimescaleDB HA Deployment. digest: 8ad82438d3fc818e6729afa77607521b7510b68fa4e0b4e7d0836f33990f0a63 home: https://github.com/timescale/timescaledb-kubernetes @@ -243,7 +243,7 @@ entries: - timescaledb-single-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2021-07-21T12:36:40.504071552+03:00" + created: "2021-07-22T09:54:55.759367663+03:00" description: TimescaleDB HA Deployment. digest: b1c985faf6852aea91e6931230d19656f126fb7eabff004e92ffa2fb411cfbe2 home: https://github.com/timescale/timescaledb-kubernetes @@ -259,7 +259,7 @@ entries: - timescaledb-single-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2021-07-21T12:36:40.501883256+03:00" + created: "2021-07-22T09:54:55.75719717+03:00" description: TimescaleDB HA Deployment. digest: 977ccd3dfe52e84a18e9ecf8c4138a937621910f743071fff58b497c357afb7c home: https://github.com/timescale/timescaledb-kubernetes @@ -275,7 +275,7 @@ entries: - timescaledb-single-0.5.8.tgz version: 0.5.8 - apiVersion: v1 - created: "2021-07-21T12:36:40.499712607+03:00" + created: "2021-07-22T09:54:55.755007106+03:00" description: TimescaleDB HA Deployment. digest: 069c515c7055289ecf8189962e648e033053e8e7bdb47c39f9ec058e99911183 home: https://github.com/timescale/timescaledb-kubernetes @@ -291,7 +291,7 @@ entries: - timescaledb-single-0.5.7.tgz version: 0.5.7 - apiVersion: v1 - created: "2021-07-21T12:36:40.497563507+03:00" + created: "2021-07-22T09:54:55.752936113+03:00" description: TimescaleDB HA Deployment. digest: f0c9b30a4bf3d3e9c221efa37946bef05bad7fe79eb1808a7c8088c2d24e1075 home: https://github.com/timescale/timescaledb-kubernetes @@ -307,7 +307,7 @@ entries: - timescaledb-single-0.5.6.tgz version: 0.5.6 - apiVersion: v1 - created: "2021-07-21T12:36:40.494892848+03:00" + created: "2021-07-22T09:54:55.750472815+03:00" description: TimescaleDB HA Deployment. digest: 27098601d61f727ac71c2bfb67a1240c99188fc56ab4d0a0375cf5abc09547dc home: https://github.com/timescale/timescaledb-kubernetes @@ -323,7 +323,7 @@ entries: - timescaledb-single-0.5.5.tgz version: 0.5.5 - apiVersion: v1 - created: "2021-07-21T12:36:40.492810796+03:00" + created: "2021-07-22T09:54:55.748234847+03:00" description: TimescaleDB HA Deployment. digest: 5bd289b789c7fae00b98ae9d1ce0b86e6b8463fbe4fbdaf20d59b60aca137580 home: https://github.com/timescale/timescaledb-kubernetes @@ -339,7 +339,7 @@ entries: - timescaledb-single-0.5.4.tgz version: 0.5.4 - apiVersion: v1 - created: "2021-07-21T12:36:40.490891174+03:00" + created: "2021-07-22T09:54:55.746307884+03:00" description: TimescaleDB HA Deployment. digest: 6cd19bcb822c9610ad13fbe49b03c3bd9d5f4655920b44e41f937487ecf86d9d home: https://github.com/timescale/timescaledb-kubernetes @@ -355,7 +355,7 @@ entries: - timescaledb-single-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2021-07-21T12:36:40.489172404+03:00" + created: "2021-07-22T09:54:55.74452903+03:00" description: TimescaleDB HA Deployment. digest: 9e2570426e0445a2e4f079fe757bbaadbc95a764c12ce10903f426d3b69cfde9 home: https://github.com/timescale/timescaledb-kubernetes @@ -371,7 +371,7 @@ entries: - timescaledb-single-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2021-07-21T12:36:40.487503444+03:00" + created: "2021-07-22T09:54:55.742781451+03:00" description: TimescaleDB HA Deployment. digest: 128a7f0738f176a2abe6b7e1c3a1173ac6c4a77f7816704add3f0664609915aa home: https://github.com/timescale/timescaledb-kubernetes @@ -387,7 +387,7 @@ entries: - timescaledb-single-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2021-07-21T12:36:40.485840872+03:00" + created: "2021-07-22T09:54:55.740886787+03:00" description: TimescaleDB HA Deployment. digest: f4e0e05c989f04c78d9bd0a5b7ab2c6e1d2227af72ad05f7451a3e01b462bba0 home: https://github.com/timescale/timescaledb-kubernetes @@ -403,7 +403,7 @@ entries: - timescaledb-single-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2021-07-21T12:36:40.48349002+03:00" + created: "2021-07-22T09:54:55.738562002+03:00" description: TimescaleDB HA Deployment. digest: 2ae9d4a4ba25caf626e837244bf092721439e822d486f2c17f238b479012dedb home: https://github.com/timescale/timescaledb-kubernetes @@ -418,4 +418,4 @@ entries: urls: - timescaledb-single-0.4.0.tgz version: 0.4.0 -generated: "2021-07-21T12:36:40.475474375+03:00" +generated: "2021-07-22T09:54:55.730629048+03:00" diff --git a/charts/repo/timescaledb-multinode-0.9.0.tgz b/charts/repo/timescaledb-multinode-0.9.0.tgz index 76351aacd4a18afddc557fc9d0280de0770ec62a..3698224e3f539cc684a99d77a6d85a469d5cf63b 100644 GIT binary patch literal 10856 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 D#fO)}