apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: ctlplane osp/net-attach-def-type: standard name: ctlplane namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "ctlplane", "type": "macvlan", "master": "ospbr", "ipam": { "type": "whereabouts", "range": "2620:cf:cf:aaaa::/64", "range_start": "2620:cf:cf:aaaa::30", "range_end": "2620:cf:cf:aaaa::70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: datacentre osp/net-attach-def-type: standard name: datacentre namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "datacentre", "type": "bridge", "bridge": "ospbr", "ipam": {} } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: internalapi osp/net-attach-def-type: standard name: internalapi namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "internalapi", "type": "macvlan", "master": "internalapi", "ipam": { "type": "whereabouts", "range": "2620:cf:cf:bbbb::0/64", "range_start": "2620:cf:cf:bbbb::30", "range_end": "2620:cf:cf:bbbb::70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: ironic osp/net-attach-def-type: standard name: ironic namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "ironic", "type": "bridge", "bridge": "ironic", "ipam": { "type": "whereabouts", "range": "2620:cf:cf:ffff::0/64", "range_start": "2620:cf:cf:ffff::30", "range_end": "2620:cf:cf:ffff::70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: storage osp/net-attach-def-type: standard name: storage namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "storage", "type": "macvlan", "master": "storage", "ipam": { "type": "whereabouts", "range": "2620:cf:cf:cccc::0/64", "range_start": "2620:cf:cf:cccc::30", "range_end": "2620:cf:cf:cccc::70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: tenant osp/net-attach-def-type: standard name: tenant namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "tenant", "type": "macvlan", "master": "tenant", "ipam": { "type": "whereabouts", "range": "2620:cf:cf:eeee::0/64", "range_start": "2620:cf:cf:eeee::30", "range_end": "2620:cf:cf:eeee::70" } } --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: labels: osp/lb-addresses-type: standard name: ctlplane namespace: metallb-system spec: addresses: - 2620:cf:cf:aaaa::80-2620:cf:cf:aaaa::90 --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: labels: osp/lb-addresses-type: standard name: internalapi namespace: metallb-system spec: addresses: - 2620:cf:cf:bbbb::80-2620:cf:cf:bbbb::90 --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: labels: osp/lb-addresses-type: standard name: storage namespace: metallb-system spec: addresses: - 2620:cf:cf:cccc::80-2620:cf:cf:cccc::90 --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: labels: osp/lb-addresses-type: standard name: tenant namespace: metallb-system spec: addresses: - 2620:cf:cf:eeee::80-2620:cf:cf:eeee::90 --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: ctlplane namespace: metallb-system spec: interfaces: - ospbr ipAddressPools: - ctlplane --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: internalapi namespace: metallb-system spec: interfaces: - internalapi ipAddressPools: - internalapi --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: storage namespace: metallb-system spec: interfaces: - storage ipAddressPools: - storage --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: tenant namespace: metallb-system spec: interfaces: - tenant ipAddressPools: - tenant --- apiVersion: network.openstack.org/v1beta1 kind: NetConfig metadata: name: netconfig namespace: openstack spec: networks: - dnsDomain: ctlplane.example.com mtu: 1500 name: ctlplane subnets: - allocationRanges: - end: 2620:cf:cf:aaaa::120 start: 2620:cf:cf:aaaa::100 - end: 2620:cf:cf:aaaa::200 start: 2620:cf:cf:aaaa::150 cidr: 2620:cf:cf:aaaa::/64 gateway: 2620:cf:cf:aaaa::1 name: subnet1 - dnsDomain: internalapi.example.com mtu: 1500 name: internalapi subnets: - allocationRanges: - end: 2620:cf:cf:bbbb::250 start: 2620:cf:cf:bbbb::100 cidr: 2620:cf:cf:bbbb::0/64 name: subnet1 vlan: 20 - dnsDomain: external.example.com mtu: 1500 name: external subnets: - allocationRanges: - end: 2620:cf:cf:cf02::250 start: 2620:cf:cf:cf02::130 cidr: 2620:cf:cf:cf02::/64 name: subnet1 - dnsDomain: storage.example.com mtu: 1500 name: storage subnets: - allocationRanges: - end: 2620:cf:cf:cccc::250 start: 2620:cf:cf:cccc::100 cidr: 2620:cf:cf:cccc::0/64 name: subnet1 vlan: 21 - dnsDomain: tenant.example.com mtu: 1500 name: tenant subnets: - allocationRanges: - end: 2620:cf:cf:eeee::250 start: 2620:cf:cf:eeee::100 cidr: 2620:cf:cf:eeee::0/64 name: subnet1 vlan: 22 - dnsDomain: storagemgmt.example.com mtu: 1500 name: storagemgmt subnets: - allocationRanges: - end: 2620:cf:cf:dddd::250 start: 2620:cf:cf:dddd::100 cidr: 2620:cf:cf:dddd::0/64 name: subnet1 vlan: 23