Skip to main content

Setup guide

Kubernetes Cluster Installation

Rig shines when it gets to run in a real Kubernetes environment. It lowers the barrier of entry for engineers as they won't have to learn the complex APIs of Kubernetes.

Rig consists of two components which together gives the full experience of Rig.dev.

  • rig-operator: our open source components which provide higher level APIs in kubernetes, which encapsulate multiple low level resources in a single CRD.
  • rig-platform: our paid product which further builds on the primitives provided by rig-operator.

Each of these components have their own requirements and offer options for configuration to make it fit into your kubernetes cluster.

Quick Installation

For a quick installation in an existing Kubernetes cluster, you can follow the steps here. For a more in-depth guide, see the next section.

  1. Install the Rig Operator:
helm upgrade --install rig-operator rig-operator \
--repo https://charts.rig.dev \
--version 1.0.20 \
--namespace rig-system \
--create-namespace
  1. Install the Rig Platform:
helm upgrade --install rig-platform rig-platform \
--repo https://charts.rig.dev \
--version 1.0.23 \
--namespace rig-system \
--create-namespace \
--set postgres.enabled=true
  1. Bootstrap your first user and project by running:
kubectl exec -it -n rig-system deploy/rig-platform -- rig-admin init
  1. Access the dashboard at http://localhost:4747 after starting port-forwarding:
kubectl port-forward -n rig-system service/rig-platform 4747
Note

As part of the quick installation, a small PostgresSQL instance is installed in your cluster, for the Platform to use. This is not recommended for production environments.

Note

Dashboard metrics require a metrics-server in the kubernetes cluster. While available in most kubernetes cluster, See here for instructions on how to install it, if missing: https://github.com/kubernetes-sigs/metrics-server

Install using Terraform

It is easy to install Rig with Terraform as well using Helm. The basic Terraform configuration for that is

provider "helm" {
kubernetes {
# Your kubernetes configuration
}
}

resource "helm_release" "rig_operator" {
name = "rig-operator"
repository = "https://charts.rig.dev"
chart = "rig-operator"
version = "1.0.20"
namespace = "rig-system"
create_namespace = true
}

resource "helm_release" "rig_platform" {
name = "rig-platform"
repository = "https://charts.rig.dev"
chart = "rig-platform"
version = "1.0.23"
namespace = "rig-system"
create_namespace = true
set { # Not recommended for production!
name = "postgres.enabled"
value = "true"
}
depends_on = [helm_release.rig_operator]
}

This contains just basic configuration for the rig-operator and rig-platform.

Extended installation guides

For real-world scenarios, we recommend using the extended installation guides, available here:

Configuration

The Rig Operator and Platform both have a values.yaml file which specify how to configure their respective Helm charts. The values files and their defaults can be found here

To overwrite a default value when deploying, use --set FIELD=VALUE flags when running helm.