Skip to content

Commit 702fedc

Browse files
feat: support url-encoded placeholders that were also base64-encoded
Signed-off-by: DziyanaT <dziyana.tsetserava@etu.umontpellier.fr>
1 parent 05a26d0 commit 702fedc

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

pkg/kube/util.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ func genericReplacement(key, value string, resource Resource) (_ interface{}, er
108108
var nonStringReplacement interface{}
109109
var placeholderRegex = specificPathPlaceholder
110110

111+
// If some sepecific path placeholders were URL-encoded, we match them with a special regex,
112+
// decode them, get secret values and re-encode them.
111113
decodedValue := specificPathUrlEncodedPlaceholder.ReplaceAllFunc([]byte(value), func(match []byte) []byte {
112114
decoded, decErr:= url.QueryUnescape(string(match))
113115
if decErr != nil || !placeholderRegex.Match([]byte(decoded)) {
@@ -239,7 +241,7 @@ func configReplacement(key, value string, resource Resource) (interface{}, []err
239241

240242
func secretReplacement(key, value string, resource Resource) (interface{}, []error) {
241243
decoded, err := base64.StdEncoding.DecodeString(value)
242-
if err == nil && genericPlaceholder.Match(decoded) {
244+
if err == nil && (genericPlaceholder.Match(decoded) || specificPathUrlEncodedPlaceholder.Match(decoded)) {
243245
res, err := genericReplacement(key, string(decoded), resource)
244246

245247
utils.VerboseToStdErr("key %s comes from Secret manifest, base64 encoding value %s to fit", key, value)

0 commit comments

Comments
 (0)