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 DnsList []Dns // 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 Dns QueryName string // DNS name IpAddresses string // list of comma separated IP address for this DNS query
Network CRD
OVN 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
OVN 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 DnsList []Dns // Optional VlanSpec VlanID string // VLAN ID ProviderInterfaceName string // Interface name to create VLAN on Node string // Node on which to create VLAN - values can be comma seperated list or "all" or "any" in which case a node will be randomly selected 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 Dns QueryName string // DNS name IpAddresses string // list of comma separated IP address for this DNS query
Provider Network CRD
OVN 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
OVN 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 Type 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
OVN Network 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
OVN Network 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