mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-18 17:33:39 +00:00
Add kubectl-convert tests
This commit is contained in:
parent
0a0c80c553
commit
5681a58ef7
53
test/cmd/convert.sh
Normal file
53
test/cmd/convert.sh
Normal file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright 2021 The Kubernetes Authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
run_convert_tests() {
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
|
||||
### Convert deployment YAML file locally without affecting the live deployment
|
||||
# Pre-condition: no deployments exist
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{${id_field:?}}}:{{end}}" ''
|
||||
# Command
|
||||
# Create a deployment (revision 1)
|
||||
kubectl create -f hack/testdata/deployment-revision1.yaml "${kube_flags[@]:?}"
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{${id_field:?}}}:{{end}}" 'nginx:'
|
||||
kube::test::get_object_assert deployment "{{range.items}}{{${image_field0:?}}}:{{end}}" "${IMAGE_DEPLOYMENT_R1}:"
|
||||
# Command
|
||||
output_message=$(kubectl convert --local -f hack/testdata/deployment-revision1.yaml --output-version=apps/v1beta1 -o yaml "${kube_flags[@]:?}")
|
||||
# Post-condition: apiVersion is still apps/v1 in the live deployment, but command output is the new value
|
||||
kube::test::get_object_assert 'deployment nginx' "{{ .apiVersion }}" 'apps/v1'
|
||||
kube::test::if_has_string "${output_message}" "apps/v1beta1"
|
||||
# Clean up
|
||||
kubectl delete deployment nginx "${kube_flags[@]:?}"
|
||||
|
||||
## Convert multiple busybox PODs recursively from directory of YAML files
|
||||
# Command
|
||||
output_message=$(! kubectl-convert -f hack/testdata/recursive/pod --recursive 2>&1 "${kube_flags[@]:?}")
|
||||
# Post-condition: busybox0 & busybox1 PODs are converted, and since busybox2 is malformed, it should error
|
||||
kube::test::if_has_string "${output_message}" "Object 'Kind' is missing"
|
||||
|
||||
# check that convert command supports --template output
|
||||
output_message=$(kubectl-convert "${kube_flags[@]:?}" -f hack/testdata/deployment-revision1.yaml --output-version=apps/v1beta2 --template="{{ .metadata.name }}:")
|
||||
kube::test::if_has_string "${output_message}" 'nginx:'
|
||||
|
||||
set +o nounset
|
||||
set +o errexit
|
||||
}
|
@ -33,6 +33,7 @@ source "${KUBE_ROOT}/test/cmd/authentication.sh"
|
||||
source "${KUBE_ROOT}/test/cmd/authorization.sh"
|
||||
source "${KUBE_ROOT}/test/cmd/batch.sh"
|
||||
source "${KUBE_ROOT}/test/cmd/certificate.sh"
|
||||
source "${KUBE_ROOT}/test/cmd/convert.sh"
|
||||
source "${KUBE_ROOT}/test/cmd/core.sh"
|
||||
source "${KUBE_ROOT}/test/cmd/crd.sh"
|
||||
source "${KUBE_ROOT}/test/cmd/create.sh"
|
||||
@ -298,7 +299,7 @@ setup() {
|
||||
kube::util::ensure-gnu-sed
|
||||
|
||||
kube::log::status "Building kubectl"
|
||||
make -C "${KUBE_ROOT}" WHAT="cmd/kubectl"
|
||||
make -C "${KUBE_ROOT}" WHAT="cmd/kubectl cmd/kubectl-convert"
|
||||
|
||||
# Check kubectl
|
||||
kube::log::status "Running kubectl with no options"
|
||||
@ -561,6 +562,13 @@ runTests() {
|
||||
record_command run_kubectl_create_kustomization_directory_tests
|
||||
fi
|
||||
|
||||
######################
|
||||
# Convert #
|
||||
######################
|
||||
if kube::test::if_supports_resource "${deployments}"; then
|
||||
record_command run_convert_tests
|
||||
fi
|
||||
|
||||
######################
|
||||
# Delete #
|
||||
######################
|
||||
|
Loading…
Reference in New Issue
Block a user