Junovy DevOps Onboarding
A progressive onboarding guide for new DevOps engineers at Junovy Cloud Hosting. Covers containers, Kubernetes, GitOps, platform architecture, and hands-on projects. Designed for clarity with one concept per page, consistent structure, and game development analogies.
Welcome to Junovy
Orientation to Junovy Cloud Hosting, your role, and how this book works.
What Is Junovy
What You Will Learn What Junovy Cloud Hosting is and what it does How Junovy relates to concepts...
What You Will Be Doing
What You Will Learn What a DevOps engineer does at Junovy What your first weeks will look like W...
How This Book Works
What You Will Learn The structure every page follows How the chapters are organized How to use t...
The Junovy Glossary
What You Will Learn Definitions for the key terms used throughout this book A reference table yo...
Containers - The Building Blocks
What containers are, how they compare to VMs, and how to build and push Docker images.
What Is a Container
What You Will Learn What a container is and why it exists How containers relate to Godot's expor...
Containers vs Virtual Machines
What You Will Learn The difference between containers and VMs When you would use each This pa...
Docker in Five Minutes
What You Will Learn How to write a Dockerfile How to build and run a container This page is a...
Container Images and Registries
What You Will Learn What container registries are How Junovy uses AWS ECR This page is a plac...
Kubernetes Basics
Core Kubernetes concepts: Pods, Deployments, Services, Ingress, Namespaces, and configuration.
What Is Kubernetes
What You Will Learn What Kubernetes is and why it exists How it relates to running game servers ...
Pods and Deployments
What You Will Learn What a Pod is and why it exists What a Deployment is and how it manages Pods...
Services and Ingress
What You Will Learn How traffic flows from users to Pods What Services and Ingress do The three-...
Namespaces
What You Will Learn What namespaces are and why they matter The Junovy naming pattern for client...
Secrets and ConfigMaps
What You Will Learn How applications get their configuration in Kubernetes The difference betwee...
GitOps and Flux CD
How GitOps works, Flux CD controllers, Kustomize overlays, and the reconciliation loop.
What Is GitOps
What You Will Learn What GitOps means Why Junovy uses it instead of manual deployments This p...
How Flux Works
What You Will Learn Flux CD's architecture The three main controllers This page is a placehol...
Kustomize Explained
What You Will Learn What Kustomize is The base + overlay pattern This page is a placeholder. ...
The Reconciliation Loop
What You Will Learn How the reconciliation loop works What happens when you push to Git This ...
The Junovy Platform Map
Tour of the monorepo, Flux repo structure, cluster architecture, and tenant system.
The Monorepo
What You Will Learn How the Junovy monorepo is organized What each submodule does This page i...
The Flux Repo Structure
What You Will Learn How dds-k8s-cluster is organized The file numbering convention This page ...
Profiles and Layers
What You Will Learn What profiles are in the Flux repo How dependency layers work This page i...
The Cluster and Network
What You Will Learn The Junovy cluster architecture The bird-name DNS system This page is a p...
The Tenant System
What You Will Learn How Junovy isolates client environments The hst- namespace pattern This p...
Your Toolbox
Setting up your terminal, Git workflows, kubectl, Flux CLI, and VPN access.
Terminal and Shell Setup
What You Will Learn What tools to install How to configure your terminal This page is a place...
Git Basics for GitOps
What You Will Learn The Git workflow for GitOps GPG commit signing This page is a placeholder...
kubectl Essentials
What You Will Learn The 10 most-used kubectl commands How to read output This page is a place...
Flux CLI Essentials
What You Will Learn Essential Flux CLI commands How to trigger reconciliation This page is a ...
VPN and Cluster Access
What You Will Learn How to connect to the Junovy cluster WireGuard VPN setup This page is a p...
Secrets and Security
Why secrets matter, SOPS encryption, HashiCorp Vault, and External Secrets Operator.
Why Secrets Matter
What You Will Learn Why secret management is critical Real consequences of secret leaks This ...
SOPS Encryption
What You Will Learn How SOPS encrypts secrets in Git When to use it This page is a placeholde...
HashiCorp Vault
What You Will Learn How HashiCorp Vault works How to store and retrieve secrets This page is ...
External Secrets Operator
What You Will Learn How External Secrets Operator bridges Vault and Kubernetes How to write an E...
Monitoring and Debugging
Cluster health checks, log reading, Prometheus and Grafana, and common troubleshooting patterns.
Checking Cluster Health
What You Will Learn Quick commands to check if the cluster is healthy What "healthy" means Th...
Reading Logs
What You Will Learn How to read container logs Common log patterns This page is a placeholder...
Prometheus and Grafana
What You Will Learn What Prometheus and Grafana do Key dashboards to bookmark This page is a ...
Common Problems and Fixes
What You Will Learn How to diagnose and fix the most common issues A reference table to come bac...
Project - Deploy a Godot Game
Hands-on project: export a Godot HTML5 game, containerize it, and deploy it to the Junovy cluster.
Project Overview
What You Will Learn What this project is and what the end result looks like The four steps you w...
Export and Containerize
What You Will Learn What files a Godot HTML5 export produces and why each one matters How to wri...
Create the Tenant
What You Will Learn How to create a new tenant directory in the Flux repo What the namespace man...
Write the Kustomize Patches
What You Will Learn How to write a Deployment that runs your game container How to write a Servi...
Deploy and Verify
What You Will Learn How to commit and push your manifests to trigger a deployment How to use the...
Project - Onboard the Radical Faeries
Hands-on project: onboard a real client from scratch with BookStack and Rallly, including secrets...
Project Overview
What You Will Learn Who the Radical Faeries are and what they need from Junovy What you will bui...
Plan the Tenant
What You Will Learn Why you should always plan a tenant before building it The complete resource...
Create the Tenant from Scratch
What You Will Learn How to create the tenant directory and namespace YAML How to write secrets i...
Deploy Apps for the Faeries
What You Will Learn How to write a HelmRelease that tells Flux to install a Helm chart How Helm ...
Verify and Handoff
What You Will Learn How to commit, push, and trigger Flux reconciliation How to verify every res...
Day-to-Day Workflows
Common recipes for updating apps, adding clients, debugging deployments, and rotating secrets.
Updating an App Version
What You Will Learn How to update an app to a new version The image tag bump workflow This pa...
Adding a New Client
What You Will Learn The complete recipe for adding a new client A checklist to follow This pa...
Debugging a Failed Deployment
What You Will Learn A systematic approach to debugging Flowchart-style decision tree This pag...
Rotating Secrets
What You Will Learn How to rotate secrets safely Both Vault and SOPS workflows This page is a...
Cheat Sheets and Quick Reference
Quick-reference tables for kubectl, Flux, naming conventions, and useful links.
kubectl Cheat Sheet
What You Will Learn The 20 most useful kubectl commands in one place This page is a placehold...
Flux Cheat Sheet
What You Will Learn Essential Flux commands in one place This page is a placeholder. Full con...
Junovy Naming Conventions
What You Will Learn All naming conventions used at Junovy in one place This page is a placeho...
Useful Links and Bookmarks
What You Will Learn All important URLs and resources collected in one place This page is a pl...