Testing Nested Network Connectivity
===================================

Similarly to the baremetal testing, we can create a demo deployment, scale it
to any number of pods and expose the service to check if the deployment was
successful::

	$ kubectl run demo --image=celebdor/kuryr-demo
	$ kubectl scale deploy/demo --replicas=2
	$ kubectl expose deploy/demo --port=80 --target-port=8080


After a few seconds you can check that the pods are up and running and the
neutron subports have been created (and in ACTIVE status) at the undercloud::

	(OVERCLOUD)
	$ kubectl get pods
	NAME                    READY     STATUS    RESTARTS   AGE
	demo-1575152709-4k19q   1/1       Running   0          2m
	demo-1575152709-vmjwx   1/1       Running   0          12s

	(UNDERCLOUD)
	$ openstack port list | grep demo
	| 1019bc07-fcdd-4c78-adbd-72a04dffd6ba | demo-1575152709-4k19q | fa:16:3e:b5:de:1f | ip_address='10.0.0.65', subnet_id='b98d40d1-57ac-4909-8db5-0bf0226719d8' | ACTIVE |
	| 33c4d79f-4fde-4817-b672-a5ec026fa833 | demo-1575152709-vmjwx | fa:16:3e:32:58:38 | ip_address='10.0.0.70', subnet_id='b98d40d1-57ac-4909-8db5-0bf0226719d8' | ACTIVE |


Then, we can check that the service has been created, as well as the
respective loadbalancer at the undercloud::

	(OVERCLOUD)
	$ kubectl get svc
	NAME             CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
	svc/demo         10.0.0.171   <none>        80/TCP    1m
	svc/kubernetes   10.0.0.129   <none>        443/TCP   45m

	(UNDERCLOUD)
	$ neutron lbaas-loadbalancer-list
	+--------------------------------------+--------------------+----------------------------------+-------------+---------------------+----------+
	| id                                   | name               | tenant_id                        | vip_address | provisioning_status | provider |
	+--------------------------------------+--------------------+----------------------------------+-------------+---------------------+----------+
	| a3b85089-1fbd-47e1-a697-bbdfd0fa19e3 | default/kubernetes | 672bc45aedfe4ec7b0e90959b1029e30 | 10.0.0.129  | ACTIVE              | haproxy  |
	| e55b3f75-15dc-4bc5-b4f4-bce65fc15aa4 | default/demo       | e4757688696641218fba0bac86ff7117 | 10.0.0.171  | ACTIVE              | haproxy  |
	+--------------------------------------+--------------------+----------------------------------+-------------+---------------------+----------+


Finally, you can log in into one of the containers and curl the service IP to
check that each time a different pod answer the request::

	$ kubectl exec -it demo-1575152709-4k19q -- /bin/sh
	sh-4.2$ curl 10.0.0.171
	demo-1575152709-4k19q: HELLO, I AM ALIVE!!!
	sh-4.2$ curl 10.0.0.771
	demo-1575152709-vmjwx: HELLO, I AM ALIVE!!!
