Create, manage, snapshot, and scale Kubernetes infrastructure in the public cloud.
kubicorn
is an unofficial project that solves the Kubernetes infrastructure problem and
gives users a rich golang library to work with infrastructure.
kubicorn
is a project that helps a user manage cloud infrastructure for Kubernetes. With kubicorn
a user can create new clusters, modify and scale them, and take a snapshot of their cluster at any time.
NOTE: This is a work-in-progress, we do not consider it production ready. We're working hard towards the v1.0.0
release and we're expecting it in the upcoming months.
Use at your own risk and if you're as excited about it as we are, maybe you want to join us on the #kubicorn
channel in the Kubernetes Slack community.
Project update: kubicorn
is currently going through a breaking API changes as we adopt the upstream cluster API. We have moved kubicorn
to github.com/kubicorn/kubicorn
. We are targeting a stable release shortly!
Previously, we mainly used a channel in the Gophers Slack community, which is still active, but we're moving to the Kubernetes Slack. You can also get involved and send your questions to our public mailing list.
We hold developer calls biweekly on Tuesdays, 1pm Pacific Time. By joining the mailing list, you'll get a calendar invite.
Core Values
Community first.
This is a community driven project. We love you, and respect you. We are here to help you learn, help you grow, and help you succeed. If you have an idea, please share it.
Developer empathy.
We are all software engineers, and we all work in many different code bases. We want the code to be stable, and approachable. We strive for clean and simple software, and we encourage refactoring and fixing technical debt.
Operational empathy.
We want our tool to work, and work well. If an operator is running kubicorn
it should feel comfortable and make sense
to them. We want operators to feel empowered.
Infrastructure as software.
We believe that the oh-so important layer of infrastructure should be represented as software (not as code!). We hope that our project demonstrates this idea, so the community can begin thinking in the way of the new paradigm.
Rainbows and Unicorns
We believe that sharing is important, and encouraging our peers is even more important. Part of contributing to kubicorn
means respecting, encouraging, and welcoming others to the project.
Concepts
Create
kubicorn
lets a user create a Kubernetes cluster in a cloud of their choice.
Apply
Define what you want, then apply it. That simple.
Adopt
kubicorn
can adopt any Kubernetes cluster at any time.
Scale
kubicorn
is powered by a state enforcement pattern. A user defines the intended state of Kubernetes infrastructure,
and kubicorn
can enforce the intended state.
Snapshot
kubicorn
allows a user to take a snapshot of a Kubernetes cluster, and run the image in any cloud at any
time. A snapshot is compressed file that will represent intended infrastructure and intended application
definitions. Take a snap, save a snap, deploy a snap.
Enforce
kubicorn
is built as a library and a framework. Thus allowing it to be easily vendored into operator and
controller patterns to enforce intended state of infrastructure.
How is Kubicorn
different?
- We use
kubeadm
to bootstrap our clusters. - We strive for developer empathy, and clean and simple code.
- We strive for operational empathy, and clean and simple user experience.
- We start with
struct
literals for profiles, and then marshal into an object. - We offer the tooling as a library, more than a command line tool.
- We are atomic, and will un-do any work if there is an error.
- We run on many operating systems.
- We allow users to define their own arbitrary bootstrap logic.
- We have no guarantee that anything works, ever, use at your own risk.
- We have no dependency on DNS.
- We believe in snapshots, and that a user should be able to capture a cluster, and move it.
Friends of kubicorn
Calico
We use Project Calico to make CNI problems go away! Thanks to our friends at Tigera, we now can help you get kubernetes up and running in no time using a rock solid CNI provider.
Velero
Thanks to the fantastic works from our friends at VMware, we can easily help you snapshot and recreate your entire kubernetes
platform using Project Velero.
Weave
We use Weavenet to help control our clusters! Thanks to our friends at Weave we now offer a great experience for networking in different clouds, and a seamless user experience.