@@ -17,15 +17,15 @@ limitations under the License.
17
17
package main
18
18
19
19
import (
20
- "context"
21
20
"os"
22
21
23
- corev1 "k8s.io/api/core/v1"
24
- "k8s.io/apimachinery/pkg/runtime"
25
-
22
+ "github.com/fabianvf/kcp-cr-example/controllers"
26
23
kcpcache "github.com/kcp-dev/apimachinery/pkg/cache"
27
24
kcpclient "github.com/kcp-dev/apimachinery/pkg/client"
28
25
"github.com/kcp-dev/logicalcluster"
26
+ corev1 "k8s.io/api/core/v1"
27
+ "k8s.io/apimachinery/pkg/runtime"
28
+ utilruntime "k8s.io/apimachinery/pkg/util/runtime"
29
29
30
30
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
31
31
"k8s.io/client-go/rest"
@@ -34,52 +34,36 @@ import (
34
34
"sigs.k8s.io/controller-runtime/pkg/cache"
35
35
"sigs.k8s.io/controller-runtime/pkg/client"
36
36
"sigs.k8s.io/controller-runtime/pkg/cluster"
37
- "sigs.k8s.io/controller-runtime/pkg/controller"
38
-
39
- "sigs.k8s.io/controller-runtime/pkg/kcp"
40
- "sigs.k8s.io/controller-runtime/pkg/log"
41
37
"sigs.k8s.io/controller-runtime/pkg/log/zap"
42
- "sigs.k8s.io/controller-runtime/pkg/source"
43
38
)
44
39
45
40
var (
41
+ scheme = runtime .NewScheme ()
46
42
setupLog = ctrl .Log .WithName ("setup" )
47
43
)
48
44
49
- type reconciler struct {
50
- client.Client
51
- scheme * runtime.Scheme
52
- }
53
-
54
- func (r * reconciler ) Reconcile (ctx context.Context , req ctrl.Request ) (ctrl.Result , error ) {
55
- log := log .FromContext (ctx ).WithValues ("cluster" , req .ObjectKey .Cluster .String ())
56
-
57
- ctx = kcpclient .WithCluster (ctx , req .ObjectKey .Cluster )
58
-
59
- var configmap corev1.ConfigMap
60
- if err := r .Get (ctx , req .ObjectKey , & configmap ); err != nil {
61
- log .Error (err , "unable to get configmap" )
62
- return ctrl.Result {}, err
63
- }
64
- log .Info ("Retrieved configmap" )
65
-
66
- return ctrl.Result {}, nil
45
+ func init () {
46
+ utilruntime .Must (corev1 .AddToScheme (scheme ))
67
47
}
68
48
69
49
func main () {
70
-
71
50
ctrl .SetLogger (zap .New ())
72
51
73
52
cfg := ctrl .GetConfigOrDie ()
53
+
74
54
httpClient , err := rest .HTTPClientFor (cfg )
75
55
if err != nil {
76
56
setupLog .Error (err , "unable to build http client" )
77
57
os .Exit (1 )
78
58
}
79
- clusterRoundTripper := kcpclient .NewClusterRoundTripper (httpClient .Transport )
80
- httpClient .Transport = clusterRoundTripper
59
+
60
+ httpClient .Transport = kcpclient .NewClusterRoundTripper (httpClient .Transport )
61
+
81
62
mgr , err := ctrl .NewManager (cfg , ctrl.Options {
63
+ Scheme : scheme ,
82
64
LeaderElection : false ,
65
+ // LeaderElectionNamespace: "default",
66
+ // LeaderElectionID: "kcp-example",
83
67
NewCache : func (config * rest.Config , opts cache.Options ) (cache.Cache , error ) {
84
68
c := rest .CopyConfig (config )
85
69
c .Host += "/clusters/*"
@@ -96,23 +80,10 @@ func main() {
96
80
os .Exit (1 )
97
81
}
98
82
99
- err = corev1 .AddToScheme (mgr .GetScheme ())
100
- if err != nil {
101
- setupLog .Error (err , "unable to add scheme" )
102
- os .Exit (1 )
103
- }
104
-
105
- c , err := controller .New ("kcp-controller" , mgr , controller.Options {
106
- Reconciler : & reconciler {
107
- Client : mgr .GetClient (),
108
- scheme : mgr .GetScheme (),
109
- }})
110
- if err != nil {
111
- setupLog .Error (err , "unable to set up individual controller" )
112
- os .Exit (1 )
113
- }
114
- if err := c .Watch (& source.Kind {Type : & corev1.ConfigMap {}}, & kcp.EnqueueRequestForObject {}); err != nil {
115
- setupLog .Error (err , "unable to watch configmaps" )
83
+ if err = (& controllers.ConfigMapReconciler {
84
+ Client : mgr .GetClient (),
85
+ }).SetupWithManager (mgr ); err != nil {
86
+ setupLog .Error (err , "unable to create controller" , "controller" , "ConfigMap" )
116
87
os .Exit (1 )
117
88
}
118
89
0 commit comments