mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 05:40:42 +00:00 
			
		
		
		
	Change test/cmd to test deprecations using a CRD
This commit is contained in:
		| @@ -420,17 +420,74 @@ run_deprecated_api_tests() { | ||||
|   set -o nounset | ||||
|   set -o errexit | ||||
|  | ||||
|   create_and_use_new_namespace | ||||
|   kube::log::status "Testing deprecated APIs" | ||||
|  | ||||
|   # Create deprecated CRD | ||||
|   kubectl "${kube_flags_with_token[@]:?}" create -f - << __EOF__ | ||||
| { | ||||
|   "kind": "CustomResourceDefinition", | ||||
|   "apiVersion": "apiextensions.k8s.io/v1", | ||||
|   "metadata": { | ||||
|     "name": "deprecated.example.com" | ||||
|   }, | ||||
|   "spec": { | ||||
|     "group": "example.com", | ||||
|     "scope": "Namespaced", | ||||
|     "names": { | ||||
|       "plural": "deprecated", | ||||
|       "kind": "DeprecatedKind" | ||||
|     }, | ||||
|     "versions": [ | ||||
|       { | ||||
|         "name": "v1", | ||||
|         "served": true, | ||||
|         "storage": true, | ||||
|         "schema": { | ||||
|           "openAPIV3Schema": { | ||||
|             "x-kubernetes-preserve-unknown-fields": true, | ||||
|             "type": "object" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       { | ||||
|         "name": "v1beta1", | ||||
|         "deprecated": true, | ||||
|         "served": true, | ||||
|         "storage": false, | ||||
|         "schema": { | ||||
|           "openAPIV3Schema": { | ||||
|             "x-kubernetes-preserve-unknown-fields": true, | ||||
|             "type": "object" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   } | ||||
| } | ||||
| __EOF__ | ||||
|  | ||||
|   # Ensure the API server has recognized and started serving the associated CR API | ||||
|   local tries=5 | ||||
|   for i in $(seq 1 $tries); do | ||||
|       local output | ||||
|       output=$(kubectl "${kube_flags[@]:?}" api-resources --api-group example.com -oname) | ||||
|       if kube::test::if_has_string "$output" deprecated.example.com; then | ||||
|           break | ||||
|       fi | ||||
|       echo "${i}: Waiting for CR API to be available" | ||||
|       sleep "$i" | ||||
|   done | ||||
|  | ||||
|   # Test deprecated API request output | ||||
|   # TODO(liggitt): switch this to a custom deprecated resource once CRDs support marking versions as deprecated | ||||
|   output_message=$(kubectl get podsecuritypolicies.v1beta1.policy 2>&1 "${kube_flags[@]}") | ||||
|   kube::test::if_has_string "${output_message}" 'PodSecurityPolicy is deprecated' | ||||
|   output_message=$(! kubectl get podsecuritypolicies.v1beta1.policy --warnings-as-errors 2>&1 "${kube_flags[@]}") | ||||
|   kube::test::if_has_string "${output_message}" 'PodSecurityPolicy is deprecated' | ||||
|   output_message=$(kubectl get deprecated.v1beta1.example.com 2>&1 "${kube_flags[@]}") | ||||
|   kube::test::if_has_string "${output_message}" 'example.com/v1beta1 DeprecatedKind is deprecated' | ||||
|   output_message=$(! kubectl get deprecated.v1beta1.example.com --warnings-as-errors 2>&1 "${kube_flags[@]}") | ||||
|   kube::test::if_has_string "${output_message}" 'example.com/v1beta1 DeprecatedKind is deprecated' | ||||
|   kube::test::if_has_string "${output_message}" 'error: 1 warning received' | ||||
|  | ||||
|   # Delete deprecated CRD | ||||
|   kubectl delete "${kube_flags[@]}" crd deprecated.example.com | ||||
|  | ||||
|   set +o nounset | ||||
|   set +o errexit | ||||
| } | ||||
|   | ||||
| @@ -90,7 +90,6 @@ nodes="nodes" | ||||
| persistentvolumeclaims="persistentvolumeclaims" | ||||
| persistentvolumes="persistentvolumes" | ||||
| pods="pods" | ||||
| podsecuritypolicies="podsecuritypolicies" | ||||
| podtemplates="podtemplates" | ||||
| replicasets="replicasets" | ||||
| replicationcontrollers="replicationcontrollers" | ||||
| @@ -934,7 +933,7 @@ runTests() { | ||||
|   # Kubectl deprecated APIs  # | ||||
|   ############################ | ||||
|  | ||||
|   if kube::test::if_supports_resource "${podsecuritypolicies}" ; then | ||||
|   if kube::test::if_supports_resource "${customresourcedefinitions}" ; then | ||||
|     record_command run_deprecated_api_tests | ||||
|   fi | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user