Welcome. This repository contains a small, synthetic service (api-service) and the
infrastructure to build, deploy, and provision it. It is modelled on a real-world setup:
app/— the service itself + itsDockerfile.helm-charts/api-service/— a Helm chart for the workload.gitops/sandbox/— Kustomize that renders the chart for the sandbox, plus the MongoDB it talks to (already running in your cluster).terraform/— a module + sandbox config that would provision the MongoDB hosts in GCP.chef/cookbooks/mongodb/— a configuration-management cookbook for the MongoDB hosts.
This codebase has problems — some stop it from building or deploying, some are things you'd never ship to production, and some are subtle. Your job:
- Review, debug, and fix as many issues as you can.
- Get the service building and deploying into the sandbox cluster first, then harden it.
- Write down everything you spot in
FINDINGS.md— even issues you don't have time to fix. We score what you find and understand, not just what you fix.
There is deliberately more here than anyone can finish in the time. Don't rush to "done" — prioritise, explain your reasoning, and flag risks. Breadth of detection and depth of understanding matter more than a green board.
docker,kind,kubectl,helm,kustomize,terraformare installed.- A multi-node
kindcluster is running. - MongoDB (a single-member replica set
rs0) is running in thedatanamespace. - An
appsnamespace exists for the workload. - You build and load the
api-serviceimage yourself (see below) once theDockerfilebuilds.
# Make sure you're pointed at the local kind cluster (never a remote one):
kubectl config use-context kind-devops-test
# Build the image (after you fix the Dockerfile), then load it into kind:
docker build -t api-service:sandbox ./app
kind load docker-image api-service:sandbox --name devops-test
# Render + deploy the workload (the chart lives above the overlay, so allow that):
kubectl kustomize --enable-helm --load-restrictor LoadRestrictionsNone \
gitops/sandbox/api-service | kubectl apply -f -
kubectl -n apps get pods
kubectl -n apps logs deploy/api-service
# Terraform (no cloud access — validate only):
cd terraform/sandbox/mongodb-api-service
terraform init -backend=false
terraform validateGood luck.