Skip to content

Instantly share code, notes, and snippets.

@cfra
Last active January 24, 2021 21:19
Show Gist options
  • Save cfra/4287a09c9467ce2f7b2fec5b7e70acee to your computer and use it in GitHub Desktop.
Save cfra/4287a09c9467ce2f7b2fec5b7e70acee to your computer and use it in GitHub Desktop.
Extremely terse instructions for setting up Workadventure on Kubernetes

Deploy workadventure with Kubernetes

Some slight adaptation of deeployer.libsonnet is necessary. My diff looks like this:

diff --git a/deeployer.libsonnet b/deeployer.libsonnet
index 8957194..357422d 100644
--- a/deeployer.libsonnet
+++ b/deeployer.libsonnet
@@ -1,9 +1,9 @@
 {
   local env = std.extVar("env"),
-  local namespace = env.GITHUB_REF_SLUG,
-  local tag = namespace,
-  local url = if namespace == "master" then "workadventu.re" else namespace+".workadventure.test.thecodingmachine.com",
-  local adminUrl = if namespace == "master" || namespace == "develop" || std.startsWith(namespace, "admin") then "https://"+url else null,
+  local namespace = "example",
+  local tag = "master",
+  local url = "workadventure.example.com",
+  local adminUrl = null,
   "$schema": "https://raw.githubusercontent.com/thecodingmachine/deeployer/master/deeployer.schema.json",
   "version": "1.0",
   "containers": {
@@ -104,13 +104,16 @@
   },
   "config": {
     "https": {
-      "mail": "d.negrier@thecodingmachine.com"
+      "mail": "acme-contact@example.com"
     },

Then, the following defines all the necessary resources to run it on a Digital Ocean Kubernetes cluster:

alias deeployer-k8s='docker run --rm -it -e "JSON_ENV=$(jq -n env)" -v $(pwd):/var/app thecodingmachine/deeployer:latest deeployer-k8s'
export ADMIN_API_TOKEN=veri_secret_api_token
export JITSI_ISS=
export JITSI_URL=meet.jit.si
export SECRET_JITSI_KEY=
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.1.0/cert-manager.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.43.0/deploy/static/provider/do/deploy.yaml
deeployer-k8s show | kubectl apply -f -

Theoretically everything should be running by then. For me what still failed was DNS. Also the cert-manager loopback check was failing. So, there were two more steps in practice:

  • Configure DNS to Load balancer IP for ingress
  • Unfuck cert-manager loopback check by using quay.io/cfra/cert-manager-controller:v1.1.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment