Skip to content

Commit

Permalink
feat: Add event recorder to all reconcilers (Azure#26)
Browse files Browse the repository at this point in the history
  • Loading branch information
helayoty authored May 25, 2022
1 parent 9bd71a8 commit a003578
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 37 deletions.
8 changes: 4 additions & 4 deletions cmd/memberagent/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@ import (
"flag"
"os"

fleetv1alpha1 "github.com/Azure/fleet/apis/v1alpha1"
"github.com/Azure/fleet/pkg/controllers/memberinternalmembercluster"
"github.com/Azure/fleet/pkg/controllers/membership"

"github.com/pkg/errors"
"k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
Expand All @@ -23,6 +19,10 @@ import (
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
"sigs.k8s.io/controller-runtime/pkg/healthz"

fleetv1alpha1 "github.com/Azure/fleet/apis/v1alpha1"
"github.com/Azure/fleet/pkg/controllers/memberinternalmembercluster"
"github.com/Azure/fleet/pkg/controllers/membership"
//+kubebuilder:scaffold:imports
)

Expand Down
7 changes: 5 additions & 2 deletions pkg/controllers/hubinternalmembercluster/hub_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,18 @@ package hubinternalmembercluster
import (
"context"

fleetv1alpha1 "github.com/Azure/fleet/apis/v1alpha1"

"k8s.io/client-go/tools/record"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/log"

fleetv1alpha1 "github.com/Azure/fleet/apis/v1alpha1"
)

// HubReconciler reconciles a InternalMemberCluster object in the hub cluster.
type HubReconciler struct {
HubClient client.Client
recorder record.EventRecorder
}

//+kubebuilder:rbac:groups=fleet.azure.com,resources=internalmemberclusters,verbs=get;list;watch;create;update;patch;delete
Expand All @@ -34,6 +36,7 @@ func (r *HubReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.R

// SetupWithManager sets up the controller with the Manager.
func (r *HubReconciler) SetupWithManager(mgr ctrl.Manager) error {
r.recorder = mgr.GetEventRecorderFor("internalMemberCluster_hub")
return ctrl.NewControllerManagedBy(mgr).
For(&fleetv1alpha1.InternalMemberCluster{}).
Complete(r)
Expand Down
5 changes: 4 additions & 1 deletion pkg/controllers/membercluster/membercluster_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/tools/record"
"k8s.io/klog/v2"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
Expand All @@ -26,7 +27,8 @@ import (
// Reconciler reconciles a MemberCluster object
type Reconciler struct {
client.Client
Scheme *runtime.Scheme
Scheme *runtime.Scheme
recorder record.EventRecorder
}

//+kubebuilder:rbac:groups=fleet.azure.com,resources=memberclusters,verbs=get;list;watch;create;update;patch;delete
Expand Down Expand Up @@ -78,6 +80,7 @@ func (r *Reconciler) checkAndCreateNamespace(ctx context.Context, mcName string)

// SetupWithManager sets up the controller with the Manager.
func (r *Reconciler) SetupWithManager(mgr ctrl.Manager) error {
r.recorder = mgr.GetEventRecorderFor("memberCluster")
return ctrl.NewControllerManagedBy(mgr).
For(&fleetv1alpha1.MemberCluster{}).
Complete(r)
Expand Down
10 changes: 6 additions & 4 deletions pkg/controllers/memberinternalmembercluster/member_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,23 @@ package memberinternalmembercluster
import (
"context"

"go.goms.io/fleet/pkg/controllers/memberinternalmembercluster/utils"
v1 "k8s.io/api/core/v1"

fleetv1alpha1 "github.com/Azure/fleet/apis/v1alpha1"

"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/client-go/tools/record"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/log"

fleetv1alpha1 "github.com/Azure/fleet/apis/v1alpha1"
"github.com/Azure/fleet/pkg/utils"
)

// MemberReconciler reconciles a InternalMemberCluster object in the member cluster.
type MemberReconciler struct {
hubClient client.Client
memberClient client.Client
restMapper meta.RESTMapper
recorder record.EventRecorder
}

func NewMemberReconciler(hubClient client.Client, memberClient client.Client,
Expand Down Expand Up @@ -51,6 +52,7 @@ func (r *MemberReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr

// SetupWithManager sets up the controller with the Manager.
func (r *MemberReconciler) SetupWithManager(mgr ctrl.Manager) error {
r.recorder = mgr.GetEventRecorderFor("InternalMemberCluster_member")
return ctrl.NewControllerManagedBy(mgr).
For(&fleetv1alpha1.InternalMemberCluster{}).
Complete(r)
Expand Down
21 changes: 0 additions & 21 deletions pkg/controllers/memberinternalmembercluster/utils/config.go

This file was deleted.

12 changes: 7 additions & 5 deletions pkg/controllers/membership/membership_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,20 @@ package membership
import (
"context"

fleetv1alpha1 "github.com/Azure/fleet/apis/v1alpha1"

"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/tools/record"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/log"

fleetv1alpha1 "github.com/Azure/fleet/apis/v1alpha1"
)

// Reconciler reconciles a Membership object
type Reconciler struct {
client.Client
Scheme *runtime.Scheme
Scheme *runtime.Scheme
recorder record.EventRecorder
}

//+kubebuilder:rbac:groups=fleet.azure.com,resources=memberships,verbs=get;list;watch;create;update;patch;delete
Expand All @@ -45,7 +47,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Resu

// SetupWithManager sets up the controller with the Manager.
func (r *Reconciler) SetupWithManager(mgr ctrl.Manager) error {
r.recorder = mgr.GetEventRecorderFor("membership")
return ctrl.NewControllerManagedBy(mgr).
For(&fleetv1alpha1.Membership{}).
Complete(r)
For(&fleetv1alpha1.Membership{}).Complete(r)
}
21 changes: 21 additions & 0 deletions pkg/utils/common.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
package utils

import (
"github.com/pkg/errors"
v1 "k8s.io/api/core/v1"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
)

const (
NamespaceNameFormat = "fleet-%s"
)

// GetConfigWithSecret gets the cluster config from kubernetes secret
func GetConfigWithSecret(secret v1.Secret) (rest.Config, error) {
kubeConfig, ok := secret.Data["kubeconfig"]
if !ok || len(kubeConfig) == 0 {
return rest.Config{}, errors.New("secret does not contain kubeconfig")
}
restConfig, err := clientcmd.RESTConfigFromKubeConfig(kubeConfig)
if err != nil {
return rest.Config{}, err
}

return *(restConfig), nil
}

0 comments on commit a003578

Please sign in to comment.