mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Stop the users from rolling back a paused deployment in kubectl rollout undo
This commit is contained in:
parent
c412dcba7f
commit
2bd30c7572
@ -1287,9 +1287,16 @@ __EOF__
|
|||||||
kubectl rollout undo deployment nginx-deployment "${kube_flags[@]}"
|
kubectl rollout undo deployment nginx-deployment "${kube_flags[@]}"
|
||||||
sleep 1
|
sleep 1
|
||||||
kube::test::get_object_assert deployment "{{range.items}}{{$deployment_image_field}}:{{end}}" 'nginx:latest:'
|
kube::test::get_object_assert deployment "{{range.items}}{{$deployment_image_field}}:{{end}}" 'nginx:latest:'
|
||||||
|
# Pause the deployment
|
||||||
|
kubectl-with-retry rollout pause deployment nginx-deployment "${kube_flags[@]}"
|
||||||
|
# A paused deployment cannot be rolled back
|
||||||
|
! kubectl rollout undo deployment nginx-deployment "${kube_flags[@]}"
|
||||||
|
# Resume the deployment
|
||||||
|
kubectl-with-retry rollout resume deployment nginx-deployment "${kube_flags[@]}"
|
||||||
|
# The resumed deployment can now be rolled back
|
||||||
|
kubectl rollout undo deployment nginx-deployment "${kube_flags[@]}"
|
||||||
# Clean up
|
# Clean up
|
||||||
kubectl delete deployment nginx-deployment "${kube_flags[@]}"
|
kubectl delete deployment nginx-deployment "${kube_flags[@]}"
|
||||||
kubectl delete rs -l pod-template-hash "${kube_flags[@]}"
|
|
||||||
|
|
||||||
|
|
||||||
######################
|
######################
|
||||||
|
@ -49,6 +49,10 @@ type DeploymentRollbacker struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *DeploymentRollbacker) Rollback(namespace, name string, updatedAnnotations map[string]string, toRevision int64, obj runtime.Object) (string, error) {
|
func (r *DeploymentRollbacker) Rollback(namespace, name string, updatedAnnotations map[string]string, toRevision int64, obj runtime.Object) (string, error) {
|
||||||
|
d := obj.(*extensions.Deployment)
|
||||||
|
if d.Spec.Paused {
|
||||||
|
return "", fmt.Errorf("you cannot rollback a paused deployment; resume it first with 'kubectl rollout resume' and try again")
|
||||||
|
}
|
||||||
deploymentRollback := &extensions.DeploymentRollback{
|
deploymentRollback := &extensions.DeploymentRollback{
|
||||||
Name: name,
|
Name: name,
|
||||||
UpdatedAnnotations: updatedAnnotations,
|
UpdatedAnnotations: updatedAnnotations,
|
||||||
|
Loading…
Reference in New Issue
Block a user