/
K8s Plugin Network Related CRD's for R5

K8s Plugin Network Related CRD's for R5

K8s Plugin Network CRD

The purpose of this CRD is to create and delete dynamic network. For updating, delete is required followed by "create". 

Spec for K8s Plugin Network CRD

Spec
NetworkSpec CniType string // Ovn4nfv is the only supported type Ipv4Subnets []Ip4Subnet // Some CNI may support only one subnet Ipv6Subnets []Ip6Subnet // Optional Route []Routes // Optional - List of Routes for this Network Dns DnsSpec // Optional Ipv4Subnet Name string // Name of the subnet Subnet string // Subnet CIDR Gateway string // Optional Gateway CIDR if not provided assumed it is the first address in subnet ExcludeIps string // Optional list of IP address in a comma sperated list Ipv6Subnet Name string // Name of the subnet Prefix string // Prefix for Ipv6 Gateway string // Optional Gateway ExcludeIps string // Optional list of IP address in a comma sperated list Routes Destination string // Destination CIDR Gateway string // IP of next hop Dns NameServers []string // List of nameservers Domain string // Name of local domain Search []string // List of search domains Options []string // List of options

Network CRD

Network CRD
apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: networks.k8s.plugin.opnfv.org spec: group: k8s.plugin.opnfv.org version: v1 names: kind: Network plural: networks scope: Namespaced subresources: # status enables the status subresource. status: {} validation: openAPIV3Schema: type: object properties: spec: type: object properties: cniType: type: string ipv4Subnets: description: 'List of subnets for the network' type: array items: properties: name: type: string subnet: type: string

Example CR for Network CRD

Network CR Example
apiVersion: k8s.plugin.opnfv.org/v1 kind: Network metadata: name: ovn-priv-net spec: cniType: Ovn4nfv ipv4subnets: - subnet: 172.16.33.0/24 name: subnet1 gateway: 172.16.33.1/24 excludeIps: 172.16.33.2 172.16.33.5..172.16.33.10

Provider Network CRD

This CRD is to create a provider network on one or more nodes in the cluster. 

Spec for Provider Network CRD

Spec
ProviderNetworkSpec CniType string // Ovn4nfv is the only supported type ProviderNetworkType string // VLAN is the only supported type Vlan VlanSpec Ip4Subnets []Ip4Subnet // Some CNI may support only one subnet Ip6Subnets []Ip6Subnet // Optional Route []Routes // Optional - List of Routes for this Network Dns DnsSpec // Optional VlanSpec VlanID string // VLAN ID ProviderInterfaceName string // Interface name to create VLAN on VlanNodeSelector string // "all"/"any"(in which case a node will be randomly selected)/"specific"(see below) NodeNameList []string // if VlanNodeSelector is value "specific" then this array provides a list of nodes LogicalInterfaceName string // Optional if not provide InterfaceName.VlanID Used Ip4Subnet Name string // Name of the subnet Subnet string // Subnet CIDR Gateway string // Optional Gateway CIDR if not provided assumed it is the first address in subnet ExcludeIps string // Optional list of IP address in a comma sperated list Ip6Subnet Name string // Name of the subnet Prefix string // Prefix for Ipv6 Gateway string // Optional Gateway ExcludeIps string // Optional list of IP address in a comma sperated list Route Destination string // Destination CIDR Gateway string // IP of next hop DnsSpec NameServers []string // List of nameservers Domain string // Name of local domain Search []string // List of search domains Options []string // List of options

Provider Network CRD

Provider Network CRD
apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: providernetworks.k8s.plugin.opnfv.org spec: group: k8s.plugin.opnfv.org version: v1 names: kind: ProviderNetwork plural: providernetworks scope: Namespaced subresources: # status enables the status subresource. status: {} validation: openAPIV3Schema: type: object properties: spec: type: object properties: cniType: type: string ipv4Subnets: description: 'List of subnets for the network' type: array items: properties: name: type: string subnet: type: string

Example CR for Provider Network CRD

Provider Network CR Example
apiVersion: k8s.plugin.opnfv.org/v1beta1 kind: OvnProviderNetwork metadata: name: ovn-provider-net spec: cniType: Ovn4nfv ipv4subnets: - subnet: 172.16.33.0/24 name: subnet1 gateway: 172.16.33.1/24 excludeIps: 172.16.33.2 172.16.33.5..172.16.33.10 providerNetworkType: vlan vlan: vlanId: 100 providerInterfaceName: eth0 Node: node1,node2 logicalInterfaceName: eth0.100

Network Chaining CRD

The purpose of this CRD is to specify a chain of deployments to create a service chain. The order of the deployments in the list depicts the topology. For example the 

Spec for Network Chaining CRD

Spec
NetworkChainSpec ChainType string // Currently only Routing type is supported RoutingSpec RouteSpec // Spec for Routing type RouteSpec LeftNetwork []RoutingNetwork // Info on Network on the left side RightNetwork []RoutingNetwork // Info on Network on the right side NetworkChain string // Left and Right networks are derived from Leftnetwork and RightNetwork respectively. // NetworkChain is a comma seprated list with format DeploymentName, middle Network Name, DeploymentName RoutingNetwork NetworkName string // Name of the network SubnetInfo []Subnet // Subnet information SubnetInfo Name string // Name of the subnet GatewayIp string // Gateway IP Address

Network CRD

Network Chaining CRD
apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: networkchainings.k8s.plugin.opnfv.org spec: group: k8s.plugin.opnfv.org version: v1 names: kind: NetworkChaining plural: networkchainings scope: Namespaced subresources: # status enables the status subresource. status: {} validation: openAPIV3Schema: type: object properties: spec: type: object properties: type: type: string

Example CR for NetworkChaining CRD

Network Chaining CR Example
apiVersion: k8s.plugin.opnfv.org/v1 kind: NetworkChaining metadata: name: chain1 spec: type: Routing routingSpec: leftNetwork: - networkName: ovn-provider1 subnetInfo: - name: subnet1 gatewayIP: 10.1.5.1 rightNetwork: - networkName: ovn-provider1 subnetInfo: - name: subnet2 gatewayIP: 10.1.10.1 networkChain: vFw, ovn-net1, webcache, ovn-net2, sdwan