carvel-dev / carvel-dev/kapp

[ordering] don't delete before created successfully?

Open
#100 6 comments 1 reaction 0 assignees View on GitHub
discussion
Dominant language
Go
Stars
1.1k
Forks
134
PR merge metrics
No merged PRs in 30d

Description

We face that Kapp deletes before ensuring the new version was successfully created.
In case of an issue we end up with all resources deleted. It should at least keep the existing ones in case of an error.

A possible approach would be to create first, then delete later

Example where we ended up with a **completely deleted application**:

```
Namespace Name Kind Conds. Age Op Wait to Rs Ri
(cluster) redmine-Union-efs PersistentVolume - - create reconcile - -
redmine Union Deployment - - create reconcile - -
^ Union Ingress - - create reconcile - -
^ Union Service - - create reconcile - -
^ database-yml-Union-ver-1 ConfigMap - - create reconcile - -
^ database-yml-o11n-redmine-ver-1 ConfigMap - 5d delete delete ok -
^ database-yml-o11n-redmine-ver-2 ConfigMap - 5d delete delete ok -
^ database-yml-o11n-redmine-ver-3 ConfigMap - 2d delete delete ok -
^ o11n-redmine Deployment 2/2 t 6d delete delete ok -
^ o11n-redmine Ingress - 6d delete delete ok -
^ o11n-redmine Service - 6d delete delete ok -
^ redmine-Union-efs PersistentVolumeClaim - - create reconcile - -

Op: 6 create, 6 delete, 0 update, 0 noop
Wait to: 6 reconcile, 6 delete, 0 noop

8:57:53AM: ---- applying 12 changes [0/12 done] ----
8:57:53AM: create configmap/database-yml-Union-ver-1 (v1) namespace: redmine
8:57:53AM: delete configmap/database-yml-o11n-redmine-ver-1 (v1) namespace: redmine
8:57:53AM: delete configmap/database-yml-o11n-redmine-ver-2 (v1) namespace: redmine
8:57:53AM: delete configmap/database-yml-o11n-redmine-ver-3 (v1) namespace: redmine
8:57:53AM: create persistentvolume/redmine-Union-efs (v1) cluster
8:57:53AM: create persistentvolumeclaim/redmine-Union-efs (v1) namespace: redmine
8:57:53AM: create deployment/Union (apps/v1beta1) namespace: redmine
8:57:53AM: create ingress/Union (extensions/v1beta1) namespace: redmine
8:57:53AM: create service/Union (v1) namespace: redmine
8:57:53AM: delete service/o11n-redmine (v1) namespace: redmine
8:57:53AM: delete ingress/o11n-redmine (extensions/v1beta1) namespace: redmine
8:57:53AM: delete deployment/o11n-redmine (apps/v1beta1) namespace: redmine
kapp: Error: Applying create configmap/database-yml-Union-ver-1 (v1) namespace: redmine: Creating resource configmap/database-yml-Union-ver-1 (v1) namespace: redmine: ConfigMap "database-yml-Union-ver-1" is invalid: metadata.name: Invalid value: "database-yml-Union-ver-1": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*') (reason: Invalid)

🔥 error in kp.KappGitOpsDeploy exit status 1
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.