Setting up Rig on EKS on Amazon Web Services
Prerequisites
This guide assumes you have a running EKS cluster with the AWS Load Balancer Controller installed. This guide by AWS shows how to setup a simple cluster and sample application with the Load Balancer Controller installed as well.
Besides just having an EKS cluster up and running, your kubectl
should have its current context pointing to your cluster. Here you can see how to get that.
Installing the Rig Operator
We install the Rig Operator using Helm. We need one piece of AWS specific configuration to make Ingress work such that your Capsules and Rig Platform is reachable on the Internet. AWS EKS has their own Ingress controller, the Amazon Load Balancer (ALB) Controller mentioned in Prerequisites. The Rig Operator needs to be instructed how it generates Ingress resources such that they fit with the ALB. This we do through our Routes plugin. The following Helm values configure it to work with the ALB.
config:
pipeline:
routesStep:
plugin: rigdev.ingress_routes
config: |
ingressClassName: alb
# The ALB handles TLS outside the cluster
disableTLS: true
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
This makes all Ingress resources generated by the Rig Operator be an ALB type Ingress which exposes its host as internet facing, making it reachable outside the cluster.
Save the values file as operator.yaml
helm upgrade --install rig-operator rig-operator \
--repo https://charts.rig.dev \
--version 1.0.44 \
--namespace rig-system \
--create-namespace \
-f operator.yaml
Installing the Rig Platform
We also install the Rig Platform using Helm. The Rig Platform depends on a PostgreSQL database. You can choose to connect your own, managed PostgreSQL (recommended for production setups) or spin up a small, in-cluster one (should only be for development setups).
Besides that, enabling ingress
will spin up an Ingress resource which will receive a host onto which you can access the Platform.
ingress:
host: ""
enabled: true
# Uncomment if you want to use the small, in-cluster development database
# postgres:
# enabled: true
## AWS specific storage class
# storage:
# className: ebs-sc
# Uncomment if you want to use your own managed database
# client:
# postgres:
# database: "rig" ## change if different database is used.
# host: <host or ip>
# user: <db user>
# password: <db password>
# # insecure: false ## set only if DB connection is insecure
Save the config as platform.yaml
and run
helm upgrade --install rig-platform rig-platform \
--repo https://charts.rig.dev \
--version 1.0.70 \
--namespace rig-system \
--create-namespace \
-f platform.yaml
After installing the platform, running
kubectl get ingress -n rig-system
should show the Ingress resource associated to the Rig Platform
NAME CLASS HOSTS ADDRESS PORTS AGE
rig-platform-rig-platform alb * k8s-rigsyste-rigplatf- .... .amazonaws.com 80 81m
After a few minutes the adress should be available and take you to the Rig Platform start page.
To get accesss to the Platform you also need a Rig account which you can setup by running
kubectl exec -it -n rig-system deploy/rig-platform -- rig-admin init
after which you can log in on the Dashboard using the account you just created.
Creating a Capsule with a public host
Now that we have the Platform up and running, we can create our first Capsule and give it a publicly reachable host. We will do this through the Dashboard.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10




















You now have a basic setup on AWS EKS with Rig running and utilizing the Amazon Load Balancer. From the AWS console you can see the loadbalancers created.
- 1
- 2
- 3





