Skip to content

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/ and charts/fcc/ directories
  • Makefile docker targets
  • v1.1.0 and v1.1.1 release notes