...
Code Block | ||
---|---|---|
| ||
{ "cloud-region": "krd", "profile-name": "p1", "release-name": "release-x", "rb-name":"test-rbdef", "rb-version":"v1", "override-parametersvalues": { "optionalDictOfParameters": "andTheirValues, like", "global.name": "dummy-name" }, "labels": { "optionalLabelForInternalK8spluginInstancesMetadata": "dummy-value" } } |
...
Code Block | ||
---|---|---|
| ||
{ "id": "ID_GENERATED_BY_K8SPLUGIN", "namespace": "NAMESPACE_WHERE_INSTANCE_HAS_BEEN_DEPLOYED_AS_DERIVED_FROM_PROFILE", "release-name": "RELEASE_NAME_AS_COMPUTED_BASED_ON_INSTANTIATION_REQUEST_AND_PROFILE_DEFAULT", "request": { "rb-name": "test-rbdef", "rb-version": "v1", "profile-name": "p1", "release-name": "release-x", "cloud-region": "krd", "override-parametersvalues": { "optionalDictOfParameters": "andTheirValues, like", "global.name": "dummy-name" }, "labels": { "optionalLabelForInternalK8spluginInstancesMetadata": "dummy-value" }, } "resources": [ { "GVK": { "Group": "", "Kind": "ConfigMap", "Version": "v1" }, "Name": "test-cm" }, { "GVK": { "Group": "", "Kind": "Service", "Version": "v1" }, "Name": "test-svc" }, { "GVK": { "Group": "apps", "Kind": "Deployment", "Version": "v1" }, "Name": "test-dep" } ] } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
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 | ||||
---|---|---|---|---|
| ||||
curl -X GET http://NODE_IP:30280/api/multicloud-k8s/v1/v1/instance/{instanceID}/status |
Example response:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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.
...