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
languagecpp
titleSpec
yml
titleNetwork 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  // 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
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
 

...