Mirantis Container Cloud (MCC) becomes part of Mirantis OpenStack for Kubernetes (MOSK)!
Starting with MOSK 25.2, the MOSK documentation set covers all product layers, including MOSK management (formerly Container Cloud). This means everything you need is in one place. Some legacy names may remain in the code and documentation and will be updated in future releases. The separate Container Cloud documentation site will be retired, so please update your bookmarks for continued easy access to the latest content.
L2 template example for automatic multiple subnet creation¶
Unsupported since MCC 2.28.0 (17.3.0 and 16.3.0)
Warning
The SubnetPool object is unsupported since Container Cloud
2.28.0 (Cluster releases 17.3.0 and 16.3.0). For details, see
Deprecation Notes: SubnetPool resource management.
This section contains an exemplary L2 template for automatic multiple
subnet creation as described in Automate multiple subnet creation using SubnetPool. This template
also contains the L3Layout section that allows defining the Subnet
scopes and enables auto-creation of the Subnet objects from the
SubnetPool objects. For details about auto-creation of the Subnet
objects see Automate multiple subnet creation using SubnetPool.
For details on how to create L2 templates, see Create an L2 template for a new cluster.
Caution
Do not assign an IP address to the PXE nic 0 NIC explicitly
to prevent the IP duplication during updates. The IP address is
automatically assigned by the bootstrapping engine.
Example of an L2 template for multiple subnets:
apiVersion: ipam.mirantis.com/v1alpha1
kind: L2Template
metadata:
name: test-mosk
namespace: mosk-ns
labels:
kaas.mirantis.com/provider: baremetal
kaas.mirantis.com/region: region-one
cluster.sigs.k8s.io/cluster-name: my-cluster
spec:
autoIfMappingPrio:
- provision
- eno
- ens
- enp
l3Layout:
- subnetName: lcm-subnet
scope: namespace
- subnetName: subnet-1
subnetPool: kaas-mgmt
scope: namespace
- subnetName: subnet-2
subnetPool: kaas-mgmt
scope: cluster
npTemplate: |
version: 2
ethernets:
onboard1gbe0:
dhcp4: false
dhcp6: false
match:
macaddress: {{mac 0}}
set-name: {{nic 0}}
# IMPORTANT: do not assign an IP address here explicitly
# to prevent IP duplication issues. The IP will be assigned
# automatically by the bootstrapping engine.
# addresses: []
onboard1gbe1:
dhcp4: false
dhcp6: false
match:
macaddress: {{mac 1}}
set-name: {{nic 1}}
ten10gbe0s0:
dhcp4: false
dhcp6: false
match:
macaddress: {{mac 2}}
set-name: {{nic 2}}
addresses:
- {{ip "2:subnet-1"}}
ten10gbe0s1:
dhcp4: false
dhcp6: false
match:
macaddress: {{mac 3}}
set-name: {{nic 3}}
addresses:
- {{ip "3:subnet-2"}}
bridges:
k8s-lcm:
interfaces: [onboard1gbe0]
addresses:
- {{ip "k8s-lcm:lcm-subnet"}}
gateway4: {{gateway_from_subnet "lcm-subnet"}}
nameservers:
addresses: {{nameservers_from_subnet "lcm-subnet"}}
Note
The kaas.mirantis.com/region label is removed from all MOSK
objects in 24.1. Therefore, do not add the label starting with this release.
On existing clusters updated to this release, or if added manually, MOSK
ignores this label.
In the template above, the following networks are defined
in the l3Layout section:
lcm-subnet- the subnet name to use for the LCM network innpTemplate. This subnet is shared between the project clusters because it has thenamespacedscope.Since a subnet pool is not in use, create the corresponding
Subnetobject before machines are attached to cluster manually. For details, see Create subnets for a cluster using CLI.Mark this
Subnetwith theipam/SVC-k8s-lcmlabel. The L2 template must contain the definition of the virtual Linux bridge (k8s-lcmin the L2 template example) that is used to set up the LCM network interface. IP addresses for the defined bridge must be assigned from the LCM subnet, which is marked with theipam/SVC-k8s-lcmlabel.Each node of every cluster must have one and only IP address in the LCM network that is allocated from one of the
Subnetobjects having theipam/SVC-k8s-lcmlabel defined. Therefore, allSubnetobjects used for LCM networks must have theipam/SVC-k8s-lcmlabel defined.You can use any interface name for the LCM network traffic. The
Subnetobjects for the LCM network must have theipam/SVC-k8s-lcmlabel. For details, see Service labels and their life cycle.
subnet-1- unless already created, this subnet will be created from thekaas-mgmtsubnet pool. The subnet name must be unique within the project. This subnet is shared between the project clusters.subnet-2- will be created from thekaas-mgmtsubnet pool. This subnet has theclusterscope. Therefore, the real name of theSubnetCR object consists of the subnet name defined inl3Layoutand the cluster UID. But thenpTemplatesection of the L2 template must contain only the subnet name defined inl3Layout. The subnets of theclusterscope are not shared between clusters.
Caution
Using the l3Layout section, define all subnets that are used
in the npTemplate section.
Defining only part of subnets is not allowed.
If labelSelector is used in l3Layout, use any custom
label name that differs from system names. This allows for easier
cluster scaling in case of adding new subnets as described in
Expand IP addresses capacity in an existing cluster.
Mirantis recommends using a unique label prefix such as
user-defined/.