From b97244ddfdf50cd2d38426c8712c6bc7014411f6 Mon Sep 17 00:00:00 2001 From: Burak Sekili Date: Thu, 19 Oct 2023 19:35:16 +0300 Subject: [PATCH 1/2] Update emptymain.go Update deprecated manager Options fields --- .../cronjob-tutorial/testdata/emptymain.go | 49 +++++++++++++------ 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/docs/book/src/cronjob-tutorial/testdata/emptymain.go b/docs/book/src/cronjob-tutorial/testdata/emptymain.go index c0acd4fe63..7d59715efc 100644 --- a/docs/book/src/cronjob-tutorial/testdata/emptymain.go +++ b/docs/book/src/cronjob-tutorial/testdata/emptymain.go @@ -28,9 +28,10 @@ package main import ( "flag" - "fmt" "os" + "sigs.k8s.io/controller-runtime/pkg/webhook" + // Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.) // to ensure that exec-entrypoint and run can make use of them. _ "k8s.io/client-go/plugin/pkg/client/auth" @@ -43,6 +44,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/healthz" "sigs.k8s.io/controller-runtime/pkg/log/zap" + "sigs.k8s.io/controller-runtime/pkg/metrics/server" // +kubebuilder:scaffold:imports ) @@ -104,9 +106,11 @@ func main() { ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts))) mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - MetricsBindAddress: metricsAddr, - Port: 9443, + Scheme: scheme, + Metrics: server.Options{ + BindAddress: metricsAddr, + }, + WebhookServer: webhook.NewServer(webhook.Options{Port: 9443}), HealthProbeBindAddress: probeAddr, LeaderElection: enableLeaderElection, LeaderElectionID: "80807133.tutorial.kubebuilder.io", @@ -121,10 +125,16 @@ func main() { */ mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - Namespace: namespace, - MetricsBindAddress: metricsAddr, - Port: 9443, + Scheme: scheme, + Cache: cache.Options{ + DefaultNamespaces: map[string]cache.Config{ + namespace: {}, + }, + }, + Metrics: server.Options{ + BindAddress: metricsAddr, + }, + WebhookServer: webhook.NewServer(webhook.Options{Port: 9443}), HealthProbeBindAddress: probeAddr, LeaderElection: enableLeaderElection, LeaderElectionID: "80807133.tutorial.kubebuilder.io", @@ -136,24 +146,33 @@ func main() { `ClusterRole` and `ClusterRoleBinding` to `Role` and `RoleBinding` respectively. For further information see the Kubernetes documentation about Using [RBAC Authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/). - Also, it is possible to use the [`MultiNamespacedCacheBuilder`](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/cache#MultiNamespacedCacheBuilder) - to watch a specific set of namespaces: + Also, it is possible to use the [`DefaultNamespaces`](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/cache#Options) + from `cache.Options{}` to cache objects in a specific set of namespaces: */ var namespaces []string // List of Namespaces + defaultNamespaces := make(map[string]cache.Config) + + for _, ns := range namespaces { + defaultNamespaces[ns] = cache.Config{} + } mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - NewCache: cache.MultiNamespacedCacheBuilder(namespaces), - MetricsBindAddress: fmt.Sprintf("%s:%d", metricsHost, metricsPort), - Port: 9443, + Scheme: scheme, + Cache: cache.Options{ + DefaultNamespaces: defaultNamespaces, + }, + Metrics: server.Options{ + BindAddress: metricsAddr, + }, + WebhookServer: webhook.NewServer(webhook.Options{Port: 9443}), HealthProbeBindAddress: probeAddr, LeaderElection: enableLeaderElection, LeaderElectionID: "80807133.tutorial.kubebuilder.io", }) /* - For further information see [`MultiNamespacedCacheBuilder`](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/cache?tab=doc#MultiNamespacedCacheBuilder) + For further information see [`cache.Options{}`](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/cache#Options) */ // +kubebuilder:scaffold:builder From 9427257654eb7e7676ca4f8dfdcb0c2c8f4422d3 Mon Sep 17 00:00:00 2001 From: Burak Sekili Date: Thu, 19 Oct 2023 19:37:47 +0300 Subject: [PATCH 2/2] Update emptymain.go Run goimports --- docs/book/src/cronjob-tutorial/testdata/emptymain.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/book/src/cronjob-tutorial/testdata/emptymain.go b/docs/book/src/cronjob-tutorial/testdata/emptymain.go index 7d59715efc..f9ab80c7f4 100644 --- a/docs/book/src/cronjob-tutorial/testdata/emptymain.go +++ b/docs/book/src/cronjob-tutorial/testdata/emptymain.go @@ -30,8 +30,6 @@ import ( "flag" "os" - "sigs.k8s.io/controller-runtime/pkg/webhook" - // Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.) // to ensure that exec-entrypoint and run can make use of them. _ "k8s.io/client-go/plugin/pkg/client/auth" @@ -45,6 +43,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/healthz" "sigs.k8s.io/controller-runtime/pkg/log/zap" "sigs.k8s.io/controller-runtime/pkg/metrics/server" + "sigs.k8s.io/controller-runtime/pkg/webhook" // +kubebuilder:scaffold:imports )