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)
| 174 | // against baseDir. Names reserved for operator use or covered by dedicated |
| 175 | // fields are skipped; overrides are logged as warnings. |
| 176 | func 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. |
no test coverage detected