All Projects → InQuicker → Kaws

InQuicker / Kaws

Licence: mit
Create and manage Kubernetes clusters on AWS using Terraform.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Kaws

Serverless static website with basic auth
Builds a serverless infrastructure in AWS for hosting a static website protected with Basic Authentication and published on a subdomain registered via Route 53
Stars: ✭ 112 (-13.18%)
Mutual labels:  aws, terraform
Reference Architectures
[WIP] Get up and running quickly with one of our reference architecture using our fully automated cold-start process.
Stars: ✭ 127 (-1.55%)
Mutual labels:  aws, terraform
Terraform Provider Zerotier
Create, modify and destroy ZeroTier networks and members through Terraform.
Stars: ✭ 113 (-12.4%)
Mutual labels:  aws, terraform
Terraform Aws Config
Enables AWS Config and adds managed config rules with good defaults.
Stars: ✭ 107 (-17.05%)
Mutual labels:  aws, terraform
Hybrid multicloud overlay
MutiCloud_Overlay demonstrates a use case of overlay over one or more clouds such as AWS, Azure, GCP, OCI, Alibaba and a vSphere private infrastructure in Hub and spoke topology, point to point topology and in a Single cloud. Overlay protocols IPv6 and IPv4 are independent of underlying infrastructure. This solution can be integrated with encryption and additional security features.
Stars: ✭ 127 (-1.55%)
Mutual labels:  aws, terraform
Terraform Aws Ecr
Terraform Module to manage Docker Container Registries on AWS ECR
Stars: ✭ 110 (-14.73%)
Mutual labels:  aws, terraform
Terrascan
Detect compliance and security violations across Infrastructure as Code to mitigate risk before provisioning cloud native infrastructure.
Stars: ✭ 2,687 (+1982.95%)
Mutual labels:  aws, terraform
Typhoon
Minimal and free Kubernetes distribution with Terraform
Stars: ✭ 1,397 (+982.95%)
Mutual labels:  aws, terraform
Terraform
Terraform automation for Cloud
Stars: ✭ 121 (-6.2%)
Mutual labels:  aws, terraform
Terraform Provider Databricks
Databricks Terraform Provider
Stars: ✭ 119 (-7.75%)
Mutual labels:  aws, terraform
Aws Ecs Airflow
Run Airflow in AWS ECS(Elastic Container Service) using Fargate tasks
Stars: ✭ 107 (-17.05%)
Mutual labels:  aws, terraform
Cluster.dev
Kubernetes-based Dev Environments with GitOps
Stars: ✭ 122 (-5.43%)
Mutual labels:  aws, terraform
Terraform Aws Dynamic Subnets
Terraform module for public and private subnets provisioning in existing VPC
Stars: ✭ 106 (-17.83%)
Mutual labels:  aws, terraform
Toc
A Table of Contents of all Gruntwork Code
Stars: ✭ 111 (-13.95%)
Mutual labels:  aws, terraform
Buildpipeline
AWS-powered serverless build, test and deploy pipeline ft. multiple environments
Stars: ✭ 105 (-18.6%)
Mutual labels:  aws, terraform
Terraform cashier
Designed to analyze terraform template files and return a cost estimate of running the infrastructure, assuming AWS is the target cloud. Perhaps other clouds can be supported going forward?
Stars: ✭ 113 (-12.4%)
Mutual labels:  aws, terraform
Terraform Aws Rabbitmq
Terraform configuration for creating RabbitMQ cluster on AWS.
Stars: ✭ 86 (-33.33%)
Mutual labels:  aws, terraform
Aws Minikube
Single node Kubernetes instance implemented using Terraform and kubeadm
Stars: ✭ 101 (-21.71%)
Mutual labels:  aws, terraform
Terraform Aws Kubernetes
Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more
Stars: ✭ 118 (-8.53%)
Mutual labels:  aws, terraform
Terraform Aws Key Pair
Terraform Module to Automatically Generate SSH Key Pairs (Public/Private Keys)
Stars: ✭ 121 (-6.2%)
Mutual labels:  aws, terraform

kaws

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.

Status

kaws has not yet reached version 1.0, and is not recommended for production usage until it has. In accordance with Semantic Versioning, while kaws is < 1.0, backwards incompatible changes may occur. See the issues for details.

The CoreOS and Kubernetes teams have plans for Kubernetes to be "self-hosting" in the future. If and when this vision is complete, there won't need to be such tight coupling between infrastructure provisioning and Kubernetes tooling. At that point, kaws (and likely kube-aws, see the next section) may be retired. See Self-Hosted Kubernetes and bootkube for more information.

kaws has not been reviewed by security professionals. For information about the threat model of kaws, see the security document.

Similar tools

When kaws was originally created, none of the following tools existed, which is why we chose to develop it. Since then, these tools have been released publicly. They are each developed by larger teams and with broader use cases in mind. kaws is still used by InQuicker because it works the best with our particular configuration. However, you should consider these other tools instead, if they fit your needs:

  • kube-aws from CoreOS. This is the most similar to kaws, but does not use Terraform.
  • kops from Kubernetes. Supports exporting configuration to Terraform format, but is not built around a Terraform-based infrastructure. Does not default to CoreOS servers. Unclear what the relationship is with kubeadm, since both projects are under the Kubernetes organization.
  • kubeadm from Kubernetes. An alpha-status tool included with the Kubernetes distribution itself. Does not handle the infrastructure Kubernetes is running on.

Synopsis

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.

Goals

  • 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

Supported platforms

At this time, kaws has only been developed for and tested on macOS.

Installing dependencies

kaws requires the following other programs to be available on your system:

macOS

All the dependencies can be installed with Homebrew:

brew install terraform cfssl kubernetes-cli

Installing kaws

Once all the required dependencies are installed on your system, you can install kaws.

Precompiled binaries

Signed precompiled binaries for tagged version numbers are available for download on the releases page.

Building from source

  1. Install the appropriate version of Rust for your system.
  2. Run git clone [email protected]:InQuicker/kaws.git.
  3. Inside the freshly cloned repository, run cargo build --release.
  4. Copy the binary from target/release/kaws to a directory in your PATH, such as /usr/local/bin.

Documentation

Detailed documentation is available in the docs directory. A good place to start is the overview.

Development

To package the current release for distribution, update TAG in the Makefile and then run make. Release artifacts will be written to the dist directory. Your GPG secret key will be required to sign sha256sums.txt.

Docker images for inquicker/kaws and inquicker/kaws:$TAG will be created, but you must push them manually. cargo publish must be run manually to release to crates.io.

Legal

kaws is released under the MIT license. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].