Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated info about status API

...

Code Block
languagebash
titleCommand to GET all resources
curl -X GET http://NODE_IP:30280/api/multicloud-k8s/v1/v1/instance

Status API

Status API allows for monitoring/querying for instantiated CNFs status. It allows checking both design-time (eg. image name, node port) or runtime (eg. container statuses, deployment readiness) capabilities of resources managed within k8splugin instances.

GET Instantiated Kubernetes resource's status

Code Block
languagebash
titleCommand to GET instance status
curl -X GET http://NODE_IP:30280/api/multicloud-k8s/v1/v1/instance/{instanceID}/status

Example response:

Code Block
titleExample response
linenumberstrue
collapsetrue
{
    "request": {
        "rb-name": "vfw",
        "rb-version": "plugin_test",
        "profile-name": "test_profile",
        "release-name": "",
        "cloud-region": "kud",
        "labels": {
            "testCaseName": "plugin_fw.sh"
        },
        "override-values": {
            "global.onapPrivateNetworkName": "onap-private-net-test"
        }
    },
    "ready": false,
    "resourceCount": 12,
    "resourcesStatus": [
        {
            "name": "sink-configmap",
            "GVK": {
                "Group": "",
                "Version": "v1",
                "Kind": "ConfigMap"
            },
            "status": {
                "apiVersion": "v1",
                "data": {
                    "protected_net_gw": "192.168.20.100",
                    "protected_private_net_cidr": "192.168.10.0/24"
                },
                "kind": "ConfigMap",
                "metadata": {
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "labels": {
                        "k8splugin.io/rb-instance-id": "stoic_wright"
                    },
                    "name": "sink-configmap",
                    "namespace": "plugin-tests-namespace",
                    "resourceVersion": "10719454",
                    "selfLink": "/api/v1/namespaces/plugin-tests-namespace/configmaps/sink-configmap",
                    "uid": "f3199d15-2bd4-4e04-96a0-9e390757b43b"
                }
            }
        },
        {
            "name": "packetgen-service",
            "GVK": {
                "Group": "",
                "Version": "v1",
                "Kind": "Service"
            },
            "status": {
                "apiVersion": "v1",
                "kind": "Service",
                "metadata": {
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "labels": {
                        "app": "packetgen",
                        "chart": "packetgen",
                        "k8splugin.io/rb-instance-id": "stoic_wright",
                        "release": "test-release"
                    },
                    "name": "packetgen-service",
                    "namespace": "plugin-tests-namespace",
                    "resourceVersion": "10719457",
                    "selfLink": "/api/v1/namespaces/plugin-tests-namespace/services/packetgen-service",
                    "uid": "d1d1e571-8ec0-4046-ba89-9c974c99f7cb"
                },
                "spec": {
                    "clusterIP": "10.244.36.238",
                    "externalTrafficPolicy": "Cluster",
                    "ports": [
                        {
                            "nodePort": 30831,
                            "port": 2831,
                            "protocol": "TCP",
                            "targetPort": 2831
                        }
                    ],
                    "selector": {
                        "app": "packetgen",
                        "release": "test-release"
                    },
                    "sessionAffinity": "None",
                    "type": "NodePort"
                },
                "status": {
                    "loadBalancer": {}
                }
            }
        },
        {
            "name": "sink-service",
            "GVK": {
                "Group": "",
                "Version": "v1",
                "Kind": "Service"
            },
            "status": {
                "apiVersion": "v1",
                "kind": "Service",
                "metadata": {
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "labels": {
                        "app": "sink",
                        "chart": "sink",
                        "k8splugin.io/rb-instance-id": "stoic_wright",
                        "release": "test-release"
                    },
                    "name": "sink-service",
                    "namespace": "plugin-tests-namespace",
                    "resourceVersion": "10719461",
                    "selfLink": "/api/v1/namespaces/plugin-tests-namespace/services/sink-service",
                    "uid": "d9e81332-dea6-419b-bd63-f4bec4514d33"
                },
                "spec": {
                    "clusterIP": "10.244.30.37",
                    "externalTrafficPolicy": "Cluster",
                    "ports": [
                        {
                            "nodePort": 30667,
                            "port": 667,
                            "protocol": "TCP",
                            "targetPort": 667
                        }
                    ],
                    "selector": {
                        "app": "sink",
                        "release": "test-release"
                    },
                    "sessionAffinity": "None",
                    "type": "NodePort"
                },
                "status": {
                    "loadBalancer": {}
                }
            }
        },
        {
            "name": "test-release-packetgen",
            "GVK": {
                "Group": "apps",
                "Version": "v1",
                "Kind": "Deployment"
            },
            "status": {
                "apiVersion": "apps/v1",
                "kind": "Deployment",
                "metadata": {
                    "annotations": {
                        "deployment.kubernetes.io/revision": "1"
                    },
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "generation": 1,
                    "labels": {
                        "app": "packetgen",
                        "chart": "packetgen",
                        "k8splugin.io/rb-instance-id": "stoic_wright",
                        "release": "test-release"
                    },
                    "name": "test-release-packetgen",
                    "namespace": "plugin-tests-namespace",
                    "resourceVersion": "10719551",
                    "selfLink": "/apis/apps/v1/namespaces/plugin-tests-namespace/deployments/test-release-packetgen",
                    "uid": "6538a28f-9b9c-42bf-a3bf-cf33525c6748"
                },
                "spec": {
                    "progressDeadlineSeconds": 600,
                    "replicas": 1,
                    "revisionHistoryLimit": 10,
                    "selector": {
                        "matchLabels": {
                            "app": "packetgen",
                            "release": "test-release"
                        }
                    },
                    "strategy": {
                        "rollingUpdate": {
                            "maxSurge": "25%",
                            "maxUnavailable": "25%"
                        },
                        "type": "RollingUpdate"
                    },
                    "template": {
                        "metadata": {
                            "annotations": {
                                "VirtletCloudInitUserData": "ssh_pwauth: True\nusers:\n- name: admin\n  gecos: User\n  primary-group: admin\n  groups: users\n  sudo: ALL=(ALL) NOPASSWD:ALL\n  lock_passwd: false\n  passwd: \"$6$rounds=4096$QA5OCKHTE41$jRACivoPMJcOjLRgxl3t.AMfU7LhCFwOWv2z66CQX.TSxBy50JoYtycJXSPr2JceG.8Tq/82QN9QYt3euYEZW/\"\nruncmd:\n  - export demo_artifacts_version=1.5.0\n  - export vfw_private_ip_0=192.168.10.3\n  - export vsn_private_ip_0=192.168.20.3\n  - export protected_net_cidr=192.168.20.0/24\n  - export dcae_collector_ip=10.0.4.1\n  - export dcae_collector_port=8081\n  - export protected_net_gw=192.168.20.100/24\n  - export protected_private_net_cidr=192.168.10.0/24\n  - wget -O - https://git.onap.org/multicloud/k8s/plain/kud/tests/vFW/packetgen | sudo -E bash\n",
                                "VirtletLibvirtCPUSetting": "mode: host-model\n",
                                "VirtletRootVolumeSize": "5Gi",
                                "app": "packetgen",
                                "k8s.plugin.opnfv.org/nfn-network": "{ \"type\": \"ovn4nfv\", \"interface\":[ { \"name\": \"unprotected-private-net\", \"ipAddress\": \"192.168.10.2\", \"interface\": \"eth1\" , \"defaultGateway\": \"false\"}, { \"name\": \"onap-private-net-test\", \"ipAddress\": \"10.0.100.2\", \"interface\": \"eth2\" , \"defaultGateway\": \"false\"} ]}",
                                "k8s.v1.cni.cncf.io/networks": "[{\"name\": \"ovn-networkobj\", \"namespace\": \"default\"}]",
                                "kubernetes.io/target-runtime": "virtlet.cloud",
                                "release": "test-release"
                            },
                            "creationTimestamp": null,
                            "labels": {
                                "app": "packetgen",
                                "k8splugin.io/rb-instance-id": "stoic_wright",
                                "release": "test-release"
                            }
                        },
                        "spec": {
                            "affinity": {
                                "nodeAffinity": {
                                    "requiredDuringSchedulingIgnoredDuringExecution": {
                                        "nodeSelectorTerms": [
                                            {
                                                "matchExpressions": [
                                                    {
                                                        "key": "extraRuntime",
                                                        "operator": "In",
                                                        "values": [
                                                            "virtlet"
                                                        ]
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                }
                            },
                            "containers": [
                                {
                                    "image": "virtlet.cloud/ubuntu/16.04:latest",
                                    "imagePullPolicy": "IfNotPresent",
                                    "name": "packetgen",
                                    "resources": {
                                        "limits": {
                                            "memory": "4Gi"
                                        }
                                    },
                                    "stdin": true,
                                    "terminationMessagePath": "/dev/termination-log",
                                    "terminationMessagePolicy": "File",
                                    "tty": true
                                }
                            ],
                            "dnsPolicy": "ClusterFirst",
                            "restartPolicy": "Always",
                            "schedulerName": "default-scheduler",
                            "securityContext": {},
                            "terminationGracePeriodSeconds": 30
                        }
                    }
                },
                "status": {
                    "availableReplicas": 1,
                    "conditions": [
                        {
                            "lastTransitionTime": "2020-09-29T13:27:02Z",
                            "lastUpdateTime": "2020-09-29T13:27:02Z",
                            "message": "Deployment has minimum availability.",
                            "reason": "MinimumReplicasAvailable",
                            "status": "True",
                            "type": "Available"
                        },
                        {
                            "lastTransitionTime": "2020-09-29T13:26:51Z",
                            "lastUpdateTime": "2020-09-29T13:27:02Z",
                            "message": "ReplicaSet \"test-release-packetgen-7557cb58bb\" has successfully progressed.",
                            "reason": "NewReplicaSetAvailable",
                            "status": "True",
                            "type": "Progressing"
                        }
                    ],
                    "observedGeneration": 1,
                    "readyReplicas": 1,
                    "replicas": 1,
                    "updatedReplicas": 1
                }
            }
        },
        {
            "name": "test-release-sink",
            "GVK": {
                "Group": "apps",
                "Version": "v1",
                "Kind": "Deployment"
            },
            "status": {
                "apiVersion": "apps/v1",
                "kind": "Deployment",
                "metadata": {
                    "annotations": {
                        "deployment.kubernetes.io/revision": "1"
                    },
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "generation": 1,
                    "labels": {
                        "app": "sink",
                        "chart": "sink",
                        "k8splugin.io/rb-instance-id": "stoic_wright",
                        "release": "test-release"
                    },
                    "name": "test-release-sink",
                    "namespace": "plugin-tests-namespace",
                    "resourceVersion": "10719538",
                    "selfLink": "/apis/apps/v1/namespaces/plugin-tests-namespace/deployments/test-release-sink",
                    "uid": "2200dbb3-5d83-4f0c-9e3a-95f1bd0abb46"
                },
                "spec": {
                    "progressDeadlineSeconds": 600,
                    "replicas": 1,
                    "revisionHistoryLimit": 10,
                    "selector": {
                        "matchLabels": {
                            "app": "sink",
                            "release": "test-release"
                        }
                    },
                    "strategy": {
                        "rollingUpdate": {
                            "maxSurge": "25%",
                            "maxUnavailable": "25%"
                        },
                        "type": "RollingUpdate"
                    },
                    "template": {
                        "metadata": {
                            "annotations": {
                                "k8s.plugin.opnfv.org/nfn-network": "{ \"type\": \"ovn4nfv\", \"interface\": [ { \"name\": \"protected-private-net\", \"ipAddress\": \"192.168.20.3\", \"interface\": \"eth1\", \"defaultGateway\": \"false\" }, { \"name\": \"onap-private-net-test\", \"ipAddress\": \"10.10.100.4\", \"interface\": \"eth2\" , \"defaultGateway\": \"false\"} ]}",
                                "k8s.v1.cni.cncf.io/networks": "[{\"name\": \"ovn-networkobj\", \"namespace\": \"default\"}]"
                            },
                            "creationTimestamp": null,
                            "labels": {
                                "app": "sink",
                                "k8splugin.io/rb-instance-id": "stoic_wright",
                                "release": "test-release"
                            }
                        },
                        "spec": {
                            "containers": [
                                {
                                    "envFrom": [
                                        {
                                            "configMapRef": {
                                                "name": "sink-configmap"
                                            }
                                        }
                                    ],
                                    "image": "rtsood/onap-vfw-demo-sink:0.2.0",
                                    "imagePullPolicy": "IfNotPresent",
                                    "name": "sink",
                                    "resources": {},
                                    "securityContext": {
                                        "privileged": true
                                    },
                                    "stdin": true,
                                    "terminationMessagePath": "/dev/termination-log",
                                    "terminationMessagePolicy": "File",
                                    "tty": true
                                },
                                {
                                    "image": "electrocucaracha/darkstat:latest",
                                    "imagePullPolicy": "IfNotPresent",
                                    "name": "darkstat",
                                    "ports": [
                                        {
                                            "containerPort": 667,
                                            "protocol": "TCP"
                                        }
                                    ],
                                    "resources": {},
                                    "stdin": true,
                                    "terminationMessagePath": "/dev/termination-log",
                                    "terminationMessagePolicy": "File",
                                    "tty": true
                                }
                            ],
                            "dnsPolicy": "ClusterFirst",
                            "restartPolicy": "Always",
                            "schedulerName": "default-scheduler",
                            "securityContext": {},
                            "terminationGracePeriodSeconds": 30
                        }
                    }
                },
                "status": {
                    "availableReplicas": 1,
                    "conditions": [
                        {
                            "lastTransitionTime": "2020-09-29T13:27:00Z",
                            "lastUpdateTime": "2020-09-29T13:27:00Z",
                            "message": "Deployment has minimum availability.",
                            "reason": "MinimumReplicasAvailable",
                            "status": "True",
                            "type": "Available"
                        },
                        {
                            "lastTransitionTime": "2020-09-29T13:26:51Z",
                            "lastUpdateTime": "2020-09-29T13:27:00Z",
                            "message": "ReplicaSet \"test-release-sink-766684c678\" has successfully progressed.",
                            "reason": "NewReplicaSetAvailable",
                            "status": "True",
                            "type": "Progressing"
                        }
                    ],
                    "observedGeneration": 1,
                    "readyReplicas": 1,
                    "replicas": 1,
                    "updatedReplicas": 1
                }
            }
        },
        {
            "name": "test-release-firewall",
            "GVK": {
                "Group": "apps",
                "Version": "v1",
                "Kind": "Deployment"
            },
            "status": {
                "apiVersion": "apps/v1",
                "kind": "Deployment",
                "metadata": {
                    "annotations": {
                        "deployment.kubernetes.io/revision": "1"
                    },
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "generation": 1,
                    "labels": {
                        "app": "firewall",
                        "chart": "firewall",
                        "k8splugin.io/rb-instance-id": "stoic_wright",
                        "release": "test-release"
                    },
                    "name": "test-release-firewall",
                    "namespace": "plugin-tests-namespace",
                    "resourceVersion": "10719556",
                    "selfLink": "/apis/apps/v1/namespaces/plugin-tests-namespace/deployments/test-release-firewall",
                    "uid": "a9c3c5b0-f793-49be-a8cd-2a83d0905643"
                },
                "spec": {
                    "progressDeadlineSeconds": 600,
                    "replicas": 1,
                    "revisionHistoryLimit": 10,
                    "selector": {
                        "matchLabels": {
                            "app": "firewall",
                            "release": "test-release"
                        }
                    },
                    "strategy": {
                        "rollingUpdate": {
                            "maxSurge": "25%",
                            "maxUnavailable": "25%"
                        },
                        "type": "RollingUpdate"
                    },
                    "template": {
                        "metadata": {
                            "annotations": {
                                "VirtletCloudInitUserData": "ssh_pwauth: True\nusers:\n- name: admin\n  gecos: User\n  primary-group: admin\n  groups: users\n  sudo: ALL=(ALL) NOPASSWD:ALL\n  lock_passwd: false\n  passwd: \"$6$rounds=4096$QA5OCKHTE41$jRACivoPMJcOjLRgxl3t.AMfU7LhCFwOWv2z66CQX.TSxBy50JoYtycJXSPr2JceG.8Tq/82QN9QYt3euYEZW/\"\nruncmd:\n  - export demo_artifacts_version=1.5.0\n  - export vfw_private_ip_0=192.168.10.3\n  - export vsn_private_ip_0=192.168.20.3\n  - export protected_net_cidr=192.168.20.0/24\n  - export dcae_collector_ip=10.0.4.1\n  - export dcae_collector_port=8081\n  - export protected_net_gw=192.168.20.100/24\n  - export protected_private_net_cidr=192.168.10.0/24\n  - wget -O - https://git.onap.org/multicloud/k8s/plain/kud/tests/vFW/firewall | sudo -E bash\n",
                                "VirtletLibvirtCPUSetting": "mode: host-model\n",
                                "VirtletRootVolumeSize": "5Gi",
                                "k8s.plugin.opnfv.org/nfn-network": "{ \"type\": \"ovn4nfv\", \"interface\": [ { \"name\": \"unprotected-private-net\", \"ipAddress\": \"192.168.10.3\", \"interface\": \"eth1\" , \"defaultGateway\": \"false\"}, { \"name\": \"protected-private-net\", \"ipAddress\": \"192.168.20.2\", \"interface\": \"eth2\", \"defaultGateway\": \"false\" }, { \"name\": \"onap-private-net-test\", \"ipAddress\": \"10.10.100.3\", \"interface\": \"eth3\" , \"defaultGateway\": \"false\"} ]}",
                                "k8s.v1.cni.cncf.io/networks": "[{\"name\": \"ovn-networkobj\", \"namespace\": \"default\"}]",
                                "kubernetes.io/target-runtime": "virtlet.cloud"
                            },
                            "creationTimestamp": null,
                            "labels": {
                                "app": "firewall",
                                "k8splugin.io/rb-instance-id": "stoic_wright",
                                "release": "test-release"
                            }
                        },
                        "spec": {
                            "affinity": {
                                "nodeAffinity": {
                                    "requiredDuringSchedulingIgnoredDuringExecution": {
                                        "nodeSelectorTerms": [
                                            {
                                                "matchExpressions": [
                                                    {
                                                        "key": "extraRuntime",
                                                        "operator": "In",
                                                        "values": [
                                                            "virtlet"
                                                        ]
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                }
                            },
                            "containers": [
                                {
                                    "image": "virtlet.cloud/ubuntu/16.04:latest",
                                    "imagePullPolicy": "IfNotPresent",
                                    "name": "firewall",
                                    "resources": {
                                        "limits": {
                                            "memory": "4Gi"
                                        }
                                    },
                                    "stdin": true,
                                    "terminationMessagePath": "/dev/termination-log",
                                    "terminationMessagePolicy": "File",
                                    "tty": true
                                }
                            ],
                            "dnsPolicy": "ClusterFirst",
                            "restartPolicy": "Always",
                            "schedulerName": "default-scheduler",
                            "securityContext": {},
                            "terminationGracePeriodSeconds": 30
                        }
                    }
                },
                "status": {
                    "availableReplicas": 1,
                    "conditions": [
                        {
                            "lastTransitionTime": "2020-09-29T13:27:03Z",
                            "lastUpdateTime": "2020-09-29T13:27:03Z",
                            "message": "Deployment has minimum availability.",
                            "reason": "MinimumReplicasAvailable",
                            "status": "True",
                            "type": "Available"
                        },
                        {
                            "lastTransitionTime": "2020-09-29T13:26:51Z",
                            "lastUpdateTime": "2020-09-29T13:27:03Z",
                            "message": "ReplicaSet \"test-release-firewall-74fd65984f\" has successfully progressed.",
                            "reason": "NewReplicaSetAvailable",
                            "status": "True",
                            "type": "Progressing"
                        }
                    ],
                    "observedGeneration": 1,
                    "readyReplicas": 1,
                    "replicas": 1,
                    "updatedReplicas": 1
                }
            }
        },
        {
            "name": "onap-private-net-test",
            "GVK": {
                "Group": "k8s.plugin.opnfv.org",
                "Version": "v1alpha1",
                "Kind": "Network"
            },
            "status": {
                "apiVersion": "k8s.plugin.opnfv.org/v1alpha1",
                "kind": "Network",
                "metadata": {
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "finalizers": [
                        "nfnCleanUpNetwork"
                    ],
                    "generation": 2,
                    "labels": {
                        "k8splugin.io/rb-instance-id": "stoic_wright"
                    },
                    "name": "onap-private-net-test",
                    "namespace": "plugin-tests-namespace",
                    "resourceVersion": "10719506",
                    "selfLink": "/apis/k8s.plugin.opnfv.org/v1alpha1/namespaces/plugin-tests-namespace/networks/onap-private-net-test",
                    "uid": "dd04cc6b-e5a5-4b60-a055-b1d147d164b4"
                },
                "spec": {
                    "cniType": "ovn4nfv",
                    "dns": {},
                    "ipv4Subnets": [
                        {
                            "gateway": "10.10.0.1/16",
                            "name": "subnet1",
                            "subnet": "10.10.0.0/16"
                        }
                    ]
                },
                "status": {
                    "state": "Created"
                }
            }
        },
        {
            "name": "protected-private-net",
            "GVK": {
                "Group": "k8s.plugin.opnfv.org",
                "Version": "v1alpha1",
                "Kind": "Network"
            },
            "status": {
                "apiVersion": "k8s.plugin.opnfv.org/v1alpha1",
                "kind": "Network",
                "metadata": {
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "finalizers": [
                        "nfnCleanUpNetwork"
                    ],
                    "generation": 2,
                    "labels": {
                        "k8splugin.io/rb-instance-id": "stoic_wright"
                    },
                    "name": "protected-private-net",
                    "namespace": "plugin-tests-namespace",
                    "resourceVersion": "10719508",
                    "selfLink": "/apis/k8s.plugin.opnfv.org/v1alpha1/namespaces/plugin-tests-namespace/networks/protected-private-net",
                    "uid": "ae7e3a73-a33b-4c27-869b-9465b7e67348"
                },
                "spec": {
                    "cniType": "ovn4nfv",
                    "dns": {},
                    "ipv4Subnets": [
                        {
                            "gateway": "192.168.20.100/24",
                            "name": "subnet1",
                            "subnet": "192.168.20.0/24"
                        }
                    ]
                },
                "status": {
                    "state": "Created"
                }
            }
        },
        {
            "name": "unprotected-private-net",
            "GVK": {
                "Group": "k8s.plugin.opnfv.org",
                "Version": "v1alpha1",
                "Kind": "Network"
            },
            "status": {
                "apiVersion": "k8s.plugin.opnfv.org/v1alpha1",
                "kind": "Network",
                "metadata": {
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "finalizers": [
                        "nfnCleanUpNetwork"
                    ],
                    "generation": 2,
                    "labels": {
                        "k8splugin.io/rb-instance-id": "stoic_wright"
                    },
                    "name": "unprotected-private-net",
                    "namespace": "plugin-tests-namespace",
                    "resourceVersion": "10719510",
                    "selfLink": "/apis/k8s.plugin.opnfv.org/v1alpha1/namespaces/plugin-tests-namespace/networks/unprotected-private-net",
                    "uid": "07f4fbe6-a58b-43ab-91a8-10619ab2bb3a"
                },
                "spec": {
                    "cniType": "ovn4nfv",
                    "dns": {},
                    "ipv4Subnets": [
                        {
                            "gateway": "192.168.10.1/24",
                            "name": "subnet1",
                            "subnet": "192.168.10.0/24"
                        }
                    ]
                },
                "status": {
                    "state": "Created"
                }
            }
        },
        {
            "name": "test-release-firewall-74fd65984f-rnwjd",
            "GVK": {
                "Group": "",
                "Version": "",
                "Kind": ""
            },
            "status": {
                "metadata": {
                    "annotations": {
                        "VirtletCloudInitUserData": "ssh_pwauth: True\nusers:\n- name: admin\n  gecos: User\n  primary-group: admin\n  groups: users\n  sudo: ALL=(ALL) NOPASSWD:ALL\n  lock_passwd: false\n  passwd: \"$6$rounds=4096$QA5OCKHTE41$jRACivoPMJcOjLRgxl3t.AMfU7LhCFwOWv2z66CQX.TSxBy50JoYtycJXSPr2JceG.8Tq/82QN9QYt3euYEZW/\"\nruncmd:\n  - export demo_artifacts_version=1.5.0\n  - export vfw_private_ip_0=192.168.10.3\n  - export vsn_private_ip_0=192.168.20.3\n  - export protected_net_cidr=192.168.20.0/24\n  - export dcae_collector_ip=10.0.4.1\n  - export dcae_collector_port=8081\n  - export protected_net_gw=192.168.20.100/24\n  - export protected_private_net_cidr=192.168.10.0/24\n  - wget -O - https://git.onap.org/multicloud/k8s/plain/kud/tests/vFW/firewall | sudo -E bash\n",
                        "VirtletLibvirtCPUSetting": "mode: host-model\n",
                        "VirtletRootVolumeSize": "5Gi",
                        "k8s.plugin.opnfv.org/nfn-network": "{ \"type\": \"ovn4nfv\", \"interface\": [ { \"name\": \"unprotected-private-net\", \"ipAddress\": \"192.168.10.3\", \"interface\": \"eth1\" , \"defaultGateway\": \"false\"}, { \"name\": \"protected-private-net\", \"ipAddress\": \"192.168.20.2\", \"interface\": \"eth2\", \"defaultGateway\": \"false\" }, { \"name\": \"onap-private-net-test\", \"ipAddress\": \"10.10.100.3\", \"interface\": \"eth3\" , \"defaultGateway\": \"false\"} ]}",
                        "k8s.plugin.opnfv.org/ovnInterfaces": "[{\"ip_address\":\"192.168.10.3/24\", \"mac_address\":\"00:00:00:99:7c:2a\", \"gateway_ip\": \"192.168.10.1\",\"defaultGateway\":\"false\",\"interface\":\"eth1\"},{\"ip_address\":\"192.168.20.2/24\", \"mac_address\":\"00:00:00:d1:a0:b0\", \"gateway_ip\": \"192.168.20.100\",\"defaultGateway\":\"false\",\"interface\":\"eth2\"},{\"ip_address\":\"10.10.100.3/16\", \"mac_address\":\"00:00:00:af:84:ed\", \"gateway_ip\": \"10.10.0.1\",\"defaultGateway\":\"false\",\"interface\":\"eth3\"}]",
                        "k8s.v1.cni.cncf.io/networks": "[{\"name\": \"ovn-networkobj\", \"namespace\": \"default\"}]",
                        "k8s.v1.cni.cncf.io/networks-status": "[{\n    \"name\": \"cni0\",\n    \"interface\": \"virtlet-eth0\",\n    \"ips\": [\n        \"10.244.64.36\"\n    ],\n    \"mac\": \"0a:58:0a:f4:40:24\",\n    \"default\": true,\n    \"dns\": {}\n},{\n    \"name\": \"ovn4nfv-k8s-plugin\",\n    \"interface\": \"eth3\",\n    \"ips\": [\n        \"192.168.10.3\",\n        \"192.168.20.2\",\n        \"10.10.100.3\"\n    ],\n    \"mac\": \"00:00:00:af:84:ed\",\n    \"dns\": {}\n}]",
                        "kubernetes.io/target-runtime": "virtlet.cloud"
                    },
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "generateName": "test-release-firewall-74fd65984f-",
                    "labels": {
                        "app": "firewall",
                        "k8splugin.io/rb-instance-id": "stoic_wright",
                        "pod-template-hash": "74fd65984f",
                        "release": "test-release"
                    },
                    "name": "test-release-firewall-74fd65984f-rnwjd",
                    "namespace": "plugin-tests-namespace",
                    "ownerReferences": [
                        {
                            "apiVersion": "apps/v1",
                            "blockOwnerDeletion": true,
                            "controller": true,
                            "kind": "ReplicaSet",
                            "name": "test-release-firewall-74fd65984f",
                            "uid": "b21d7f15-c133-4bcf-b584-a2177eda82e7"
                        }
                    ],
                    "resourceVersion": "10719554",
                    "selfLink": "/api/v1/namespaces/plugin-tests-namespace/pods/test-release-firewall-74fd65984f-rnwjd",
                    "uid": "0f469921-cc82-4808-9407-2f67c4801839"
                },
                "spec": {
                    "affinity": {
                        "nodeAffinity": {
                            "requiredDuringSchedulingIgnoredDuringExecution": {
                                "nodeSelectorTerms": [
                                    {
                                        "matchExpressions": [
                                            {
                                                "key": "extraRuntime",
                                                "operator": "In",
                                                "values": [
                                                    "virtlet"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        }
                    },
                    "containers": [
                        {
                            "image": "virtlet.cloud/ubuntu/16.04:latest",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "firewall",
                            "resources": {
                                "limits": {
                                    "memory": "4Gi"
                                },
                                "requests": {
                                    "memory": "4Gi"
                                }
                            },
                            "stdin": true,
                            "terminationMessagePath": "/dev/termination-log",
                            "terminationMessagePolicy": "File",
                            "tty": true,
                            "volumeMounts": [
                                {
                                    "mountPath": "/var/run/secrets/kubernetes.io/serviceaccount",
                                    "name": "default-token-9z6jn",
                                    "readOnly": true
                                }
                            ]
                        }
                    ],
                    "dnsPolicy": "ClusterFirst",
                    "enableServiceLinks": true,
                    "nodeName": "localhost",
                    "priority": 0,
                    "restartPolicy": "Always",
                    "schedulerName": "default-scheduler",
                    "securityContext": {},
                    "serviceAccount": "default",
                    "serviceAccountName": "default",
                    "terminationGracePeriodSeconds": 30,
                    "tolerations": [
                        {
                            "effect": "NoExecute",
                            "key": "node.kubernetes.io/not-ready",
                            "operator": "Exists",
                            "tolerationSeconds": 300
                        },
                        {
                            "effect": "NoExecute",
                            "key": "node.kubernetes.io/unreachable",
                            "operator": "Exists",
                            "tolerationSeconds": 300
                        }
                    ],
                    "volumes": [
                        {
                            "name": "default-token-9z6jn",
                            "secret": {
                                "defaultMode": 420,
                                "secretName": "default-token-9z6jn"
                            }
                        }
                    ]
                },
                "status": {
                    "conditions": [
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:26:51Z",
                            "status": "True",
                            "type": "Initialized"
                        },
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:27:03Z",
                            "status": "True",
                            "type": "Ready"
                        },
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:27:03Z",
                            "status": "True",
                            "type": "ContainersReady"
                        },
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:26:51Z",
                            "status": "True",
                            "type": "PodScheduled"
                        }
                    ],
                    "containerStatuses": [
                        {
                            "containerID": "docker://virtlet.cloud__9c3d1706-a8ec-5732-4a40-46d564a08304",
                            "image": "virtlet.cloud/sha256:ac5c214712c4bdb809e73bcefb199569b18f94dd5d3c464b0f35bec01cdcc24d",
                            "imageID": "sha256:ac5c214712c4bdb809e73bcefb199569b18f94dd5d3c464b0f35bec01cdcc24d",
                            "lastState": {},
                            "name": "firewall",
                            "ready": true,
                            "restartCount": 0,
                            "started": true,
                            "state": {
                                "running": {
                                    "startedAt": "2020-09-29T13:27:02Z"
                                }
                            }
                        }
                    ],
                    "hostIP": "192.168.255.3",
                    "phase": "Running",
                    "podIP": "10.244.64.36",
                    "podIPs": [
                        {
                            "ip": "10.244.64.36"
                        }
                    ],
                    "qosClass": "Burstable",
                    "startTime": "2020-09-29T13:26:51Z"
                }
            }
        },
        {
            "name": "test-release-packetgen-7557cb58bb-q2ms9",
            "GVK": {
                "Group": "",
                "Version": "",
                "Kind": ""
            },
            "status": {
                "metadata": {
                    "annotations": {
                        "VirtletCloudInitUserData": "ssh_pwauth: True\nusers:\n- name: admin\n  gecos: User\n  primary-group: admin\n  groups: users\n  sudo: ALL=(ALL) NOPASSWD:ALL\n  lock_passwd: false\n  passwd: \"$6$rounds=4096$QA5OCKHTE41$jRACivoPMJcOjLRgxl3t.AMfU7LhCFwOWv2z66CQX.TSxBy50JoYtycJXSPr2JceG.8Tq/82QN9QYt3euYEZW/\"\nruncmd:\n  - export demo_artifacts_version=1.5.0\n  - export vfw_private_ip_0=192.168.10.3\n  - export vsn_private_ip_0=192.168.20.3\n  - export protected_net_cidr=192.168.20.0/24\n  - export dcae_collector_ip=10.0.4.1\n  - export dcae_collector_port=8081\n  - export protected_net_gw=192.168.20.100/24\n  - export protected_private_net_cidr=192.168.10.0/24\n  - wget -O - https://git.onap.org/multicloud/k8s/plain/kud/tests/vFW/packetgen | sudo -E bash\n",
                        "VirtletLibvirtCPUSetting": "mode: host-model\n",
                        "VirtletRootVolumeSize": "5Gi",
                        "app": "packetgen",
                        "k8s.plugin.opnfv.org/nfn-network": "{ \"type\": \"ovn4nfv\", \"interface\":[ { \"name\": \"unprotected-private-net\", \"ipAddress\": \"192.168.10.2\", \"interface\": \"eth1\" , \"defaultGateway\": \"false\"}, { \"name\": \"onap-private-net-test\", \"ipAddress\": \"10.0.100.2\", \"interface\": \"eth2\" , \"defaultGateway\": \"false\"} ]}",
                        "k8s.plugin.opnfv.org/ovnInterfaces": "[{\"ip_address\":\"192.168.10.2/24\", \"mac_address\":\"00:00:00:88:d6:fe\", \"gateway_ip\": \"192.168.10.1\",\"defaultGateway\":\"false\",\"interface\":\"eth1\"},{\"ip_address\":\"10.0.100.2/16\", \"mac_address\":\"00:00:00:e5:a5:ef\", \"gateway_ip\": \"10.10.0.1\",\"defaultGateway\":\"false\",\"interface\":\"eth2\"}]",
                        "k8s.v1.cni.cncf.io/networks": "[{\"name\": \"ovn-networkobj\", \"namespace\": \"default\"}]",
                        "k8s.v1.cni.cncf.io/networks-status": "[{\n    \"name\": \"cni0\",\n    \"interface\": \"virtlet-eth0\",\n    \"ips\": [\n        \"10.244.64.35\"\n    ],\n    \"mac\": \"0a:58:0a:f4:40:23\",\n    \"default\": true,\n    \"dns\": {}\n},{\n    \"name\": \"ovn4nfv-k8s-plugin\",\n    \"interface\": \"eth2\",\n    \"ips\": [\n        \"192.168.10.2\",\n        \"10.0.100.2\"\n    ],\n    \"mac\": \"00:00:00:e5:a5:ef\",\n    \"dns\": {}\n}]",
                        "kubernetes.io/target-runtime": "virtlet.cloud",
                        "release": "test-release"
                    },
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "generateName": "test-release-packetgen-7557cb58bb-",
                    "labels": {
                        "app": "packetgen",
                        "k8splugin.io/rb-instance-id": "stoic_wright",
                        "pod-template-hash": "7557cb58bb",
                        "release": "test-release"
                    },
                    "name": "test-release-packetgen-7557cb58bb-q2ms9",
                    "namespace": "plugin-tests-namespace",
                    "ownerReferences": [
                        {
                            "apiVersion": "apps/v1",
                            "blockOwnerDeletion": true,
                            "controller": true,
                            "kind": "ReplicaSet",
                            "name": "test-release-packetgen-7557cb58bb",
                            "uid": "2ba50d08-d524-4d7f-aefe-bfc3953ea245"
                        }
                    ],
                    "resourceVersion": "10719548",
                    "selfLink": "/api/v1/namespaces/plugin-tests-namespace/pods/test-release-packetgen-7557cb58bb-q2ms9",
                    "uid": "e9e935d5-8b92-4f8f-ae63-9f172d98d38a"
                },
                "spec": {
                    "affinity": {
                        "nodeAffinity": {
                            "requiredDuringSchedulingIgnoredDuringExecution": {
                                "nodeSelectorTerms": [
                                    {
                                        "matchExpressions": [
                                            {
                                                "key": "extraRuntime",
                                                "operator": "In",
                                                "values": [
                                                    "virtlet"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        }
                    },
                    "containers": [
                        {
                            "image": "virtlet.cloud/ubuntu/16.04:latest",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "packetgen",
                            "resources": {
                                "limits": {
                                    "memory": "4Gi"
                                },
                                "requests": {
                                    "memory": "4Gi"
                                }
                            },
                            "stdin": true,
                            "terminationMessagePath": "/dev/termination-log",
                            "terminationMessagePolicy": "File",
                            "tty": true,
                            "volumeMounts": [
                                {
                                    "mountPath": "/var/run/secrets/kubernetes.io/serviceaccount",
                                    "name": "default-token-9z6jn",
                                    "readOnly": true
                                }
                            ]
                        }
                    ],
                    "dnsPolicy": "ClusterFirst",
                    "enableServiceLinks": true,
                    "nodeName": "localhost",
                    "priority": 0,
                    "restartPolicy": "Always",
                    "schedulerName": "default-scheduler",
                    "securityContext": {},
                    "serviceAccount": "default",
                    "serviceAccountName": "default",
                    "terminationGracePeriodSeconds": 30,
                    "tolerations": [
                        {
                            "effect": "NoExecute",
                            "key": "node.kubernetes.io/not-ready",
                            "operator": "Exists",
                            "tolerationSeconds": 300
                        },
                        {
                            "effect": "NoExecute",
                            "key": "node.kubernetes.io/unreachable",
                            "operator": "Exists",
                            "tolerationSeconds": 300
                        }
                    ],
                    "volumes": [
                        {
                            "name": "default-token-9z6jn",
                            "secret": {
                                "defaultMode": 420,
                                "secretName": "default-token-9z6jn"
                            }
                        }
                    ]
                },
                "status": {
                    "conditions": [
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:26:51Z",
                            "status": "True",
                            "type": "Initialized"
                        },
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:27:02Z",
                            "status": "True",
                            "type": "Ready"
                        },
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:27:02Z",
                            "status": "True",
                            "type": "ContainersReady"
                        },
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:26:51Z",
                            "status": "True",
                            "type": "PodScheduled"
                        }
                    ],
                    "containerStatuses": [
                        {
                            "containerID": "docker://virtlet.cloud__c3130190-d31f-5fa3-6c6b-bde8e0222aa2",
                            "image": "virtlet.cloud/sha256:ac5c214712c4bdb809e73bcefb199569b18f94dd5d3c464b0f35bec01cdcc24d",
                            "imageID": "sha256:ac5c214712c4bdb809e73bcefb199569b18f94dd5d3c464b0f35bec01cdcc24d",
                            "lastState": {},
                            "name": "packetgen",
                            "ready": true,
                            "restartCount": 0,
                            "started": true,
                            "state": {
                                "running": {
                                    "startedAt": "2020-09-29T13:27:01Z"
                                }
                            }
                        }
                    ],
                    "hostIP": "192.168.255.3",
                    "phase": "Running",
                    "podIP": "10.244.64.35",
                    "podIPs": [
                        {
                            "ip": "10.244.64.35"
                        }
                    ],
                    "qosClass": "Burstable",
                    "startTime": "2020-09-29T13:26:51Z"
                }
            }
        },
        {
            "name": "test-release-sink-766684c678-5rtgs",
            "GVK": {
                "Group": "",
                "Version": "",
                "Kind": ""
            },
            "status": {
                "metadata": {
                    "annotations": {
                        "k8s.plugin.opnfv.org/nfn-network": "{ \"type\": \"ovn4nfv\", \"interface\": [ { \"name\": \"protected-private-net\", \"ipAddress\": \"192.168.20.3\", \"interface\": \"eth1\", \"defaultGateway\": \"false\" }, { \"name\": \"onap-private-net-test\", \"ipAddress\": \"10.10.100.4\", \"interface\": \"eth2\" , \"defaultGateway\": \"false\"} ]}",
                        "k8s.plugin.opnfv.org/ovnInterfaces": "[{\"ip_address\":\"192.168.20.3/24\", \"mac_address\":\"00:00:00:44:1e:ab\", \"gateway_ip\": \"192.168.20.100\",\"defaultGateway\":\"false\",\"interface\":\"eth1\"},{\"ip_address\":\"10.10.100.4/16\", \"mac_address\":\"00:00:00:f2:17:da\", \"gateway_ip\": \"10.10.0.1\",\"defaultGateway\":\"false\",\"interface\":\"eth2\"}]",
                        "k8s.v1.cni.cncf.io/networks": "[{\"name\": \"ovn-networkobj\", \"namespace\": \"default\"}]",
                        "k8s.v1.cni.cncf.io/networks-status": "[{\n    \"name\": \"cni0\",\n    \"interface\": \"eth0\",\n    \"ips\": [\n        \"10.244.64.37\"\n    ],\n    \"mac\": \"0a:58:0a:f4:40:25\",\n    \"default\": true,\n    \"dns\": {}\n},{\n    \"name\": \"ovn4nfv-k8s-plugin\",\n    \"interface\": \"eth2\",\n    \"ips\": [\n        \"192.168.20.3\",\n        \"10.10.100.4\"\n    ],\n    \"mac\": \"00:00:00:f2:17:da\",\n    \"dns\": {}\n}]"
                    },
                    "creationTimestamp": "2020-09-29T13:26:51Z",
                    "generateName": "test-release-sink-766684c678-",
                    "labels": {
                        "app": "sink",
                        "k8splugin.io/rb-instance-id": "stoic_wright",
                        "pod-template-hash": "766684c678",
                        "release": "test-release"
                    },
                    "name": "test-release-sink-766684c678-5rtgs",
                    "namespace": "plugin-tests-namespace",
                    "ownerReferences": [
                        {
                            "apiVersion": "apps/v1",
                            "blockOwnerDeletion": true,
                            "controller": true,
                            "kind": "ReplicaSet",
                            "name": "test-release-sink-766684c678",
                            "uid": "8eb55965-78b9-48e6-baa4-109d63af22b3"
                        }
                    ],
                    "resourceVersion": "10719535",
                    "selfLink": "/api/v1/namespaces/plugin-tests-namespace/pods/test-release-sink-766684c678-5rtgs",
                    "uid": "99e70f0a-0a48-4308-ba27-a37d13465061"
                },
                "spec": {
                    "containers": [
                        {
                            "envFrom": [
                                {
                                    "configMapRef": {
                                        "name": "sink-configmap"
                                    }
                                }
                            ],
                            "image": "rtsood/onap-vfw-demo-sink:0.2.0",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "sink",
                            "resources": {},
                            "securityContext": {
                                "privileged": true
                            },
                            "stdin": true,
                            "terminationMessagePath": "/dev/termination-log",
                            "terminationMessagePolicy": "File",
                            "tty": true,
                            "volumeMounts": [
                                {
                                    "mountPath": "/var/run/secrets/kubernetes.io/serviceaccount",
                                    "name": "default-token-9z6jn",
                                    "readOnly": true
                                }
                            ]
                        },
                        {
                            "image": "electrocucaracha/darkstat:latest",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "darkstat",
                            "ports": [
                                {
                                    "containerPort": 667,
                                    "protocol": "TCP"
                                }
                            ],
                            "resources": {},
                            "stdin": true,
                            "terminationMessagePath": "/dev/termination-log",
                            "terminationMessagePolicy": "File",
                            "tty": true,
                            "volumeMounts": [
                                {
                                    "mountPath": "/var/run/secrets/kubernetes.io/serviceaccount",
                                    "name": "default-token-9z6jn",
                                    "readOnly": true
                                }
                            ]
                        }
                    ],
                    "dnsPolicy": "ClusterFirst",
                    "enableServiceLinks": true,
                    "nodeName": "localhost",
                    "priority": 0,
                    "restartPolicy": "Always",
                    "schedulerName": "default-scheduler",
                    "securityContext": {},
                    "serviceAccount": "default",
                    "serviceAccountName": "default",
                    "terminationGracePeriodSeconds": 30,
                    "tolerations": [
                        {
                            "effect": "NoExecute",
                            "key": "node.kubernetes.io/not-ready",
                            "operator": "Exists",
                            "tolerationSeconds": 300
                        },
                        {
                            "effect": "NoExecute",
                            "key": "node.kubernetes.io/unreachable",
                            "operator": "Exists",
                            "tolerationSeconds": 300
                        }
                    ],
                    "volumes": [
                        {
                            "name": "default-token-9z6jn",
                            "secret": {
                                "defaultMode": 420,
                                "secretName": "default-token-9z6jn"
                            }
                        }
                    ]
                },
                "status": {
                    "conditions": [
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:26:51Z",
                            "status": "True",
                            "type": "Initialized"
                        },
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:27:00Z",
                            "status": "True",
                            "type": "Ready"
                        },
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:27:00Z",
                            "status": "True",
                            "type": "ContainersReady"
                        },
                        {
                            "lastProbeTime": null,
                            "lastTransitionTime": "2020-09-29T13:26:51Z",
                            "status": "True",
                            "type": "PodScheduled"
                        }
                    ],
                    "containerStatuses": [
                        {
                            "containerID": "docker://e63bae29d79a82c9c1ba2cf6038ec439c7e5fbc1fe584a0d721cfaab36ea3816",
                            "image": "electrocucaracha/darkstat:latest",
                            "imageID": "docker-pullable://electrocucaracha/darkstat@sha256:a6764fcc2e15f6156ac0e56f1d220b98970f2d4da9005bae99fb518cfd2f9c25",
                            "lastState": {},
                            "name": "darkstat",
                            "ready": true,
                            "restartCount": 0,
                            "started": true,
                            "state": {
                                "running": {
                                    "startedAt": "2020-09-29T13:26:59Z"
                                }
                            }
                        },
                        {
                            "containerID": "docker://696a651658d9a199cced1982cb9b629607dde899d6af5bddb12c2b2232196347",
                            "image": "rtsood/onap-vfw-demo-sink:0.2.0",
                            "imageID": "docker-pullable://rtsood/onap-vfw-demo-sink@sha256:15b7abb0b67a3804ea5f954254633f996fc99c680b09d86a6cf15c3d7b14ab16",
                            "lastState": {},
                            "name": "sink",
                            "ready": true,
                            "restartCount": 0,
                            "started": true,
                            "state": {
                                "running": {
                                    "startedAt": "2020-09-29T13:26:59Z"
                                }
                            }
                        }
                    ],
                    "hostIP": "192.168.255.3",
                    "phase": "Running",
                    "podIP": "10.244.64.37",
                    "podIPs": [
                        {
                            "ip": "10.244.64.37"
                        }
                    ],
                    "qosClass": "BestEffort",
                    "startTime": "2020-09-29T13:26:51Z"
                }
            }
        }
    ]
}

Configuration API

Day 2 Configurations for applications are applied using K8S kinds (typically CRDs) implemented by application specific operators.  For a given application, type of configuration is similar (but not the values), therefore configuration templates are created by applications.  These templates are for each application and are expected to be created even before Day 2 configuration is applied. Once the templates are created, configuration can be applied by choosing the right template. Day 2 configuration is applied by users as and when new configuration is required. As a user, he/she should select the template and supply values to apply new configuration. 

...