Simple. Cloud Native. Kubernetes. Rainbow. Infrastructure.
Go Shell Makefile
Latest commit 146c07a Jan 18, 2018 @xmudrii xmudrii Merge pull request #521 from cschiewek/master
Update Digital Ocean Ubuntu Profile to use k8s 1.9.1
Permalink
Failed to load latest commit information.
.circleci fabulous: remove libncurses5-dev from docs and build Aug 19, 2017
apis Add Packet provider and first profile Nov 25, 2017
bootstrap add --discovery-token-unsafe-skip-ca-verification to kubeadm join Jan 18, 2018
cloud signals: hotfix signals Dec 7, 2017
cmd updating create cmd Jan 6, 2018
cutil revert default github source change Jan 18, 2018
docker Revert "docker: Refactored the docker build script." Oct 20, 2017
docs Documented to the new flag to envar.md. Dec 11, 2017
examples logger: implement success function Nov 6, 2017
profiles profiles, digitalocean: switch to new droplets Jan 16, 2018
scripts fix sed command on OSX, replaced with echo and simplified logic Aug 9, 2017
state Modified read cmd to check remote repo if it exists and pull changes … Dec 10, 2017
test Clean Up Docs Nov 6, 2017
vendor vendor: try to vendor client-go Jan 17, 2018
.gitignore update do ubuntu to use kubeadm 1.9.1 Jan 18, 2018
.travis.yml travis: add 1.x instead 1.8.3 as go version Sep 8, 2017
AUTHORS revert default github source change Jan 18, 2018
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Jul 17, 2017
CONTRIBUTING.md Clean Up Docs Nov 6, 2017
Dockerfile Refactored Dockerfile removing COPY statements. Oct 14, 2017
Gopkg.lock vendor: try to vendor client-go Jan 17, 2018
Gopkg.toml vendor: try to vendor client-go Jan 17, 2018
LICENSE Another commit from somewhere above the rocky mountains.. Jul 1, 2017
Makefile Pass in host user/group ID Nov 20, 2017
README.md Fix packet walkthrough link Nov 25, 2017
VERSION Time to release DO Aug 4, 2017
main.go kubeconfig: implement agent package Oct 18, 2017

README.md

Create, manage, snapshot, and scale Kubernetes infrastructure in the public cloud.

Build Status Go Report Card

Phonetic pronunciation: KEW - BHIK - OH - AR - IN

About

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. 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 Gophers Slack community.

Proudly packaged with Golang dep

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.

Installing

$ go get github.com/kris-nova/kubicorn

..or read the Install Guide.

Quickstart

This asciicast shows how to get a Kubernetes cluster on Digital Ocean using kubicorn in less than 5 minutes:

asciicast

How is Kubicorn different?

  1. We use kubeadm to bootstrap our clusters
  2. We strive for developer empathy, and clean and simple code
  3. We strive for operational empathy, and clean and simple user experience
  4. We start with struct literals for profiles, and then marshal into an object
  5. We offer the tooling as a library, more than a command line tool
  6. We are atomic, and will un-do any work if there is an error
  7. We run on many operating systems
  8. We allow users to define their own arbitrary bootstrap logic
  9. We have no guarantee that anything works, ever, use at your own risk
  10. We have no dependency on DNS
  11. We believe in snapshots, and that a user should be able to capture a cluster, and move it

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.

Documentation

Name Description Link
Install Install guide for Kubicorn CLI install
Environmental Variables Master list of supported environmental variables envvars
Kops vs Kubicorn Blog about kubicorn with comparison table nivenly.com/kubicorn
Azure Walkthrough A walkthrough guide on installing Kubernetes on Azure walkthrough
AWS Walkthrough A walkthrough guide on installing Kubernetes on AWS walkthrough
DigitalOcean Walkthrough A walkthrough guide on installing Kubernetes on D.O. walkthrough
DigitalOcean Quickstart A quickstart asciicast on installing Kubernetes on D.O. asciinema
Google Compute Engine Walkthrough A walkthrough guide on installing Kubernetes on GCE walkthrough
Packet Walkthrough A walkthrough guide on installing Kubernetes on Packet walkthrough
AWS Video A step by step video of using Kubicorn in AWS video
DigitalOcean Video A step by step video of using Kubicorn in DigitalOcean video
Tech N Talk Deep Dive A technical deep dive courtesy of RedHat youtube