Skip to content

Commit

Permalink
Log object updates and show existing/required diff
Browse files Browse the repository at this point in the history
  • Loading branch information
vrutkovs committed Jun 3, 2021
1 parent 2f2a6b4 commit 40d0a4e
Show file tree
Hide file tree
Showing 9 changed files with 43 additions and 2 deletions.
5 changes: 3 additions & 2 deletions lib/resourceapply/apiext.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
apiextclientv1beta1 "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/diff"
"k8s.io/klog/v2"
"k8s.io/utils/pointer"
)
Expand All @@ -35,7 +36,7 @@ func ApplyCustomResourceDefinitionv1beta1(ctx context.Context, client apiextclie
return existing, false, nil
}

klog.V(2).Infof("Updating CRD %s", required.Name)
klog.V(2).Infof("Updating CRD %s due to diff: %v", required.Name, diff.ObjectDiff(existing, required))

actual, err := client.CustomResourceDefinitions().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
Expand All @@ -62,7 +63,7 @@ func ApplyCustomResourceDefinitionv1(ctx context.Context, client apiextclientv1.
return existing, false, nil
}

klog.V(2).Infof("Updating CRD %s", required.Name)
klog.V(2).Infof("Updating CRD %s due to diff: %v", required.Name, diff.ObjectDiff(existing, required))

