restore advanced deployment logic, gofmt fixes
Signed-off-by: GautamBytes <manchandanigautam@gmail.com>
This commit is contained in:
parent
c82af8c731
commit
b295da4f5f
|
|
@ -21,12 +21,12 @@ import (
|
|||
"github.com/openkruise/rollouts/pkg/controller/batchrelease/context"
|
||||
"github.com/openkruise/rollouts/pkg/controller/batchrelease/control"
|
||||
"github.com/openkruise/rollouts/pkg/controller/batchrelease/labelpatch"
|
||||
"github.com/openkruise/rollouts/pkg/feature"
|
||||
"github.com/openkruise/rollouts/pkg/util"
|
||||
utilfeature "github.com/openkruise/rollouts/pkg/util/feature"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"github.com/openkruise/rollouts/pkg/feature"
|
||||
utilfeature "github.com/openkruise/rollouts/pkg/util/feature"
|
||||
"k8s.io/client-go/tools/record"
|
||||
"k8s.io/klog/v2"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
|
@ -142,9 +142,9 @@ func (rc *realBatchControlPlane) Finalize() error {
|
|||
|
||||
// If Rollout CR was deleted and our gate is on, skip un-pause
|
||||
if rc.release.DeletionTimestamp != nil &&
|
||||
utilfeature.DefaultMutableFeatureGate.Enabled(feature.KeepDeploymentPausedOnDeletionGate) {
|
||||
utilfeature.DefaultMutableFeatureGate.Enabled(feature.KeepDeploymentPausedOnDeletionGate) {
|
||||
klog.Infof("BatchRelease(%s/%s) deletion detected; skipping Finalize() because KeepDeploymentPausedOnDeletionGate is enabled",
|
||||
rc.release.Namespace, rc.release.Name)
|
||||
rc.release.Namespace, rc.release.Name)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,11 +22,11 @@ import (
|
|||
"github.com/openkruise/rollouts/api/v1beta1"
|
||||
"github.com/openkruise/rollouts/pkg/controller/batchrelease/control"
|
||||
"github.com/openkruise/rollouts/pkg/controller/batchrelease/labelpatch"
|
||||
"github.com/openkruise/rollouts/pkg/feature"
|
||||
"github.com/openkruise/rollouts/pkg/util"
|
||||
utilfeature "github.com/openkruise/rollouts/pkg/util/feature"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"github.com/openkruise/rollouts/pkg/feature"
|
||||
utilfeature "github.com/openkruise/rollouts/pkg/util/feature"
|
||||
"k8s.io/client-go/tools/record"
|
||||
"k8s.io/klog/v2"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
|
@ -152,32 +152,32 @@ func (rc *realCanaryController) EnsureBatchPodsReadyAndLabeled() error {
|
|||
}
|
||||
|
||||
func (rc *realCanaryController) Finalize() error {
|
||||
stable, err := rc.BuildStableController()
|
||||
if client.IgnoreNotFound(err) != nil {
|
||||
klog.Errorf("…")
|
||||
return err
|
||||
}
|
||||
stable, err := rc.BuildStableController()
|
||||
if client.IgnoreNotFound(err) != nil {
|
||||
klog.Errorf("…")
|
||||
return err
|
||||
}
|
||||
|
||||
// If Rollout is deleted & gate is on, skip stable.Finalize()
|
||||
if rc.release.DeletionTimestamp != nil &&
|
||||
utilfeature.DefaultMutableFeatureGate.Enabled(feature.KeepDeploymentPausedOnDeletionGate) {
|
||||
klog.Infof("… skipping stable.Finalize()")
|
||||
} else {
|
||||
if err = stable.Finalize(rc.release); err != nil {
|
||||
klog.Errorf("… finalize stable err: %v", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
// If Rollout is deleted & gate is on, skip stable.Finalize()
|
||||
if rc.release.DeletionTimestamp != nil &&
|
||||
utilfeature.DefaultMutableFeatureGate.Enabled(feature.KeepDeploymentPausedOnDeletionGate) {
|
||||
klog.Infof("… skipping stable.Finalize()")
|
||||
} else {
|
||||
if err = stable.Finalize(rc.release); err != nil {
|
||||
klog.Errorf("… finalize stable err: %v", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
canary, err := rc.BuildCanaryController(rc.release)
|
||||
if client.IgnoreNotFound(err) != nil {
|
||||
klog.Errorf("… build canary err: %v", err)
|
||||
return err
|
||||
}
|
||||
if err = canary.Delete(rc.release); err != nil {
|
||||
klog.Errorf("… delete canary err: %v", err)
|
||||
}
|
||||
return err
|
||||
canary, err := rc.BuildCanaryController(rc.release)
|
||||
if client.IgnoreNotFound(err) != nil {
|
||||
klog.Errorf("… build canary err: %v", err)
|
||||
return err
|
||||
}
|
||||
if err = canary.Delete(rc.release); err != nil {
|
||||
klog.Errorf("… delete canary err: %v", err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (rc *realCanaryController) SyncWorkloadInformation() (control.WorkloadEventType, *util.WorkloadInfo, error) {
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ import (
|
|||
"github.com/openkruise/rollouts/api/v1beta1"
|
||||
"github.com/openkruise/rollouts/pkg/controller/batchrelease/control"
|
||||
"github.com/openkruise/rollouts/pkg/controller/batchrelease/labelpatch"
|
||||
"github.com/openkruise/rollouts/pkg/util"
|
||||
"github.com/openkruise/rollouts/pkg/feature"
|
||||
"github.com/openkruise/rollouts/pkg/util"
|
||||
utilfeature "github.com/openkruise/rollouts/pkg/util/feature"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
|
|
@ -144,14 +144,14 @@ func (rc *realBatchControlPlane) Finalize() error {
|
|||
if err != nil {
|
||||
return client.IgnoreNotFound(err)
|
||||
}
|
||||
|
||||
|
||||
// If Rollout CR was deleted and our gate is on, skip un-pause
|
||||
if rc.release.DeletionTimestamp != nil && utilfeature.DefaultMutableFeatureGate.Enabled(feature.KeepDeploymentPausedOnDeletionGate) {
|
||||
klog.Infof("BatchRelease(%s/%s) deletion detected; skipping Finalize() because KeepDeploymentPausedOnDeletionGate is enabled",
|
||||
rc.release.Namespace, rc.release.Name)
|
||||
rc.release.Namespace, rc.release.Name)
|
||||
return nil
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// release workload control info and clean up resources if it needs
|
||||
return controller.Finalize(rc.release)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,8 +24,10 @@ import (
|
|||
|
||||
"github.com/openkruise/rollouts/api/v1alpha1"
|
||||
"github.com/openkruise/rollouts/api/v1beta1"
|
||||
"github.com/openkruise/rollouts/pkg/feature"
|
||||
"github.com/openkruise/rollouts/pkg/trafficrouting"
|
||||
"github.com/openkruise/rollouts/pkg/util"
|
||||
utilfeature "github.com/openkruise/rollouts/pkg/util/feature"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
|
@ -73,6 +75,23 @@ func (m *canaryReleaseManager) runCanary(c *RolloutContext) error {
|
|||
if m.doCanaryJump(c) {
|
||||
return nil
|
||||
}
|
||||
|
||||
if utilfeature.DefaultMutableFeatureGate.Enabled(feature.AdvancedDeploymentGate) &&
|
||||
c.Rollout.Spec.Strategy.Canary.EnableExtraWorkloadForCanary {
|
||||
tr := newTrafficRoutingContext(c)
|
||||
if !tr.DisableGenerateCanaryService {
|
||||
klog.Infof("rollout(%s/%s) advancedDeployment: patching stable service for canary", c.Rollout.Namespace, c.Rollout.Name)
|
||||
retry, err := m.trafficRoutingManager.PatchStableService(tr)
|
||||
if err != nil {
|
||||
return err
|
||||
} else if retry {
|
||||
expectedTime := time.Now().Add(tr.RecheckDuration)
|
||||
c.RecheckTime = &expectedTime
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// When the first batch is trafficRouting rolling and the next steps are rolling release,
|
||||
// We need to clean up the canary-related resources first and then rollout the rest of the batch.
|
||||
currentStep := c.Rollout.Spec.Strategy.Canary.Steps[canaryStatus.CurrentStepIndex-1]
|
||||
|
|
|
|||
Loading…
Reference in New Issue