Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

K8s Plugin Network CRD

The purpose of this CRD is to create and delete dynamic network. For updating, delete is required followed by "create". 

Spec for K8s Plugin Network CRD

Spec
NetworkSpec 
    CniType         string       // Ovn4nfv is the only supported type 
    Ipv4Subnets     []Ip4Subnet  // Some CNI may support only one subnet
    Ipv6Subnets     []Ip6Subnet  // Optional 
    DnsList         []Dns        // 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

Dns
    QueryName      string      // DNS name 
    IpAddresses    string      // list of comma separated IP address for this DNS query   

Network CRD

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:
    kind: Network
    plural: networks
  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

Example CR for Network CRD

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
    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

Spec
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                []Ip6Subnet  // Optional 
    DnsList                   []Dns        // Optional
	
VlanSpec
    VlanID                    string      // VLAN ID
    ProviderInterfaceName     string      // Interface name to create VLAN on
    Node                      string      // Node on which to create VLAN - values can be comma seperated list or "all" or "any" in which case a node will be randomly selected
    LogicalInterfaceName      string      // Optional if not provide InterfaceName.VlanID Used

Ip4Subnet   
    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

Ip6Subnet
    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

Dns
    QueryName                 string      // DNS name 
    IpAddresses               string      // list of comma separated IP address for this DNS query

Provider Network CRD

OVN 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

Example CR for Provider Network CRD

OVN 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 

Network Chaining CRD

The purpose of this CRD is to specify a chain of deployments to create a service chain. The order of the deployments in the list depicts the topology. For example the 

Spec for Network Chaining CRD

Spec
NetworkChainSpec
    Type            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

Network CRD

OVN Network 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

Example CR for NetworkChaining CRD

OVN Network 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

  • VLAN ID
  • Physical Port
  • Name
  • VLAN Name
  • Node
  • Subnet
  • Gateway
  • No labels