Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

01 — minimal

The smallest possible deploy: one Deployment running an nginx image, exposing port 80 via a ClusterIP Service. No Ingress, no monitoring, no secrets, no autoscaling.

What this shows

  • One workload declared under deployments.web.
  • The single-port Service shorthand (service.port / service.targetPort rather than the service.ports map).
  • The opt-in default for everything else: monitoring off, autoscaling off, RBAC off.

Files

FilePurpose
values.yamlChart values for this scenario.
argocd/application.yamlArgo CD Application, single source.
argocd/application-multisource.yamlArgo CD Application with spec.sources[] — chart from OCI, values from a git repo via $values.
flux/ocirepository.yamlFlux OCIRepository pointing at the OCI chart.
flux/helmrelease.yamlFlux HelmRelease consuming the OCIRepository.
helm/install.shPlain helm upgrade --install command.

Try it

Pick any one of:

  • Helm CLI: bash helm/install.sh
  • Argo CD: kubectl apply -f argocd/application.yaml -n argocd
  • Flux: kubectl apply -f flux/