Kubernetes Operations (kops) - Production Grade K8s Installation, Upgrades, and Management
Go HCL Shell Other
Latest commit a3a2d7c Feb 27, 2017 @chrislovecnm chrislovecnm committed on GitHub Merge pull request #2004 from kris-nova/disable-cf-delete
Disable CloudFormation Delete (again)
Failed to load latest commit information.
.back_github Adding dir Feb 1, 2017
_vendor Add gengo dependency Jan 15, 2017
addons Schedule autoscaler-addon in master nodes Jan 25, 2017
channels Update alpha channel with K8s 1.4.9 and 1.5.3 Feb 16, 2017
cloudmock/aws Skip DNS precreate on CF; a few test fixes Feb 17, 2017
cmd Merge pull request #1935 from justinsb/terraform_variable_output Feb 24, 2017
dns-controller dns-controller: include namespace in keys Feb 16, 2017
docs Merge pull request #1750 from robinpercy/cli-cloud-labels Feb 23, 2017
examples Fix example code Dec 19, 2016
federation Skip deletion processing for terraform Jan 20, 2017
hack Cleanup nil handling in kubelet options Feb 21, 2017
images Add socat to CoreOS Feb 24, 2017
nodeup/pkg Add socat to CoreOS Feb 24, 2017
permalinks Channel manifest should be version aware Jan 26, 2017
pkg Merge pull request #1958 from justinsb/fix_diff_edge_case Feb 25, 2017
protokube Fix boilerplate / gofmt Jan 25, 2017
tests Fix tests - another cross-merge Feb 24, 2017
upup Disable cf delete Feb 27, 2017
util/pkg validate region Feb 23, 2017
vendor Add gengo dependency Jan 15, 2017
.dockerignore Add .dockerignore file to improve build times Jan 4, 2017
.gitignore Ignore tags files generated by Exhuberant Ctags Dec 29, 2016
.gitmodules Add gengo dependency Jan 15, 2017
.shipbot.yaml Add manifest for shipbot Feb 24, 2017
.travis.yml Commenting out changes instead of delete Dec 11, 2016
CHANGES.md Add notes describing aug 11 changes Aug 12, 2016
CONTRIBUTING.md Updates per the repo Dec 20, 2016
HISTORY.md Add notes for stable channel update Oct 21, 2016
LICENSE Unmangle the Apache library Jan 19, 2017
Makefile Tag 1.5.2-beta.2 Feb 24, 2017
OWNERS Updates per the repo Dec 20, 2016
README.md Updating office hours heading Feb 19, 2017
code-of-conduct.md updating base docs to match close to kubernetes-template-project Dec 20, 2016
doc.go Add canonical import paths Nov 4, 2016
version.go Always include a gitsha in the version Jan 15, 2017


Kubernetes Operations (kops)

Build Status Go Report Card GoDoc Widget

The easiest way to get a production grade Kubernetes cluster up and running.

What is kops?

We like to think of it as kubectl for clusters.

kops lets you deploy production-grade, highly available, Kubernetes clusters from the command line. Deployment is currently supported on Amazon Web Services (AWS), with more platforms planned.

Can I see it in action?

Launching a Kubernetes cluster hosted on AWS

To replicate the above demo, check out our tutorial for launching a Kubernetes cluster hosted on AWS.


  • Automate the provisioning of Kubernetes clusters in (AWS)
  • Deploy Highly Available (HA) Kubernetes Masters
  • Supports upgrading from kube-up
  • Built on a state-sync model for dry-runs and automatic idempotency
  • Ability to generate Terraform configuration
  • Supports custom add-ons for kubectl
  • Command line autocompletion
  • Community supported!


kubectl is required, see here.

OSX From Homebrew (Latest Stable Release)

$ brew update && brew install kops

OSX From Homebrew (HEAD of master)

$ brew update && brew install --HEAD kops


Download the latest release, then:

$ chmod +x kops-linux-amd64                 # Add execution permissions
$ mv kops-linux-amd64 /usr/local/bin/kops   # Move the kops to /usr/local/bin

From Source

Go 1.7+ and make are required.

$ go get -d k8s.io/kops
$ cd ${GOPATH}/src/k8s.io/kops/
$ git checkout release
$ make

See the install notes for more information.

At this time, Windows is not a supported platform.


See the releases for more information on changes between releases.

Getting involved and contributing!

Are you interested in contributing to kops? We the maintainers and community would love your suggestions, contributions, and help! We have a quickstart guide on adding a feature and the maintainers can be contacted at any time to learn more about how to get involved.


Office Hours

Kops maintainers also have time (1 hour) set aside every other week to offer help and guidance to the community. This is the maintainer's office hours. During this time we might work with newcomers, help with PRs, and discuss new features. Anything goes.

We encourage you to reach out beforehand if you plan on attending. We have an agenda where we track notes from office hours.

Office hours, on Zoom video conference are on Fridays at 5pm UTC/9 am US Pacific every other week, on odd week numbers.

You can check your week number using:

date +%V

The maintainers and other community members are generally available on the kubernetes slack in #kops, so come find and chat with us about how kops can be better for you!

Other Resources

GitHub Issues


If you think you have found a bug please follow the instructions below.

  • Please spend a small amount of time giving due diligence to the issue tracker. Your issue might be a duplicate.
  • Set -v 10 command line option and save the log output. Please paste this into your issue.
  • Note the version of kops you are running (from kops version), and the command line options you are using
  • Open a new issue
  • Remember users might be searching for your issue in the future, so please give it a meaningful title to helps others.
  • Feel free to reach out to the kops community on kubernetes slack


We also use the issue tracker to track features. If you have an idea for a feature, or think you can help kops become even more awesome follow the steps below.

  • Open a new issue
  • Remember users might be searching for your issue in the future, so please give it a meaningful title to helps others.
  • Clearly define the use case, using concrete examples. EG: I type this and kops does that.
  • Some of our larger features will require some design. If you would like to include a technical design for your feature please include it in the issue.
  • After the new feature is well understood, and the design agreed upon we can start coding the feature. We would love for you to code it. So please open up a WIP (work in progress) pull request, and happy coding.