This repository has been archived on 2026-03-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
people/docs/local_development_kube.md
Jacques ROUSSEL b848f9eca6 ♻️(dev) refacto tilt stack
To be able to move the repository on the new organization and to
facilitate external developer integration we need to create a standalone
dev stack and use external secret.
2025-01-17 15:26:38 +01:00

2.9 KiB

Local development with Kubernetes

We use tilt to provide a local development environment for Kubernetes. Tilt is a tool that helps you develop applications for Kubernetes. It watches your files for changes, rebuilds your containers, and restarts your pods. It's like having a conversation with your cluster.

Prerequisites

This guide assumes you have the following tools installed:

SOPS configuration

Generate a SOPS key

For this specific step you need to have the age-keygen tool installed. See https://github.com/FiloSottile/age. Then generate a key:

age-keygen -o my-age.key

Install the SOPS key

Read the SOPS documentation on how to install the key in your environment. https://github.com/getsops/sops?tab=readme-ov-file#22encrypting-using-age

On Ubuntu it's like:

mkdir -p ~/.config/sops/age/
cp my-age.key ~/.config/sops/age/keys.txt
chmod 400 ~/.config/sops/age/keys.txt

Add the SOPS key to the repository

Update the .sops.yaml file with the public key id you generated.

Helmfile in Docker

If you use helmfile in Docker, you may need an additional configuration to make it work with you age key.

You need to mount -v "${HOME}/.config/sops/age/:/helm/.config/sops/age/"

#!/bin/sh

docker run --rm --net=host \
   -v "${HOME}/.kube:/root/.kube" \
   -v "${HOME}/.config/helm:/root/.config/helm" \
   -v "${HOME}/.config/sops/age/:/helm/.config/sops/age/" \
   -v "${HOME}/.minikube:/${HOME}/.minikube" \
   -v "${PWD}:/wd" \
   -e KUBECONFIG=/root/.kube/config \
   --workdir /wd ghcr.io/helmfile/helmfile:v0.150.0 helmfile "$@"

Getting started

Create the kubernetes cluster

Run the following command to create a kubernetes cluster using kind:

./bin/start-kind.sh

or run the equivalent using the makefile

make start-kind

Deploy the application

# Pro Connect environment
tilt up -f ./bin/Tiltfile 

# Standalone environment with keycloak
DEV_ENV=dev-keycloak tilt up -f ./bin/Tiltfile

or run the equivalent using the makefile

make tilt-up

That's it! You should now have a local development environment for Kubernetes.

You can access the application at https://desk.127.0.0.1.nip.io

Management

To manage the cluster, you can use k9s.

Next steps

  • Add dimail to the local development environment
  • Add a reset demo cmd_button to Tilt