diff --git a/docs/index.yaml b/docs/index.yaml index fe11845..fb7267d 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -1,9 +1,31 @@ apiVersion: v1 entries: postgres-operator: + - apiVersion: v2 + appVersion: 1.13.0 + created: "2024-11-12T12:36:10.462671189+08:00" + description: Postgres Operator creates and manages PostgreSQL clusters running + in Kubernetes + digest: a839601689aea0a7e6bc0712a5244d435683cf3314c95794097ff08540e1dfef + home: https://github.com/zalando/postgres-operator + keywords: + - postgres + - operator + - cloud-native + - patroni + - spilo + maintainers: + - email: opensource@zalando.de + name: Zalando + name: postgres-operator + sources: + - https://github.com/zalando/postgres-operator + urls: + - https://simplygoodsoftware.github.io/pyrus-datacenter-k8s/postgres-operator-1.13.0.tgz + version: 1.13.0 - apiVersion: v2 appVersion: 1.8.2 - created: "2024-10-23T00:10:44.178678227+07:00" + created: "2024-11-12T12:36:10.463914809+08:00" description: Postgres Operator creates and manages PostgreSQL clusters running in Kubernetes digest: f77ffad2e98b72a621e5527015cf607935d3ed688f10ba4b626435acb9631b5b @@ -26,7 +48,32 @@ entries: pyrus-datacenter: - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.350411501+07:00" + created: "2024-11-12T12:36:10.631032702+08:00" + dependencies: + - condition: nats.enabled + name: nats + repository: https://nats-io.github.io/k8s/helm/charts/ + version: 1.1.9 + - alias: postgresql + condition: postgresql.enabledHA + name: postgres-operator + repository: https://simplygoodsoftware.github.io/pyrus-datacenter-k8s + version: 1.13.0 + description: 'Pyrus datacenter instalation v2 for Kubernetes ## Install helm + -n pyrus install --dependency-update --create-namespace pyrus-datacenter ./pyrus-datacenter ## + Upgrade helm -n pyrus upgrade pyrus-datacenter ./pyrus-datacenter --reset-values ## + Uninstall helm -n pyrus uninstall pyrus-datacenter ' + digest: 9179887ef8a5ecb757c5859184124ae95111e9a68772475de89beb50a8e6b161 + maintainers: + - name: Simply Good Software Inc. + name: pyrus-datacenter + type: application + urls: + - https://simplygoodsoftware.github.io/pyrus-datacenter-k8s/pyrus-datacenter-2.0.31.tgz + version: 2.0.31 + - apiVersion: v2 + appVersion: latest + created: "2024-11-12T12:36:10.624381645+08:00" dependencies: - condition: nats.enabled name: nats @@ -51,7 +98,7 @@ entries: version: 2.0.30 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.336514927+07:00" + created: "2024-11-12T12:36:10.611925606+08:00" dependencies: - condition: nats.enabled name: nats @@ -76,7 +123,7 @@ entries: version: 2.0.29 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.329024478+07:00" + created: "2024-11-12T12:36:10.605820859+08:00" dependencies: - condition: nats.enabled name: nats @@ -101,7 +148,7 @@ entries: version: 2.0.28 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.322839929+07:00" + created: "2024-11-12T12:36:10.59777155+08:00" dependencies: - condition: nats.enabled name: nats @@ -126,7 +173,7 @@ entries: version: 2.0.27 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.314717323+07:00" + created: "2024-11-12T12:36:10.59078881+08:00" dependencies: - condition: nats.enabled name: nats @@ -151,7 +198,7 @@ entries: version: 2.0.26 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.308373408+07:00" + created: "2024-11-12T12:36:10.584702781+08:00" dependencies: - condition: nats.enabled name: nats @@ -176,7 +223,7 @@ entries: version: 2.0.25 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.300675755+07:00" + created: "2024-11-12T12:36:10.577178829+08:00" dependencies: - condition: nats.enabled name: nats @@ -201,7 +248,7 @@ entries: version: 2.0.24 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.292858761+07:00" + created: "2024-11-12T12:36:10.569816772+08:00" dependencies: - condition: nats.enabled name: nats @@ -226,7 +273,7 @@ entries: version: 2.0.23 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.285171645+07:00" + created: "2024-11-12T12:36:10.563702527+08:00" dependencies: - condition: nats.enabled name: nats @@ -251,7 +298,7 @@ entries: version: 2.0.22 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.278553649+07:00" + created: "2024-11-12T12:36:10.556209655+08:00" dependencies: - condition: nats.enabled name: nats @@ -276,7 +323,7 @@ entries: version: 2.0.21 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.271043488+07:00" + created: "2024-11-12T12:36:10.549277271+08:00" dependencies: - condition: nats.enabled name: nats @@ -301,7 +348,7 @@ entries: version: 2.0.20 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.258895446+07:00" + created: "2024-11-12T12:36:10.537714381+08:00" dependencies: - condition: nats.enabled name: nats @@ -326,7 +373,7 @@ entries: version: 2.0.19 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.250631393+07:00" + created: "2024-11-12T12:36:10.530899473+08:00" dependencies: - condition: nats.enabled name: nats @@ -351,7 +398,7 @@ entries: version: 2.0.18 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.243693612+07:00" + created: "2024-11-12T12:36:10.523428602+08:00" dependencies: - condition: nats.enabled name: nats @@ -376,7 +423,7 @@ entries: version: 2.0.17 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.236235625+07:00" + created: "2024-11-12T12:36:10.51713926+08:00" dependencies: - condition: nats.enabled name: nats @@ -401,7 +448,7 @@ entries: version: 2.0.16 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.230235453+07:00" + created: "2024-11-12T12:36:10.510511111+08:00" dependencies: - condition: nats.enabled name: nats @@ -426,7 +473,7 @@ entries: version: 2.0.15 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.222809207+07:00" + created: "2024-11-12T12:36:10.504969926+08:00" dependencies: - condition: nats.enabled name: nats @@ -451,7 +498,7 @@ entries: version: 2.0.14 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.215409474+07:00" + created: "2024-11-12T12:36:10.498568766+08:00" dependencies: - condition: nats.enabled name: nats @@ -476,7 +523,7 @@ entries: version: 2.0.13 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.209589482+07:00" + created: "2024-11-12T12:36:10.491417705+08:00" dependencies: - condition: nats.enabled name: nats @@ -501,7 +548,7 @@ entries: version: 2.0.12 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.201556249+07:00" + created: "2024-11-12T12:36:10.48593826+08:00" dependencies: - condition: nats.enabled name: nats @@ -526,7 +573,7 @@ entries: version: 2.0.11 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.194863032+07:00" + created: "2024-11-12T12:36:10.479898467+08:00" dependencies: - condition: nats.enabled name: nats @@ -551,7 +598,7 @@ entries: version: 2.0.10 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.39113495+07:00" + created: "2024-11-12T12:36:10.661200029+08:00" dependencies: - condition: nats.enabled name: nats @@ -576,7 +623,7 @@ entries: version: 2.0.9 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.383536828+07:00" + created: "2024-11-12T12:36:10.654724836+08:00" dependencies: - condition: nats.enabled name: nats @@ -601,7 +648,7 @@ entries: version: 2.0.7 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.376672465+07:00" + created: "2024-11-12T12:36:10.649491518+08:00" dependencies: - condition: nats.enabled name: nats @@ -626,7 +673,7 @@ entries: version: 2.0.6 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.370883073+07:00" + created: "2024-11-12T12:36:10.642433138+08:00" dependencies: - condition: nats.enabled name: nats @@ -651,7 +698,7 @@ entries: version: 2.0.5 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.364398652+07:00" + created: "2024-11-12T12:36:10.637213857+08:00" dependencies: - condition: nats.enabled name: nats @@ -676,7 +723,7 @@ entries: version: 2.0.4 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.344263171+07:00" + created: "2024-11-12T12:36:10.618316429+08:00" dependencies: - condition: nats.enabled name: nats @@ -701,7 +748,7 @@ entries: version: 2.0.3 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.263009424+07:00" + created: "2024-11-12T12:36:10.541821904+08:00" dependencies: - condition: nats.enabled name: nats @@ -721,7 +768,7 @@ entries: version: 2.0.2 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.189021896+07:00" + created: "2024-11-12T12:36:10.474026855+08:00" dependencies: - condition: nats.enabled name: nats @@ -741,7 +788,7 @@ entries: version: 2.0.1 - apiVersion: v2 appVersion: latest - created: "2024-10-23T00:10:44.182920832+07:00" + created: "2024-11-12T12:36:10.468187511+08:00" dependencies: - condition: nats.enabled name: nats @@ -759,4 +806,4 @@ entries: urls: - https://simplygoodsoftware.github.io/pyrus-datacenter-k8s/pyrus-datacenter-2.0.0.tgz version: 2.0.0 -generated: "2024-10-23T00:10:44.177248247+07:00" +generated: "2024-11-12T12:36:10.461119422+08:00" diff --git a/docs/postgres-operator-1.13.0.tgz b/docs/postgres-operator-1.13.0.tgz new file mode 100644 index 0000000..3d7ca4c Binary files /dev/null and b/docs/postgres-operator-1.13.0.tgz differ diff --git a/docs/pyrus-datacenter-2.0.31.tgz b/docs/pyrus-datacenter-2.0.31.tgz new file mode 100644 index 0000000..4693b3b Binary files /dev/null and b/docs/pyrus-datacenter-2.0.31.tgz differ diff --git a/pyrus-datacenter/Chart.yaml b/pyrus-datacenter/Chart.yaml index bb1f7e1..f71edd1 100644 --- a/pyrus-datacenter/Chart.yaml +++ b/pyrus-datacenter/Chart.yaml @@ -19,7 +19,7 @@ maintainers: type: application ## Helm chart version -version: 2.0.30 +version: 2.0.31 ## Pyrus default version appVersion: "latest" @@ -31,7 +31,7 @@ dependencies: condition: nats.enabled - name: postgres-operator - version: "1.8.2" + version: "1.13.0" repository: "https://simplygoodsoftware.github.io/pyrus-datacenter-k8s" condition: postgresql.enabledHA alias: postgresql diff --git a/pyrus-datacenter/templates/020-pyrus-postgresql-statefulset.yaml b/pyrus-datacenter/templates/020-pyrus-postgresql-statefulset.yaml index 36af481..26a3af4 100644 --- a/pyrus-datacenter/templates/020-pyrus-postgresql-statefulset.yaml +++ b/pyrus-datacenter/templates/020-pyrus-postgresql-statefulset.yaml @@ -1,6 +1,6 @@ {{- $cname := "pyrus-postgresql" }} -{{- if not .Values.postgresql.enabledHA }} -{{- if not .Values.database.external }} +{{- if not $.Values.postgresql.enabledHA }} +{{- if not $.Values.database.external }} apiVersion: apps/v1 kind: StatefulSet metadata: @@ -22,7 +22,7 @@ spec: {{- if .Values.imagePullSecrets }} imagePullSecrets: - name: docker-pyrus-cred -{{- end }} +{{- end }} containers: - name: *name image: {{ .Values.containersRepo.default }}/{{ .Values.devPrefix }}pyrus-pgsql-13:{{ .Values.tagsContainers.All }} diff --git a/pyrus-datacenter/templates/051-setupparam-job.yaml b/pyrus-datacenter/templates/051-setupparam-job.yaml index e8f5c1c..bcf1713 100644 --- a/pyrus-datacenter/templates/051-setupparam-job.yaml +++ b/pyrus-datacenter/templates/051-setupparam-job.yaml @@ -57,6 +57,12 @@ spec: args: - -ct - --start +{{- if $.Values.postgresql.enabledHA }} + volumeMounts: + - mountPath: /app/PostgresChangeDataCapture/start.sql + name: pyrus-patrony-fix + subPath: start.sql +{{- end }} {{- end }} @@ -276,3 +282,13 @@ spec: command: [ "ls" ] {{- end }} +{{- if $.Values.postgresql.enabledHA }} + volumes: + - name: pyrus-patrony-fix + configMap: + name: pyrus-patrony-fix + items: + - key: start.sql + path: start.sql +{{- end }} + diff --git a/pyrus-datacenter/templates/300-db.yaml b/pyrus-datacenter/templates/300-db.yaml index 2c38cd1..0af4ca3 100644 --- a/pyrus-datacenter/templates/300-db.yaml +++ b/pyrus-datacenter/templates/300-db.yaml @@ -29,5 +29,7 @@ spec: - host all all all md5 postgresql: version: "13" + parameters: + wal_level: logical {{- end }} {{- end }} diff --git a/pyrus-datacenter/templates/pyrus-patrony-fix.yaml b/pyrus-datacenter/templates/pyrus-patrony-fix.yaml new file mode 100644 index 0000000..513d470 --- /dev/null +++ b/pyrus-datacenter/templates/pyrus-patrony-fix.yaml @@ -0,0 +1,43 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: pyrus-patrony-fix +data: + start.sql: | + START TRANSACTION; + do $$ + declare + rs text; + begin + create extension if not exists pg_cron; + exception when others then + get stacked diagnostics rs = message_text; + IF not rs like 'can only create extension in database postgres%' then + raise exception 'ERROR: %s', rs; + end if; + + create schema if not exists cron; + create or replace function cron.schedule(tm text, cl text) RETURNS void as $startf$ + begin + create extension if not exists dblink; + perform * from dblink('dbname=postgres', 'SELECT cron.schedule_in_database('|| quote_literal(tm) || ',' || quote_literal('pyrusdb') ||','|| quote_literal(cl) ||');') AS target_inventory(target_item_id int); + end; $startf$ language plpgsql; + end $$; + COMMIT; + + START TRANSACTION; + do $$ + begin + if not exists ( + select * + from pg_replication_slots + where slot_name = + (select value from cdc.params where name = 'slot_name')) then + perform * from pg_create_logical_replication_slot((select value from cdc.params where name = 'slot_name'), 'wal2json'); + + perform cron.schedule('* * * * *', 'call cdc.do_every_interval();'); + + perform cron.schedule('*/5 * * * *', 'call cdc.vacuum();'); + end if; + end $$; + COMMIT;