Create an L2 template for a MOSK compute node¶
Warning
Avoid modifying existing L2 templates and subnets that the deployed machines use. This prevents multiple clusters failures caused by unsafe changes. The list of risks posed by modifying L2 templates includes:
Services running on hosts cannot reconfigure automatically to switch to the new IP addresses and/or interfaces.
Connections between services are interrupted unexpectedly, which can cause data loss.
Incorrect configurations on hosts can lead to irrevocable loss of connectivity between services and unexpected cluster partition or disassembly.
Note
Starting from MOSK 22.3, modification of L2 templates in use is prohibited in the API to prevent accidental cluster failures due to unsafe changes.
According to the reference architecture, MOSK compute nodes must be connected to the following networks:
PXE network
LCM network
Storage public network (if deploying with Ceph as a back-end for ephemeral storage)
Floating IP and provider networks (if deploying OpenStack with DVR)
Tenant underlay networks
To create an L2 template for MOSK compute nodes:
Add L2 template to the
mosk-l2templates.yml
file using the following example. Adjust the values of parameters according to the specification of your environment.Example of an L2 template for MOSK compute nodes¶apiVersion: ipam.mirantis.com/v1alpha1 kind: L2Template metadata: labels: kaas.mirantis.com/provider: baremetal kaas.mirantis.com/region: region-one cluster.sigs.k8s.io/cluster-name: <MOSKClusterName> name: mosk-compute namespace: <MOSKClusterNamespace> spec: autoIfMappingPrio: - provision - eno - ens - enp clusterRef: <MOSKClusterName> l3Layout: - subnetName: mgmt-lcm-nw scope: global - subnetName: k8s-lcm-subnet scope: namespace - subnetName: k8s-ext-subnet scope: namespace - subnetName: k8s-pods-subnet scope: namespace - subnetName: ceph-cluster-subnet scope: namespace - subnetName: neutron-tunnel-subnet scope: namespace npTemplate: |- version: 2 ethernets: {{nic 0}}: dhcp4: false dhcp6: false match: macaddress: {{mac 0}} set-name: {{nic 0}} mtu: 9000 {{nic 1}}: dhcp4: false dhcp6: false match: macaddress: {{mac 1}} set-name: {{nic 1}} mtu: 9000 {{nic 2}} dhcp4: false dhcp6: false match: macaddress: {{mac 2}} set-name: {{nic 2}} mtu: 9000 {{nic 3}}: dhcp4: false dhcp6: false match: macaddress: {{mac 3}} set-name: {{nic 3}} mtu: 9000 bonds: bond0: mtu: 9000 parameters: mode: 802.3ad interfaces: - {{nic 0}} - {{nic 1}} bond1: mtu: 9000 parameters: mode: 802.3ad interfaces: - {{nic 2}} - {{nic 3}} vlans: k8s-lcm-v: id: 403 link: bond0 mtu: 9000 k8s-ext-v: id: 409 link: bond0 mtu: 9000 k8s-pods-v: id: 408 link: bond0 mtu: 9000 pr-floating: id: 407 link: bond1 mtu: 9000 stor-frontend: id: 404 link: bond0 mtu: 9000 stor-backend: id: 405 link: bond1 mtu: 9000 neutron-tunnel: id: 406 link: bond1 addresses: - {{ip "neutron-tunnel:neutron-tunnel-subnet"}} mtu: 9000 bridges: k8s-lcm: interfaces: [k8s-lcm-v] addresses: - {{ ip "k8s-lcm:k8s-lcm-subnet" }} nameservers: addresses: {{nameservers_from_subnet "k8s-lcm-subnet"}} routes: - to: {{ cidr_from_subnet "mgmt-lcm-nw" }} via: {{ gateway_from_subnet "k8s-lcm-subnet" }} k8s-ext: interfaces: [k8s-ext-v] addresses: - {{ip "k8s-ext:k8s-ext-subnet"}} nameservers: addresses: {{nameservers_from_subnet "k8s-ext-subnet"}} gateway4: {{ gateway_from_subnet "k8s-ext-subnet" }} mtu: 9000 k8s-pods: interfaces: [k8s-pods-v] addresses: - {{ip "k8s-pods:k8s-pods-subnet"}} mtu: 9000 ceph-public: interfaces: [stor-frontend] addresses: - {{ip "ceph-public:ceph-public-subnet"}} mtu: 9000 ceph-cluster: interfaces: [stor-backend] addresses: - {{ip "ceph-cluster:ceph-cluster-subnet"}} mtu: 9000
Proceed with Create an L2 template for a MOSK storage node.