* Add Virtual Kubelet provider for VIC Initial virtual kubelet provider for VMware VIC. This provider currently handles creating and starting of a pod VM via the VIC portlayer and persona server. Image store handling via the VIC persona server. This provider currently requires the feature/wolfpack branch of VIC. * Added pod stop and delete. Also added node capacity. Added the ability to stop and delete pod VMs via VIC. Also retrieve node capacity information from the VCH. * Cleanup and readme file Some file clean up and added a Readme.md markdown file for the VIC provider. * Cleaned up errors, added function comments, moved operation code 1. Cleaned up error handling. Set standard for creating errors. 2. Added method prototype comments for all interface functions. 3. Moved PodCreator, PodStarter, PodStopper, and PodDeleter to a new folder. * Add mocking code and unit tests for podcache, podcreator, and podstarter Used the unit test framework used in VIC to handle assertions in the provider's unit test. Mocking code generated using OSS project mockery, which is compatible with the testify assertion framework. * Vendored packages for the VIC provider Requires feature/wolfpack branch of VIC and a few specific commit sha of projects used within VIC. * Implementation of POD Stopper and Deleter unit tests (#4) * Updated files for initial PR
3.7 KiB
3.7 KiB
Test 19-2 - ROBO - Container VM Limit
Purpose:
To verify that the total container VM limit feature works as expected in a vSphere ROBO Advanced environment.
References:
- vSphere Remote Office and Branch Office
- Limit total allowed containerVMs per VCH
- vic-machine inspect to report configured containerVM limit
Environment:
This test requires access to VMware Nimbus cluster for dynamic ESXi and vCenter creation. This test should be executed in the following topologies and should have vSAN enabled.
- 1 vCenter host with 3 clusters, where 1 cluster has 1 ESXi host and the other 2 clusters have 3 ESXi hosts each
- 2 vCenter hosts connected with ELM, where each vCenter host has a cluster/host/datacenter topology that emulates a customer environment (exact topology TBD)
See https://confluence.eng.vmware.com/display/CNA/VIC+ROBO for more details.
Test Steps:
- Deploy a ROBO Advanced vCenter testbed for both environments above
- Install a VCH on a particular cluster in vCenter with a container VM limit of
y - Use vic-machine inspect to verify the set container VM limit
- Visit the VCH Admin page and verify the container VM limit is displayed in the VCH Info section
- Create and run
y(long-running) containers with the VCH - Create another (long-running) container so as to have
y+1total containers, but onlyyrunning containers - Attempt to run the container created in Step 6
- Delete one of the containers created in Step 5
- Start the container created in Step 6
- Create (don't run)
x(x<y) long-running containers to have a total ofy + xcontainers - From the
yalready-running containers, assemble a list ofxcontainers (usingdocker ps -qfor example) - Concurrently start the containers in Step 10 and concurrently delete the containers in Step 11
- Check the number of running containers with
docker ps -q - Use vic-machine configure to increase the container VM limit (new limit =
z) - Use vic-machine inspect to verify the new container VM limit
- Visit the VCH Admin page and verify the container VM limit is displayed in the VCH Info section
- Create and run more containers and verify that up to a total of
zcontainers can be run - Use vic-machine configure to set the limit to lower than the current number of containers running
- Attempt to run more containers
- Delete/stop some containers so the current container VM count is lower than the set limit
- Attempt to create/run more containers until the set limit
- Delete the VCH
Expected Outcome:
- Steps 1 and 2 should succeed
- Step 3's output should indicate the limit set in Step 2
- Steps 4 and 5 should succeed
- Step 6 should succeed since the container limit applies to running containers
- Step 7 should fail since the container limit applies to running containers
- Steps 8-11 should succeed
- In Step 12, depending on the order in which operations are processed, a container should fail to start if it breaches the running container limit
- In Step 13, the number of running containers should be
<= y, the current running container limit - Step 14 should succeed
- Step 15's output should indicate the limit set in Step 14
- Step 16 should show the new container VM limit
- Step 17 should succeed
- Step 18 should succeed - exact behavior of existing running containers is TBD
- Step 19 should fail and should receive an error upon attempting to start "surplus" container VMs (exact behavior of existing running containers TBD)
- Steps 20-22 should succeed
Possible Problems:
None