in cmd/member-net-controller-manager/main.go [204:238]
func prepareHubParameters(memberConfig *rest.Config) (*rest.Config, *ctrl.Options, error) {
hubConfig, err := hubconfig.PrepareHubConfig(*tlsClientInsecure)
if err != nil {
klog.ErrorS(err, "Failed to get hub config")
return nil, nil, err
}
mcHubNamespace, err := hubconfig.FetchMemberClusterNamespace()
if err != nil {
klog.ErrorS(err, "Failed to get member cluster hub namespace")
return nil, nil, err
}
hubOptions := &ctrl.Options{
Scheme: scheme,
Metrics: metricsserver.Options{
BindAddress: *hubMetricsAddr,
},
WebhookServer: webhook.NewServer(webhook.Options{
Port: 9443,
}),
HealthProbeBindAddress: *hubProbeAddr,
LeaderElection: *enableLeaderElection,
LeaderElectionID: "2bf2b407.hub.networking.fleet.azure.com",
LeaderElectionNamespace: *leaderElectionNamespace, // This requires we have access to resource "leases" in API group "coordination.k8s.io" under leaderElectionNamespace.
LeaderElectionConfig: memberConfig,
// Restricts the manager's cache to watch objects in the member hub namespace.
Cache: cache.Options{
DefaultNamespaces: map[string]cache.Config{
mcHubNamespace: {},
},
},
}
return hubConfig, hubOptions, nil
}