diff --git a/pkg/skaffold/deploy/deploy_mux.go b/pkg/skaffold/deploy/deploy_mux.go index ff1a84a24fe..30a0ab3ff40 100644 --- a/pkg/skaffold/deploy/deploy_mux.go +++ b/pkg/skaffold/deploy/deploy_mux.go @@ -161,6 +161,12 @@ func (m DeployerMux) Dependencies() ([]string, error) { } func (m DeployerMux) Cleanup(ctx context.Context, w io.Writer, dryRun bool, manifestsByConfig manifest.ManifestListByConfig) error { + // Reverse order of deployers for cleanup to ensure resources + // are removed before their definitions are removed. + revDeployers := m.deployers + for i, j := 0, len(revDeployers)-1; i < j; i, j = i+1, j-1 { + revDeployers[i], revDeployers[j] = revDeployers[j], revDeployers[i] + } for _, deployer := range m.deployers { ctx, endTrace := instrumentation.StartTrace(ctx, "Cleanup") if dryRun {