Delete something Helm created and watch nothing happen¶
Claim — Helm has no controller. You can prove that in three commands. Delete an object from a release. Wait as long as you like. Then run helm upgrade, and watch the object still not come back.
Topology — pair, with the release from the release-state exercise.
Do
- Run
kubectl delete svc <the release's service>. Note the time. - Wait five minutes. Then check two things.
helm status tsaysdeployed.helm listshows one healthy release. Neither command has noticed the deletion. - Now run
helm upgrade t build/01-chartwith no value changes. Predict the result first, then look. Is the Service back? - Repeat the upgrade with one value changed. Predict again. This time the Service comes back. The reason is not that Helm noticed the deletion.
- Explain the difference using the three-way merge alone. Do not invent a mechanism. Answer two questions. What does Helm PATCH? What does it do about an object that is in the new manifest and absent from the cluster?
- Try
helm upgrade --force. Note that it changes the answer by changing the verb. It does not add a watch. - Finally, ask what a controller would have done differently. Write the answer as a sentence about when, and not about what. That sentence is the argument that Flux makes.
Expect — nothing happens after five minutes, after an hour, or after a week. There is no process anywhere whose job is to look. The outcome of step 3 depends on two things: how your version of Helm handles a no-op upgrade, and whether the render is byte-identical. When Helm does recreate the object, the cause is mechanical. The upgrade applied the whole new manifest, found the object missing, and created it. That is an accident of apply semantics, and not reconciliation. Here is the gap in one line. Helm converges when you run it. A controller converges because time passed. Level-triggered reconciliation is precisely what Helm does not have, and you have already watched it three times in this phase: in 1.C1, in the status stomp, and in the endpoint rebuild.
Write down — the one-sentence difference from step 7, in when terms. It is the whole GitOps argument, and you now have the experiment behind it.
Teardown — run helm upgrade to restore the release to health. The topology stays, because the capstone chart builds on this release.