Update resources that already exist instead of failing. Fixes #3189

This patch updates resources that already exist when running helm install or helm upgrade.

Previously, Helm would fail with an error:

```
Error: release jdeploy5 failed: services "deploytest" already exists
```

After this patch, the resources will be updated instead of failing the release.

Signed-off-by: Justin Barrick <jbarrick@cloudflare.com>
pull/4837/head
Justin Barrick 7 years ago
parent 440e79ff95
commit c886c4bb6b

@ -99,7 +99,17 @@ func (c *Client) Create(namespace string, reader io.Reader, timeout int64, shoul
return buildErr
}
c.Log("creating %d resource(s)", len(infos))
if err := perform(infos, createResource); err != nil {
if err := perform(infos, func(info *resource.Info) error {
err := createResource(info)
if err != nil {
if errors.IsAlreadyExists(err) {
c.Log("Resource already exists, updating: %s", err)
return updateResource(c, info, info.Object, true, false)
}
return err
}
return nil
}); err != nil {
return err
}
if shouldWait {

Loading…
Cancel
Save