Versions Compared

Key

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

Table of Contents
indent20px

draw.io Diagram
bordertrue
diagramNameNetwork Config Controller
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth1081
revision2

Cluster Network Intents

Networks Intent

With network API dynamic networks can be created.

...

Code Block
languagebash
titlePOST
linenumberstrue
URL: /v2/cluster-providers/{cluster-provider-name}/clusters/{cluster-name}/networks
POST BODY:
{
  "metadata": {
    "name": "<name>",
    "description": "<description>",
    "userData1": "<user data>",
    "userData2": "<user data>"
   },
  "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 Networks Intent



With provider network API dynamic provider networks can be created.

...

Code Block
languagebash
titlePOST
linenumberstrue
URL: /v2/cluster-providers/{cluster-provider-name}/clusters/{cluster-name}/provider-networks
POST BODY:
{
  "metadata": {
    "name": "<name>",
    "description": "<description>",
    "userData1": "<user data>",
    "userData2": "<user data>"
   },
  "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"
      }
    ],
    "providerNetType": "VLAN",
    "vlan": {
      "vlanId": "100",
      "providerInterfaceName": "eth1",
      "logicalInterfaceName": "eth1.100",
      "vlanNodeSelector": "specific",
      "nodeLabelList": [
        "kubernetes.io/hostname=localhost"
      ]
    }
  }
}

Apply 

Create networks and Provider networks in the cluster


Code Block
languagebash
titlePOST
linenumberstrue
URL: /v2/cluster-providers/{cluster-provider-name}/clusters/{cluster-name}/apply
POST BODY:
{
 
}

Terminate

Delete networks and Provider networks in the cluster

Code Block
languagebash

Deployment Network Intent

...

titlePOST
linenumberstrue
URL: /v2/cluster-providers/{cluster-provider-name}/clusters/{cluster-name}/terminate
POST BODY:
{
 
}



Deployment Network Control Intents

POST

Code Block
languagebash
titlePOST
linenumberstrue
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/network-controller-intent
POST BODY:
{
  "metadata": {
    "name": "<name>",
    "description": "<description>",
    "userData1": "<user data>",
    "userData2": "<user data>"
   }
}

Workload Network Intents

POST

Code Block
languagebash
titlePOST
linenumberstrue
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents
POST BODY:
{
  "metadata": {
    "name": "<name>",
    "description": "<description>",
    "userData1": "<user data>",
    "userData2": "<user data>"
   },
  "spec": {
    "application-name":"app1",
    "workload-resource" : "firewall",
    "type":  "deployment"
}


Add network interface intent for a workload

POST

Code Block
languagebash
titlePOST
linenumberstrue
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents/<workload-intent-name>/interfaces
POST BODY:
{
  "metadata": {
    "name": "<name>",
    "description": "<description>",
    "userData1": "<user data>",
    "userData2": "<user data>"
   },
  "spec": {
    "interface-name":"net0",
    "network-name" : "provider-net-1",
    "default-interfacedefaultGateway": "false", // Optional, default value is false
    "ip-addressipAddress": "0.0.0.0", // Optional, if not provided then dynamically allocated
    "mac-addressmacAddress": "x:x:x:x" // Optional, if not provided then dynamically allocated 
}


Network Chain Intent

With network chaining, network chains can be created.

POST

Code Block
languagebash
titlePOST
linenumberstrue
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/network-chains
POST BODY:
{
  "metadata": {
    "name": "<name>",
    "description": "<description>",
    "userData1": "<user data>",
    "userData2": "<user data>"
  },
  "spec": {
    "app-name": "<name>",
    "chainType": "Routing",
    "routingSpec": {
      "namespace": "default",
      "networkChain": "app=slb,dync-net1,app=ngfw,dync-net2,app=sdwan",
  #    "leftApp": {"app-name": "ms1", "workload": "app=dep1"}, // Not yet implemented
  #    "rightApp": {"app-name": "ms2", "workload": "app=dep2"}, // Not yet implemented
      "leftNetwork": [
        {
          "leftStaticIp": "172.30.10.3", 
          "networkName": "pnet1",
          "gatewayIp": "172.30.10.2",
          "subnet": "172.30.10.0/24"
        }
      ],
      "rightNetwork": [
        {
          "rightStaticIp": "172.20.10.3",
          "networkName": "pnet2",
          "gatewayIp": "172.30.20.2",
          "subnet": "172.30.20.0/24"
        }
      ]
    }
  }
}

...