CentOS Atomic Test Day
For today's (2015-09-22) test day, we'll be testing an updated build of CentOS Atomic Host that includes the updated atomic, docker, cockpit, etcd, kubernetes that became available in CentOS 7 Extras on Sep 16.
We're holding this test day along with members of the Fedora Cloud community, who'll also be testing a prerelease Fedora 23 atomic image. For more information on the Fedora side of the tests, see their wiki page.
1. Who's available
If you have questions or otherwise need help during the test day, ping Jason Brooks (jbrooks) or Dusty Mabe (dustymabe) on irc in freenode. The best place, generally, to ask questions and chat during the test day is #atomic in freenode.
2. Test day prerequisites
You'll need copies of the image formats you intend to test. We have test images in vagrant (virtualbox and libvirt), installable iso, and qcow2 formats available here: http://buildlogs.centos.org/atomic-test-day/.
Between these image options, you should be able to install the test images on any sort of virtual or physical, x86_64-supporting host.
3. Getting set up
3.1. vagrant / libvirt
$ wget http://buildlogs.centos.org/atomic-test-day/centos-atomic-host-7-vagrant-libvirt.box $ vagrant box add centos-atomic-host-7-vagrant-libvirt.box --name cah-test-day $ vagrant init cah-test-day $ vagrant up --provider=libvirt
3.2. vagrant / virtualbox
$ wget http://buildlogs.centos.org/atomic-test-day/centos-atomic-host-7-vagrant-libvirt.box $ vagrant box add centos-atomic-host-7-vagrant-virtualbox.box --name cah-test-day $ vagrant init cah-test-day $ vagrant up --provider=virtualbox
3.3. Installable ISO
$ wget http://buildlogs.centos.org/atomic-test-day/centos-atomic-host-7.iso
Proceed to burn this iso to disk and use that to install, or connect to your virtualization or cloud software of choice to install. For details on the process, which maps very closely to a standard Anaconda-based install, see http://www.projectatomic.io/docs/fedora_atomic_bare_metal_installation/.
3.4. qcow2 images
$ wget http://buildlogs.centos.org/atomic-test-day/centos-atomic-host-7.qcow2.gz $ gunzip centos-atomic-host-7.qcow2.gz
The biggest trick with the qcow2 images is their dependence on cloud-init for logging on to the host once booted. If your cloud or virtualization platform supports cloud-init, it should work as expected. If not, you can create and boot from your own cloud-init source ISO. For more information on that, see the "Prep the cloud-init source ISO" section of http://www.projectatomic.io/docs/quickstart/.
4. Tests to run
4.1. Basic installation
CentOS Atomic Hosts are, for the most part, typical Linux hosts, and so the testing basics begin with things like whether you're able to install or deploy the host as expected on your virtual/physical hardware, whether you can then access the host normally, and whether networking seems to be working properly.
For some specific basic items to test, here's a basic installation test case from the Fedora wiki: https://fedoraproject.org/wiki/QA:Testcase_base_startup#Description.
4.2. Atomic update / rollback
CentOS Atomic Host is composed of standard CentOS rpms, but rather than download, unpack and install these packages on individual machine, these processes take place on a back end server, from which atomic hosts pull down image changes incrementally.
For this test day, we don't have a set of updates to pull down to test the atomic host's upgrade and rollback capabilities, but if you're interested in exploring how to make and apply your own custom updates, check out this doc page: http://www.projectatomic.io/docs/compose-your-own-tree/. If you do compose and test your own updates, these Fedora Atomic upgrade (https://fedoraproject.org/wiki/User:Roshi/QA/AtomicTests/Atomic_Upgrade) and rollback (http://fedoraproject.org/wiki/User:Roshi/QA/AtomicTests/Atomic_Rollback) wiki pages offer some test cases.
4.3. Docker host tests
Atomic Hosts are designed to host containerized applications, using docker. Once you've confirmed that your host is up and running, conduct some basic tests of docker functionality. Any of the basic tests at https://docs.docker.com/userguide/dockerizing/ should work "out of the box" on the CentOS Atomic Host.
Also, check out these docker lifecycle (http://fedoraproject.org/wiki/User:Roshi/QA/AtomicTests/Atomic_Docker_Lifecycle) and image (http://fedoraproject.org/wiki/User:Roshi/QA/AtomicTests/Atomic_Docker_ImageTest) tests from the Fedora wiki.
4.4. Kubernetes cluster tests
CentOS Atomic Host ships with all the software required to assemble multiple hosts into a kubernetes cluster, but these components must be configured.
The Project Atomic site includes a doc page with manual instructions for configuring a kubernetes cluster. One valuable test would be to work through these instructions, confirming that they work, and flagging any issues in need of resolution.
There's a blog post, also on the Project Atomic site, with instructions for a more automated configuration of an atomic kubernetes cluster, using ansible and vagrant, at http://www.projectatomic.io/blog/2015/09/clustering-atomic-hosts-with-kubernetes-ansible-and-vagrant/. If you follow along with these vagrant/ansible instructions, be sure to replace instances of config.vm.box = "centos/atomic-host" with config.vm.box = "cah-test-day" from the vagrant setup section, above, to ensure that you're using the updated test image.
4.5. Atomicapp and Nulecule
Atomic App is a reference implementation of the Nulecule Specification. It can be used to bootstrap container applications and to install and run them.
There's a series of example nulecule/atomicapp examples available to test at: https://github.com/projectatomic/nulecule/tree/master/examples.
Atomic hosts may be administered using Cockpit, a web-based server UI. The bulk of cockpit runs as a container, with certain enabling packages installed directly on the atomic host image. To test out cockpit, run:
$ sudo atomic run cockpit/ws
And then use your web browser to log into port 9090 on your host IP address as usual.
5. Reporting results
If you encounter an issue during your testing, please file a bug report. Ask in #atomic on freenode if you're unsure where to file the issue. Also, we can take and share notes about our tests on this etherpad: http://piratepad.net/aCeh03AWWj.