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 Intent
Define network intent for a deployment
POST
POST
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/network-controller-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 for a workload
POST
POST
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/network-controller-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-interface": "false", // Optional, default value is false "ip-address": "0.0.0.0", // Optional, if not provided then dynamically allocated "mac-address": "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/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"}, "rightApp": {"app-name": "ms2", "workload": "app=dep2"}, "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" } ] } } }