Automation alone is insufficient. For example, Kubernetes provides an automated, predictable, and repeatable way of releasing code as containerized workloads. However, Kubernetes will not prevent you from replacing good code with worse code. Provided the new code runs for long enough to pass a few simple checks, Kubernetes will use it as a replacement for the current version.