Skip to content

Commit ab67133

Browse files
authored
Merge secret stringData into data before applying (#314)
* merge secret stringData into data before applying * go mod tidy
1 parent 3e3a86b commit ab67133

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

pkg/reconciler/reconciler.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,21 @@ func (r *Reconciler) Apply(ctx context.Context, inventory *[]*InventoryItem, obj
282282
return false, errors.Wrap(err, "error normalizing objects")
283283
}
284284

285+
// merge secret stringData into data; this is required/better because server-side-apply does not work well
286+
// with stringData
287+
for _, object := range objects {
288+
if isSecret(object) {
289+
secret := object.(*corev1.Secret)
290+
for k, v := range secret.StringData {
291+
if secret.Data == nil {
292+
secret.Data = make(map[string][]byte)
293+
}
294+
secret.Data[k] = []byte(v)
295+
}
296+
secret.StringData = nil
297+
}
298+
}
299+
285300
// perform cleanup on object manifests
286301
for _, object := range objects {
287302
removeLabel(object, r.labelKeyOwnerId)

pkg/reconciler/util.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,10 @@ func isApiService(key types.ObjectKey) bool {
128128
return key.GetObjectKind().GroupVersionKind().GroupKind() == schema.GroupKind{Group: "apiregistration.k8s.io", Kind: "APIService"}
129129
}
130130

131+
func isSecret(key types.ObjectKey) bool {
132+
return key.GetObjectKind().GroupVersionKind().GroupKind() == schema.GroupKind{Group: "", Kind: "Secret"}
133+
}
134+
131135
func getCrds(objects []client.Object) []*apiextensionsv1.CustomResourceDefinition {
132136
var crds []*apiextensionsv1.CustomResourceDefinition
133137
for _, object := range objects {

0 commit comments

Comments
 (0)