Skip to content

Commit

Permalink
adopt incompatible controller-runtime v0.16.0 changes
Browse files Browse the repository at this point in the history
  • Loading branch information
cbarbian-sap committed Aug 23, 2023
1 parent 4bce601 commit e5f72db
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 20 deletions.
23 changes: 17 additions & 6 deletions controllers/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ import (
"sigs.k8s.io/controller-runtime/pkg/envtest"
"sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/webhook"

corev1alpha1 "github.com/sap/project-operator/api/v1alpha1"
"github.com/sap/project-operator/controllers"
Expand Down Expand Up @@ -100,13 +102,22 @@ var _ = BeforeSuite(func() {

By("creating manager")
mgr, err := ctrl.NewManager(cfg, ctrl.Options{
Scheme: scheme,
MetricsBindAddress: "0",
Scheme: scheme,
Client: client.Options{
Cache: &client.CacheOptions{
DisableFor: []client.Object{&corev1alpha1.Project{}},
},
},
WebhookServer: webhook.NewServer(webhook.Options{
Host: webhookInstallOptions.LocalServingHost,
Port: webhookInstallOptions.LocalServingPort,
CertDir: webhookInstallOptions.LocalServingCertDir,
}),
Metrics: metricsserver.Options{
BindAddress: "0",
},
HealthProbeBindAddress: "0",
Host: webhookInstallOptions.LocalServingHost,
Port: webhookInstallOptions.LocalServingPort,
CertDir: webhookInstallOptions.LocalServingCertDir,
ClientDisableCacheFor: []client.Object{&corev1alpha1.Project{}}})
})
Expect(err).NotTo(HaveOccurred())

err = controllers.NewProjectReconciler(
Expand Down
26 changes: 18 additions & 8 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/healthz"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/webhook"

corev1alpha1 "github.com/sap/project-operator/api/v1alpha1"
"github.com/sap/project-operator/controllers"
Expand Down Expand Up @@ -86,23 +88,31 @@ func main() {

ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts)))

host, port, err := parseAddress(webhookAddr)
webhookHost, webhookPort, err := parseAddress(webhookAddr)
if err != nil {
setupLog.Error(err, "unable to parse webhook bind address")
os.Exit(1)
}

mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
MetricsBindAddress: metricsAddr,
HealthProbeBindAddress: probeAddr,
Host: host,
Port: port,
CertDir: webhookCertDir,
Scheme: scheme,
Client: client.Options{
Cache: &client.CacheOptions{
DisableFor: []client.Object{&corev1alpha1.Project{}},
},
},
LeaderElection: enableLeaderElection,
LeaderElectionID: LeaderElectionID,
LeaderElectionReleaseOnCancel: true,
ClientDisableCacheFor: []client.Object{&corev1alpha1.Project{}},
WebhookServer: webhook.NewServer(webhook.Options{
Host: webhookHost,
Port: webhookPort,
CertDir: webhookCertDir,
}),
Metrics: metricsserver.Options{
BindAddress: metricsAddr,
},
HealthProbeBindAddress: probeAddr,
})
if err != nil {
setupLog.Error(err, "unable to start manager")
Expand Down
24 changes: 18 additions & 6 deletions webhooks/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ import (
"sigs.k8s.io/controller-runtime/pkg/envtest"
"sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/webhook"

corev1alpha1 "github.com/sap/project-operator/api/v1alpha1"
"github.com/sap/project-operator/webhooks"
Expand Down Expand Up @@ -110,13 +112,22 @@ var _ = BeforeSuite(func() {

By("creating manager")
mgr, err := ctrl.NewManager(cfg, ctrl.Options{
Scheme: scheme,
MetricsBindAddress: "0",
Scheme: scheme,
Client: client.Options{
Cache: &client.CacheOptions{
DisableFor: []client.Object{&corev1alpha1.Project{}},
},
},
WebhookServer: webhook.NewServer(webhook.Options{
Host: webhookInstallOptions.LocalServingHost,
Port: webhookInstallOptions.LocalServingPort,
CertDir: webhookInstallOptions.LocalServingCertDir,
}),
Metrics: metricsserver.Options{
BindAddress: "0",
},
HealthProbeBindAddress: "0",
Host: webhookInstallOptions.LocalServingHost,
Port: webhookInstallOptions.LocalServingPort,
CertDir: webhookInstallOptions.LocalServingCertDir,
ClientDisableCacheFor: []client.Object{&corev1alpha1.Project{}}})
})
Expect(err).NotTo(HaveOccurred())

err = webhooks.NewProjectWebhook(
Expand Down Expand Up @@ -405,6 +416,7 @@ var _ = Describe("Additional authorization checks when updating/deleting project
})

func validateClient(cli client.Client, accpetedObjects []client.ObjectList, rejectedObjects []client.ObjectList) {
// TODO: if this is called too fast after setting up rbac objects, things may fail (probably, because kubernetes needs a little while until rbac changes are effective ..)
for _, objectList := range accpetedObjects {
err := cli.List(ctx, objectList)
Expect(err).NotTo(HaveOccurred())
Expand Down

0 comments on commit e5f72db

Please sign in to comment.