github.com/verrazzano/verrazzano@v1.7.1/platform-operator/controllers/integration/opensearch/manager.go (about) 1 // Copyright (c) 2023, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package opensearch 5 6 import ( 7 moduleapi "github.com/verrazzano/verrazzano-modules/module-operator/apis/platform/v1alpha1" 8 "github.com/verrazzano/verrazzano-modules/pkg/controller/basecontroller" 9 "github.com/verrazzano/verrazzano-modules/pkg/controller/spi/controllerspi" 10 "github.com/verrazzano/verrazzano/pkg/log/vzlog" 11 "github.com/verrazzano/verrazzano/platform-operator/constants" 12 corev1 "k8s.io/api/core/v1" 13 "k8s.io/apimachinery/pkg/runtime" 14 ctrlruntime "sigs.k8s.io/controller-runtime" 15 "sigs.k8s.io/controller-runtime/pkg/client" 16 ) 17 18 // Specify the SPI interfaces that this controller implements 19 var _ controllerspi.Reconciler = Reconciler{} 20 21 type Reconciler struct { 22 Client client.Client 23 log vzlog.VerrazzanoLogger 24 Scheme *runtime.Scheme 25 ModuleClass moduleapi.ModuleClassType 26 DryRun bool 27 } 28 29 // InitController start the controller 30 func InitController(mgr ctrlruntime.Manager) error { 31 controller := Reconciler{} 32 33 // The config MUST contain at least the Reconciler. Other spi interfaces are optional. 34 config := basecontroller.ControllerConfig{ 35 Reconciler: &controller, 36 EventFilter: &controller, 37 } 38 baseController, err := basecontroller.CreateControllerAndAddItToManager(mgr, config) 39 if err != nil { 40 return err 41 } 42 43 // init other controller fields 44 controller.Client = baseController.Client 45 controller.Scheme = baseController.Scheme 46 return nil 47 } 48 49 // GetReconcileObject returns the kind of object being reconciled 50 func (r Reconciler) GetReconcileObject() client.Object { 51 return &corev1.ConfigMap{} 52 } 53 54 // HandlePredicateEvent returns true if this is the OpenSearch integration operator configmap. 55 func (r Reconciler) HandlePredicateEvent(cli client.Client, object client.Object) bool { 56 return object.GetNamespace() == constants.VerrazzanoInstallNamespace && 57 object.GetName() == constants.OpenSearchIntegrationConfigMapName 58 }