This project provides a lightweight "kubernetes-in-docker" cluster federated with SLATE.
- Linux (2 cores, 4GB memory, 15GB storage) or MacOS
- A publicly accessible IP address (port 6443 open)
- Python (3 or 2.7, 'python' must be in your PATH)
- DockerCE
- Docker-Compose (installed with Docker for Mac)
On Linux, the user running SLATElite must be a member of the Docker group (or root).
Users can be added to the Docker group with: sudo usermod -a -G docker <username>
After installing the dependency requirements and pulling the SLATElite repository:
Make sure your Docker is running.
Build the container images with ./slatelite build
This will take a few minutes. Running this again is only required to pull updates to software.
Initialize the environment with ./slatelite init
TIP: Access local directories by mapping them into the SLATE container: ./slatelite init -v ~/WorkDir:/mnt
Utilize SLATE with ./slatelite slate ...(cluster list, group list, etc)...
Or shell into the container and run it "natively":
$ ./slatelite shell slate
# slate ...(cluster list, group list, etc)...
To completely destroy the environment such that it can be created again run: ./slatelite destroy
For a more detailed description of each SLATElite command view COMMANDS.md
If you need CVMFS for your environment you must supply your desired SLATE cluster name, a SLATE group that you are a member of, a valid SLATE access token, and the API endpoint you wish to connect to.
You can setup a group at https://portal.slateci.io/groups
To get your access token go to https://portal.slateci.io/cli (Note: this token is for the 'prod' API endpoint by default)
When choosing a cluster name be sure the name doesn't already belong to another cluster. You can do this through the SLATE Client (Download: https://portal.slateci.io/cli).
./slatelite init --cluster <CLUSTER NAME> --token <ACCESS TOKEN> --group <SLATE GROUP> --api <dev or prod>
Example:
./slatelite init --cluster my-cluster --group my-group --token 6mG2gTvDhgMWitF_bAy7aP --api dev
You can manually specify an API endpoint address as well (Not reccomended).
--api https://api-dev.slateci.io:18080
SLATElite is a docker-compose orchestrated standard SLATE deployment (with a couple performance tweaks for personal machines).
SLATElite spins up 3 containers with docker-compose. These include:
- A docker-in-docker Kubernetes node
- A SLATE management container
- A storage container simulating an NFS share
If you have a kubernetes cluster running directly on the host you wish to run Slatelite, this is known to cause odd interactions. (i.e. Kubelet/Kubadm/Kubectl is installed on the machine)