...
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 | yml |
---|
title | 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
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 // Ovn4nfvOptional is
the only supported type Route ProviderNetworkType string // VLAN is[]Routes the only supported type // Optional - VlanList of Routes for this Network
Dns VlanSpec Ip4Subnets DnsSpec // Optional
[]Ip4Subnet
VlanSpec
// Some CNI may supportVlanID only one subnet Ip6Subnets string []Ip6Subnet // OptionalVLAN ID
DnsListProviderInterfaceName string // Interface name to create VLAN on
[]Dns VlanNodeSelector // Optional VlanSpec string VlanID // "all"/"any"(in which case a node will be randomly selected)/"specific"(see below)
NodeNameList string // VLAN ID []string ProviderInterfaceName // if stringVlanNodeSelector is value "specific" then this //array Interfaceprovides namea tolist createof VLANnodes on
NodeLogicalInterfaceName string // Optional if not provide InterfaceName.VlanID Used
Ip4Subnet string
// NodeName on which to create VLAN - values can be comma seperated list or "all" or "any" in which case a node willstring be randomly selected // Name LogicalInterfaceNameof the subnet
Subnet string // Optional if not provide InterfaceName.VlanID Used Ip4Subnet string Name// Subnet CIDR
Gateway string // Name of Optional Gateway CIDR if not provided assumed it is the subnetfirst Subnetaddress in subnet
ExcludeIps string // SubnetOptional CIDRlist Gatewayof IP address in a comma sperated list
Ip6Subnet
Name string // Optional Gateway CIDR if not provided assumed it is the first address in subnetstring ExcludeIps // Name of the subnet
Prefix string // Optional list of IP address in a comma sperated list Ip6Subnetstring Name // Prefix for Ipv6
Gateway string //string Name of the subnet // Optional Gateway
Prefix 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
NameServers // Optional list of[]string IP address in a// commaList sperated list
Dnsof nameservers QueryName
Domain string // DNSName nameof local domain
IpAddresses Search []string string// List of search domains
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
|
...