Copper, an Open Source Tool to Validate Kubernetes Configuration File.
When Docker was released into the wild in 2013 it had one killer feature: immutability. Using Dockerfiles and the docker image format forced users to rebuild images from scratch every time there was a change. This meant no tinkering with an existing image which made immutable infrastructure much more achievable and real.
Today, Kubernetes has become the de facto standard of running containers everywhere. This status is a result of good design, solid implementation and good custodianship of the Kubernetes open source project by the CNCF, of which Cloud 66 is a proud member. Kubernetes has many great features, but one stands out as the killer feature: use of a single, uniform API. With configuration files, users can create infrastructure components from network to storage, deploy their application and services, to as well as maintain ephemeral and persistent workloads. Again, all of this makes Infrastructure as Code much more achievable and real.
At Cloud 66 we use a lot of what we build to deliver a service with very high uptime that is maintainable by a small team. All of what you see and use at Cloud 66 is hosted on Kubernetes and is deployed many times during the day with thousands of customers using it in more than 120 countries around the world, while the code or the infrastructure is changing underneath them.
This requires applying the best practices of continuous integration and continuous delivery both to code and infrastructure configuration. Let’s face it, if Infrastructure as Code is the way to go, then applying coding best practices to infrastructure configuration is what we all should be doing.
Today I am proud to release Cloud 66 Copper, the latest member of the Cloud 66 product family, as an open source project under the MPL 2 license. Copper was built by our team as we used Kubernetes more and more throughout or infrastructure to help us manage and maintain our production site with more confident. Today we are sharing this with the world!
Copper, alongside Habitus and Starter, Skycap and Maestro, is going to help many fellow developers around the world build better and more reliable products and services.
What is Copper?
Copper is a configuration validator for Kubernetes. It is open source and free to use and modify under the MPL 2 license, and is used by Cloud 66 and other organizations to ensure validity of Kubernetes configuration files while avoiding restrictions on developers to freely create and modify Kubernetes configuration with each git commit.
Who needs Copper?
While Copper is not restricted to Kubernetes configuration files and can be used with any configuration file, it is most useful if you are running any type of workloads on Kubernetes.
Why do I need Copper?
Kubernetes configuration files let you modify application composition as well as infrastructure configuration through a single API (usually one or more YAML files). Usually you’d want to keep these files in a git repository and next to your application so they move in lockstep. At the same time these changes are made by developers but should be safe to use on your Kubernetes cluster that’s shared with other developers, applications and teams. Copper acts like unit tests for your Kubernetes configuration files, checking them for validity and compliance after each change.
How do I use Copper?
Copper comes as a command line tool. Simply head to https://github.com/cloud66-oss/copper and try it out for yourself and let us know what you think.