Environnement de développement local de Camap sous Minikube (Windows 11 + Docker Desktop).
Ce dépôt est un template. Les
values.yamldes charts (images, URLs, secrets, ressources…) sont à adapter à votre environnement. Cliquer sur "Use this template" sur GitHub pour créer votre propre copie, puis travaillez sur celle-ci.Après le fork, mettre à jour l'URL du dépôt dans les trois fichiers suivants (remplacer
CAMAP-APPpar votre compte/organisation GitHub) :
root-app.yamlapps/camap.yamlapps/mailpit.yaml
- Docker Desktop installé et démarré
- kubectl installé
winget install Kubernetes.minikube
minikube start --driver=docker
minikube addons enable ingress
minikube addons enable metrics-serverTableau de bord (optionnel) :
minikube dashboardkubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml --server-side --force-conflictskubectl port-forward svc/argocd-server -n argocd 8080:443Ouvrir https://localhost:8080
Login : admin
Password :
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -dDans l'interface Argo CD : Settings > Repositories > Connect Repo using HTTPS
- Repository URL :
https://github.com/<VOTRE_REPO>/minikube-camap.git
.
├── root-app.yaml # Déclaration de l'application "App of Apps"
├── apps/ # Applications ArgoCD (camap + mailpit)
└── deployments/ # Charts Helm personnalisés
├── camap/
└── mailpit/
kubectl create ns camap
kubectl create ns mailpitkubectl create secret generic camap-mysql -n camap `
--from-literal=mysql-root-password=rootpass `
--from-literal=mysql-database=camap `
--from-literal=mysql-username=camap `
--from-literal=mysql-password=camappasskubectl create secret generic camap-runtime -n camap `
--from-literal=CAMAP_KEY=une_cle_aleatoire_32chars `
--from-literal=JWT_ACCESS_TOKEN_SECRET=secret_access `
--from-literal=JWT_REFRESH_TOKEN_SECRET=secret_refresh `
--from-literal=SMTP_AUTH_USER="no" `
--from-literal=SMTP_AUTH_PASS="need"minikube tunnel expose les services Ingress sur 127.0.0.1. Ajouter les entrées suivantes dans C:\Windows\System32\drivers\etc\hosts :
127.0.0.1 camap.local api.camap.local mailpit.local
⚠️ minikube tunneldoit être actif pour que ces adresses répondent (voir section 6).
Appliquer l'App of Apps :
kubectl apply -f root-app.yaml -n argocdArgo CD détecte automatiquement les applications et les synchronise (mailpit en premier, puis camap). Si la synchronisation ne démarre pas, utiliser Refresh Apps dans l'interface.
Dans un terminal dédié (à laisser ouvert) :
minikube tunnelPuis ouvrir dans l'ordre :
- http://camap.local/install — initialisation de la base de données
- http://camap.local/install (second accès) — configuration du compte admin et d'un groupe de démonstration
⚠️ Un compte admin est créé avec l'adresseadmin@camap.tldet le mot de passeadmin
Mailpit (visualisation des emails) : http://mailpit.local
Pour tester une image buildée localement sans la publier sur ghcr.io.
# Depuis le répertoire camap-ts
docker build -t camap-ts:local -f camap-ts.Dockerfile .minikube image load camap-ts:localDans deployments/camap/values.yaml :
image:
api:
repository: camap-ts
tag: "local"
pullPolicy: Never # ne pas chercher sur un registry distant
pullPolicy: Neverest indispensable : sans lui Kubernetes tente de puller depuis ghcr.io et échoue. UtiliserIfNotPresentsi on veut un fallback vers le registry quand l'image n'est pas présente en local.
Après modification du values.yaml, forcer un sync dans Argo CD ou redémarrer le pod :
kubectl rollout restart deployment camap-api -n camap