@@ -16,6 +16,7 @@ limitations under the License.
16
16
package main
17
17
18
18
import (
19
+ "errors"
19
20
"flag"
20
21
"os"
21
22
@@ -50,13 +51,12 @@ func init() {
50
51
func main () {
51
52
52
53
var (
53
- metricsAddr string
54
- healthAddr string
55
54
enableLeaderElection bool
55
+ healthAddr string
56
+ metricsAddr string
57
+ webhookPort int
56
58
)
57
59
58
- flag .StringVar (& metricsAddr , "metrics-addr" , ":8080" , "The address the metric endpoint binds to." )
59
-
60
60
flag .BoolVar (& enableLeaderElection , "enable-leader-election" , false ,
61
61
"Enable leader election for controller manager. " +
62
62
"Enabling this will ensure there is only one active controller manager." )
@@ -67,6 +67,14 @@ func main() {
67
67
"The address the health endpoint binds to." ,
68
68
)
69
69
70
+ flag .StringVar (& metricsAddr , "metrics-addr" , ":8080" , "The address the metric endpoint binds to." )
71
+
72
+ flag .IntVar (& webhookPort ,
73
+ "webhook-port" ,
74
+ 0 ,
75
+ "Webhook Server port, disabled by default. When enabled, the manager will only work as webhook server, no reconcilers are installed." ,
76
+ )
77
+
70
78
flag .Parse ()
71
79
72
80
ctrl .SetLogger (zap .New (zap .UseDevMode (true )))
@@ -80,7 +88,7 @@ func main() {
80
88
mgr , err := ctrl .NewManager (ctrl .GetConfigOrDie (), ctrl.Options {
81
89
Scheme : scheme ,
82
90
MetricsBindAddress : metricsAddr ,
83
- Port : 9443 ,
91
+ Port : webhookPort ,
84
92
EventBroadcaster : broadcaster ,
85
93
LeaderElection : enableLeaderElection ,
86
94
LeaderElectionID : "cad3ba79.cluster.x-k8s.io" ,
@@ -98,24 +106,30 @@ func main() {
98
106
os .Exit (1 )
99
107
}
100
108
101
- if err = (& controllers.PacketClusterReconciler {
102
- Client : mgr .GetClient (),
103
- Log : ctrl .Log .WithName ("controllers" ).WithName ("PacketCluster" ),
104
- Recorder : mgr .GetEventRecorderFor ("packetcluster-controller" ),
105
- PacketClient : client ,
106
- Scheme : mgr .GetScheme (),
107
- }).SetupWithManager (mgr ); err != nil {
108
- setupLog .Error (err , "unable to create controller" , "controller" , "PacketCluster" )
109
- os .Exit (1 )
110
- }
111
- if err = (& controllers.PacketMachineReconciler {
112
- Client : mgr .GetClient (),
113
- Log : ctrl .Log .WithName ("controllers" ).WithName ("PacketMachine" ),
114
- Scheme : mgr .GetScheme (),
115
- Recorder : mgr .GetEventRecorderFor ("packetmachine-controller" ),
116
- PacketClient : client ,
117
- }).SetupWithManager (mgr ); err != nil {
118
- setupLog .Error (err , "unable to create controller" , "controller" , "PacketMachine" )
109
+ if webhookPort == 0 {
110
+ if err = (& controllers.PacketClusterReconciler {
111
+ Client : mgr .GetClient (),
112
+ Log : ctrl .Log .WithName ("controllers" ).WithName ("PacketCluster" ),
113
+ Recorder : mgr .GetEventRecorderFor ("packetcluster-controller" ),
114
+ PacketClient : client ,
115
+ Scheme : mgr .GetScheme (),
116
+ }).SetupWithManager (mgr ); err != nil {
117
+ setupLog .Error (err , "unable to create controller" , "controller" , "PacketCluster" )
118
+ os .Exit (1 )
119
+ }
120
+ if err = (& controllers.PacketMachineReconciler {
121
+ Client : mgr .GetClient (),
122
+ Log : ctrl .Log .WithName ("controllers" ).WithName ("PacketMachine" ),
123
+ Scheme : mgr .GetScheme (),
124
+ Recorder : mgr .GetEventRecorderFor ("packetmachine-controller" ),
125
+ PacketClient : client ,
126
+ }).SetupWithManager (mgr ); err != nil {
127
+ setupLog .Error (err , "unable to create controller" , "controller" , "PacketMachine" )
128
+ os .Exit (1 )
129
+ }
130
+ } else {
131
+ // TODO: add the webhook configuration
132
+ setupLog .Error (errors .New ("webhook not implemented" ), "webhook" , "not available" )
119
133
os .Exit (1 )
120
134
}
121
135
// +kubebuilder:scaffold:builder
0 commit comments