Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagecpp
titleSpec
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
languageyml
titleOVN 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
languageyml
titleNetwork 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
languageyml
titleOVN 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. 

...

 string

Example CR for Network CRD

ProviderNetworkSpec CniType
Code Block
languagecppyml
titleSpec
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
languagecpp
titleSpec
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
languageyml
titleOVN 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
languageyml
titleOVN 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
languagecpp
titleSpec
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
languageyml
titleOVN 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
languageyml
titleOVN 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
  • OVN Provider Network CRD

Provider N/W

...