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  }