Skip to content

Commit 5903c48

Browse files
committed
Merge branch 'add-version-1.17' into 'main'
Add version 1.17 Closes #2984 and #2989 See merge request ongresinc/stackgres!1668
2 parents 47cf40a + 2c31c82 commit 5903c48

237 files changed

Lines changed: 3382 additions & 1441 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitlab/issue_templates/RC Release.md

Lines changed: 56 additions & 100 deletions
Large diffs are not rendered by default.

CHANGELOG.md

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,166 @@
1+
# :rocket: Release 1.16.0-rc2 (2025-03-27)
2+
3+
## :notepad_spiral: NOTES
4+
5+
StackGres 1.16.0-rc2 has landed! :rocket: :rainbow: :sunny:
6+
7+
Less containers is better. Now you can reduce your SGCluster's Pod to only 2 containers (and just 1 init container) if you want leaner (but with less functionalities) Pods. :muscle:
8+
9+
A long waited functionality that changes a bit the validation of referenced resources in Webhooks. You will no more receive messages about missing resources opening the door to a much more pleasant DevOps experience. We also tried to reduce the friction with tools like ArgoCD (still not officially supported though, please, be patient :sweat_smile:) by avoiding setting the infamous caBundle and other small changes that should improve the situation. Last but not least the creation of default resources is now handled by the operator reconciliation cycle and will not be created in the Webhook as we did before.
10+
11+
Setting a configuration parameter without having to create a separate SGPostgresConfig now is possible, but not only for Postgres configuration, we included setting directly Pod's resources, pooling and, now, you have the ability to modify postgres_exporter queries!
12+
13+
Improvements on SGStream should allow to fix some issues and make this component more useful for CDC use cases. We wait for your feedback!
14+
15+
Also much more functionalities and fixes where added to this release that comes strong, hoping you will enjoy it.
16+
17+
So, what you are waiting for? Try this release and have a look at the future of StackGres!
18+
19+
## :sparkles: NEW FEATURES AND CHANGES
20+
21+
* Generate default configs using reconciliation cycle
22+
* Removed reference validation on webhook calls
23+
* Allow to override SGInstanceProfile, SGPostgresConfig and SGPoolingConfig
24+
* Support for Grafana v10 and v11
25+
* Support to overwrite and add postgres exporter queries
26+
* Allow to encrypt stored object with libsodium or OpenPGP
27+
* If possible choose the latest version of the extension when multiple versions are available and version is not set
28+
* Support for Debezium asyncronous engine in SGStream
29+
* Store the status of annotation signal in the PersistentVolume for SGStream
30+
* Set the SGStream as Completed when running with a Deployment
31+
* Support to update SGStream spec when locked or when maxRetries is not set (when using a Deployment).
32+
* Support for skipping drop of replication slot and publication on tombstone for SGStream
33+
* Include the node name of each Pod in the SGCluster status
34+
* Allow to change the operator listening port, Service port and to set hostNetwork
35+
* Added memory limiter and set resources for OTEL collector
36+
* Avoid setting caBundle in webhooks
37+
* Follow webhooks original ordering
38+
* Avoid usage of nullable in CRDs
39+
* Removed pgbouncer auth, setup-scripts and cluster controller init containers and merged remaining init containers
40+
41+
## Web Console
42+
43+
Nothing new here! :eyes:
44+
45+
## :bug: FIXES
46+
47+
* Extension installation permission issue
48+
* Patroni reset is not skipped for replicas after major version upgrade
49+
* Major version upgrade SGDbOps store wrong source backup path
50+
* Wrong original SGStream service path in webhooks
51+
* Separate resources cache by resource that generates them to avoid stale resources
52+
* Failure to apply default naming strategy when topic has not the expected prefix in SGStream
53+
* Can not change the shards clusters count if restored from a backup
54+
* Controller fails with error when pgbouncer instance is not configured properly or unavailable
55+
* NullPointerException in cleanupNonGarbageCollectedResources
56+
* SGStream uses wrong SGCluster service name
57+
* Prevent pg_total_relation_size from blocking WAL fetching for replicas
58+
* Major version upgrade fail on any error
59+
* SGStream source database used instead of target database
60+
61+
## Web Console
62+
63+
* Some properties are not checked for undefined
64+
65+
## :construction: KNOWN ISSUES
66+
67+
* Backups may be restored with inconsistencies when performed with a Postgres instance running on a different architecture ([#1539](https://gitlab.com/ongresinc/stackgres/-/issues/1539))
68+
69+
## :up: UPGRADE
70+
71+
To upgrade from a previous installation of the StackGres operator's helm chart you will have to upgrade the helm chart release.
72+
For more detailed information please refer to [our documentation](https://stackgres.io/doc/latest/install/helm/upgrade/#upgrade-operator).
73+
74+
To upgrade StackGres operator's (upgrade only works starting from 1.1 version or above) helm chart issue the following commands (replace namespace and release name if you used something different):
75+
76+
`helm upgrade -n "stackgres" "stackgres-operator" https://stackgres.io/downloads/stackgres-k8s/stackgres/1.16.0-rc2/helm/stackgres-operator.tgz`
77+
78+
> IMPORTANT: This release is incompatible with previous `alpha` or `beta` versions. Upgrading from those versions will require uninstalling completely StackGres including all clusters and StackGres CRDs (those in `stackgres.io` group) first.
79+
80+
Thank you for all the issues created, ideas, and code contributions by the StackGres Community!
81+
82+
## :twisted_rightwards_arrows: [FULL LIST OF COMMITS](https://gitlab.com/ongresinc/stackgres/-/commits/1.16.0-rc2)
83+
84+
# :rocket: Release 1.16.0-rc1 (2025-03-19)
85+
86+
## :notepad_spiral: NOTES
87+
88+
StackGres 1.16.0-rc1 has landed! :rocket: :rainbow: :sunny:
89+
90+
Less containers is better. Now you can reduce your SGCluster's Pod to only 2 containers (and just 1 init container) if you want leaner (but with less functionalities) Pods. :muscle:
91+
92+
A long waited functionality that changes a bit the validation of referenced resources in Webhooks. You will no more receive messages about missing resources opening the door to a much more pleasant DevOps experience. We also tried to reduce the friction with tools like ArgoCD (still not officially supported though, please, be patient :sweat_smile:) by avoiding setting the infamous caBundle and other small changes that should improve the situation. Last but not least the creation of default resources is now handled by the operator reconciliation cycle and will not be created in the Webhook as we did before.
93+
94+
Setting a configuration parameter without having to create a separate SGPostgresConfig now is possible, but not only for Postgres configuration, we included setting directly Pod's resources, pooling and, now, you have the ability to modify postgres_exporter queries!
95+
96+
Improvements on SGStream should allow to fix some issues and make this component more useful for CDC use cases. We wait for your feedback!
97+
98+
Also much more functionalities and fixes where added to this release that comes strong, hoping you will enjoy it.
99+
100+
So, what you are waiting for? Try this release and have a look at the future of StackGres!
101+
102+
## :sparkles: NEW FEATURES AND CHANGES
103+
104+
* Generate default configs using reconciliation cycle
105+
* Removed reference validation on webhook calls
106+
* Allow to override SGInstanceProfile, SGPostgresConfig and SGPoolingConfig
107+
* Support for Grafana v10 and v11
108+
* Support to overwrite and add postgres exporter queries
109+
* Allow to encrypt stored object with libsodium or OpenPGP
110+
* If possible choose the latest version of the extension when multiple versions are available and version is not set
111+
* Support for Debezium asyncronous engine in SGStream
112+
* Store the status of annotation signal in the PersistentVolume for SGStream
113+
* Set the SGStream as Completed when running with a Deployment
114+
* Support to update SGStream spec when locked or when maxRetries is not set (when using a Deployment).
115+
* Support for skipping drop of replication slot and publication on tombstone for SGStream
116+
* Include the node name of each Pod in the SGCluster status
117+
* Allow to change the operator listening port, Service port and to set hostNetwork
118+
* Added memory limiter and set resources for OTEL collector
119+
* Avoid setting caBundle in webhooks
120+
* Follow webhooks original ordering
121+
* Avoid usage of nullable in CRDs
122+
* Removed pgbouncer auth, setup-scripts and cluster controller init containers and merged remaining init containers
123+
124+
## Web Console
125+
126+
Nothing new here! :eyes:
127+
128+
## :bug: FIXES
129+
130+
* Extension installation permission issue
131+
* Patroni reset is not skipped for replicas after major version upgrade
132+
* Major version upgrade SGDbOps store wrong source backup path
133+
* Wrong original SGStream service path in webhooks
134+
* Separate resources cache by resource that generates them to avoid stale resources
135+
* Failure to apply default naming strategy when topic has not the expected prefix in SGStream
136+
* Can not change the shards clusters count if restored from a backup
137+
* Controller fails with error when pgbouncer instance is not configured properly or unavailable
138+
* NullPointerException in cleanupNonGarbageCollectedResources
139+
* SGStream uses wrong SGCluster service name
140+
141+
## Web Console
142+
143+
* Some properties are not checked for undefined
144+
145+
## :construction: KNOWN ISSUES
146+
147+
* Backups may be restored with inconsistencies when performed with a Postgres instance running on a different architecture ([#1539](https://gitlab.com/ongresinc/stackgres/-/issues/1539))
148+
149+
## :up: UPGRADE
150+
151+
To upgrade from a previous installation of the StackGres operator's helm chart you will have to upgrade the helm chart release.
152+
For more detailed information please refer to [our documentation](https://stackgres.io/doc/latest/install/helm/upgrade/#upgrade-operator).
153+
154+
To upgrade StackGres operator's (upgrade only works starting from 1.1 version or above) helm chart issue the following commands (replace namespace and release name if you used something different):
155+
156+
`helm upgrade -n "stackgres" "stackgres-operator" https://stackgres.io/downloads/stackgres-k8s/stackgres/1.16.0-rc1/helm/stackgres-operator.tgz`
157+
158+
> IMPORTANT: This release is incompatible with previous `alpha` or `beta` versions. Upgrading from those versions will require uninstalling completely StackGres including all clusters and StackGres CRDs (those in `stackgres.io` group) first.
159+
160+
Thank you for all the issues created, ideas, and code contributions by the StackGres Community!
161+
162+
## :twisted_rightwards_arrows: [FULL LIST OF COMMITS](https://gitlab.com/ongresinc/stackgres/-/commits/1.16.0-rc1)
163+
1164
# :rocket: Release 1.15.2 (2025-03-06)
2165

3166
## :notepad_spiral: NOTES

doc/content/en/01-introduction/06-versions/_index.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,54 @@ showToc: true
88

99
=======
1010

11+
## StackGres 1.16.0-rc2
12+
13+
| Component | Versions |
14+
| ------ | ----------- |
15+
| PostgreSQL 17 | 17.4, 17.2, 17.0 |
16+
| PostgreSQL 16 | 16.8, 16.6, 16.4, 16.3, 16.2, 16.1, 16.0 |
17+
| PostgreSQL 15 | 15.12, 15.10, 15.8, 15.7, 15.6, 15.5, 15.4, 15.3, 15.2, 15.1, 15.0 |
18+
| PostgreSQL 14 | 14.17, 14.15, 14.13, 14.12, 14.11, 14.10, 14.9, 14.8, 14.7, 14.6, 14.5, 14.4, ~14.2, 14.1, 14.0~ |
19+
| PostgreSQL 13 | 13.20, 13.18, 13.16 13.15, 13.14, 13.13, 13.12, 13.11, 13.10, 13.9, 13.8, 13.7, 13.6, 13.5, 13.4, 13.3, 13.2, 13.1, 13.0 |
20+
| PostgreSQL 12 | 12.22, 12.20, 12.19, 12.18, 12.17, 12.16, 12.15, 12.14, 12.13, 12.12, 12.11, 12.10, 12.9, 12.8, 12.7, 12.6, 12.5, 12.4, 12.3, 12.2 and 12.1 |
21+
| PostgreSQL for Babelfish 16 | 16.4, 16.2, 16.1 |
22+
| PostgreSQL for Babelfish 15 | 15.8, 15.5 |
23+
| PostgreSQL for Babelfish 14 | 14.11, 14.10, 14.3 |
24+
| PostgreSQL for Babelfish 13 | 13.9, 13.6 |
25+
| Patroni | 4.0.5, 4.0.4, 3.3.3, 3.3.2, 3.3.0, 3.2.2, 3.0.2, 2.1.4 |
26+
| WAL-G | 3.0.3, 3.0.2, 3.0.1, 2.0.1, 2.0.0, 1.1 |
27+
| PgBouncer | 1.24.0 |
28+
| Postgres Exporter | 0.17.1 |
29+
| Envoy | 1.33.0 |
30+
| Fluent-Bit | 3.2.8 |
31+
| Fluentd | 1.18.0 |
32+
| Babelfish Compass | 2024.12 |
33+
| OTEL Collector | 0.121.0 |
34+
35+
## StackGres 1.16.0-rc1
36+
37+
| Component | Versions |
38+
| ------ | ----------- |
39+
| PostgreSQL 17 | 17.4, 17.2, 17.0 |
40+
| PostgreSQL 16 | 16.8, 16.6, 16.4, 16.3, 16.2, 16.1, 16.0 |
41+
| PostgreSQL 15 | 15.12, 15.10, 15.8, 15.7, 15.6, 15.5, 15.4, 15.3, 15.2, 15.1, 15.0 |
42+
| PostgreSQL 14 | 14.17, 14.15, 14.13, 14.12, 14.11, 14.10, 14.9, 14.8, 14.7, 14.6, 14.5, 14.4, ~14.2, 14.1, 14.0~ |
43+
| PostgreSQL 13 | 13.20, 13.18, 13.16 13.15, 13.14, 13.13, 13.12, 13.11, 13.10, 13.9, 13.8, 13.7, 13.6, 13.5, 13.4, 13.3, 13.2, 13.1, 13.0 |
44+
| PostgreSQL 12 | 12.22, 12.20, 12.19, 12.18, 12.17, 12.16, 12.15, 12.14, 12.13, 12.12, 12.11, 12.10, 12.9, 12.8, 12.7, 12.6, 12.5, 12.4, 12.3, 12.2 and 12.1 |
45+
| PostgreSQL for Babelfish 16 | 16.4, 16.2, 16.1 |
46+
| PostgreSQL for Babelfish 15 | 15.8, 15.5 |
47+
| PostgreSQL for Babelfish 14 | 14.11, 14.10, 14.3 |
48+
| PostgreSQL for Babelfish 13 | 13.9, 13.6 |
49+
| Patroni | 4.0.5, 4.0.4, 3.3.3, 3.3.2, 3.3.0, 3.2.2, 3.0.2, 2.1.4 |
50+
| WAL-G | 3.0.3, 3.0.2, 3.0.1, 2.0.1, 2.0.0, 1.1 |
51+
| PgBouncer | 1.24.0 |
52+
| Postgres Exporter | 0.17.1 |
53+
| Envoy | 1.33.0 |
54+
| Fluent-Bit | 3.2.8 |
55+
| Fluentd | 1.18.0 |
56+
| Babelfish Compass | 2024.12 |
57+
| OTEL Collector | 0.121.0 |
58+
1159
## StackGres 1.15.2
1260

1361
| Component | Versions |

stackgres-k8s/ci/build/build-functions.sh

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -360,15 +360,15 @@ image_name() {
360360
local MODULE_PLATFORM="$2"
361361
local IMAGE_NAME
362362
local MODULE_PLATFORM_DEPENDENT
363+
local TAG_MODULE_PLATFORM
363364
BUILD_HASH="$(cat stackgres-k8s/ci/build/target/build_hash)"
364365
MODULE_PLATFORM_DEPENDENT="$(jq -r ".modules[\"$MODULE\"].platform_dependent | . != null and ." stackgres-k8s/ci/build/target/config.json)"
365366
if [ "$MODULE_PLATFORM_DEPENDENT" = true ]
366367
then
367-
MODULE_PLATFORM="${MODULE_PLATFORM:-$(get_platform)}"
368+
TAG_MODULE_PLATFORM="-$(printf %s "${MODULE_PLATFORM:-$(get_platform)}" | tr '/' '-')"
368369
else
369-
MODULE_PLATFORM=
370+
TAG_MODULE_PLATFORM=
370371
fi
371-
TAG_MODULE_PLATFORM="$(printf %s "$MODULE_PLATFORM" | tr '/' '-')"
372372
IMAGE_NAME="$(grep "^$MODULE=.*$TAG_MODULE_PLATFORM$" "stackgres-k8s/ci/build/target/image-hashes.$BUILD_HASH")" \
373373
|| die "Unable to retrieve hash for module $MODULE in stackgres-k8s/ci/build/target/image-hashes.$BUILD_HASH" 1
374374
IMAGE_NAME="$(printf %s "$IMAGE_NAME"| cut -d = -f 2-)"
@@ -755,6 +755,27 @@ get_platform_tag_suffix() {
755755
get_platform | tr '/' '-'
756756
}
757757
758+
get_module_hash() {
759+
local MODULE="$1"
760+
local MODULE_PLATFORM="$2"
761+
local IMAGE_HASHES_FILE="stackgres-k8s/ci/build/target/image-hashes.$(cat stackgres-k8s/ci/build/target/build_hash)"
762+
local MODULE_PLATFORM_DEPENDENT
763+
local TAG_MODULE_PLATFORM
764+
if ! grep -q "^${MODULE}=" "$IMAGE_HASHES_FILE"
765+
then
766+
>&2 echo "Module $MODULE not found"
767+
return 1
768+
fi
769+
MODULE_PLATFORM_DEPENDENT="$(jq -r ".modules[\"$MODULE\"].platform_dependent | . != null and ." stackgres-k8s/ci/build/target/config.json)"
770+
if [ "$MODULE_PLATFORM_DEPENDENT" = true ]
771+
then
772+
TAG_MODULE_PLATFORM="-$(printf %s "${MODULE_PLATFORM:-$(get_platform)}" | tr '/' '-')"
773+
else
774+
TAG_MODULE_PLATFORM=
775+
fi
776+
sed -n "s/^${MODULE}=.*:hash-\([^:]\+\)$TAG_MODULE_PLATFORM$/\1/p" "$IMAGE_HASHES_FILE"
777+
}
778+
758779
project_hash() {
759780
git --git-dir "stackgres-k8s/ci/build/target/.git" rev-parse HEAD:
760781
}

0 commit comments

Comments
 (0)