Abstract:One of the most underrated features of Kubernetes is namespaces. In the market, instead of using this feature, people are still stuck with having different clusters for their environments. This talk will try to break this approach, and will introduce how we end up using ephemeral namespaces within our CI/CD pipeline. It will cover the architecture of our system for running the user acceptance tests on isolated ephemeral namespaces with every bits and pieces running within pods. While doing this, we will set up our CI/CD pipeline on top of TravisCI, GoCD, and Selenium that is controlled by Nightwatch.js.
Outline:
- Discuss how you can start leveraging namespaces, and why it is important to use them.
- Introduction to ephemeral namespaces. Build all your dependent services in a separate namespace, run through your tests and tear down everything whenever you are done.
- Making every step (building docker images, provisioning kubernetes files, running rolling updates etc) within the CI/CD pipeline manageable with GoCD.
- Details about the complete isolation of all the components in each testing namespace, and having chance of running a bunch of different versions on a single kubernetes cluster.
- Showing how everything is a part of Kubernetes component: even run your Nightwatch test scripts in a pod.
- Demo of the whole process.