Giter Club home page Giter Club logo

exekube's Introduction

Exekube

CircleCI Docker Automated build Go Report Card

Exekube is a framework (platform) for managing the whole lifecycle of Kubernetes-based projects as declarative code. It takes the modular "Infrastructure as Code" approach to automate the management of both cloud infrastructure and Kubernetes resources using popular open-source tools, Terraform and Helm.

Online documentation

You can find the latest Exekube documentation at https://docs.exekube.com.

Repositories on GitHub

The Exekube project is divided across a few GitHub repositories:

  • exekube/exekube. This is the main repository that you are currently looking at. Its divided into the following subdirectories:

  • exekube/charts. This Git repository hosts Exekube's Helm chart repository you can add with helm repo add exekube https://exekube.github.io/charts

Example projects

Getting started

Go to the Exekube Getting Started Tutorial at https://docs.exekube.com/in-practice/getting-started to create your first Exekube project.

Motivations

  • Using many command line tools and GUIs to manage cloud resources (gcloud, aws, kops) and Kubernetes resources (kubectl, helm) is tedious and error-prone
  • Terraform is a very flexible declarative tool with support for a large number of cloud providers and can replace or automate the use of all of the said command line tools
  • Exekube aims to take advantage of Terraform's power and give us a "sane default" state for managing everything related to Kubernetes as declarative code in an automated, Git-based workflow following the "Infrastructure as Code" philosophy

Features

The framework allows you to:

  • Not worry about managing dependencies like gcloud, terraform, kubectl, helm, etc. since they're all packaged into a Docker image
  • Control your cloud infrastructure as declarative code via Terraform
  • Control your container orchestration as decalrative code via Terraform and Helm
  • Create production-grade clusters and deploy all Kubernetes resources via one command
  • Destroy all cloud and Kubernetes resources via one command (to avoid wasting money in non-production environments)
  • Freely choose a cloud provider to host Kubernetes (only Google Cloud Platform with experimental Alibaba Cloud support as of 0.3)

Terraform module library (registry)

Terraform module Platform Purpose
helm-initializer Any (Kubernetes) Module for deploying Tiller into any namespace following security best practices
helm-release Any (Kubernetes) Module for installing Helm charts (creating a release)
helm-template-release Any (Kubernetes) Module for installing Helm charts without Tiller (uses helm template and kubectl apply)
gke-network Google Cloud (GKE) Module for creating a VPC and other networking cloud resources for GKE clusters
gke-cluster Google Cloud (GKE) Module for creating production-grade Kubernetes clusters using Google Kubernetes Engine
gcp-secret-mgmt Google Cloud (GKE) Module for creating GCS buckets and KMS encryption keys for securely distributing project secrets
ali-network Alibaba Cloud [Experimental] Module for creating a VPC and other networking resources for Kubernetes clusters on Alibaba Cloud
ali-cluster Alibaba Cloud [Experimental] Module for creating Kubernetes clusters on Alibaba Cloud

Contributing

Please review the CONTRIBUTING.md file for information on how to get started contributing to the project.

exekube's People

Contributors

ilyasotkov avatar mrtyler avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.