This directory contains declarative Kubernetes manifests for deploying the Personal Lifecycle Tracker stack to a local Kubernetes cluster using Kind (Kubernetes in Docker), providing containerized multi-service deployment with persistent volumes and health probes.
PersistentVolumeClaim (postgres-pvc) on port 5432 with pg_isready health probes.personal-lifecycle-backend:latest) configured with container probes targeting /health on port 8000.NodePort 30088.k8s/kustomization.yaml.# Using Makefile
make kind-up
# Or directly with Kind
kind create cluster --name lifecycle-cluster
Build images and load them into the Kind control-plane node without pushing to a remote registry:
# Build images
docker build -t personal-lifecycle-backend:latest backend/
docker build -t personal-lifecycle-frontend:latest -f frontend/Dockerfile --target prod frontend/
# Load into Kind cluster
kind load docker-image personal-lifecycle-backend:latest --name lifecycle-cluster
kind load docker-image personal-lifecycle-frontend:latest --name lifecycle-cluster
# Using Makefile
make kind-deploy
# Or directly with kubectl
kubectl apply -k k8s/
# Check rollout status
kubectl rollout status deployment/lifecycle-postgres
kubectl rollout status deployment/lifecycle-backend
kubectl rollout status deployment/lifecycle-frontend
# Inspect running pods
kubectl get pods -o wide
# Port-forward frontend service
kubectl port-forward svc/lifecycle-frontend 8088:80 &
# Verify live healthcheck
curl -f http://localhost:8088/health
make kind-down
# Or: kind delete cluster --name lifecycle-cluster
To fulfill Kubernetes project criteria while maintaining $0.00 / month cost on AWS (avoiding the ~$73/mo mandatory Amazon EKS control-plane fee):
k8s/lambda-bridge-job.yaml):
k8s/ack-lambda-resource.yaml):
lambda.services.k8s.aws/v1alpha1 CustomResource.