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
titleNetwork 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:
  name: networks.k8s.plugin.opnfv.org
spec:
  group: k8s.plugin.opnfv.org
  version: v1
  typenames:
 object   kind: Network
    plural: networks
  propertiesscope: Namespaced
  subresources:
    # status enables the cniType:status subresource.
    status: {}
  validation:
    typeopenAPIV3Schema:
 string     type: object
      ipv4Subnetsproperties:
        spec:
     description: 'List of subnets for type: theobject
network'          properties:
    type: array       cniType:
       items:       type: string
        properties:    ipv4Subnets:
              namedescription: 'List of subnets for the network'
              type: string array
              items:
                subnetproperties:
                  name:
  type: string  

Example CR for Network CRD

Code Block
languageyml
titleNetwork CR Example
apiVersion: k8s.plugin.opnfv.org/v1 kind: Network metadata:   name: ovn-priv-net spec:   cniType: Ovn4nfv   ipv4subnetstype: string
 - subnet: 172.16.33.0/24     name: subnet1          subnet:
              gateway: 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. 

Spec for Provider Network CRD

Code Block
languagecpp
titleSpec
ProviderNetworkSpec 
    CniType            string

Example CR for Network CRD

Code Block
languageyml
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 
    //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      // NameOptional ofGateway theCIDR subnetif 	Subnetnot provided assumed it is the first address in subnet
	ExcludeIps          string      //string Subnet CIDR 	Gateway   // Optional list of IP address    in a comma sperated list

Ip6Subnet
string    Name  // Optional Gateway CIDR if not provided assumed it is the first address in subnet 	ExcludeIps     string      // Name of the subnet
string    Prefix  // Optional list of IP address in a comma sperated list  Ip6Subnet     Name string      // Prefix for Ipv6
    Gateway       string      // Name of the subnet  string   Prefix   // Optional Gateway
    ExcludeIps          string      //string Prefix for Ipv6   // Optional Gatewaylist of IP address in a comma sperated list

Route
   Destination     string      // OptionalDestination GatewayCIDR
   Gateway ExcludeIps        string      //  stringIP of next hop

DnsSpec
   // 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 stringdomains
    Options   // list of comma separated IP[]string address for this DNS// queryList of options

Provider Network CRD

Code Block
languageyml
titleProvider 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
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

...