Network¶
A Network
resource in Ironcore
refers to a logically isolated network.
This further allows you to fully control your networking environment, including resource placement, connectivity, peering and security.
The NetworkController
reconciler leverages this information to create a Network in Ironcore infrastructure.
Machine
type is provided with provision to integrate with the Network via NetworkInterface
.
Example Network Resource¶
An example of how to define a Network
resource in Ironcore
apiVersion: networking.ironcore.dev/v1alpha1
kind: Network
metadata:
name: network-sample
spec:
peerings:
- name: peering1
networkRef:
name: network-sample2
Key Fields:¶
providerID
(string
): providerID is the provider-internal ID of the network.peerings
(list
): peerings are the list of network peerings with this network(Optional).incomingPeerings
(list
): incomingPeerings is a list of PeeringClaimRefs which is nothing but peering claim references of other networks.
Reconciliation Process:¶
- Network creation:
ironcore-net
which is the network provider for Ironcore realizes theNetwork
resource viaapinetlet
controllers. When an IroncoreNetwork
is created, a correspondingcore.apinet.ironcore.dev/Network
is created in the apinet cluster. The name of the Network in the apinet cluster is the uid of the Network in the Ironcore cluster.
Once created and with an allocated ID, the Ironcore Network will be patched with the corresponding provider ID of the apinet Network and set to state: Available. The provider ID format & parsing can be found in provider.go.
Once resource is in available state status is marked to Available
. The format of a network provider ID is as follows:
ironcore-net://<namespace>/<name>/<id>/<uid>
- Network peering process: Network peering is a technique used to interleave two isolated networks, allowing members of both networks to communicate with each
other as if they were in the same networking domain,
NetworkPeeringController
facilitates this process. - Information related to the referenced
Network
to be paired with is retrieved from thepeering
part of the spec. - Validation is done to see if both Networks have specified a matching peering item (i.e. reference each other via
networkRef
) to mutually accept the peering. -
The (binding) phase of a
spec.peerings
item is reflected in a correspondingstatus.peerings
item with the same name. The phase can either bePending
, meaning there is no active peering orBound
meaning the peering as described in thespec.peerings
item is in place. -
Network Release Controller:
NetworkReleaseController
continuously checks if claiming Networks in other Network's peerings section still exist if not present it will be removed from theincomingPeerings
list.