Merge pull request #70956 from apelisse/add-diff-test

Add test for CRD server-dry-run and fix bug
pull/58/head
k8s-ci-robot 2018-11-13 19:45:53 -08:00 committed by GitHub
commit 4c4a76557d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 2 deletions

View File

@ -17,6 +17,7 @@ limitations under the License.
package util package util
import ( import (
"fmt"
"reflect" "reflect"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -34,10 +35,10 @@ func CRDFromDynamic(client dynamic.Interface) CRDGetter {
list, err := client.Resource(schema.GroupVersionResource{ list, err := client.Resource(schema.GroupVersionResource{
Group: "apiextensions.k8s.io", Group: "apiextensions.k8s.io",
Version: "v1beta1", Version: "v1beta1",
Resource: "curstomresourcedefinitions", Resource: "customresourcedefinitions",
}).List(metav1.ListOptions{}) }).List(metav1.ListOptions{})
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("failed to list CRDs: %v", err)
} }
if list == nil { if list == nil {
return nil, nil return nil, nil

View File

@ -93,6 +93,37 @@ run_kubectl_apply_tests() {
# clean-up # clean-up
kubectl delete -f hack/testdata/pod.yaml "${kube_flags[@]}" 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__
{
"kind": "CustomResourceDefinition",
"apiVersion": "apiextensions.k8s.io/v1beta1",
"metadata": {
"name": "resources.mygroup.example.com"
},
"spec": {
"group": "mygroup.example.com",
"version": "v1alpha1",
"scope": "Namespaced",
"names": {
"plural": "resources",
"singular": "resource",
"kind": "Kind",
"listKind": "KindList"
}
}
}
__EOF__
# Dry-run create the CR
kubectl "${kube_flags[@]}" apply --server-dry-run -f hack/testdata/CRD/resource.yaml "${kube_flags[@]}"
# Make sure that the CR doesn't exist
! kubectl "${kube_flags[@]}" get resource/myobj
# clean-up
kubectl "${kube_flags[@]}" delete customresourcedefinition resources.mygroup.example.com
## kubectl apply --prune ## kubectl apply --prune
# Pre-Condition: no POD exists # Pre-Condition: no POD exists
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''