Cluster Network Intents

Networks Intent

With network API dynamic networks can be created.

POST

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

POST

POST
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


POST
URL: /v2/cluster-providers/{cluster-provider-name}/clusters/{cluster-name}/apply
POST BODY:
{
 
}

Terminate

Delete networks and Provider networks in the cluster

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



Deployment Network Control Intents

POST

POST
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

POST
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

POST
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":"net0",
    "name" : "provider-net-1",
    "defaultGateway": "false", // Optional, default value is false
    "ipAddress": "0.0.0.0", // Optional, if not provided then dynamically allocated
    "macAddress": "x:x:x:x" // Optional, if not provided then dynamically allocated 
}


Network Chain Intent

With network chaining, network chains can be created.

POST

POST
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": {
    "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"
        }
      ]
    }
  }
}







  • No labels