mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-25 12:17:52 +00:00
Merge pull request #19835 from janetkuo/kubectl-rollout
Auto commit by PR queue bot
This commit is contained in:
@@ -242,6 +242,7 @@ runTests() {
|
||||
deployment_replicas=".spec.replicas"
|
||||
secret_data=".data"
|
||||
secret_type=".type"
|
||||
deployment_image_field="(index .spec.template.spec.containers 0).image"
|
||||
|
||||
# Passing no arguments to create is an error
|
||||
! kubectl create
|
||||
@@ -1081,6 +1082,35 @@ __EOF__
|
||||
kubectl delete deployment nginx-deployment "${kube_flags[@]}"
|
||||
kubectl delete rc -l deployment.kubernetes.io/podTemplateHash "${kube_flags[@]}"
|
||||
|
||||
### Rollback a deployment
|
||||
# Pre-condition: no deployment exists
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||
# Command
|
||||
# Create a deployment (revision 1)
|
||||
kubectl create -f examples/extensions/deployment.yaml "${kube_flags[@]}"
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" 'nginx-deployment:'
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{$deployment_image_field}}:{{end}}" 'nginx:'
|
||||
# Rollback to revision 1 - should be no-op
|
||||
kubectl rollout undo deployment nginx-deployment --to-revision=1 "${kube_flags[@]}"
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{$deployment_image_field}}:{{end}}" 'nginx:'
|
||||
# Update the deployment (revision 2)
|
||||
kubectl apply -f hack/testdata/deployment-revision2.yaml "${kube_flags[@]}"
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{$deployment_image_field}}:{{end}}" 'nginx:latest:'
|
||||
# Rollback to revision 1
|
||||
kubectl rollout undo deployment nginx-deployment --to-revision=1 "${kube_flags[@]}"
|
||||
sleep 1
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{$deployment_image_field}}:{{end}}" 'nginx:'
|
||||
# Rollback to revision 1000000 - should be no-op
|
||||
kubectl rollout undo deployment nginx-deployment --to-revision=1000000 "${kube_flags[@]}"
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{$deployment_image_field}}:{{end}}" 'nginx:'
|
||||
# Rollback to last revision
|
||||
kubectl rollout undo deployment nginx-deployment "${kube_flags[@]}"
|
||||
sleep 1
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{$deployment_image_field}}:{{end}}" 'nginx:latest:'
|
||||
# Clean up
|
||||
kubectl delete deployment nginx-deployment "${kube_flags[@]}"
|
||||
kubectl delete rc -l deployment.kubernetes.io/podTemplateHash "${kube_flags[@]}"
|
||||
|
||||
######################
|
||||
# ConfigMap #
|
||||
######################
|
||||
|
20
hack/testdata/deployment-revision2.yaml
vendored
Normal file
20
hack/testdata/deployment-revision2.yaml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nginx-deployment
|
||||
labels:
|
||||
name: nginx-deployment
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
name: nginx
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: nginx
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx:latest
|
||||
ports:
|
||||
- containerPort: 80
|
@@ -347,6 +347,7 @@ tcp-services
|
||||
terminated-pod-gc-threshold
|
||||
tls-cert-file
|
||||
tls-private-key-file
|
||||
to-version
|
||||
token-auth-file
|
||||
ttl-secs
|
||||
type-src
|
||||
|
Reference in New Issue
Block a user