Skip to content

Commit

Permalink
feat: add check for existing overrides
Browse files Browse the repository at this point in the history
  • Loading branch information
darshanime committed Jun 27, 2020
1 parent a9f27d8 commit 3d2f142
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 4 deletions.
21 changes: 18 additions & 3 deletions util/settings/settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -479,15 +479,30 @@ func (mgr *SettingsManager) GetResourceOverrides() (map[string]v1alpha1.Resource

switch diffOptions.IgnoreResourceStatusField {
case "", "crd":
resourceOverrides[crdGK] = ignoreStatus
if val, ok := resourceOverrides[crdGK]; ok {
resourceOverrides[crdGK] = v1alpha1.ResourceOverride{IgnoreDifferences: val.IgnoreDifferences + "\n- /status"}
} else {
resourceOverrides[crdGK] = ignoreStatus
}
log.Info("Ignore status for CustomResourceDefinitions")

case "all":
resourceOverrides["/"] = ignoreStatus
if val, ok := resourceOverrides[crdGK]; ok {
resourceOverrides["/"] = v1alpha1.ResourceOverride{IgnoreDifferences: val.IgnoreDifferences + "\n- /status"}
} else {
resourceOverrides["/"] = ignoreStatus
}
log.Info("Ignore status for all objects")

case "off", "false":
log.Info("Not ignore status for any object")

default:
resourceOverrides[crdGK] = ignoreStatus
if val, ok := resourceOverrides[crdGK]; ok {
resourceOverrides[crdGK] = v1alpha1.ResourceOverride{IgnoreDifferences: val.IgnoreDifferences + "\n- /status"}
} else {
resourceOverrides[crdGK] = ignoreStatus
}
log.Warnf("Unrecognized value for ignoreResourceStatusField - %s, ignore status for CustomResourceDefinitions", diffOptions.IgnoreResourceStatusField)
}

Expand Down
8 changes: 7 additions & 1 deletion util/settings/settings_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,13 +182,19 @@ func TestGetResourceOverrides(t *testing.T) {
_, settingsManager = fixtures(map[string]string{
"resource.compareoptions": `
ignoreResourceStatusField: crd`,

"resource.customizations": `
apiextensions.k8s.io/CustomResourceDefinition:
ignoreDifferences: |
jsonPointers:
- /webhooks/0/clientConfig/caBundle`,
})
overrides, err = settingsManager.GetResourceOverrides()
assert.NoError(t, err)

crdOverrides = overrides[crdGK]
assert.NotNil(t, crdOverrides)
assert.Equal(t, ignoreStatus, crdOverrides)
assert.Equal(t, v1alpha1.ResourceOverride{IgnoreDifferences: "jsonPointers:\n- /webhooks/0/clientConfig/caBundle\n- /status"}, crdOverrides)

// with incorrect value, status of crd objects should be ignored
_, settingsManager = fixtures(map[string]string{
Expand Down

0 comments on commit 3d2f142

Please sign in to comment.