Merge pull request #90187 from julianvmodesto/last-applied-updater
Implement server-side apply upgrade and downgrade
This commit is contained in:
@@ -393,6 +393,34 @@ run_kubectl_server_side_apply_tests() {
|
||||
# clean-up
|
||||
kubectl delete -f hack/testdata/pod.yaml "${kube_flags[@]:?}"
|
||||
|
||||
## kubectl apply upgrade
|
||||
# Pre-Condition: no POD exists
|
||||
kube::test::get_object_assert pods "{{range.items}}{{${id_field:?}}}:{{end}}" ''
|
||||
|
||||
kube::log::status "Testing upgrade kubectl client-side apply to server-side apply"
|
||||
# run client-side apply
|
||||
kubectl apply -f hack/testdata/pod.yaml "${kube_flags[@]:?}"
|
||||
# test upgrade does not work with non-standard server-side apply field manager
|
||||
! kubectl apply --server-side --field-manager="not-kubectl" -f hack/testdata/pod-apply.yaml "${kube_flags[@]:?}" || exit 1
|
||||
# test upgrade from client-side apply to server-side apply
|
||||
kubectl apply --server-side -f hack/testdata/pod-apply.yaml "${kube_flags[@]:?}"
|
||||
# Post-Condition: pod "test-pod" has configuration annotation
|
||||
grep -q kubectl.kubernetes.io/last-applied-configuration <<< "$(kubectl get pods test-pod -o yaml "${kube_flags[@]:?}")"
|
||||
output_message=$(kubectl apply view-last-applied pod/test-pod -o json 2>&1 "${kube_flags[@]:?}")
|
||||
kube::test::if_has_string "${output_message}" '"name": "test-pod-applied"'
|
||||
|
||||
kube::log::status "Testing downgrade kubectl server-side apply to client-side apply"
|
||||
# test downgrade from server-side apply to client-side apply
|
||||
kubectl apply --server-side -f hack/testdata/pod.yaml "${kube_flags[@]:?}"
|
||||
# Post-Condition: pod "test-pod" has configuration annotation
|
||||
grep -q kubectl.kubernetes.io/last-applied-configuration <<< "$(kubectl get pods test-pod -o yaml "${kube_flags[@]:?}")"
|
||||
output_message=$(kubectl apply view-last-applied pod/test-pod -o json 2>&1 "${kube_flags[@]:?}")
|
||||
kube::test::if_has_string "${output_message}" '"name": "test-pod-label"'
|
||||
kubectl apply -f hack/testdata/pod-apply.yaml "${kube_flags[@]:?}"
|
||||
|
||||
# clean-up
|
||||
kubectl delete -f hack/testdata/pod.yaml "${kube_flags[@]:?}"
|
||||
|
||||
## kubectl apply dry-run on CR
|
||||
# Create CRD
|
||||
kubectl "${kube_flags_with_token[@]}" create -f - << __EOF__
|
||||
|
Reference in New Issue
Block a user