From 46dc22f46a36a2b1920c96b29d5a09b08d7467ab Mon Sep 17 00:00:00 2001 From: Alexander Zielenski <351783+alexzielenski@users.noreply.github.com> Date: Wed, 24 Aug 2022 10:24:05 -0700 Subject: [PATCH] clean up test Kubernetes-commit: 8f6d7f1fa13db3d7a3354a13f014e1ce7acabda0 --- util/csaupgrade/upgrade.go | 3 +- util/csaupgrade/upgrade_test.go | 78 +++++++++++++++++++-------------- 2 files changed, 45 insertions(+), 36 deletions(-) diff --git a/util/csaupgrade/upgrade.go b/util/csaupgrade/upgrade.go index afd0391c..372155a3 100644 --- a/util/csaupgrade/upgrade.go +++ b/util/csaupgrade/upgrade.go @@ -20,7 +20,7 @@ import ( // 3. Client-side apply tends to own more fields (including fields that are defaulted), // this will possibly remove this defaults, they will be re-defaulted, that's fine. // 4. Care must be taken to not overwrite the managed fields on the server if they -// have changed during the RMW operation. +// have changed before sending a patch. // // csaManager - Name of FieldManager formerly used for `Update` operations // ssaManager - Name of FieldManager formerly used for `Apply` operations @@ -29,7 +29,6 @@ func UpgradeManagedFields( obj runtime.Object, csaManagerName string, ssaManagerName string, - subResource string, ) (runtime.Object, error) { accessor, err := meta.Accessor(obj) if err != nil { diff --git a/util/csaupgrade/upgrade_test.go b/util/csaupgrade/upgrade_test.go index 81b7f3f1..8f9a2e74 100644 --- a/util/csaupgrade/upgrade_test.go +++ b/util/csaupgrade/upgrade_test.go @@ -11,12 +11,19 @@ import ( ) func TestUpgradeCSA(t *testing.T) { - // Initial object has managed fields from using CSA - originalYAML := []byte(` + + cases := []struct { + CSAManager string + SSAManager string + OriginalObject []byte + ExpectedObject []byte + }{ + { + CSAManager: "kubectl-client-side-apply", + SSAManager: "kubectl", + OriginalObject: []byte(` apiVersion: v1 -data: - key: value - legacy: unused +data: {} kind: ConfigMap metadata: annotations: @@ -40,25 +47,10 @@ metadata: time: "2022-08-22T23:08:23Z" name: test namespace: default - resourceVersion: "12502" - uid: 1f186675-58e6-4d7b-8bc5-7ece581e3013 -`) - initialObject := unstructured.Unstructured{} - err := yaml.Unmarshal(originalYAML, &initialObject) - if err != nil { - t.Fatal(err) - } - - upgraded, err := csaupgrade.UpgradeManagedFields(&initialObject, "kubectl-client-side-apply", "kubectl", "") - if err != nil { - t.Fatal(err) - } - - expectedYAML := []byte(` +`), + ExpectedObject: []byte(` apiVersion: v1 -data: - key: value - legacy: unused +data: {} kind: ConfigMap metadata: annotations: @@ -81,18 +73,36 @@ metadata: operation: Apply time: "2022-08-22T23:08:23Z" name: test - namespace: default - resourceVersion: "12502" - uid: 1f186675-58e6-4d7b-8bc5-7ece581e3013 -`) - - expectedObject := unstructured.Unstructured{} - err = yaml.Unmarshal(expectedYAML, &expectedObject) - if err != nil { - t.Fatal(err) + namespace: default +`), + }, } - if !reflect.DeepEqual(&expectedObject, upgraded) { - t.Fatal(cmp.Diff(&expectedObject, upgraded)) + for _, testCase := range cases { + initialObject := unstructured.Unstructured{} + err := yaml.Unmarshal(testCase.OriginalObject, &initialObject) + if err != nil { + t.Fatal(err) + } + + upgraded, err := csaupgrade.UpgradeManagedFields( + &initialObject, + testCase.CSAManager, + testCase.SSAManager, + ) + + if err != nil { + t.Fatal(err) + } + + expectedObject := unstructured.Unstructured{} + err = yaml.Unmarshal(testCase.ExpectedObject, &expectedObject) + if err != nil { + t.Fatal(err) + } + + if !reflect.DeepEqual(&expectedObject, upgraded) { + t.Fatal(cmp.Diff(&expectedObject, upgraded)) + } } }