Announcing Kream and new Kubernetes, Helm and Docker modules
Kubernetes is gathering a lot of steam in the container ecosystem. Since the project was donated to the CNCF there has been massive adoption from the likes of Microsoft, Oracle and VMware. At Puppet, we’re committed to helping our customers adopt whatever’s next. To that end, we announced Project Blueshift last year and we’re continuing to expand on that promise with our latest set of releases.
We have developed a new set of tools to make your adoption of Kubernetes as efficient as possible, covering your full workflow cycle from development to production. Additionally, we’re happy to announce a new Docker module that includes enhanced support.
Kubernetes development can be done on many levels. If you’re an SRE or Ops Engineer, you may be responsible for testing changes to Kubernetes clusters. If you’re a developer, you may be responsible for testing the latest version of your application on a cluster. To account for both use cases, we’ve developed Kream, a new tool that enables you to install and manage Kubernetes and Helm, and build a local development cluster. Kream gives you the following:
- A multi-node Kubernetes cluster
- Helm preinstalled for application deployment
- Rook for block level storage
If you prefer AWS, you can use our CloudFormation template.
Now take it to production
Spinning up a production Kubernetes cluster can be a daunting task. With the Kubernetes module we aimed to abstract most of the complexity for you. We built a tool that automates the module's parameters, including SSL certificates into a Hiera file. This tool ships with the module and is located in the tools directory. Just follow the instructions to run the tool. To get the help menu, issue the following command:
It will print out the following:
Then you can generate your Hiera file with:
Then all you need to do is define your nodes as one of the following: A bootstrap controller
Or a worker
After Puppet runs on all the nodes, your Kubernetes cluster will be up and running. To add Helm to your cluster to deploy custom charts or charts from a public repo add the following class to a controller node:
Now you have a production-ready Kubernetes cluster that is a replication of Kream with Helm installed and you can easily deploy your application to this cluster. If you are an advanced Kubernetes user and don’t want to use our tool to generate the Hiera file, we’ve left all the parameters as undef, so you have the freedom to make any customizations you need.
We also recently shipped our new Docker module to include support for Puppet Code Manager, Docker Swarm mode and Docker Secrets. Stay tuned for a follow up blog post!
If you’re at PuppetConf, be sure to check out the following Kubernetes sessions:
- Zero to Kubernetes in the Cloud, Scott Coulton, Puppet
- State of the Union: Containers at Puppet, Gert Drapers, Puppet
- Cloud, Containers, Puppet and You, Carl Caum, Puppet
- From Roller Coasters to Meerkats: 3 Generations of Production Kubernetes Clusters, Matthew Bates and Christian Simon, Jetstack
- Who manages the managers? Managing CoreOS and Kubernetes with Puppet, Lucy Wyman, Puppet
- Kubernetes in the Cloud with Puppet and Google Container Engine, Mandy Waite, Google
We hope to see you there! And if you can’t make it, be sure to sign up for the live stream.
Scott Coulton is a principal software engineer at Puppet.