Skip to content

Commit f613132

Browse files
Pivoting to new operator implementation
Starting from this commit, operator will use the new controller implementation. The old implementation code will be deleted in the subsequent PRs
1 parent 45374ef commit f613132

File tree

1 file changed

+35
-16
lines changed

1 file changed

+35
-16
lines changed

main.go

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222
"os"
2323

2424
_ "k8s.io/client-go/plugin/pkg/client/auth"
25-
"k8s.io/klog/v2"
25+
"k8s.io/klog/v2/textlogger"
2626

2727
"k8s.io/apimachinery/pkg/runtime"
2828
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
@@ -34,7 +34,11 @@ import (
3434
"sigs.k8s.io/controller-runtime/pkg/webhook"
3535

3636
nfdkubernetesiov1 "sigs.k8s.io/node-feature-discovery-operator/api/v1"
37-
"sigs.k8s.io/node-feature-discovery-operator/controllers"
37+
"sigs.k8s.io/node-feature-discovery-operator/internal/configmap"
38+
"sigs.k8s.io/node-feature-discovery-operator/internal/controllers"
39+
"sigs.k8s.io/node-feature-discovery-operator/internal/daemonset"
40+
"sigs.k8s.io/node-feature-discovery-operator/internal/deployment"
41+
"sigs.k8s.io/node-feature-discovery-operator/internal/job"
3842
"sigs.k8s.io/node-feature-discovery-operator/pkg/utils"
3943
"sigs.k8s.io/node-feature-discovery-operator/pkg/version"
4044
// +kubebuilder:scaffold:imports
@@ -71,12 +75,17 @@ func main() {
7175
printVersion := flags.Bool("version", false, "Print version and exit.")
7276

7377
args := initFlags(flags)
74-
// Inject klog flags
75-
klog.InitFlags(flags)
78+
79+
logConfig := textlogger.NewConfig()
80+
logConfig.AddFlags(flag.CommandLine)
81+
logger := textlogger.NewLogger(logConfig).WithName("nfd")
82+
83+
ctrl.SetLogger(logger)
84+
setupLogger := logger.WithName("setup")
7685

7786
_ = flags.Parse(os.Args[1:])
7887
if len(flags.Args()) > 0 {
79-
fmt.Fprintf(flags.Output(), "unknown command line argument: %s\n", flags.Args()[0])
88+
setupLogger.Info("unknown command line argument", flags.Args()[0])
8089
flags.Usage()
8190
os.Exit(2)
8291
}
@@ -88,7 +97,7 @@ func main() {
8897

8998
watchNamespace, envSet := utils.GetWatchNamespace()
9099
if !envSet {
91-
klog.Info("unable to get WatchNamespace, " +
100+
setupLogger.Info("unable to get WatchNamespace, " +
92101
"the manager will watch and manage resources in all namespaces")
93102
}
94103

@@ -112,37 +121,47 @@ func main() {
112121
})
113122

114123
if err != nil {
115-
klog.Error(err, "unable to start manager")
124+
setupLogger.Error(err, "unable to start manager")
116125
os.Exit(1)
117126
}
118127

119-
if err = (&controllers.NodeFeatureDiscoveryReconciler{
120-
Client: mgr.GetClient(),
121-
Scheme: mgr.GetScheme(),
122-
}).SetupWithManager(mgr); err != nil {
123-
klog.Error(err, "unable to create controller", "controller", "NodeFeatureDiscovery")
128+
client := mgr.GetClient()
129+
scheme := mgr.GetScheme()
130+
131+
deploymentAPI := deployment.NewDeploymentAPI(client, scheme)
132+
daemonsetAPI := daemonset.NewDaemonsetAPI(client, scheme)
133+
configmapAPI := configmap.NewConfigMapAPI(client, scheme)
134+
jobAPI := job.NewJobAPI(client, scheme)
135+
136+
if err = new_controllers.NewNodeFeatureDiscoveryReconciler(client,
137+
deploymentAPI,
138+
daemonsetAPI,
139+
configmapAPI,
140+
jobAPI,
141+
scheme).SetupWithManager(mgr); err != nil {
142+
setupLogger.Error(err, "unable to create controller", "controller", "NodeFeatureDiscovery")
124143
os.Exit(1)
125144
}
126145
// +kubebuilder:scaffold:builder
127146

128147
// Next, add a Healthz checker to the manager. Healthz is a health and liveness package
129148
// that the operator will use to periodically check the health of its pods, etc.
130149
if err := mgr.AddHealthzCheck("health", healthz.Ping); err != nil {
131-
klog.Error(err, "unable to set up health check")
150+
setupLogger.Error(err, "unable to set up health check")
132151
os.Exit(1)
133152
}
134153

135154
// Now add a ReadyZ checker to the manager as well. It is important to ensure that the
136155
// API server's readiness is checked when the operator is installed and running.
137156
if err := mgr.AddReadyzCheck("check", healthz.Ping); err != nil {
138-
klog.Error(err, "unable to set up ready check")
157+
setupLogger.Error(err, "unable to set up ready check")
139158
os.Exit(1)
140159
}
141160

142161
// Register signal handler for SIGINT and SIGTERM to terminate the manager
143-
klog.Info("starting manager")
162+
setupLogger.Info("starting manager")
144163
if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil {
145-
klog.Error(err, "problem running manager")
164+
setupLogger.Error(err, "problem running manager")
146165
os.Exit(1)
147166
}
148167
}

0 commit comments

Comments
 (0)