Notes

Short notes

Things I looked up more than twice, written down so there is no third time. Unpolished on purpose.

Find what is actually consuming a node

2026-08-20

Requests, not usage, decide scheduling. When a node reports pressure but the graphs look calm, sum the requests instead:

kubectl describe node <node> | awk '/Allocated resources/,/Events/'

Nine times out of ten the culprit is a workload requesting far more than it uses.

Argo CD keeps showing OutOfSync with an empty diff

2026-08-04

Usually a controller mutating the live object after apply. Confirm with argocd app diff, then teach Argo CD to ignore that field rather than fighting it:

spec:
  ignoreDifferences:
    - group: apps
      kind: Deployment
      jsonPointers:
        - /spec/replicas      # owned by HPA, not by Git

Render before you blame the chart

2026-07-15

Most "Helm bugs" are values not landing where you think. Render locally with the exact overlay order the pipeline uses:

helm template svc ./base \
  -f base/values.yaml \
  -f envs/production.yaml \
  --debug | less

A pod is stuck Terminating

2026-06-30

Check finalizers before reaching for force delete — a force delete on a stateful workload can leave the volume attached and the replacement pod unschedulable:

kubectl get pod <pod> -o jsonpath='{.metadata.finalizers}'

Which commit changed this values file?

2026-06-02

Faster than scrolling a GitOps repository's history, and it follows renames:

git log --follow -p -- apps/checkout/envs/production.yaml

Disk is full but du disagrees

2026-05-18

A deleted file still held open by a process keeps its blocks. Find the holder:

lsof +L1 | sort -k7 -n | tail -20

Restarting that process reclaims the space; deleting the path again does nothing.

Sync order for resources with dependencies

2026-04-27

Sync waves are cheaper than an operator. Lower waves apply first:

metadata:
  annotations:
    argocd.argoproj.io/sync-wave: "-1"   # CRDs and namespaces