Skip to content

Commit 2c64433

Browse files
GabriFedi97NiccoloFeigbartolini
authored
feat: postgres parameters in extension metadata (#154)
Adds support for defining PostgreSQL configuration parameters in extension metadata for use in Chainsaw e2e tests. Extensions can now specify `postgresql_parameters` in `metadata.hcl` (e.g., `{"pgaudit.log_client" = "on"}`). Closes #153 Signed-off-by: Gabriele Fedi <gabriele.fedi@enterprisedb.com> Signed-off-by: Niccolò Fei <niccolo.fei@enterprisedb.com> Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com> Co-authored-by: Niccolò Fei <niccolo.fei@enterprisedb.com> Co-authored-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com>
1 parent baafb4d commit 2c64433

11 files changed

Lines changed: 21 additions & 1 deletion

File tree

dagger/maintenance/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ func (m *Maintenance) GenerateTestingValues(
204204
Name: metadata.Name,
205205
SQLName: metadata.SQLName,
206206
SharedPreloadLibraries: metadata.SharedPreloadLibraries,
207+
PostgresqlParameters: metadata.PostgresqlParameters,
207208
PgImage: pgImage,
208209
Version: version,
209210
CreateExtension: metadata.CreateExtension,

dagger/maintenance/parse.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ type extensionMetadata struct {
2929
SQLName string `hcl:"sql_name" cty:"sql_name"`
3030
ImageName string `hcl:"image_name" cty:"image_name"`
3131
SharedPreloadLibraries []string `hcl:"shared_preload_libraries" cty:"shared_preload_libraries"`
32+
PostgresqlParameters map[string]string `hcl:"postgresql_parameters" cty:"postgresql_parameters"`
3233
ExtensionControlPath []string `hcl:"extension_control_path" cty:"extension_control_path"`
3334
DynamicLibraryPath []string `hcl:"dynamic_library_path" cty:"dynamic_library_path"`
3435
LdLibraryPath []string `hcl:"ld_library_path" cty:"ld_library_path"`

dagger/maintenance/testingvalues.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ type TestingValues struct {
2121
Name string `yaml:"name"`
2222
SQLName string `yaml:"sql_name"`
2323
SharedPreloadLibraries []string `yaml:"shared_preload_libraries"`
24+
PostgresqlParameters map[string]string `yaml:"postgresql_parameters"`
2425
PgImage string `yaml:"pg_image"`
2526
Version string `yaml:"version"`
2627
CreateExtension bool `yaml:"create_extension"`

pg-crash/metadata.hcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ metadata = {
66
image_name = "pg-crash"
77
licenses = ["BSD-3-Clause"]
88
shared_preload_libraries = ["pg_crash"]
9+
postgresql_parameters = {}
910
extension_control_path = []
1011
dynamic_library_path = []
1112
ld_library_path = []

pgaudit/metadata.hcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ metadata = {
44
image_name = "pgaudit"
55
licenses = ["PostgreSQL"]
66
shared_preload_libraries = ["pgaudit"]
7+
postgresql_parameters = {}
78
extension_control_path = []
89
dynamic_library_path = []
910
ld_library_path = []

pgvector/metadata.hcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ metadata = {
44
image_name = "pgvector"
55
licenses = ["PostgreSQL"]
66
shared_preload_libraries = []
7+
postgresql_parameters = {}
78
extension_control_path = []
89
dynamic_library_path = []
910
ld_library_path = []

postgis/metadata.hcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ metadata = {
55
licenses = [ "GPL-2.0-or-later", "MIT", "LGPL-2.1-or-later",
66
"GPL-3.0-or-later", "Apache-2.0", "PostgreSQL", "Zlib" ]
77
shared_preload_libraries = []
8+
postgresql_parameters = {}
89
extension_control_path = []
910
dynamic_library_path = []
1011
ld_library_path = ["system"]

postgis/test/cluster.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ spec:
1010
size: 1Gi
1111

1212
postgresql:
13+
parameters: ($values.postgresql_parameters)
1314
shared_preload_libraries: ($values.shared_preload_libraries)
1415
extensions: ($values.extensions)

templates/README.md.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ spec:
6262
name: cluster-{{ .Name }}
6363
extensions:
6464
- name: {{ .Name }}
65-
# renovate: suite={{ .DefaultDistro }}-pgdg depName={{ replaceAll .Package "%version%" (printf "%d" .DefaultVersion) }} extractVersion=^(?<version>\d+\.\d+\.\d+)
65+
# renovate: suite={{ .DefaultDistro }}-pgdg depName={{ replaceAll .Package "%version%" (printf "%d" .DefaultVersion) }} extractVersion=^(?<version>\d+\.\d+)
6666
version: '1.0'
6767
```
6868

templates/metadata.hcl.tmpl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,17 @@ metadata = {
2727
# Example: ["pgaudit"].
2828
shared_preload_libraries = []
2929

30+
# TODO: Remove this comment block after customizing the file.
31+
# `postgresql_parameters`: custom PostgreSQL configuration parameters to be set
32+
# for this extension. This is a map of key-value pairs.
33+
# This option should be reserved for parameters that are strictly necessary
34+
# for the extension to function properly. Avoid setting parameters that just
35+
# customize the behavior of the extension.
36+
# Usually empty.
37+
# Used in tests.
38+
# Example: { "pgaudit.log_client" = "on" }.
39+
postgresql_parameters = {}
40+
3041
# TODO: Remove this comment block after customizing the file.
3142
# `extension_control_path`: if EMPTY (`[]`), the operator follows the CNPG
3243
# convention and will add the image's `share` directory to

0 commit comments

Comments
 (0)