k8s-objectmatcher
k8s-objectmatcher copied to clipboard
IgnoreVolumeClaimTemplateTypeMetaAndStatus looks not work
Describe the bug IgnoreVolumeClaimTemplateTypeMetaAndStatus looks not work
Steps to reproduce the issue: I tried to compare the two statefulsets like this
opts := []patch.CalculateOption{
patch.IgnoreStatusFields(),
patch.IgnoreVolumeClaimTemplateTypeMetaAndStatus(),
}
patchResult, err := patch.DefaultPatchMaker.Calculate(old, new, opts...)
fmt.Printf("==========================%+v\n", patchResult.String())
I got this
Patch: {"spec":{"volumeClaimTemplates":[{"metadata":{"name":"emqx-data","namespace":"default"},"spec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"20Mi"}},"storageClassName":"standard"},"status":{"phase":"Pending"}},{"metadata":{"name":"emqx-log","namespace":"default"},"spec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"20Mi"}},"storageClassName":"standard"},"status":{"phase":"Pending"}}]}}
volumeClaimTemplates is not ignored
Expected behavior volumeClaimTemplates should be ignored
Additional context
k8s-objectmatcher version: v1.7.0
go version: go1.17.3 darwin/amd64
Same for me as well
Similar error for me - PatchResult is not empty even when patch.IgnoreVolumeClaimTemplateTypeMetaAndStatus()) "{"spec":{"volumeClaimTemplates":[{"metadata":{"name":"corestore""
@mobasherul I forked this project and fixed it
github.com/iamabhishek-dubey/k8s-objectmatcher/patch
Example:-
patchResult, err := patch.DefaultPatchMaker.Calculate(storedStateful, newStateful,
patch.IgnoreStatusFields(),
patch.IgnoreVolumeClaimTemplateTypeMetaAndStatus(),
patch.IgnorePersistenVolumeFields(),
patch.IgnoreField("kind"),
patch.IgnoreField("apiVersion"),
patch.IgnoreField("metadata"),
)