Skip to main content

Project Overview

What You Will Learn

  • What this project is and what the end result looks like
  • The four steps you will follow to get your Godot game running on the cluster
  • What you need before you start

The Mission

You are going to take a Godot game, export it as an HTML5 web app, package it into a container, and deploy it to the Junovy Kubernetes cluster. When you are done, anyone with the URL will be able to play your game in their browser.

Think of it like publishing a game to a platform -- except you are building the platform layer yourself. You already know how to get a game from Godot to a browser. This project adds the infrastructure that makes it accessible to the world.

The End Result

When this project is complete, your game will be live at:

https://game.godot-demo.junovy.com

It will be served over HTTPS with an automatically provisioned TLS certificate. It will be running inside a container, managed by Kubernetes, deployed through GitOps.


The Four Steps

Here is what you will do, broken into one page per step:

Step Page What Happens
1 Export and Containerize Export your Godot project as HTML5 and wrap it in a Docker image
2 Create the Tenant Set up the namespace and directory structure in the Flux repo
3 Write the Kustomize Patches Define the Deployment, Service, and Ingress manifests
4 Deploy and Verify Push to Git, let Flux deploy it, and confirm it works

Each step builds on the previous one. By the end, you will have touched every layer of the Junovy deployment pipeline.


Prerequisites

Before you start, make sure you have the following ready:

Prerequisite How to Check
A Godot project with HTML5 export configured Open Godot, go to Project > Export, confirm "Web" is listed
Docker Desktop installed and running docker version shows output without errors
Access to the Junovy VPN (WireGuard) ping robin.spynl.net responds
The dds-k8s-cluster repo cloned locally ls ~/workspace/junovy/dds-k8s-cluster/clients/ shows existing tenants
AWS ECR credentials configured aws ecr get-login-password --region eu-central-1 returns a token
kubectl configured for the cluster kubectl cluster-info --context admin@dds-prod-de-fsn1 shows the API server

If any of these are not set up yet, refer back to Chapter 6 (Your Toolbox) for installation instructions.


How This Connects to What You Have Learned

This project ties together concepts from nearly every chapter so far:

Chapter Concept You Will Use
Chapter 2 - Containers Building a Docker image from a Dockerfile
Chapter 3 - Kubernetes Basics Deployments, Services, Ingress, Pods, Namespaces
Chapter 4 - GitOps and Flux CD Pushing manifests to Git and letting Flux reconcile
Chapter 5 - The Junovy Platform Map Tenant naming (hst-*), file numbering, directory layout
Chapter 6 - Your Toolbox kubectl, flux CLI, Docker, Git

In Godot terms: you have been learning individual nodes and scenes. This is where you connect them into a running project.


Key Takeaways

  • This project deploys a Godot HTML5 export as a live web app on the Junovy cluster
  • There are four clear steps: Export, Containerize, Create Tenant, Deploy
  • The final URL will be https://game.godot-demo.junovy.com
  • You need Docker, VPN access, ECR credentials, and kubectl configured before starting

What Is Next

Next up: Export and Containerize where you will turn your Godot HTML5 export into a Docker image ready for the cluster.