@@ -20,13 +20,17 @@ import (
20
20
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
21
21
crsv1 "sigs.k8s.io/cluster-api/exp/addons/api/v1beta1"
22
22
ctrl "sigs.k8s.io/controller-runtime"
23
+ "sigs.k8s.io/controller-runtime/pkg/client"
24
+ "sigs.k8s.io/controller-runtime/pkg/controller"
23
25
"sigs.k8s.io/controller-runtime/pkg/healthz"
24
26
"sigs.k8s.io/controller-runtime/pkg/manager"
25
27
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
26
28
27
29
caaphv1 "github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/api/external/sigs.k8s.io/cluster-api-addon-provider-helm/api/v1alpha1"
30
+ "github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/api/v1alpha1"
28
31
"github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/common/pkg/capi/clustertopology/handlers"
29
32
"github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/common/pkg/server"
33
+ "github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/pkg/controllers/namespacesync"
30
34
"github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/pkg/handlers/aws"
31
35
"github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/pkg/handlers/docker"
32
36
"github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic"
@@ -95,6 +99,8 @@ func main() {
95
99
// It allows to specify configuration under a single variable.
96
100
genericMetaHandlers := generic .New ()
97
101
102
+ namespacesyncOptions := namespacesync.Options {}
103
+
98
104
// Initialize and parse command line flags.
99
105
logs .AddFlags (pflag .CommandLine , logs .SkipLoggingConfigurationFlags ())
100
106
logsv1 .AddFlags (logOptions , pflag .CommandLine )
@@ -104,6 +110,7 @@ func main() {
104
110
awsMetaHandlers .AddFlags (pflag .CommandLine )
105
111
dockerMetaHandlers .AddFlags (pflag .CommandLine )
106
112
nutanixMetaHandlers .AddFlags (pflag .CommandLine )
113
+ namespacesyncOptions .AddFlags (pflag .CommandLine )
107
114
pflag .CommandLine .SetNormalizeFunc (cliflag .WordSepNormalizeFunc )
108
115
pflag .CommandLine .AddGoFlagSet (flag .CommandLine )
109
116
pflag .Parse ()
@@ -141,6 +148,32 @@ func main() {
141
148
os .Exit (1 )
142
149
}
143
150
151
+ unstructuredCachingClient , err := client .New (mgr .GetConfig (), client.Options {
152
+ HTTPClient : mgr .GetHTTPClient (),
153
+ Cache : & client.CacheOptions {
154
+ Reader : mgr .GetCache (),
155
+ Unstructured : true ,
156
+ },
157
+ })
158
+ if err != nil {
159
+ setupLog .Error (err , "unable to create unstructured caching client" )
160
+ os .Exit (1 )
161
+ }
162
+
163
+ if err := (& namespacesync.Reconciler {
164
+ Client : mgr .GetClient (),
165
+ UnstructuredCachingClient : unstructuredCachingClient ,
166
+ SourceClusterClassNamespace : namespacesyncOptions .SourceNamespace ,
167
+ TargetNamespaceFilter : namespacesync .NamespaceHasLabelKey (v1alpha1 .NamespaceSyncLabelKey ),
168
+ }).SetupWithManager (
169
+ signalCtx ,
170
+ mgr ,
171
+ controller.Options {MaxConcurrentReconciles : namespacesyncOptions .Concurrency },
172
+ ); err != nil {
173
+ setupLog .Error (err , "unable to create controller" , "controller" , "namespacesync.Reconciler" )
174
+ os .Exit (1 )
175
+ }
176
+
144
177
if err := mgr .Start (signalCtx ); err != nil {
145
178
setupLog .Error (err , "unable to start controller manager" )
146
179
os .Exit (1 )
0 commit comments