Docker and Kubernetes Deployment Prompts¶
Six prompts aimed at DevOps engineers shipping FCC workloads. These exercise the four shipped Dockerfiles (Dockerfile.backend/frontend/streamlit/jupyter), docker-compose.yml, the Helm chart at charts/fcc/, and the multi-arch GHCR publish pipeline introduced in v1.1.1.
Personas Used¶
| Persona ID | Full Name | Category | Role in Prompts |
|---|---|---|---|
| PBD | Pipeline Builder | devops | CI/CD, image builds |
| DVE | DevOps Engineer | devops | Runtime ops, K8s |
| QGD | Quality Guardian | devops | Smoke tests, gates |
Prompt 1: Authoring a Hardened Dockerfile¶
Audience: DevOps Difficulty: intermediate Personas: PBD, QGD
Context¶
A downstream project wants to customize Dockerfile.backend for its own entrypoint.
Prompt¶
PBD authors; QGD reviews.
Find: review the upstream `docker/Dockerfile.backend` and enumerate
every build stage, base image, and installed extras.
Create: produce a downstream derivative that (a) pins the base to
the digest of `python:3.12-slim`, (b) installs the `[full]` extras,
(c) adds a non-root user `fcc:fcc` uid 10001, (d) exposes port 8765
with a HEALTHCHECK hitting `/health`, (e) copies only the
`src/fcc/` tree plus `pyproject.toml`.
Critique: QGD to run a hypothetical Trivy scan and list three
plausible CVE buckets plus remediation paths.
Expected Output¶
- Dockerfile derivative
- Healthcheck directive
- QGD scan commentary
Variations¶
- Add a distroless runtime final stage
- Add BuildKit cache mounts for pip
Prompt 2: Local docker-compose Bring-up¶
Audience: DevOps Difficulty: beginner Personas: DVE
Prompt¶
Walk a new contributor through `make docker-build` and `make docker-up`,
confirming that all four containers (backend, frontend, streamlit,
jupyter) reach healthy state. Document the exact curl commands that
verify each `/health` endpoint and the shortest path to tail logs
for a failing service.
Expected Output¶
- Step-by-step runbook
- Health verification commands
Prompt 3: Helm Values Tuning¶
Audience: DevOps Difficulty: intermediate Personas: DVE, QGD
Prompt¶
Produce a `values-prod.yaml` overlay for the `charts/fcc/` Helm chart
targeting a three-node EKS cluster. Tune resource requests/limits
for backend (CPU-bound), streamlit (memory-bound), and jupyter
(ephemeral). Enable the PodDisruptionBudget and the PrometheusRule
subchart. Justify each non-default value.
Expected Output¶
- values-prod.yaml
- Justification table
Prompt 4: Kind Smoke Test Debugging¶
Audience: DevOps Difficulty: advanced Personas: DVE, PBD
Prompt¶
The `k8s-smoke` CI job has been failing intermittently since the
v1.2.1 release with "backend pod CrashLoopBackOff - readiness probe
failed." Produce a diagnostic plan that:
- Reproduces the failure locally with `kind create cluster`
- Collects events, pod logs, and describe output
- Enumerates the three most likely root causes
- Proposes a guarded Helm chart fix that does not regress healthy
installs
Show exactly which `kubectl` commands and which Helm values flags
you would use at each step.
Expected Output¶
- Reproduction script
- Root-cause candidates
- Guarded chart fix
Prompt 5: GHCR Multi-arch Publish¶
Audience: DevOps Difficulty: intermediate Personas: PBD
Prompt¶
Draft a GitHub Actions job that builds and pushes
`ghcr.io/rollingthunderfourtytwo-afk/fcc-backend` for both
`linux/amd64` and `linux/arm64` using `docker/build-push-action@v5`
with BuildKit. Ensure signatures via cosign keyless, tag strategy
covers `latest`, `vX.Y.Z`, and `sha-<shortsha>`, and login uses
GITHUB_TOKEN with least-privilege package:write scope.
Expected Output¶
- Actions job YAML
- Tag strategy note
Prompt 6: vLLM GPU Sidecar¶
Audience: DevOps Difficulty: advanced Personas: DVE
Prompt¶
Design a Kubernetes deployment that colocates the FCC backend with
a vLLM GPU sidecar serving a 7B model on a single A10 node. Confirm
nodeSelector/tolerations for `nvidia.com/gpu`, container resource
requests for the sidecar, and a sidecar readiness probe. Wire the
backend to the sidecar using the vLLM provider plugin shipped in
v1.1.1. Explain how you would fall back to LiteLLM if the sidecar
is unavailable.
Expected Output¶
- Deployment manifest
- Fallback plan
See Also¶
docker/andcharts/fcc/directoriesMakefiledocker targets- v1.1.0 and v1.1.1 release notes