MCPcopy Create free account
hub / github.com/cloudnative-pg/cloudnative-pg / SetEnvVars

Function SetEnvVars

pkg/utils/extensions/extensions.go:176–204  ·  view source on GitHub ↗

SetEnvVars applies custom Env entries from the given extensions (mounted under baseDir) into envMap, expanding placeholders like ${image_root} against baseDir. Names reserved for operator use or covered by dedicated fields are skipped; overrides are logged as warnings.

(extensionList []apiv1.ExtensionConfiguration, envMap envmap.EnvironmentMap, baseDir string)

Source from the content-addressed store, hash-verified

174// against baseDir. Names reserved for operator use or covered by dedicated
175// fields are skipped; overrides are logged as warnings.
176func SetEnvVars(extensionList []apiv1.ExtensionConfiguration, envMap envmap.EnvironmentMap, baseDir string) {
177 setBy := make(map[string]string)
178
179 for _, extension := range extensionList {
180 for _, envVar := range extension.Env {
181 if postgres.IsReservedEnvironmentVariable(envVar.Name) || dedicatedEnvVars[envVar.Name] {
182 log.Warning("Skipping reserved environment variable from extension",
183 "extension", extension.Name, "variable", envVar.Name)
184 continue
185 }
186
187 if unknown := postgres.FindUnknownPlaceholders(envVar.Value); len(unknown) > 0 {
188 log.Warning("Extension environment variable contains unknown placeholders",
189 "extension", extension.Name, "variable", envVar.Name, "unknownPlaceholders", unknown)
190 }
191
192 if prev, ok := setBy[envVar.Name]; ok {
193 log.Warning("Extension environment variable overrides value from a previous extension",
194 "variable", envVar.Name, "extension", extension.Name, "previousExtension", prev)
195 } else if _, exists := envMap[envVar.Name]; exists {
196 log.Warning("Extension environment variable overrides an existing value",
197 "variable", envVar.Name, "extension", extension.Name)
198 }
199
200 envMap[envVar.Name] = postgres.ExpandEnvPlaceholders(envVar.Value, extension.Name, baseDir)
201 setBy[envVar.Name] = extension.Name
202 }
203 }
204}
205
206// AppendPaths returns existing (a colon-separated list, possibly empty)
207// with extra appended. Returns existing unchanged when extra is empty.

Callers 3

buildPostgresEnvMethod · 0.92
extensions_test.goFile · 0.85

Calls 4

FindUnknownPlaceholdersFunction · 0.92
ExpandEnvPlaceholdersFunction · 0.92
WarningMethod · 0.80

Tested by

no test coverage detected