Compose include, extends, and YAML Anchors
Your compose.yaml hit 600 lines. YAML anchors, extends, and include each fix a different kind of repetition. What each one does, where it bites, which to use.
All the articles with the tag "devops".
Your compose.yaml hit 600 lines. YAML anchors, extends, and include each fix a different kind of repetition. What each one does, where it bites, which to use.
Write a YAML test suite for your LLM prompts with promptfoo, run it against a local model, and fail the CI build when a prompt tweak quietly breaks the output.
Install the Go yq, not the Python one. Bump compose tags, patch Kubernetes manifests, merge configs and edit front matter from the shell, plus the gotchas.
What Kubernetes requests and limits actually do on a small k3s cluster: QoS classes, OOMKills, CPU throttling, node reservations, and the settings I'd pick.
Find the commit that broke your code in about 7 steps. Manual git bisect, automated git bisect run, exit code 125 skips, and the gotchas that waste hours.
A triage runbook for a Docker or Kubernetes container stuck in a restart loop: read the signals, stop the loop, get a shell, and find the real cause fast.
Upgrade k3s without dropping workloads: the cordon and drain sequence, then system-upgrade-controller Plans that automate it, with PDB and Longhorn gotchas.
Kyverno on k3s: validate, mutate, generate, verify signed images, handle exceptions, and test policies in CI. Plus the CEL policy types replacing ClusterPolicy.
Docker layer cache works on your laptop but CI starts cold. Fix it with registry cache or type=gha, set scope and mode=max, and debug why hits still miss.
A secret that reaches git push is already gone. Compare gitleaks, TruffleHog, and detect-secrets as pre-commit hooks, with working configs you can copy.
Turn a devcontainer into a team standard: Compose with Postgres, pinned Features, lifecycle hooks, one prebuilt image for laptops and CI, and the UID gotcha.
Self-hosted GitHub Actions, Forgejo, and GitLab runners can hand a forked pull request root on your box. Here is the isolation ladder that actually stops it.