Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions config/rbac/role.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@ rules:
- networkcontexts/finalizers
- networkinterfaceclaims/finalizers
- networkinterfaces/finalizers
- networkloadbalancers/finalizers
- networkpolicies/finalizers
- networks/finalizers
- subnetclaims/finalizers
Expand All @@ -361,6 +362,7 @@ rules:
- networkcontexts/status
- networkinterfaceclaims/status
- networkinterfaces/status
- networkloadbalancers/status
- networkpolicies/status
- networks/status
- networkservices/status
Expand All @@ -380,3 +382,13 @@ rules:
- get
- list
- watch
- apiGroups:
- networking.datumapis.com
resources:
- networkloadbalancers
verbs:
- get
- list
- patch
- update
- watch
7 changes: 7 additions & 0 deletions internal/cmd/manager/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -802,6 +802,13 @@ func controllerRegistrations(
{"networkservice", true, func() error {
return (&controller.NetworkServiceReconciler{}).SetupWithManager(mgr)
}},
{"networkloadbalancer", true, func() error {
return (&controller.NetworkLoadBalancerReconciler{
IPAM: deps.ipamClients,
PublicIPv6Class: serverConfig.IPAM.Classes.PublicIPv6,
ManagedDomain: serverConfig.Gateway.TargetDomain,
}).SetupWithManager(mgr)
}},
// Which workloads are behind a proxy is only answerable in a project
// control plane, and only a cell can act on it. The record this writes to
// the hub is what carries the answer between them.
Expand Down
1 change: 1 addition & 0 deletions internal/cmd/manager/manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ var reconcilerControllerNames = map[string]string{
"NetworkInterfaceProjector": "networkinterfaceprojector",
"NetworkInterfaceReconciler": "networkinterface",
"NetworkInterfaceWriteBackReconciler": "networkinterfacewriteback",
"NetworkLoadBalancerReconciler": "networkloadbalancer",
"NetworkPolicyReconciler": "networkpolicy",
"NetworkPresenceReconciler": "networkpresence",
"NetworkPresenceSyncReconciler": "networkpresencesync",
Expand Down
5 changes: 5 additions & 0 deletions internal/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,11 @@ type IPAMConfig struct {
// environment's classes are different objects, and an operator deployed
// against either has to name the ones it is pointed at.
type IPAMClasses struct {
// PublicIPv6 is the address class used for per-location public load
// balancer VIPs. Its backing class must share one platform-wide pool with
// uniqueWithin unset, including when projects use source classes.
PublicIPv6 string `json:"publicIPv6,omitempty"`

// Network is the class that hands out the range a network is addressed
// from. Unset, no range is claimed and a network is reconciled with no
// address space, the same as an unset IPAM connection.
Expand Down
Loading
Loading