@@ -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
240242func 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