diff --git a/pkg/engine/runtime/kubernetes/kubernetes_runtime.go b/pkg/engine/runtime/kubernetes/kubernetes_runtime.go index 4ca43ba8..281d3fd7 100644 --- a/pkg/engine/runtime/kubernetes/kubernetes_runtime.go +++ b/pkg/engine/runtime/kubernetes/kubernetes_runtime.go @@ -234,13 +234,7 @@ func (k *KubernetesRuntime) Import(ctx context.Context, request *runtime.ImportR } } } - - const metadata = "metadata" - unstructured.RemoveNestedField(ur.Object, "status") - unstructured.RemoveNestedField(ur.Object, metadata, "resourceVersion") - unstructured.RemoveNestedField(ur.Object, metadata, "creationTimestamp") - unstructured.RemoveNestedField(ur.Object, metadata, "selfLink") - unstructured.RemoveNestedField(ur.Object, metadata, "uid") + normalizeServerSideFields(ur) } response.Resource.Attributes = ur.Object return &runtime.ImportResponse{ @@ -249,6 +243,18 @@ func (k *KubernetesRuntime) Import(ctx context.Context, request *runtime.ImportR } } +// normalize fields added by K8s that will cause a perpetual diff +func normalizeServerSideFields(ur *unstructured.Unstructured) { + const metadata = "metadata" + unstructured.RemoveNestedField(ur.Object, "status") + unstructured.RemoveNestedField(ur.Object, metadata, "resourceVersion") + unstructured.RemoveNestedField(ur.Object, metadata, "creationTimestamp") + unstructured.RemoveNestedField(ur.Object, metadata, "selfLink") + unstructured.RemoveNestedField(ur.Object, metadata, "uid") + unstructured.RemoveNestedField(ur.Object, metadata, "generation") + unstructured.RemoveNestedField(ur.Object, metadata, "managedFields") +} + func normalizeService(ur *unstructured.Unstructured) error { target := &corev1.Service{} if err := k8sruntime.DefaultUnstructuredConverter.FromUnstructured(ur.Object, target); err != nil {