fix: Allow to sync deployments when selector changed (#1361)
Signed-off-by: Anatolii Bazko <abazko@redhat.com>pull/1363/head
parent
96574bb600
commit
5415da9c4c
|
|
@ -59,9 +59,16 @@ func SyncDeploymentSpecToCluster(
|
|||
|
||||
done, err := Sync(deployContext, deploymentSpec, deploymentDiffOpts)
|
||||
if err != nil || !done {
|
||||
// Failed to sync (update), let's delete and create instead
|
||||
if err != nil && strings.Contains(err.Error(), "field is immutable") {
|
||||
if _, err := DeleteNamespacedObject(deployContext, deploymentSpec.Name, &appsv1.Deployment{}); err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
// Deleted successfully, return original error
|
||||
return false, err
|
||||
}
|
||||
return false, err
|
||||
} else if !done {
|
||||
return util.IsTestMode(), nil
|
||||
}
|
||||
|
||||
// always return true for tests
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import (
|
|||
"encoding/base64"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"strings"
|
||||
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
|
||||
|
|
@ -138,6 +139,15 @@ func syncAll(deployContext *deploy.DeployContext) error {
|
|||
|
||||
depl := getGatewayDeploymentSpec(deployContext)
|
||||
if _, err := deploy.Sync(deployContext, &depl, deploy.DefaultDeploymentDiffOpts); err != nil {
|
||||
// Failed to sync (update), let's delete and create instead
|
||||
if strings.Contains(err.Error(), "field is immutable") {
|
||||
if _, err := deploy.DeleteNamespacedObject(deployContext, depl.Name, &appsv1.Deployment{}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Deleted successfully, return original error
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue