Skip to content

Commit

Permalink
Cleanup controller registration to the runtime 0.2.0 (#833)
Browse files Browse the repository at this point in the history
  • Loading branch information
alenkacz committed Sep 18, 2019
1 parent ad6f10c commit ab84e1d
Show file tree
Hide file tree
Showing 9 changed files with 80 additions and 388 deletions.
1 change: 0 additions & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Expand Up @@ -16,5 +16,4 @@
/pkg/kudoctl/ @fabianbaier @kensipe @alenkacz
/pkg/test/ @jbarrick-mesosphere
/pkg/util/ @gerred @runyontr @kensipe
/pkg/webhook/ @gerred @runyontr @kensipe
/site/ @guenter @gerred
74 changes: 46 additions & 28 deletions cmd/manager/main.go
Expand Up @@ -19,66 +19,84 @@ import (
"fmt"
"os"

"github.com/kudobuilder/kudo/pkg/controller/operatorversion"

"github.com/kudobuilder/kudo/pkg/controller/operator"

"k8s.io/apimachinery/pkg/runtime"

"github.com/kudobuilder/kudo/pkg/version"

"github.com/kudobuilder/kudo/pkg/apis"
kudov1alpha1 "github.com/kudobuilder/kudo/pkg/apis/kudo/v1alpha1"
"github.com/kudobuilder/kudo/pkg/controller"
"github.com/kudobuilder/kudo/pkg/webhook"
appsv1 "k8s.io/api/apps/v1"
batchv1 "k8s.io/api/batch/v1"
corev1 "k8s.io/api/core/v1"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
"sigs.k8s.io/controller-runtime/pkg/client/config"
"sigs.k8s.io/controller-runtime/pkg/manager"
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/runtime/log"
"sigs.k8s.io/controller-runtime/pkg/runtime/signals"
)

var (
scheme = runtime.NewScheme()
)

func init() {
appsv1.AddToScheme(scheme)
batchv1.AddToScheme(scheme)
corev1.AddToScheme(scheme)
kudov1alpha1.AddToScheme(scheme)
}

func main() {
logf.SetLogger(logf.ZapLogger(false))
log := logf.Log.WithName("entrypoint")

// Get version of KUDO
log.Info(fmt.Sprintf("KUDO Version: %s", fmt.Sprintf("%#v", version.Get())))

// Get a config to talk to the apiserver
log.Info("setting up client for manager")
cfg, err := config.GetConfig()
if err != nil {
log.Error(err, "unable to set up client config")
os.Exit(1)
}

// Create a new Cmd to provide shared dependencies and start components
// create new controller-runtime manager
log.Info("setting up manager")
mgr, err := manager.New(cfg, manager.Options{})
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
})
if err != nil {
log.Error(err, "unable to set up overall controller manager")
log.Error(err, "unable to start manager")
os.Exit(1)
}

log.Info("Registering Components.")

// Setup Scheme for all resources
log.Info("setting up scheme")
if err := apis.AddToScheme(mgr.GetScheme()); err != nil {
log.Error(err, "unable add APIs to scheme")
// Setup all Controllers

log.Info("Setting up operator controller")
err = (&operator.Reconciler{
Client: mgr.GetClient(),
}).SetupWithManager(mgr)
if err != nil {
log.Error(err, "unable to register operator controller to the manager")
os.Exit(1)
}

// Setup all Controllers
log.Info("Setting up controller")
if err := controller.AddControllersToManager(mgr); err != nil {
log.Error(err, "unable to register controllers to the manager")
log.Info("Setting up operator version controller")
err = (&operatorversion.Reconciler{
Client: mgr.GetClient(),
}).SetupWithManager(mgr)
if err != nil {
log.Error(err, "unable to register operator controller to the manager")
os.Exit(1)
}

log.Info("setting up webhooks")
if err := webhook.AddToManager(mgr); err != nil {
log.Error(err, "unable to register webhooks to the manager")
log.Info("Setting up controllers")
// TODO this still registers instance and PE controller, this will be refactored in the next phase
if err := controller.AddControllersToManager(mgr); err != nil {
log.Error(err, "unable to register controllers to the manager")
os.Exit(1)
}

// Start the Cmd
log.Info("Starting the Cmd.")
if err := mgr.Start(signals.SetupSignalHandler()); err != nil {
if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil {
log.Error(err, "unable to run the manager")
os.Exit(1)
}
Expand Down
22 changes: 9 additions & 13 deletions go.mod
Expand Up @@ -3,10 +3,11 @@ module github.com/kudobuilder/kudo
go 1.13

require (
cloud.google.com/go v0.38.0
cloud.google.com/go v0.38.0 // indirect
github.com/Azure/go-autorest/autorest v0.5.0 // indirect
github.com/Masterminds/goutils v1.1.0 // indirect
github.com/Masterminds/semver v1.4.2
github.com/Microsoft/go-winio v0.4.14 // indirect
github.com/containerd/containerd v1.2.9 // indirect
github.com/docker/distribution v2.7.1+incompatible // indirect
github.com/docker/docker v1.4.2-0.20190916154449-92cc603036dd
Expand All @@ -18,16 +19,13 @@ require (
github.com/go-playground/universal-translator v0.16.0 // indirect
github.com/go-test/deep v1.0.1
github.com/gogo/protobuf v1.3.0 // indirect
github.com/golang/mock v1.3.1 // indirect
github.com/golangci/gocyclo v0.0.0-20180528144436-0a533e8fa43d // indirect
github.com/golangci/golangci-lint v1.18.0 // indirect
github.com/golangci/revgrep v0.0.0-20180812185044-276a5c0a1039 // indirect
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect
github.com/google/go-github v17.0.0+incompatible
github.com/google/go-querystring v1.0.0 // indirect
github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf
github.com/gophercloud/gophercloud v0.2.0 // indirect
github.com/gostaticanalysis/analysisutil v0.0.3 // indirect
github.com/gosuri/uitable v0.0.3
github.com/grpc-ecosystem/grpc-gateway v1.9.0 // indirect
github.com/hashicorp/golang-lru v0.5.1 // indirect
github.com/huandu/xstrings v1.2.0 // indirect
github.com/imdario/mergo v0.3.7 // indirect
Expand All @@ -37,28 +35,28 @@ require (
github.com/masterminds/sprig v2.18.0+incompatible
github.com/mattn/go-isatty v0.0.9 // indirect
github.com/mattn/go-runewidth v0.0.4 // indirect
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d // indirect
github.com/onsi/gomega v1.5.0
github.com/opencontainers/go-digest v1.0.0-rc1 // indirect
github.com/opencontainers/image-spec v1.0.1 // indirect
github.com/pborman/uuid v0.0.0-20180906182336-adf5a7427709 // indirect
github.com/pelletier/go-toml v1.4.0 // indirect
github.com/pkg/errors v0.8.1
github.com/pmezard/go-difflib v1.0.0
github.com/prometheus/client_golang v0.9.3 // indirect
github.com/sirupsen/logrus v1.4.2 // indirect
github.com/spf13/afero v1.2.2
github.com/spf13/cobra v0.0.5
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.3
github.com/spf13/viper v1.4.0 // indirect
github.com/stretchr/testify v1.3.0
github.com/ultraware/funlen v0.0.2 // indirect
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca
go.uber.org/atomic v1.4.0 // indirect
go.uber.org/zap v1.10.0 // indirect
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a // indirect
golang.org/x/sys v0.0.0-20190911201528-7ad0cfa0b7b5 // indirect
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 // indirect
golang.org/x/tools v0.0.0-20190909030654-5b82db07426d
google.golang.org/appengine v1.5.0 // indirect
google.golang.org/grpc v1.21.0 // indirect
gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
gopkg.in/go-playground/validator.v9 v9.27.0
gopkg.in/yaml.v2 v2.2.2
Expand All @@ -68,11 +66,9 @@ require (
k8s.io/apimachinery v0.0.0-20190404173353-6a84e37a896d
k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible
k8s.io/code-generator v0.0.0-20181117043124-c2090bec4d9b
mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f // indirect
sigs.k8s.io/controller-runtime v0.2.0
sigs.k8s.io/controller-tools v0.2.0
sigs.k8s.io/kind v0.5.1
sigs.k8s.io/kustomize v2.0.3+incompatible
sigs.k8s.io/yaml v1.1.0
sourcegraph.com/sqs/pbtypes v1.0.0 // indirect
)

0 comments on commit ab84e1d

Please sign in to comment.