Last Friday, Luis Chamberlain announced the release of kdevops as a Linux kernel development DevOps framework.
Chamberlain wrote in his email, “the goal behind this project is to provide a modern devops framework for Linux kernel development. It is not a test suite, it is designed to use any test suites, and more importantly, it allows us to let us easily set up test environments in a jiffie. It supports different virtualization environments, and different cloud environments, and supports different Operating Systems.”
kdevops is a sample framework which lets you to easily set up a testing environment for a number of different use cases.
How does kdevops work?
kdevops relies on Vagrant, Terraform and Ansible to get you going with your virtualization/bare metal/cloud provisioning environment. It relies heavily on public ansible galaxy roles and terraform modules. This lets the kdevops team share codes with the community and allow them to use the project as a demo framework which uses theses ansible roles and terraform modules.
There are three parts to the long terms ideals for kdevops:
- Provisioning required virtual hosts/cloud environment
- Provisioning your requirements
- Running whatever you want
Ansible will be used to get all the required ansible roles. Then Vagrant or Terraform can be used to provision hosts. Vagrant makes use of two ansible roles to setup update ~/.ssh/config and update the systems with basic development preference files, things like .git config or bashrc hacks. This last part is handled by the devconfig ansible role. Since ~/.ssh/config is updated you can then run further ansible roles manually when using Vagrant.
If using Terraform for cloud environments, it updates ~/.ssh/config directly without ansible, however since access to hosts on cloud environments can vary in time running all ansible roles is expected to be done manually.
What you can do with kdevops
- Full vagrant provisioning, including updating your ~/.ssh/config
- Terraform provisioning on different cloud providers
- Running ansible to install dependencies on debian
- Using ansible to clone, compile and boot into any random kernel git tree with a supplied config
- Updating ~/.ssh/config for terraform, first tested with the OpenStack provider, with both generic and special minicloud support. Other terraform providers just require making use of the newly published terraform module add-host-ssh-config
On Hacker News, this release has gained positive reviews, but the only concern for users is if it has anything to do with devops as it appears to be an automated testing environment provision. One of them comments, “This looks cool, but I’m not sure what it has to do with devops? It just seems to be automated test environment provisioning, am I missing something?”
On Reddit as well, Linux users are happy with this setup and they find it really promising, one of the comments read, “I have so much hacky scriptwork around kvm, have always been looking for a cleaner setup; this looks super promising. thank you.”