Skip to content

Commit

Permalink
fix: nil pointer to ProcessCache
Browse files Browse the repository at this point in the history
  • Loading branch information
SamMHD committed Aug 23, 2023
1 parent c0e30ab commit 814b208
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 18 deletions.
4 changes: 2 additions & 2 deletions controllers/accesstoken_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import (
type AccessTokenReconciler struct {
client.Client
Scheme *runtime.Scheme
Cache *ProcessCache
Cache ProcessCache
}

//+kubebuilder:rbac:groups=cerberus.snappcloud.io,resources=accesstokens,verbs=get;list;watch;create;update;patch;delete
Expand All @@ -50,7 +50,7 @@ type AccessTokenReconciler struct {
func (r *AccessTokenReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
_ = log.FromContext(ctx)

err := (*r.Cache).UpdateCache(r.Client, ctx)
err := r.Cache.UpdateCache(r.Client, ctx)

return ctrl.Result{}, err
}
Expand Down
4 changes: 2 additions & 2 deletions controllers/webservice_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import (
type WebServiceReconciler struct {
client.Client
Scheme *runtime.Scheme
Cache *ProcessCache
Cache ProcessCache
}

//+kubebuilder:rbac:groups=cerberus.snappcloud.io,resources=webservices,verbs=get;list;watch;create;update;patch;delete
Expand All @@ -50,7 +50,7 @@ type WebServiceReconciler struct {
func (r *WebServiceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
_ = log.FromContext(ctx)

err := (*r.Cache).UpdateCache(r.Client, ctx)
err := r.Cache.UpdateCache(r.Client, ctx)

return ctrl.Result{}, err
}
Expand Down
4 changes: 2 additions & 2 deletions controllers/webserviceaccessbinding_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import (
type WebserviceAccessBindingReconciler struct {
client.Client
Scheme *runtime.Scheme
Cache *ProcessCache
Cache ProcessCache
}

//+kubebuilder:rbac:groups=cerberus.snappcloud.io,resources=webserviceaccessbindings,verbs=get;list;watch;create;update;patch;delete
Expand All @@ -50,7 +50,7 @@ type WebserviceAccessBindingReconciler struct {
func (r *WebserviceAccessBindingReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
_ = log.FromContext(ctx)

err := (*r.Cache).UpdateCache(r.Client, ctx)
err := r.Cache.UpdateCache(r.Client, ctx)

return ctrl.Result{}, err
}
Expand Down
32 changes: 20 additions & 12 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,13 @@ func main() {
flag.Parse()
ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts)))

mgr, err := setupManager(metricsAddr, probeAddr, enableLeaderElection)
listener, srv, authenticator, err := setupAuthenticationServer(authAddr)
if err != nil {
setupLog.Error(err, "unable to set up authentication server")
os.Exit(1)
}

mgr, err := setupManager(metricsAddr, probeAddr, enableLeaderElection, authenticator)
if err != nil {
setupLog.Error(err, "unable to set up manager")
os.Exit(1)
Expand All @@ -88,12 +94,6 @@ func main() {
os.Exit(1)
}

listener, srv, err := setupAuthenticationServer(authAddr, mgr)
if err != nil {
setupLog.Error(err, "unable to set up authentication server")
os.Exit(1)
}

errChan := make(chan error)
ctx := ctrl.SetupSignalHandler()

Expand All @@ -109,7 +109,12 @@ func main() {
}
}

func setupManager(metricsAddr string, probeAddr string, enableLeaderElection bool) (ctrl.Manager, error) {
func setupManager(
metricsAddr string,
probeAddr string,
enableLeaderElection bool,
authenticator *auth.Authenticator,
) (ctrl.Manager, error) {
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
MetricsBindAddress: metricsAddr,
Expand Down Expand Up @@ -137,20 +142,23 @@ func setupManager(metricsAddr string, probeAddr string, enableLeaderElection boo
if err = (&controllers.AccessTokenReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
Cache: authenticator,
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "AccessToken")
return nil, err
}
if err = (&controllers.WebServiceReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
Cache: authenticator,
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "WebService")
return nil, err
}
if err = (&controllers.WebserviceAccessBindingReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
Cache: authenticator,
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "WebserviceAccessBinding")
return nil, err
Expand All @@ -171,11 +179,11 @@ func setupHealthChecks(mgr ctrl.Manager) error {
return nil
}

func setupAuthenticationServer(listenAddress string, mgr ctrl.Manager) (net.Listener, *grpc.Server, error) {
func setupAuthenticationServer(listenAddress string) (net.Listener, *grpc.Server, *auth.Authenticator, error) {
listener, err := net.Listen("tcp", listenAddress)
if err != nil {
setupLog.Error(err, "problem in binding authorization service")
return nil, nil, err
return nil, nil, nil, err
}

grpcOpts := []grpc.ServerOption{
Expand All @@ -189,10 +197,10 @@ func setupAuthenticationServer(listenAddress string, mgr ctrl.Manager) (net.List
)
if err != nil {
setupLog.Error(err, "unable to create and update authenticator")
return nil, nil, err
return nil, nil, nil, err
}
auth.RegisterServer(srv, authenticator)
return listener, srv, nil
return listener, srv, authenticator, nil
}

func runAuthenticationServer(ctx context.Context, listener net.Listener, srv *grpc.Server, errChan chan error) {
Expand Down

0 comments on commit 814b208

Please sign in to comment.