diff --git a/pkg/controllers/cloud_config_sync_controller.go b/pkg/controllers/cloud_config_sync_controller.go index c77f19948..7efe9e580 100644 --- a/pkg/controllers/cloud_config_sync_controller.go +++ b/pkg/controllers/cloud_config_sync_controller.go @@ -12,7 +12,6 @@ import ( ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/builder" "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/handler" "sigs.k8s.io/controller-runtime/pkg/predicate" configv1 "github.com/openshift/api/config/v1" @@ -184,6 +183,8 @@ func (r *CloudConfigReconciler) Reconcile(ctx context.Context, req ctrl.Request) } func (r *CloudConfigReconciler) isCloudConfigSyncNeeded(platformStatus *configv1.PlatformStatus, infraCloudConfigRef configv1.ConfigMapFileReference) (bool, error) { + klog.V(1).Info("Checking if cloud config sync needed") + if platformStatus == nil { return false, fmt.Errorf("platformStatus is required") } @@ -205,6 +206,7 @@ func (r *CloudConfigReconciler) isCloudConfigSyncNeeded(platformStatus *configv1 } func (r *CloudConfigReconciler) prepareSourceConfigMap(source *corev1.ConfigMap, infra *configv1.Infrastructure) (*corev1.ConfigMap, error) { + klog.V(1).Info("Preparing source config map") // Keys might be different between openshift-config/cloud-config and openshift-config-managed/kube-cloud-config // Always use "cloud.conf" which is default one across openshift cloudConfCm := source.DeepCopy() @@ -225,11 +227,13 @@ func (r *CloudConfigReconciler) prepareSourceConfigMap(source *corev1.ConfigMap, } func (r *CloudConfigReconciler) isCloudConfigEqual(source *corev1.ConfigMap, target *corev1.ConfigMap) bool { + klog.V(1).Info("Checking if cloud config equal") return source.Immutable == target.Immutable && reflect.DeepEqual(source.Data, target.Data) && reflect.DeepEqual(source.BinaryData, target.BinaryData) } func (r *CloudConfigReconciler) syncCloudConfigData(ctx context.Context, source *corev1.ConfigMap, target *corev1.ConfigMap) error { + klog.V(1).Info("Syncing cloud config data") target.SetName(syncedCloudConfigMapName) target.SetNamespace(r.ManagedNamespace) target.Data = source.Data @@ -250,6 +254,8 @@ func (r *CloudConfigReconciler) syncCloudConfigData(ctx context.Context, source // SetupWithManager sets up the controller with the Manager. func (r *CloudConfigReconciler) SetupWithManager(mgr ctrl.Manager) error { + klog.V(1).Info("Setting up controller") + build := ctrl.NewControllerManagedBy(mgr). Named("CloudConfigSyncController"). For( @@ -260,21 +266,29 @@ func (r *CloudConfigReconciler) SetupWithManager(mgr ctrl.Manager) error { openshiftCloudConfigMapPredicates(), ), ), - ). - Watches( - &configv1.Infrastructure{}, - handler.EnqueueRequestsFromMapFunc(toManagedConfigMap), - builder.WithPredicates(infrastructurePredicates()), - ). - Watches( - &configv1.Network{}, - handler.EnqueueRequestsFromMapFunc(toManagedConfigMap), ) + /* + . + Watches( + &configv1.Infrastructure{}, + handler.EnqueueRequestsFromMapFunc(toManagedConfigMap), + builder.WithPredicates(infrastructurePredicates()), + ). + Watches( + &configv1.Network{}, + handler.EnqueueRequestsFromMapFunc(toManagedConfigMap), + ).Watches( + &corev1.ConfigMap{}, handler.EnqueueRequestsFromMapFunc(toManagedConfigMap), + + ) + + */ return build.Complete(r) } func (r *CloudConfigReconciler) setAvailableCondition(ctx context.Context) error { + klog.V(1).Info("Setting available condition") co, err := r.getOrCreateClusterOperator(ctx) if err != nil { return err diff --git a/pkg/controllers/watch_predicates.go b/pkg/controllers/watch_predicates.go index 766097d20..2d700bece 100644 --- a/pkg/controllers/watch_predicates.go +++ b/pkg/controllers/watch_predicates.go @@ -3,14 +3,16 @@ package controllers import ( "context" - configv1 "github.com/openshift/api/config/v1" - operatorv1 "github.com/openshift/api/operator/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/klog/v2" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/event" "sigs.k8s.io/controller-runtime/pkg/predicate" "sigs.k8s.io/controller-runtime/pkg/reconcile" + + configv1 "github.com/openshift/api/config/v1" + operatorv1 "github.com/openshift/api/operator/v1" ) func clusterOperatorPredicates() predicate.Funcs { @@ -34,12 +36,14 @@ func toClusterOperator(context.Context, client.Object) []reconcile.Request { } func toManagedConfigMap(context.Context, client.Object) []reconcile.Request { + klog.V(1).Info("toManagedConfigMap called") return []reconcile.Request{{ NamespacedName: client.ObjectKey{Name: syncedCloudConfigMapName, Namespace: DefaultManagedNamespace}, }} } func infrastructurePredicates() predicate.Funcs { + klog.V(1).Info("infrastructurePredicates called") isInfrastructureCluster := func(obj runtime.Object) bool { infra, ok := obj.(*configv1.Infrastructure) return ok && infra.GetName() == infrastructureResourceName @@ -106,6 +110,8 @@ func openshiftCloudConfigMapPredicates() predicate.Funcs { isOpenshiftConfigNamespace := configMap.GetNamespace() == OpenshiftConfigNamespace isManagedCloudConfig := configMap.GetName() == managedCloudConfigMapName && configMap.GetNamespace() == OpenshiftManagedConfigNamespace + klog.V(1).Infof("is ocp configmap %t/%t", isOpenshiftConfigNamespace, isManagedCloudConfig) + return isOpenshiftConfigNamespace || isManagedCloudConfig }