Skip to content

Commit

Permalink
Reconcile with controller-runtime v0.7.2 changes
Browse files Browse the repository at this point in the history
This updates our controllers to work with recent
controller runtime updates (Simplify usage of
EnqueueRequestsFromMapFunc, and Remove MapObject type and use
client.Object directly):
 - kubernetes-sigs/controller-runtime#1119
 - kubernetes-sigs/controller-runtime#1207
  • Loading branch information
dprince committed Apr 1, 2021
1 parent a6d04c0 commit b799da3
Show file tree
Hide file tree
Showing 8 changed files with 25 additions and 44 deletions.
2 changes: 1 addition & 1 deletion config/manager/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
images:
- name: controller
newName: quay.io/openstack-k8s-operators/osp-director-operator
newName: quay.io/dprince/osp-director-operator
newTag: 0.0.1
14 changes: 5 additions & 9 deletions controllers/openstackbaremetalset_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,8 @@ func (r *OpenStackBaremetalSetReconciler) GetScheme() *runtime.Scheme {
// +kubebuilder:rbac:groups=core,resources=secrets/finalizers,verbs=create;delete;get;list;patch;update;watch

// Reconcile baremetalset
func (r *OpenStackBaremetalSetReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
func (r *OpenStackBaremetalSetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
_ = r.Log.WithValues("openstackbaremetalset", req.NamespacedName)
ctx := context.Background()

// Fetch the instance
instance := &ospdirectorv1beta1.OpenStackBaremetalSet{}
Expand Down Expand Up @@ -246,12 +245,12 @@ func (r *OpenStackBaremetalSetReconciler) Reconcile(req ctrl.Request) (ctrl.Resu

// SetupWithManager - prepare controller for use with operator manager
func (r *OpenStackBaremetalSetReconciler) SetupWithManager(mgr ctrl.Manager) error {
openshiftMachineAPIBareMetalHostsFn := handler.ToRequestsFunc(func(o handler.MapObject) []reconcile.Request {
openshiftMachineAPIBareMetalHostsFn := handler.EnqueueRequestsFromMapFunc(func(o client.Object) []reconcile.Request {
result := []reconcile.Request{}
label := o.Meta.GetLabels()
label := o.GetLabels()
// verify object has ownerUIDLabelSelector
if uid, ok := label[baremetalset.OwnerUIDLabelSelector]; ok {
r.Log.Info(fmt.Sprintf("BareMetalHost object %s marked with OSP owner ref: %s", o.Meta.GetName(), uid))
r.Log.Info(fmt.Sprintf("BareMetalHost object %s marked with OSP owner ref: %s", o.GetName(), uid))
// return namespace and Name of CR
name := client.ObjectKey{
Namespace: label[baremetalset.OwnerNameSpaceLabelSelector],
Expand All @@ -268,10 +267,7 @@ func (r *OpenStackBaremetalSetReconciler) SetupWithManager(mgr ctrl.Manager) err
return ctrl.NewControllerManagedBy(mgr).
For(&ospdirectorv1beta1.OpenStackBaremetalSet{}).
Owns(&ospdirectorv1beta1.OpenStackProvisionServer{}).
Watches(&source.Kind{Type: &metal3v1alpha1.BareMetalHost{}},
&handler.EnqueueRequestsFromMapFunc{
ToRequests: openshiftMachineAPIBareMetalHostsFn,
}).
Watches(&source.Kind{Type: &metal3v1alpha1.BareMetalHost{}}, openshiftMachineAPIBareMetalHostsFn).
Complete(r)
}

Expand Down
3 changes: 1 addition & 2 deletions controllers/openstackclient_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,7 @@ func (r *OpenStackClientReconciler) GetScheme() *runtime.Scheme {
// +kubebuilder:rbac:groups=core,resources=pods,verbs=create;delete;get;list;patch;update;watch

// Reconcile - openstackclient
func (r *OpenStackClientReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
_ = context.Background()
func (r *OpenStackClientReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
_ = r.Log.WithValues("openstackclient", req.NamespacedName)

// Fetch the controller VM instance
Expand Down
14 changes: 5 additions & 9 deletions controllers/openstackcontrolplane_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,7 @@ func (r *OpenStackControlPlaneReconciler) GetScheme() *runtime.Scheme {
// +kubebuilder:rbac:groups=core,resources=secrets,verbs=create;delete;get;list;patch;update;watch

// Reconcile - control plane
func (r *OpenStackControlPlaneReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
_ = context.Background()
func (r *OpenStackControlPlaneReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
_ = r.Log.WithValues("controlplane", req.NamespacedName)

// Fetch the controller VM instance
Expand Down Expand Up @@ -275,21 +274,21 @@ func (r *OpenStackControlPlaneReconciler) Reconcile(req ctrl.Request) (ctrl.Resu
func (r *OpenStackControlPlaneReconciler) SetupWithManager(mgr ctrl.Manager) error {

// watch for objects in the same namespace as the controller CR
namespacedFn := handler.ToRequestsFunc(func(obj handler.MapObject) []reconcile.Request {
namespacedFn := handler.EnqueueRequestsFromMapFunc(func(obj client.Object) []reconcile.Request {
result := []reconcile.Request{}

// get all CRs from the same namespace
crs := &ospdirectorv1beta1.OpenStackControlPlaneList{}
listOpts := []client.ListOption{
client.InNamespace(obj.Meta.GetNamespace()),
client.InNamespace(obj.GetNamespace()),
}
if err := r.Client.List(context.Background(), crs, listOpts...); err != nil {
r.Log.Error(err, "Unable to retrieve CRs %v")
return nil
}

for _, cr := range crs.Items {
if obj.Meta.GetNamespace() == cr.Namespace {
if obj.GetNamespace() == cr.Namespace {
// return namespace and Name of CR
name := client.ObjectKey{
Namespace: cr.Namespace,
Expand All @@ -311,10 +310,7 @@ func (r *OpenStackControlPlaneReconciler) SetupWithManager(mgr ctrl.Manager) err
Owns(&ospdirectorv1beta1.OpenStackClient{}).
// watch pods in the same namespace as we want to reconcile if
// e.g. a controller vm gets destroyed
Watches(&source.Kind{Type: &corev1.Pod{}},
&handler.EnqueueRequestsFromMapFunc{
ToRequests: namespacedFn,
}).
Watches(&source.Kind{Type: &corev1.Pod{}}, namespacedFn).
Complete(r)
}

Expand Down
3 changes: 1 addition & 2 deletions controllers/openstackipset_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,7 @@ func (r *OpenStackIPSetReconciler) GetScheme() *runtime.Scheme {
// +kubebuilder:rbac:groups=osp-director.openstack.org,resources=openstackipsets/status,verbs=get;update;patch

// Reconcile - reconcile OpenStackIPSet objects
func (r *OpenStackIPSetReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
_ = context.Background()
func (r *OpenStackIPSetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
_ = r.Log.WithValues("openstackipset", req.NamespacedName)

// Fetch the controller VM instance
Expand Down
25 changes: 9 additions & 16 deletions controllers/openstacknet_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,7 @@ func (r *OpenStackNetReconciler) GetScheme() *runtime.Scheme {
// +kubebuilder:rbac:groups=nmstate.io,resources=nodenetworkconfigurationpolicies,verbs=create;delete;get;list;patch;update;watch

// Reconcile -
func (r *OpenStackNetReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
_ = context.Background()
func (r *OpenStackNetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
_ = r.Log.WithValues("overcloudnet", req.NamespacedName)

// Fetch the controller VM instance
Expand Down Expand Up @@ -203,12 +202,12 @@ func (r *OpenStackNetReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error

// SetupWithManager -
func (r *OpenStackNetReconciler) SetupWithManager(mgr ctrl.Manager) error {
sriovNetworkFn := handler.ToRequestsFunc(func(o handler.MapObject) []reconcile.Request {
sriovNetworkFn := handler.EnqueueRequestsFromMapFunc(func(o client.Object) []reconcile.Request {
result := []reconcile.Request{}
label := o.Meta.GetLabels()
label := o.GetLabels()
// verify object has ownerUIDLabelSelector
if uid, ok := label[OwnerUIDLabelSelector]; ok {
r.Log.Info(fmt.Sprintf("SriovNetwork object %s marked with OSP owner ref: %s", o.Meta.GetName(), uid))
r.Log.Info(fmt.Sprintf("SriovNetwork object %s marked with OSP owner ref: %s", o.GetName(), uid))
// return namespace and Name of CR
name := client.ObjectKey{
Namespace: label[OwnerNameSpaceLabelSelector],
Expand All @@ -222,12 +221,12 @@ func (r *OpenStackNetReconciler) SetupWithManager(mgr ctrl.Manager) error {
return nil
})

sriovNetworkNodePolicyFn := handler.ToRequestsFunc(func(o handler.MapObject) []reconcile.Request {
sriovNetworkNodePolicyFn := handler.EnqueueRequestsFromMapFunc(func(o client.Object) []reconcile.Request {
result := []reconcile.Request{}
label := o.Meta.GetLabels()
label := o.GetLabels()
// verify object has ownerUIDLabelSelector
if uid, ok := label[OwnerUIDLabelSelector]; ok {
r.Log.Info(fmt.Sprintf("SriovNetworkNodePolicy object %s marked with OSP owner ref: %s", o.Meta.GetName(), uid))
r.Log.Info(fmt.Sprintf("SriovNetworkNodePolicy object %s marked with OSP owner ref: %s", o.GetName(), uid))
// return namespace and Name of CR
name := client.ObjectKey{
Namespace: label[OwnerNameSpaceLabelSelector],
Expand All @@ -244,14 +243,8 @@ func (r *OpenStackNetReconciler) SetupWithManager(mgr ctrl.Manager) error {
return ctrl.NewControllerManagedBy(mgr).
For(&ospdirectorv1beta1.OpenStackNet{}).
Owns(&networkv1.NetworkAttachmentDefinition{}).
Watches(&source.Kind{Type: &sriovnetworkv1.SriovNetwork{}},
&handler.EnqueueRequestsFromMapFunc{
ToRequests: sriovNetworkFn,
}).
Watches(&source.Kind{Type: &sriovnetworkv1.SriovNetworkNodePolicy{}},
&handler.EnqueueRequestsFromMapFunc{
ToRequests: sriovNetworkNodePolicyFn,
}).
Watches(&source.Kind{Type: &sriovnetworkv1.SriovNetwork{}}, sriovNetworkFn).
Watches(&source.Kind{Type: &sriovnetworkv1.SriovNetworkNodePolicy{}}, sriovNetworkNodePolicyFn).
Complete(r)
}

Expand Down
3 changes: 1 addition & 2 deletions controllers/openstackprovisionserver_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,7 @@ func (r *OpenStackProvisionServerReconciler) GetScheme() *runtime.Scheme {
// +kubebuilder:rbac:groups=security.openshift.io,namespace=openstack,resources="securitycontextconstraints",resourceNames="anyuid",verbs="use"

// Reconcile - provision image servers
func (r *OpenStackProvisionServerReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
_ = context.Background()
func (r *OpenStackProvisionServerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
_ = r.Log.WithValues("openstackprovisionserver", req.NamespacedName)

// Fetch the ProvisionServer instance
Expand Down
5 changes: 2 additions & 3 deletions controllers/openstackvmset_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,7 @@ func (r *OpenStackVMSetReconciler) GetScheme() *runtime.Scheme {
// +kubebuilder:rbac:groups=sriovnetwork.openshift.io,resources=sriovnetworknodepolicies;sriovnetworks,verbs=get;list;watch;create;update;patch;delete

// Reconcile - controller VMs
func (r *OpenStackVMSetReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
_ = context.Background()
func (r *OpenStackVMSetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
_ = r.Log.WithValues("vmset", req.NamespacedName)

// Fetch the controller VM instance
Expand Down Expand Up @@ -131,7 +130,7 @@ func (r *OpenStackVMSetReconciler) Reconcile(req ctrl.Request) (ctrl.Result, err
// registering our finalizer.
if !controllerutil.ContainsFinalizer(instance, vmset.FinalizerName) {
controllerutil.AddFinalizer(instance, vmset.FinalizerName)
if err := r.Update(context.Background(), instance); err != nil {
if err := r.Update(ctx, instance); err != nil {
return ctrl.Result{}, err
}
r.Log.Info(fmt.Sprintf("Finalizer %s added to CR %s", vmset.FinalizerName, instance.Name))
Expand Down

0 comments on commit b799da3

Please sign in to comment.