kaws is a tool for creating and managing Kubernetes clusters on AWS using Terraform. It ties together several other tools to make Kubernetes deployment easy, repeatable, and secure.
kaws is not intended to support every possible deployment scenario for Kubernetes clusters. It follows a specific approach used by InQuicker, involving specific software, services, and conventions. Specifically, kaws creates Kubernetes clusters in AWS using CoreOS servers, all managed by declarative configuration files with Terraform.
kaws has not yet reached version 1.0, and is not recommended for production usage until it has. In accordanace with Semantic Versioning, while kaws is < 1.0, backwards incompatible changes may occur. Major expected changes include using rkt as the container runtime for Kubernetes. See the issues for details.
kaws has not been reviewed by security professionals. For information about the threat model of kaws, see the security document.
USAGE:
kaws [FLAGS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
admin Commands for managing cluster administrators
cluster Commands for managing a cluster's infrastructure
help Prints this message or the help message of the given subcommand(s)
init Initializes a new repository for managing Kubernetes clusters
Start by creating a new repository with the init
command.
- Define infrastructure as code for predictability and repeatability
- Produce secure, highly available Kubernetes clusters
- Generate and distribute Kubernetes API access credentials securely
- Avoid shell scripting as much as possible
At this time, kaws has only been developed for and tested on OS X. Support for Linux is planned.
kaws requires the following other programs to be available on your system:
All the dependencies can be installed with Homebrew:
brew install terraform openssl kubernetes-cli
To use the Homebrew-installed OpenSSL, prefix the cargo build
command (in the section on build from source below) with:
OPENSSL_INCLUDE_DIR=`brew --prefix openssl`/include OPENSSL_LIB_DIR=`brew --prefix openssl`/lib
Once all the required dependencies are installed on your system, you can install kaws.
Signed precompiled binaries for tagged version numbers are available for download on the releases page.
- Install the appropriate version of Rust for your system.
- Run
git clone [email protected]:InQuicker/kaws.git
. - Inside the freshly cloned repository, run
cargo build --release
. - Copy the binary from
target/release/kaws
to a directory in your PATH, such as/usr/local/bin
.
Detailed documentation is available in the docs directory. A good place to start is the overview.
kaws is released under the MIT license. See LICENSE
for details.