7
7
8
8
ackcfg "github.com/aws-controllers-k8s/runtime/pkg/config"
9
9
ackrt "github.com/aws-controllers-k8s/runtime/pkg/runtime"
10
+ ackrtutil "github.com/aws-controllers-k8s/runtime/pkg/util"
11
+ ackrtwebhook "github.com/aws-controllers-k8s/runtime/pkg/webhook"
10
12
flag "github.com/spf13/pflag"
11
13
"k8s.io/apimachinery/pkg/runtime"
12
14
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
@@ -16,7 +18,7 @@ import (
16
18
ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1"
17
19
svcresource "github.com/aws-controllers-k8s/{ { .ServiceIDClean } }-controller/pkg/resource"
18
20
svctypes "github.com/aws-controllers-k8s/{ { .ServiceIDClean } }-controller/apis/{ { .APIVersion } }"
19
-
21
+ { {/* TODO(a-hilaly): import apis/* packages to register webhooks */ } }
20
22
{ { $serviceIDClean := .ServiceIDClean } } { {range $crdName := .SnakeCasedCRDNames } }_ "github.com/aws-controllers-k8s/{ { $serviceIDClean } }-controller/pkg/resource/{ { $crdName } }"
21
23
{ {end} }
22
24
)
30
32
31
33
func init() {
32
34
_ = clientgoscheme.AddToScheme(scheme)
35
+ {{/* TODO(a-hilaly): register all the apis/* schemes */} }
33
36
_ = svctypes.AddToScheme(scheme)
34
37
_ = ackv1alpha1.AddToScheme(scheme)
35
38
}
@@ -48,13 +51,23 @@ func main() {
48
51
os.Exit(1)
49
52
}
50
53
54
+ host, port, err := ackrtutil.GetHostPort(ackCfg.WebhookServerAddr)
55
+ if err != nil {
56
+ setupLog.Error(
57
+ err, " Unable to parse webhook server address." ,
58
+ " aws.service" , awsServiceAlias,
59
+ )
60
+ os.Exit(1)
61
+ }
62
+
51
63
mgr, err := ctrlrt.NewManager(ctrlrt.GetConfigOrDie(), ctrlrt.Options{
52
- Scheme: scheme,
53
- Port: ackCfg.BindPort,
64
+ Scheme: scheme,
65
+ Port: port,
66
+ Host: host,
54
67
MetricsBindAddress: ackCfg.MetricsAddr,
55
- LeaderElection: ackCfg.EnableLeaderElection,
68
+ LeaderElection: ackCfg.EnableLeaderElection,
56
69
LeaderElectionID: awsServiceAPIGroup,
57
- Namespace: ackCfg.WatchNamespace,
70
+ Namespace: ackCfg.WatchNamespace,
58
71
} )
59
72
if err != nil {
60
73
setupLog.Error(
@@ -80,6 +93,20 @@ func main() {
80
93
).WithPrometheusRegistry(
81
94
ctrlrtmetrics.Registry,
82
95
)
96
+
97
+ if ackCfg.EnableWebhookServer {
98
+ webhooks := ackrtwebhook.GetWebhooks()
99
+ for _, webhook := range webhooks {
100
+ if err := webhook.Setup(mgr); err != nil {
101
+ setupLog.Error(
102
+ err, " unable to register webhook " +webhook.UID(),
103
+ " aws.service" , awsServiceAlias,
104
+ )
105
+
106
+ }
107
+ }
108
+ }
109
+
83
110
if err = sc.BindControllerManager(mgr, ackCfg); err != nil {
84
111
setupLog.Error(
85
112
err, " unable bind to controller manager to service controller" ,
0 commit comments