Skip to content

Commit b449dae

Browse files
committed
Add ability to build vsphere binary
1 parent d642d7a commit b449dae

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

cmd/vsphere/main.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"fmt"
6+
"os"
7+
8+
"github.com/openshift/machine-api-operator/pkg/apis/machine/v1beta1"
9+
vsphereapis "github.com/openshift/machine-api-operator/pkg/apis/vsphereprovider"
10+
capimachine "github.com/openshift/machine-api-operator/pkg/controller/machine"
11+
machine "github.com/openshift/machine-api-operator/pkg/controller/vsphere"
12+
"github.com/openshift/machine-api-operator/pkg/version"
13+
"k8s.io/klog"
14+
"sigs.k8s.io/controller-runtime/pkg/client/config"
15+
"sigs.k8s.io/controller-runtime/pkg/manager"
16+
"sigs.k8s.io/controller-runtime/pkg/runtime/signals"
17+
)
18+
19+
func main() {
20+
var printVersion bool
21+
flag.BoolVar(&printVersion, "version", false, "print version and exit")
22+
23+
klog.InitFlags(nil)
24+
watchNamespace := flag.String("namespace", "", "Namespace that the controller watches to reconcile machine-api objects. If unspecified, the controller watches for machine-api objects across all namespaces.")
25+
flag.Set("logtostderr", "true")
26+
flag.Parse()
27+
28+
if printVersion {
29+
fmt.Println(version.String)
30+
os.Exit(0)
31+
}
32+
33+
cfg := config.GetConfigOrDie()
34+
35+
opts := manager.Options{
36+
// Disable metrics serving
37+
MetricsBindAddress: "0",
38+
}
39+
if *watchNamespace != "" {
40+
opts.Namespace = *watchNamespace
41+
klog.Infof("Watching machine-api objects only in namespace %q for reconciliation.", opts.Namespace)
42+
}
43+
44+
// Setup a Manager
45+
mgr, err := manager.New(cfg, opts)
46+
if err != nil {
47+
klog.Fatalf("Failed to set up overall controller manager: %v", err)
48+
}
49+
50+
// Initialize machine actuator.
51+
machineActuator := machine.NewActuator(machine.ActuatorParams{
52+
Client: mgr.GetClient(),
53+
EventRecorder: mgr.GetEventRecorderFor("vspherecontroller"),
54+
})
55+
56+
if err := vsphereapis.AddToScheme(mgr.GetScheme()); err != nil {
57+
klog.Fatal(err)
58+
}
59+
60+
if err := v1beta1.AddToScheme(mgr.GetScheme()); err != nil {
61+
klog.Fatal(err)
62+
}
63+
64+
capimachine.AddWithActuator(mgr, machineActuator)
65+
66+
if err := mgr.Start(signals.SetupSignalHandler()); err != nil {
67+
klog.Fatalf("Failed to run manager: %v", err)
68+
}
69+
}

0 commit comments

Comments
 (0)