actual, err := client.CustomResourceDefinitions().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
Expand Down
2 changes: 2 additions & 0 deletions lib/resourceapply/apireg.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"github.com/openshift/cluster-version-operator/lib/resourcemerge"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/diff"
"k8s.io/klog/v2"
apiregv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
apiregclientv1 "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1"
Expand All @@ -32,6 +33,7 @@ func ApplyAPIServicev1(ctx context.Context, client apiregclientv1.APIServicesGet
if !*modified {
return existing, false, nil
}
klog.V(2).Infof("Updating APIService %s due to diff: %v", required.Name, diff.ObjectDiff(existing, required))

actual, err := client.APIServices().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
Expand Down
7 changes: 7 additions & 0 deletions lib/resourceapply/apps.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
appsv1 "k8s.io/api/apps/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/diff"
appsclientv1 "k8s.io/client-go/kubernetes/typed/apps/v1"
appslisterv1 "k8s.io/client-go/listers/apps/v1"
"k8s.io/klog/v2"
Expand Down Expand Up @@ -34,6 +35,7 @@ func ApplyDeploymentv1(ctx context.Context, client appsclientv1.DeploymentsGette
if !*modified {
return existing, false, nil
}
klog.V(2).Infof("Updating Deployment %s/%s due to diff: %v", required.Namespace, required.Name, diff.ObjectDiff(existing, required))

actual, err := client.Deployments(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
Expand Down Expand Up @@ -61,6 +63,7 @@ func ApplyDeploymentFromCache(ctx context.Context, lister appslisterv1.Deploymen
if !*modified {
return existing, false, nil
}
klog.V(2).Infof("Updating Deployment %s/%s due to diff: %v", required.Namespace, required.Name, diff.ObjectDiff(existing, required))

actual, err := client.Deployments(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
Expand Down Expand Up @@ -88,6 +91,8 @@ func ApplyDaemonSetv1(ctx context.Context, client appsclientv1.DaemonSetsGetter,
return existing, false, nil
}

klog.V(2).Infof("Updating DaemonSet %s/%s due to diff: %v", required.Namespace, required.Name, diff.ObjectDiff(existing, required))

actual, err := client.DaemonSets(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
Expand Down Expand Up @@ -115,6 +120,8 @@ func ApplyDaemonSetFromCache(ctx context.Context, lister appslisterv1.DaemonSetL
return existing, false, nil
}

klog.V(2).Infof("Updating DaemonSet %s/%s due to diff: %v", required.Namespace, required.Name, diff.ObjectDiff(existing, required))

actual, err := client.DaemonSets(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
3 changes: 3 additions & 0 deletions lib/resourceapply/batch.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
batchv1 "k8s.io/api/batch/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/diff"
batchclientv1 "k8s.io/client-go/kubernetes/typed/batch/v1"
"k8s.io/klog/v2"
"k8s.io/utils/pointer"
Expand Down Expand Up @@ -34,6 +35,8 @@ func ApplyJobv1(ctx context.Context, client batchclientv1.JobsGetter, required *
return existing, false, nil
}

klog.V(2).Infof("Updating Job %s/%s due to diff: %v", required.Namespace, required.Name, diff.ObjectDiff(existing, required))

actual, err := client.Jobs(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
8 changes: 8 additions & 0 deletions lib/resourceapply/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"k8s.io/apimachinery/pkg/api/equality"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/diff"
coreclientv1 "k8s.io/client-go/kubernetes/typed/core/v1"
"k8s.io/utils/pointer"

Expand Down Expand Up @@ -36,6 +37,7 @@ func ApplyNamespacev1(ctx context.Context, client coreclientv1.NamespacesGetter,
if !*modified {
return existing, false, nil
}
klog.V(2).Infof("Updating Namespace %s due to diff: %v", required.Name, diff.ObjectDiff(existing, required))

actual, err := client.Namespaces().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
Expand Down Expand Up @@ -70,6 +72,8 @@ func ApplyServicev1(ctx context.Context, client coreclientv1.ServicesGetter, req
}
existing.Spec.Selector = required.Spec.Selector

klog.V(2).Infof("Updating Service %s/%s due to diff: %v", required.Namespace, required.Name, diff.ObjectDiff(existing, required))

actual, err := client.Services(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
Expand All @@ -96,6 +100,8 @@ func ApplyServiceAccountv1(ctx context.Context, client coreclientv1.ServiceAccou
return existing, false, nil
}

klog.V(2).Infof("Updating ServiceAccount %s/%s due to diff: %v", required.Namespace, required.Name, diff.ObjectDiff(existing, required))

actual, err := client.ServiceAccounts(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
Expand All @@ -122,6 +128,8 @@ func ApplyConfigMapv1(ctx context.Context, client coreclientv1.ConfigMapsGetter,
return existing, false, nil
}

klog.V(2).Infof("Updating ConfigMap %s/%s due to diff: %v", required.Namespace, required.Name, diff.ObjectDiff(existing, required))

actual, err := client.ConfigMaps(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
6 changes: 6 additions & 0 deletions lib/resourceapply/cv.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
"github.com/openshift/cluster-version-operator/lib/resourcemerge"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/diff"
"k8s.io/klog/v2"
"k8s.io/utils/pointer"
)

Expand All @@ -32,6 +34,8 @@ func ApplyClusterVersionv1(ctx context.Context, client configclientv1.ClusterVer
return existing, false, nil
}

klog.V(2).Infof("Updating ClusterVersion %s due to diff: %v", required.Name, diff.ObjectDiff(existing, required))

actual, err := client.ClusterVersions().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
Expand All @@ -58,6 +62,8 @@ func ApplyClusterVersionFromCache(ctx context.Context, lister configlistersv1.Cl
return existing, false, nil
}

klog.V(2).Infof("Updating ClusterVersion %s due to diff: %v", required.Name, diff.ObjectDiff(existing, required))

actual, err := client.ClusterVersions().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
5 changes: 5 additions & 0 deletions lib/resourceapply/rbac.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
rbacv1 "k8s.io/api/rbac/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/diff"
rbacclientv1 "k8s.io/client-go/kubernetes/typed/rbac/v1"
"k8s.io/klog/v2"
"k8s.io/utils/pointer"
Expand All @@ -33,6 +34,7 @@ func ApplyClusterRoleBindingv1(ctx context.Context, client rbacclientv1.ClusterR
if !*modified {
return existing, false, nil
}
klog.V(2).Infof("Updating ClusterRoleBinding %s due to diff: %v", required.Name, diff.ObjectDiff(existing, required))

actual, err := client.ClusterRoleBindings().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
Expand All @@ -59,6 +61,7 @@ func ApplyClusterRolev1(ctx context.Context, client rbacclientv1.ClusterRolesGet
if !*modified {
return existing, false, nil
}
klog.V(2).Infof("Updating ClusterRole %s/%s due to diff: %v", required.Name, diff.ObjectDiff(existing, required))

actual, err := client.ClusterRoles().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
Expand All @@ -85,6 +88,7 @@ func ApplyRoleBindingv1(ctx context.Context, client rbacclientv1.RoleBindingsGet
if !*modified {
return existing, false, nil
}
klog.V(2).Infof("Updating RoleBinding %s/%s due to diff: %v", required.Namespace, required.Name, diff.ObjectDiff(existing, required))

actual, err := client.RoleBindings(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
Expand All @@ -111,6 +115,7 @@ func ApplyRolev1(ctx context.Context, client rbacclientv1.RolesGetter, required
if !*modified {
return existing, false, nil
}
klog.V(2).Infof("Updating Role %s/%s due to diff: %v", required.Namespace, required.Name, diff.ObjectDiff(existing, required))

actual, err := client.Roles(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
Expand Down
3 changes: 3 additions & 0 deletions lib/resourceapply/security.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/openshift/cluster-version-operator/lib/resourcemerge"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/diff"
"k8s.io/klog/v2"
"k8s.io/utils/pointer"
)
Expand All @@ -34,6 +35,8 @@ func ApplySecurityContextConstraintsv1(ctx context.Context, client securityclien
return existing, false, nil
}

klog.V(2).Infof("Updating SCC %s due to diff: %v", required.Name, diff.ObjectDiff(existing, required))

actual, err := client.SecurityContextConstraints().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
6 changes: 6 additions & 0 deletions pkg/cvo/internal/generic.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/diff"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/strategicpatch"
"k8s.io/client-go/dynamic"
"k8s.io/klog/v2"

"github.com/openshift/client-go/config/clientset/versioned/scheme"
"github.com/openshift/cluster-version-operator/lib/resourcebuilder"
Expand All @@ -35,6 +37,7 @@ func applyUnstructured(ctx context.Context, client dynamic.ResourceInterface, re
}
existing, err := client.Get(ctx, required.GetName(), metav1.GetOptions{})
if apierrors.IsNotFound(err) {
klog.V(2).Infof("%s %s/%s not found, creating", required.GetKind(), required.GetNamespace(), required.GetName())
actual, err := client.Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
Expand All @@ -49,6 +52,7 @@ func applyUnstructured(ctx context.Context, client dynamic.ResourceInterface, re
existing.SetAnnotations(required.GetAnnotations())
existing.SetLabels(required.GetLabels())
existing.SetOwnerReferences(required.GetOwnerReferences())

skipKeys := sets.NewString("apiVersion", "kind", "metadata", "status")
for k, v := range required.Object {
if skipKeys.Has(k) {
Expand All @@ -57,6 +61,8 @@ func applyUnstructured(ctx context.Context, client dynamic.ResourceInterface, re
existing.Object[k] = v
}

klog.V(2).Infof("Updating %s %s/%s due to diff: %v", required.GetKind(), required.GetNamespace(), required.GetName(), diff.ObjectDiff(existing, required))

actual, err := client.Update(ctx, existing, metav1.UpdateOptions{})
if err != nil {
return nil, false, err
Expand Down

0 comments on commit 40d0a4e

Please sign in to comment.