...
Code Block |
---|
|
NetworkSpec
CniType string // Ovn4nfv is the only supported type
Ipv4Subnets []Ip4Subnet // Some CNI may support only one subnet
Ipv6Subnets []Ip6Subnet // Optional
Route DnsList []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
DnsRoutes
Destination QueryName string // DNSDestination nameCIDR
Gateway IpAddresses string // listIP of next hop
commaDns
separated IP address for thisNameServers DNS query []string |
Network CRD
Code Block |
---|
language | yml |
---|
title | 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: // List of nameservers
Domain kind:string Network plural:// networksName of local scope:domain
Namespaced subresources: Search # status enables the status subresource.[]string // status:List {}of search domains
validation: Options openAPIV3Schema: type:[]string object // List of options
properties:
|
Network CRD
Code Block |
---|
language | yml |
---|
title | Network CRD |
---|
|
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
specname: networks.k8s.plugin.opnfv.org
spec:
group: type: object
k8s.plugin.opnfv.org
version: v1
names:
propertieskind: Network
plural: networks
scope: Namespaced
cniTypesubresources:
# status enables the status subresource.
typestatus: {}
string validation:
openAPIV3Schema:
ipv4Subnets type: object
properties:
description spec:
'List of subnets for the network' type: object
typeproperties:
array cniType:
items: type: string
properties: ipv4Subnets:
namedescription: 'List of subnets for the network'
type: array
string items:
subnet: properties:
type: string |
Example CR for Network CRD
Code Block |
---|
language | yml |
---|
title | 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 type: string
gatewaysubnet: 172.16.33.1/24
excludeIpstype: 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.
...
Example CR for Network CRD
Code Block |
---|
| ProviderNetworkSpec
CniType |
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
Code Block |
---|
|
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 string []Ip6Subnet // Ovn4nfv is the only supported type Optional
Route ProviderNetworkType string []Routes // VLAN is the only supported type Optional - List of Routes for this Network
Dns Vlan VlanSpecDnsSpec Ip4Subnets // Optional
VlanSpec
VlanID []Ip4Subnet // Some CNI may support only one subnet Ip6Subnets string // VLAN ID
ProviderInterfaceName []Ip6Subnet // Optionalstring DnsList// Interface name to create VLAN on
VlanNodeSelector []Dns string // Optional
VlanSpec
VlanID "all"/"any"(in which case a node will be randomly selected)/"specific"(see below)
NodeNameList []string // VLANif IDVlanNodeSelector is value "specific" then ProviderInterfaceNamethis array provides a list stringof nodes
// Interface name to create VLAN on
Node LogicalInterfaceName string // Optional if not provide InterfaceName.VlanID Used
Ip4Subnet string
//Name Node on which to create VLAN - values can be comma seperated list or "all" or "any" in which case a nodestring will be randomly selected // Name of LogicalInterfaceNamethe subnet
Subnet string // Optional if not provide InterfaceName.VlanID Used Ip4Subnet string Name// Subnet CIDR
Gateway string // Name ofOptional Gateway CIDR if not provided assumed it is the subnetfirst Subnetaddress in subnet
ExcludeIps string // Subnet CIDR
Gateway Optional list of IP address in a comma sperated list
Ip6Subnet
Name string // Optional Gateway CIDR if not provided assumed itstring is the first address in subnet// ExcludeIpsName of the subnet
Prefix string // Optional list of IP address instring a comma sperated list Ip6Subnet// Prefix for Ipv6
Name Gateway string // Name of the subnet
Prefix Optional Gateway
ExcludeIps string // PrefixOptional forlist Ipv6of IP address in a Gatewaycomma sperated list
Route
Destination string string// Destination CIDR
// Optional Gateway ExcludeIps string // IP of next hop
stringDnsSpec
// OptionalNameServers list of IP address[]string in a comma sperated// listList of Dnsnameservers QueryName
Domain string // DNS name Name of local domain
Search IpAddresses []string // List of search domains
string Options // list of comma separated IP[]string address for this DNS// queryList of options |
Provider Network CRD
Code Block |
---|
language | yml |
---|
title | OVN 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 |
...
Code Block |
---|
language | yml |
---|
title | OVN 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 |
...
Code Block |
---|
|
NetworkChainSpec
Type 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
|
...
Code Block |
---|
language | yml |
---|
title | OVN 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 |
...
Code Block |
---|
language | yml |
---|
title | OVN 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
|
OVN Network CRD Definition
- Name
- Subnet
- Gateway //optional if not provided assume .1 address
- ExcludeIps
- VipSubnet // for load balancer
Provider N/W
...