Skip to content
This repository has been archived by the owner on Feb 9, 2024. It is now read-only.
/ gravity Public archive

Kubernetes application deployments for restricted, regulated, or remote environments

License

Notifications You must be signed in to change notification settings

gravitational/gravity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3bfe646 · Jun 28, 2023
Aug 30, 2021
Sep 21, 2022
Sep 21, 2022
Jun 28, 2023
Jul 7, 2022
Aug 6, 2020
Jun 2, 2021
Apr 29, 2022
Aug 30, 2021
Apr 1, 2020
Oct 7, 2020
Oct 11, 2021
May 27, 2021
Oct 1, 2021
Aug 28, 2021
Jun 2, 2021
Oct 25, 2022
Jun 2, 2021
Aug 29, 2018
Jun 2, 2021
Mar 10, 2021
Oct 25, 2022
Aug 23, 2018
Jun 25, 2021
Dec 16, 2021
Jun 28, 2023
Jun 11, 2021
Oct 1, 2021
Oct 1, 2021
Dec 16, 2021
Jun 2, 2021
Jan 23, 2019
Aug 28, 2018
Aug 28, 2018
Mar 6, 2020
Apr 6, 2022

Gravity

Warning Gravity was archived 2023-07-01.

Please see our Gravitational is Teleport blog post for more information.

If you're looking for a similar solution, we recommend using a certified Kubernetes Distribution.

Gravity is a Kubernetes packaging solution.

Introduction

Gravity is an open source toolkit for creating "images" of Kubernetes clusters and the applications running inside the clusters. The resulting images are called cluster images and they are just .tar files.

A cluster image can be used to re-create full replicas of the original cluster in any environment where compliance and consistency matters, i.e. in locked-down AWS/GCE/Azure environments or even in air-gapped server rooms. An image can run without human supervision, as a "kubernetes appliance".

Cluster Images

A Cluster Image produced by Gravity includes:

  • All Kubernetes binaries and their dependencies.
  • Built-in container registry.
  • De-duplicated layers of all application containers inside a cluster.
  • Built-in cluster orchestrator which guarantees HA operation, in-place upgrades and auto-scaling.
  • Installation wizard for both CLI and web browser GUI.

An image is all one needs to re-create the complete replica of the original Kubernetes cluster, with all deployed applications inside, even in an air-gapped server room.

Examples

Take a look at the examples directory in this repository to find examples of how to package and deploy Kubernetes applications using Gravity.

The following examples are currently available:

  • Wordpress. Deploys Wordpress CMS with an OpenEBS-backed persistent storage.

Building from source

Gravity is written in Go. There are two ways to build the Gravity tools from source: by using locally installed build tools or via Docker. In both cases you will need a Linux machine.

Building on MacOS, even with Docker, is possible but not currently supported

$ git clone [email protected]:gravitational/gravity.git
$ cd gravity

# Running 'make' with the default target uses Docker.
# The output will be stored in build/current/
$ make

# If you have Go 1.10+ installed, you can build without Docker which is faster.
# The output will be stored in $GOPATH/bin/
$ make install

# To remove the build artifacts:
$ make clean