Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
39332449
Commit
39332449
authored
Apr 26, 2018
by
xuzhonghu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make use of simple dynamic client in test
parent
30e811c9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
184 additions
and
161 deletions
+184
-161
basic_test.go
...io/apiextensions-apiserver/test/integration/basic_test.go
+0
-0
finalization_test.go
...xtensions-apiserver/test/integration/finalization_test.go
+6
-6
registration_test.go
...xtensions-apiserver/test/integration/registration_test.go
+0
-0
subresources_test.go
...xtensions-apiserver/test/integration/subresources_test.go
+39
-27
resources.go
...nsions-apiserver/test/integration/testserver/resources.go
+20
-18
start.go
...extensions-apiserver/test/integration/testserver/start.go
+8
-2
validation_test.go
...iextensions-apiserver/test/integration/validation_test.go
+20
-20
yaml_test.go
....io/apiextensions-apiserver/test/integration/yaml_test.go
+10
-4
BUILD
test/e2e/apimachinery/BUILD
+0
-1
aggregator.go
test/e2e/apimachinery/aggregator.go
+5
-12
crd_watch.go
test/e2e/apimachinery/crd_watch.go
+15
-10
custom_resource_definition.go
test/e2e/apimachinery/custom_resource_definition.go
+1
-1
garbage_collector.go
test/e2e/apimachinery/garbage_collector.go
+5
-7
generated_clientset.go
test/e2e/apimachinery/generated_clientset.go
+1
-1
webhook.go
test/e2e/apimachinery/webhook.go
+2
-2
cronjob.go
test/e2e/apps/cronjob.go
+1
-1
audit.go
test/e2e/auth/audit.go
+1
-1
BUILD
test/e2e/framework/BUILD
+0
-1
crd_util.go
test/e2e/framework/crd_util.go
+12
-6
framework.go
test/e2e/framework/framework.go
+4
-3
util.go
test/e2e/framework/util.go
+11
-21
kubectl.go
test/e2e/kubectl/kubectl.go
+2
-2
BUILD
test/integration/garbagecollector/BUILD
+1
-0
garbage_collector_test.go
test/integration/garbagecollector/garbage_collector_test.go
+20
-15
No files found.
staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go
View file @
39332449
This diff is collapsed.
Click to expand it.
staging/src/k8s.io/apiextensions-apiserver/test/integration/finalization_test.go
View file @
39332449
...
...
@@ -31,17 +31,17 @@ import (
)
func
TestFinalization
(
t
*
testing
.
T
)
{
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
require
.
NoError
(
t
,
err
)
defer
close
(
stopCh
)
noxuDefinition
:=
testserver
.
NewNoxuCustomResourceDefinition
(
apiextensionsv1beta1
.
ClusterScoped
)
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
require
.
NoError
(
t
,
err
)
ns
:=
"not-the-default"
name
:=
"foo123"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
instance
:=
testserver
.
NewNoxuInstance
(
ns
,
name
)
instance
.
SetFinalizers
([]
string
{
"noxu.example.com/finalizer"
})
...
...
@@ -94,19 +94,19 @@ func TestFinalization(t *testing.T) {
}
func
TestFinalizationAndDeletion
(
t
*
testing
.
T
)
{
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
require
.
NoError
(
t
,
err
)
defer
close
(
stopCh
)
// Create a CRD.
noxuDefinition
:=
testserver
.
NewNoxuCustomResourceDefinition
(
apiextensionsv1beta1
.
ClusterScoped
)
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
require
.
NoError
(
t
,
err
)
// Create a CR with a finalizer.
ns
:=
"not-the-default"
name
:=
"foo123"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
instance
:=
testserver
.
NewNoxuInstance
(
ns
,
name
)
instance
.
SetFinalizers
([]
string
{
"noxu.example.com/finalizer"
})
...
...
staging/src/k8s.io/apiextensions-apiserver/test/integration/registration_test.go
View file @
39332449
This diff is collapsed.
Click to expand it.
staging/src/k8s.io/apiextensions-apiserver/test/integration/subresources_test.go
View file @
39332449
...
...
@@ -93,21 +93,21 @@ func TestStatusSubresource(t *testing.T) {
// enable alpha feature CustomResourceSubresources
defer
utilfeaturetesting
.
SetFeatureGateDuringTest
(
t
,
utilfeature
.
DefaultFeatureGate
,
features
.
CustomResourceSubresources
,
true
)()
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
close
(
stopCh
)
noxuDefinition
:=
NewNoxuSubresourcesCRD
(
apiextensionsv1beta1
.
NamespaceScoped
)
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
ns
:=
"not-the-default"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuStatusResourceClient
:=
NewNamespacedCustomResourceStatusClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
noxuStatusResourceClient
:=
NewNamespacedCustomResourceStatusClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
_
,
err
=
instantiateCustomResource
(
t
,
NewNoxuSubresourceInstance
(
ns
,
"foo"
),
noxuResourceClient
,
noxuDefinition
)
if
err
!=
nil
{
t
.
Fatalf
(
"unable to create noxu instance: %v"
,
err
)
...
...
@@ -218,26 +218,29 @@ func TestScaleSubresource(t *testing.T) {
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
clientPool
:=
dynamic
.
NewDynamicClientPool
(
config
)
dynamicClient
,
err
:=
dynamic
.
NewForConfig
(
config
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
noxuDefinition
:=
NewNoxuSubresourcesCRD
(
apiextensionsv1beta1
.
NamespaceScoped
)
// set invalid json path for specReplicasPath
noxuDefinition
.
Spec
.
Subresources
.
Scale
.
SpecReplicasPath
=
"foo,bar"
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
==
nil
{
t
.
Fatalf
(
"unexpected non-error: specReplicasPath should be a valid json path under .spec"
)
}
noxuDefinition
.
Spec
.
Subresources
.
Scale
.
SpecReplicasPath
=
".spec.replicas"
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
ns
:=
"not-the-default"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuStatusResourceClient
:=
NewNamespacedCustomResourceStatusClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
noxuStatusResourceClient
:=
NewNamespacedCustomResourceStatusClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
_
,
err
=
instantiateCustomResource
(
t
,
NewNoxuSubresourceInstance
(
ns
,
"foo"
),
noxuResourceClient
,
noxuDefinition
)
if
err
!=
nil
{
t
.
Fatalf
(
"unable to create noxu instance: %v"
,
err
)
...
...
@@ -345,11 +348,14 @@ func TestValidationSchema(t *testing.T) {
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
clientPool
:=
dynamic
.
NewDynamicClientPool
(
config
)
dynamicClient
,
err
:=
dynamic
.
NewForConfig
(
config
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
// fields other than properties in root schema are not allowed
noxuDefinition
:=
newNoxuValidationCRD
(
apiextensionsv1beta1
.
NamespaceScoped
)
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
==
nil
{
t
.
Fatalf
(
"unexpected non-error: if subresources for custom resources are enabled, only properties can be used at the root of the schema"
)
}
...
...
@@ -367,7 +373,7 @@ func TestValidationSchema(t *testing.T) {
},
},
}
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatalf
(
"unable to created crd %v: %v"
,
noxuDefinition
.
Name
,
err
)
}
...
...
@@ -377,7 +383,7 @@ func TestValidateOnlyStatus(t *testing.T) {
// enable alpha feature CustomResourceSubresources
defer
utilfeaturetesting
.
SetFeatureGateDuringTest
(
t
,
utilfeature
.
DefaultFeatureGate
,
features
.
CustomResourceSubresources
,
true
)()
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
@@ -417,13 +423,13 @@ func TestValidateOnlyStatus(t *testing.T) {
OpenAPIV3Schema
:
schema
,
}
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
ns
:=
"not-the-default"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuStatusResourceClient
:=
NewNamespacedCustomResourceStatusClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
noxuStatusResourceClient
:=
NewNamespacedCustomResourceStatusClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
// set .spec.num = 10 and .status.num = 10
noxuInstance
:=
NewNoxuSubresourceInstance
(
ns
,
"foo"
)
...
...
@@ -506,10 +512,13 @@ func TestSubresourcesDiscovery(t *testing.T) {
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
clientPool
:=
dynamic
.
NewDynamicClientPool
(
config
)
dynamicClient
,
err
:=
dynamic
.
NewForConfig
(
config
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
noxuDefinition
:=
NewNoxuSubresourcesCRD
(
apiextensionsv1beta1
.
NamespaceScoped
)
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
@@ -580,21 +589,21 @@ func TestGeneration(t *testing.T) {
// enable alpha feature CustomResourceSubresources
defer
utilfeaturetesting
.
SetFeatureGateDuringTest
(
t
,
utilfeature
.
DefaultFeatureGate
,
features
.
CustomResourceSubresources
,
true
)()
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
close
(
stopCh
)
noxuDefinition
:=
NewNoxuSubresourcesCRD
(
apiextensionsv1beta1
.
NamespaceScoped
)
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
ns
:=
"not-the-default"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuStatusResourceClient
:=
NewNamespacedCustomResourceStatusClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
noxuStatusResourceClient
:=
NewNamespacedCustomResourceStatusClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
_
,
err
=
instantiateCustomResource
(
t
,
NewNoxuSubresourceInstance
(
ns
,
"foo"
),
noxuResourceClient
,
noxuDefinition
)
if
err
!=
nil
{
t
.
Fatalf
(
"unable to create noxu instance: %v"
,
err
)
...
...
@@ -664,18 +673,21 @@ func TestSubresourcePatch(t *testing.T) {
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
clientPool
:=
dynamic
.
NewDynamicClientPool
(
config
)
dynamicClient
,
err
:=
dynamic
.
NewForConfig
(
config
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
noxuDefinition
:=
NewNoxuSubresourcesCRD
(
apiextensionsv1beta1
.
NamespaceScoped
)
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
ns
:=
"not-the-default"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuStatusResourceClient
:=
NewNamespacedCustomResourceStatusClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuScaleResourceClient
:=
NewNamespacedCustomResourceScaleClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
noxuStatusResourceClient
:=
NewNamespacedCustomResourceStatusClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
noxuScaleResourceClient
:=
NewNamespacedCustomResourceScaleClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
_
,
err
=
instantiateCustomResource
(
t
,
NewNoxuSubresourceInstance
(
ns
,
"foo"
),
noxuResourceClient
,
noxuDefinition
)
if
err
!=
nil
{
t
.
Fatalf
(
"unable to create noxu instance: %v"
,
err
)
...
...
staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go
View file @
39332449
...
...
@@ -154,10 +154,10 @@ func NewCurletInstance(namespace, name string) *unstructured.Unstructured {
// the apiextension apiserver has installed the CRD. But it's not safe to watch
// the created CR. Please call CreateNewCustomResourceDefinition if you need to
// watch the CR.
func
CreateNewCustomResourceDefinitionWatchUnsafe
(
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
apiExtensionsClient
clientset
.
Interface
,
clientPool
dynamic
.
ClientPool
)
(
dynamic
.
Interface
,
error
)
{
_
,
err
:=
apiExtensionsClient
.
Apiextensions
()
.
CustomResourceDefinitions
()
.
Create
(
crd
)
func
CreateNewCustomResourceDefinitionWatchUnsafe
(
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
apiExtensionsClient
clientset
.
Interface
)
error
{
_
,
err
:=
apiExtensionsClient
.
Apiextensions
V1beta1
()
.
CustomResourceDefinitions
()
.
Create
(
crd
)
if
err
!=
nil
{
return
nil
,
err
return
err
}
// wait until the resource appears in discovery
...
...
@@ -173,17 +173,14 @@ func CreateNewCustomResourceDefinitionWatchUnsafe(crd *apiextensionsv1beta1.Cust
}
return
false
,
nil
})
if
err
!=
nil
{
return
nil
,
err
}
return
clientPool
.
ClientForGroupVersionResource
(
schema
.
GroupVersionResource
{
Group
:
crd
.
Spec
.
Group
,
Version
:
crd
.
Spec
.
Version
,
Resource
:
crd
.
Spec
.
Names
.
Plural
})
return
err
}
func
CreateNewCustomResourceDefinition
(
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
apiExtensionsClient
clientset
.
Interface
,
clientPool
dynamic
.
ClientPool
)
(
dynamic
.
Interface
,
error
)
{
dynamicClient
,
err
:=
CreateNewCustomResourceDefinitionWatchUnsafe
(
crd
,
apiExtensionsClient
,
clientPool
)
func
CreateNewCustomResourceDefinition
(
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
apiExtensionsClient
clientset
.
Interface
,
dynamicClientSet
dynamic
.
DynamicInterface
)
error
{
err
:=
CreateNewCustomResourceDefinitionWatchUnsafe
(
crd
,
apiExtensionsClient
)
if
err
!=
nil
{
return
nil
,
err
return
err
}
// This is only for a test. We need the watch cache to have a resource version that works for the test.
...
...
@@ -198,28 +195,33 @@ func CreateNewCustomResourceDefinition(crd *apiextensionsv1beta1.CustomResourceD
// before like the created RV could be too old to watch.
var
primingErr
error
wait
.
PollImmediate
(
500
*
time
.
Millisecond
,
30
*
time
.
Second
,
func
()
(
bool
,
error
)
{
primingErr
=
checkForWatchCachePrimed
(
crd
,
dynamicClient
)
primingErr
=
checkForWatchCachePrimed
(
crd
,
dynamicClient
Set
)
if
primingErr
==
nil
{
return
true
,
nil
}
return
false
,
nil
})
if
primingErr
!=
nil
{
return
nil
,
primingErr
return
primingErr
}
return
dynamicClient
,
nil
return
nil
}
func
checkForWatchCachePrimed
(
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
dynamicClient
dynamic
.
Interface
)
error
{
func
checkForWatchCachePrimed
(
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
dynamicClient
Set
dynamic
.
Dynamic
Interface
)
error
{
ns
:=
""
if
crd
.
Spec
.
Scope
!=
apiextensionsv1beta1
.
ClusterScoped
{
ns
=
"aval"
}
resourceClient
:=
dynamicClient
.
Resource
(
&
metav1
.
APIResource
{
Name
:
crd
.
Spec
.
Names
.
Plural
,
Namespaced
:
crd
.
Spec
.
Scope
!=
apiextensionsv1beta1
.
ClusterScoped
,
},
ns
)
gvr
:=
schema
.
GroupVersionResource
{
Group
:
crd
.
Spec
.
Group
,
Version
:
crd
.
Spec
.
Version
,
Resource
:
crd
.
Spec
.
Names
.
Plural
}
var
resourceClient
dynamic
.
DynamicResourceInterface
if
crd
.
Spec
.
Scope
!=
apiextensionsv1beta1
.
ClusterScoped
{
resourceClient
=
dynamicClientSet
.
NamespacedResource
(
gvr
,
ns
)
}
else
{
resourceClient
=
dynamicClientSet
.
ClusterResource
(
gvr
)
}
initialList
,
err
:=
resourceClient
.
List
(
metav1
.
ListOptions
{})
if
err
!=
nil
{
return
err
...
...
staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/start.go
View file @
39332449
...
...
@@ -139,7 +139,7 @@ func StartDefaultServer() (chan struct{}, *rest.Config, error) {
return
StartServer
(
config
)
}
func
StartDefaultServerWithClients
()
(
chan
struct
{},
clientset
.
Interface
,
dynamic
.
ClientPool
,
error
)
{
func
StartDefaultServerWithClients
()
(
chan
struct
{},
clientset
.
Interface
,
dynamic
.
DynamicInterface
,
error
)
{
stopCh
,
config
,
err
:=
StartDefaultServer
()
if
err
!=
nil
{
return
nil
,
nil
,
nil
,
err
...
...
@@ -151,5 +151,11 @@ func StartDefaultServerWithClients() (chan struct{}, clientset.Interface, dynami
return
nil
,
nil
,
nil
,
err
}
return
stopCh
,
apiExtensionsClient
,
dynamic
.
NewDynamicClientPool
(
config
),
nil
dynamicClient
,
err
:=
dynamic
.
NewForConfig
(
config
)
if
err
!=
nil
{
close
(
stopCh
)
return
nil
,
nil
,
nil
,
err
}
return
stopCh
,
apiExtensionsClient
,
dynamicClient
,
nil
}
staging/src/k8s.io/apiextensions-apiserver/test/integration/validation_test.go
View file @
39332449
...
...
@@ -31,20 +31,20 @@ import (
)
func
TestForProperValidationErrors
(
t
*
testing
.
T
)
{
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
close
(
stopCh
)
noxuDefinition
:=
testserver
.
NewNoxuCustomResourceDefinition
(
apiextensionsv1beta1
.
NamespaceScoped
)
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
ns
:=
"not-the-default"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
tests
:=
[]
struct
{
name
string
...
...
@@ -169,20 +169,20 @@ func newNoxuValidationInstance(namespace, name string) *unstructured.Unstructure
}
func
TestCustomResourceValidation
(
t
*
testing
.
T
)
{
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
close
(
stopCh
)
noxuDefinition
:=
newNoxuValidationCRD
(
apiextensionsv1beta1
.
NamespaceScoped
)
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
ns
:=
"not-the-default"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
_
,
err
=
instantiateCustomResource
(
t
,
newNoxuValidationInstance
(
ns
,
"foo"
),
noxuResourceClient
,
noxuDefinition
)
if
err
!=
nil
{
t
.
Fatalf
(
"unable to create noxu instance: %v"
,
err
)
...
...
@@ -190,20 +190,20 @@ func TestCustomResourceValidation(t *testing.T) {
}
func
TestCustomResourceUpdateValidation
(
t
*
testing
.
T
)
{
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
close
(
stopCh
)
noxuDefinition
:=
newNoxuValidationCRD
(
apiextensionsv1beta1
.
NamespaceScoped
)
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
ns
:=
"not-the-default"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
_
,
err
=
instantiateCustomResource
(
t
,
newNoxuValidationInstance
(
ns
,
"foo"
),
noxuResourceClient
,
noxuDefinition
)
if
err
!=
nil
{
t
.
Fatalf
(
"unable to create noxu instance: %v"
,
err
)
...
...
@@ -233,20 +233,20 @@ func TestCustomResourceUpdateValidation(t *testing.T) {
}
func
TestCustomResourceValidationErrors
(
t
*
testing
.
T
)
{
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
close
(
stopCh
)
noxuDefinition
:=
newNoxuValidationCRD
(
apiextensionsv1beta1
.
NamespaceScoped
)
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
ns
:=
"not-the-default"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
tests
:=
[]
struct
{
name
string
...
...
@@ -324,7 +324,7 @@ func TestCustomResourceValidationErrors(t *testing.T) {
}
func
TestCRValidationOnCRDUpdate
(
t
*
testing
.
T
)
{
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
@@ -335,12 +335,12 @@ func TestCRValidationOnCRDUpdate(t *testing.T) {
// set stricter schema
noxuDefinition
.
Spec
.
Validation
.
OpenAPIV3Schema
.
Required
=
[]
string
{
"alpha"
,
"beta"
,
"epsilon"
}
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
ns
:=
"not-the-default"
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
NewNamespacedCustomResourceClient
(
ns
,
dynamic
Client
,
noxuDefinition
)
// CR is rejected
_
,
err
=
instantiateCustomResource
(
t
,
newNoxuValidationInstance
(
ns
,
"foo"
),
noxuResourceClient
,
noxuDefinition
)
...
...
@@ -378,7 +378,7 @@ func TestCRValidationOnCRDUpdate(t *testing.T) {
}
func
TestForbiddenFieldsInSchema
(
t
*
testing
.
T
)
{
stopCh
,
apiExtensionClient
,
clientPool
,
err
:=
testserver
.
StartDefaultServerWithClients
()
stopCh
,
apiExtensionClient
,
dynamicClient
,
err
:=
testserver
.
StartDefaultServerWithClients
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
@@ -387,7 +387,7 @@ func TestForbiddenFieldsInSchema(t *testing.T) {
noxuDefinition
:=
newNoxuValidationCRD
(
apiextensionsv1beta1
.
NamespaceScoped
)
noxuDefinition
.
Spec
.
Validation
.
OpenAPIV3Schema
.
AdditionalProperties
.
Allows
=
false
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
==
nil
{
t
.
Fatalf
(
"unexpected non-error: additionalProperties cannot be set to false"
)
}
...
...
@@ -398,7 +398,7 @@ func TestForbiddenFieldsInSchema(t *testing.T) {
}
noxuDefinition
.
Spec
.
Validation
.
OpenAPIV3Schema
.
AdditionalProperties
.
Allows
=
true
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
==
nil
{
t
.
Fatalf
(
"unexpected non-error: uniqueItems cannot be set to true"
)
}
...
...
@@ -409,14 +409,14 @@ func TestForbiddenFieldsInSchema(t *testing.T) {
UniqueItems
:
false
,
}
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
==
nil
{
t
.
Fatal
(
"unexpected non-error: $ref cannot be non-empty string"
)
}
noxuDefinition
.
Spec
.
Validation
.
OpenAPIV3Schema
.
Ref
=
nil
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
staging/src/k8s.io/apiextensions-apiserver/test/integration/yaml_test.go
View file @
39332449
...
...
@@ -48,10 +48,13 @@ func TestYAML(t *testing.T) {
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
clientPool
:=
dynamic
.
NewDynamicClientPool
(
config
)
dynamicClient
,
err
:=
dynamic
.
NewForConfig
(
config
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
noxuDefinition
:=
testserver
.
NewNoxuCustomResourceDefinition
(
apiextensionsv1beta1
.
ClusterScoped
)
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
@@ -367,10 +370,13 @@ func TestYAMLSubresource(t *testing.T) {
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
clientPool
:=
dynamic
.
NewDynamicClientPool
(
config
)
dynamicClient
,
err
:=
dynamic
.
NewForConfig
(
config
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
noxuDefinition
:=
NewNoxuSubresourcesCRD
(
apiextensionsv1beta1
.
ClusterScoped
)
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
clientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
test/e2e/apimachinery/BUILD
View file @
39332449
...
...
@@ -26,7 +26,6 @@ go_library(
importpath = "k8s.io/kubernetes/test/e2e/apimachinery",
deps = [
"//pkg/api/v1/pod:go_default_library",
"//pkg/apis/core:go_default_library",
"//pkg/apis/rbac:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/util/version:go_default_library",
...
...
test/e2e/apimachinery/aggregator.go
View file @
39332449
...
...
@@ -391,10 +391,7 @@ func TestSampleAPIServer(f *framework.Framework, image string) {
if
!
ok
{
framework
.
Failf
(
"could not find group version resource for dynamic client and wardle/flunders."
)
}
clientPool
:=
f
.
ClientPool
dynamicClient
,
err
:=
clientPool
.
ClientForGroupVersionResource
(
gvr
)
framework
.
ExpectNoError
(
err
,
"getting group version resources for dynamic client"
)
apiResource
:=
metav1
.
APIResource
{
Name
:
gvr
.
Resource
,
Namespaced
:
true
}
dynamicClient
:=
f
.
DynamicClient
.
NamespacedResource
(
gvr
,
namespace
)
// kubectl create -f flunders-1.yaml
// Request Body: {"apiVersion":"wardle.k8s.io/v1alpha1","kind":"Flunder","metadata":{"labels":{"sample-label":"true"},"name":"test-flunder","namespace":"default"}}
...
...
@@ -411,27 +408,23 @@ func TestSampleAPIServer(f *framework.Framework, image string) {
unstruct
:=
&
unstructuredv1
.
Unstructured
{}
err
=
unstruct
.
UnmarshalJSON
(
jsonFlunder
)
framework
.
ExpectNoError
(
err
,
"unmarshalling test-flunder as unstructured for create using dynamic client"
)
unstruct
,
err
=
dynamicClient
.
Resource
(
&
apiResource
,
namespace
)
.
Create
(
unstruct
)
unstruct
,
err
=
dynamicClient
.
Create
(
unstruct
)
framework
.
ExpectNoError
(
err
,
"listing flunders using dynamic client"
)
// kubectl get flunders
obj
,
err
:=
dynamicClient
.
Resource
(
&
apiResource
,
namespace
)
.
List
(
metav1
.
ListOptions
{})
unstructuredList
,
err
:=
dynamicClient
.
List
(
metav1
.
ListOptions
{})
framework
.
ExpectNoError
(
err
,
"listing flunders using dynamic client"
)
unstructuredList
,
ok
:=
obj
.
(
*
unstructuredv1
.
UnstructuredList
)
validateErrorWithDebugInfo
(
f
,
err
,
pods
,
"casting flunders list(%T) as unstructuredList using dynamic client"
,
obj
)
if
len
(
unstructuredList
.
Items
)
!=
1
{
framework
.
Failf
(
"failed to get back the correct flunders list %v from the dynamic client"
,
unstructuredList
)
}
// kubectl delete flunder test-flunder
err
=
dynamicClient
.
Resource
(
&
apiResource
,
namespace
)
.
Delete
(
flunderName
,
&
metav1
.
DeleteOptions
{})
err
=
dynamicClient
.
Delete
(
flunderName
,
&
metav1
.
DeleteOptions
{})
validateErrorWithDebugInfo
(
f
,
err
,
pods
,
"deleting flunders(%v) using dynamic client"
,
unstructuredList
.
Items
)
// kubectl get flunders
obj
,
err
=
dynamicClient
.
Resource
(
&
apiResource
,
namespace
)
.
List
(
metav1
.
ListOptions
{})
unstructuredList
,
err
=
dynamicClient
.
List
(
metav1
.
ListOptions
{})
framework
.
ExpectNoError
(
err
,
"listing flunders using dynamic client"
)
unstructuredList
,
ok
=
obj
.
(
*
unstructuredv1
.
UnstructuredList
)
validateErrorWithDebugInfo
(
f
,
err
,
pods
,
"casting flunders list(%T) as unstructuredList using dynamic client"
,
obj
)
if
len
(
unstructuredList
.
Items
)
!=
0
{
framework
.
Failf
(
"failed to get back the correct deleted flunders list %v from the dynamic client"
,
unstructuredList
)
}
...
...
test/e2e/apimachinery/crd_watch.go
View file @
39332449
...
...
@@ -25,6 +25,7 @@ import (
"k8s.io/apimachinery/pkg/api/meta"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/dynamic"
"k8s.io/kubernetes/test/e2e/framework"
...
...
@@ -63,7 +64,7 @@ var _ = SIGDescribe("CustomResourceDefinition Watch", func() {
}
noxuDefinition
:=
testserver
.
NewNoxuCustomResourceDefinition
(
apiextensionsv1beta1
.
ClusterScoped
)
noxuVersionClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
f
.
ClientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
noxuDefinition
,
apiExtensionClient
,
f
.
DynamicClient
)
if
err
!=
nil
{
framework
.
Failf
(
"failed to create CustomResourceDefinition: %v"
,
err
)
}
...
...
@@ -76,7 +77,7 @@ var _ = SIGDescribe("CustomResourceDefinition Watch", func() {
}()
ns
:=
""
noxuResourceClient
:=
newNamespacedCustomResourceClient
(
ns
,
noxuVersion
Client
,
noxuDefinition
)
noxuResourceClient
:=
newNamespacedCustomResourceClient
(
ns
,
f
.
Dynamic
Client
,
noxuDefinition
)
watchA
,
err
:=
watchCRWithName
(
noxuResourceClient
,
watchCRNameA
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
...
...
@@ -114,7 +115,7 @@ var _ = SIGDescribe("CustomResourceDefinition Watch", func() {
})
})
func
watchCRWithName
(
crdResourceClient
dynamic
.
ResourceInterface
,
name
string
)
(
watch
.
Interface
,
error
)
{
func
watchCRWithName
(
crdResourceClient
dynamic
.
Dynamic
ResourceInterface
,
name
string
)
(
watch
.
Interface
,
error
)
{
return
crdResourceClient
.
Watch
(
metav1
.
ListOptions
{
FieldSelector
:
"metadata.name="
+
name
,
...
...
@@ -123,7 +124,7 @@ func watchCRWithName(crdResourceClient dynamic.ResourceInterface, name string) (
)
}
func
instantiateCustomResource
(
instanceToCreate
*
unstructured
.
Unstructured
,
client
dynamic
.
ResourceInterface
,
definition
*
apiextensionsv1beta1
.
CustomResourceDefinition
)
(
*
unstructured
.
Unstructured
,
error
)
{
func
instantiateCustomResource
(
instanceToCreate
*
unstructured
.
Unstructured
,
client
dynamic
.
Dynamic
ResourceInterface
,
definition
*
apiextensionsv1beta1
.
CustomResourceDefinition
)
(
*
unstructured
.
Unstructured
,
error
)
{
createdInstance
,
err
:=
client
.
Create
(
instanceToCreate
)
if
err
!=
nil
{
return
nil
,
err
...
...
@@ -149,13 +150,17 @@ func instantiateCustomResource(instanceToCreate *unstructured.Unstructured, clie
return
createdInstance
,
nil
}
func
deleteCustomResource
(
client
dynamic
.
ResourceInterface
,
name
string
)
error
{
func
deleteCustomResource
(
client
dynamic
.
Dynamic
ResourceInterface
,
name
string
)
error
{
return
client
.
Delete
(
name
,
&
metav1
.
DeleteOptions
{})
}
func
newNamespacedCustomResourceClient
(
ns
string
,
client
dynamic
.
Interface
,
definition
*
apiextensionsv1beta1
.
CustomResourceDefinition
)
dynamic
.
ResourceInterface
{
return
client
.
Resource
(
&
metav1
.
APIResource
{
Name
:
definition
.
Spec
.
Names
.
Plural
,
Namespaced
:
definition
.
Spec
.
Scope
==
apiextensionsv1beta1
.
NamespaceScoped
,
},
ns
)
func
newNamespacedCustomResourceClient
(
ns
string
,
client
dynamic
.
DynamicInterface
,
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
)
dynamic
.
DynamicResourceInterface
{
gvr
:=
schema
.
GroupVersionResource
{
Group
:
crd
.
Spec
.
Group
,
Version
:
crd
.
Spec
.
Version
,
Resource
:
crd
.
Spec
.
Names
.
Plural
}
if
crd
.
Spec
.
Scope
!=
apiextensionsv1beta1
.
ClusterScoped
{
return
client
.
NamespacedResource
(
gvr
,
ns
)
}
else
{
return
client
.
ClusterResource
(
gvr
)
}
}
test/e2e/apimachinery/custom_resource_definition.go
View file @
39332449
...
...
@@ -55,7 +55,7 @@ var _ = SIGDescribe("CustomResourceDefinition resources", func() {
randomDefinition
:=
testserver
.
NewRandomNameCustomResourceDefinition
(
v1beta1
.
ClusterScoped
)
//create CRD and waits for the resource to be recognized and available.
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
randomDefinition
,
apiExtensionClient
,
f
.
ClientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
randomDefinition
,
apiExtensionClient
,
f
.
DynamicClient
)
if
err
!=
nil
{
framework
.
Failf
(
"failed to create CustomResourceDefinition: %v"
,
err
)
}
...
...
test/e2e/apimachinery/garbage_collector.go
View file @
39332449
...
...
@@ -36,7 +36,6 @@ import (
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apiserver/pkg/storage/names"
clientset
"k8s.io/client-go/kubernetes"
api
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/test/e2e/framework"
"k8s.io/kubernetes/test/e2e/framework/metrics"
...
...
@@ -918,16 +917,15 @@ var _ = SIGDescribe("Garbage collector", func() {
framework
.
Failf
(
"failed to delete CustomResourceDefinition: %v"
,
err
)
}
}()
client
,
err
:=
apiextensionstestserver
.
CreateNewCustomResourceDefinition
(
definition
,
apiExtensionClient
,
f
.
ClientPool
)
err
=
apiextensionstestserver
.
CreateNewCustomResourceDefinition
(
definition
,
apiExtensionClient
,
f
.
DynamicClient
)
if
err
!=
nil
{
framework
.
Failf
(
"failed to create CustomResourceDefinition: %v"
,
err
)
}
// Get a client for the custom resource.
resourceClient
:=
client
.
Resource
(
&
metav1
.
APIResource
{
Name
:
definition
.
Spec
.
Names
.
Plural
,
Namespaced
:
false
,
},
api
.
NamespaceNone
)
gvr
:=
schema
.
GroupVersionResource
{
Group
:
definition
.
Spec
.
Group
,
Version
:
definition
.
Spec
.
Version
,
Resource
:
definition
.
Spec
.
Names
.
Plural
}
resourceClient
:=
f
.
DynamicClient
.
ClusterResource
(
gvr
)
apiVersion
:=
definition
.
Spec
.
Group
+
"/"
+
definition
.
Spec
.
Version
// Create a custom owner resource.
...
...
@@ -1001,7 +999,7 @@ var _ = SIGDescribe("Garbage collector", func() {
})
It
(
"should delete jobs and pods created by cronjob"
,
func
()
{
framework
.
SkipIfMissingResource
(
f
.
ClientPool
,
CronJobGroupVersionResource
,
f
.
Namespace
.
Name
)
framework
.
SkipIfMissingResource
(
f
.
DynamicClient
,
CronJobGroupVersionResource
,
f
.
Namespace
.
Name
)
By
(
"Create the cronjob"
)
cronJob
:=
newCronJob
(
"simple"
,
"*/1 * * * ?"
)
...
...
test/e2e/apimachinery/generated_clientset.go
View file @
39332449
...
...
@@ -264,7 +264,7 @@ var _ = SIGDescribe("Generated clientset", func() {
f
:=
framework
.
NewDefaultFramework
(
"clientset"
)
BeforeEach
(
func
()
{
framework
.
SkipIfMissingResource
(
f
.
ClientPool
,
CronJobGroupVersionResource
,
f
.
Namespace
.
Name
)
framework
.
SkipIfMissingResource
(
f
.
DynamicClient
,
CronJobGroupVersionResource
,
f
.
Namespace
.
Name
)
})
It
(
"should create v1beta1 cronJobs, delete cronJobs, watch cronJobs"
,
func
()
{
...
...
test/e2e/apimachinery/webhook.go
View file @
39332449
...
...
@@ -1081,7 +1081,7 @@ func registerMutatingWebhookForCustomResource(f *framework.Framework, context *c
return
func
()
{
client
.
AdmissionregistrationV1beta1
()
.
MutatingWebhookConfigurations
()
.
Delete
(
configName
,
nil
)
}
}
func
testCustomResourceWebhook
(
f
*
framework
.
Framework
,
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
customResourceClient
dynamic
.
ResourceInterface
)
{
func
testCustomResourceWebhook
(
f
*
framework
.
Framework
,
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
customResourceClient
dynamic
.
Dynamic
ResourceInterface
)
{
By
(
"Creating a custom resource that should be denied by the webhook"
)
crInstance
:=
&
unstructured
.
Unstructured
{
Object
:
map
[
string
]
interface
{}{
...
...
@@ -1104,7 +1104,7 @@ func testCustomResourceWebhook(f *framework.Framework, crd *apiextensionsv1beta1
}
}
func
testMutatingCustomResourceWebhook
(
f
*
framework
.
Framework
,
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
customResourceClient
dynamic
.
ResourceInterface
)
{
func
testMutatingCustomResourceWebhook
(
f
*
framework
.
Framework
,
crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
customResourceClient
dynamic
.
Dynamic
ResourceInterface
)
{
By
(
"Creating a custom resource that should be mutated by the webhook"
)
cr
:=
&
unstructured
.
Unstructured
{
Object
:
map
[
string
]
interface
{}{
...
...
test/e2e/apps/cronjob.go
View file @
39332449
...
...
@@ -51,7 +51,7 @@ var _ = SIGDescribe("CronJob", func() {
successCommand
:=
[]
string
{
"/bin/true"
}
BeforeEach
(
func
()
{
framework
.
SkipIfMissingResource
(
f
.
ClientPool
,
CronJobGroupVersionResourceBeta
,
f
.
Namespace
.
Name
)
framework
.
SkipIfMissingResource
(
f
.
DynamicClient
,
CronJobGroupVersionResourceBeta
,
f
.
Namespace
.
Name
)
})
// multiple jobs running at once
...
...
test/e2e/auth/audit.go
View file @
39332449
...
...
@@ -619,7 +619,7 @@ var _ = SIGDescribe("Advanced Audit", func() {
// Create and delete custom resource definition.
{
func
()
{
_
,
err
=
testserver
.
CreateNewCustomResourceDefinition
(
crd
,
apiExtensionClient
,
f
.
ClientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinition
(
crd
,
apiExtensionClient
,
f
.
DynamicClient
)
framework
.
ExpectNoError
(
err
,
"failed to create custom resource definition"
)
testserver
.
DeleteCustomResourceDefinition
(
crd
,
apiExtensionClient
)
},
...
...
test/e2e/framework/BUILD
View file @
39332449
...
...
@@ -119,7 +119,6 @@ go_library(
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/fields:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
...
...
test/e2e/framework/crd_util.go
View file @
39332449
...
...
@@ -23,6 +23,7 @@ import (
crdclientset
"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/apiextensions-apiserver/test/integration/testserver"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/dynamic"
)
...
...
@@ -37,7 +38,7 @@ type TestCrd struct {
ApiVersion
string
ApiExtensionClient
*
crdclientset
.
Clientset
Crd
*
apiextensionsv1beta1
.
CustomResourceDefinition
DynamicClient
dynamic
.
ResourceInterface
DynamicClient
dynamic
.
Dynamic
ResourceInterface
CleanUp
CleanCrdFn
}
...
...
@@ -66,18 +67,23 @@ func CreateTestCRD(f *Framework) (*TestCrd, error) {
Failf
(
"failed to initialize apiExtensionClient: %v"
,
err
)
return
nil
,
err
}
dynamicClient
,
err
:=
dynamic
.
NewForConfig
(
config
)
if
err
!=
nil
{
Failf
(
"failed to initialize dynamic client: %v"
,
err
)
return
nil
,
err
}
crd
:=
newCRDForTest
(
testcrd
)
//create CRD and waits for the resource to be recognized and available.
dynamicClient
,
err
:=
testserver
.
CreateNewCustomResourceDefinitionWatchUnsafe
(
crd
,
apiExtensionClient
,
f
.
ClientPool
)
err
=
testserver
.
CreateNewCustomResourceDefinitionWatchUnsafe
(
crd
,
apiExtensionClient
)
if
err
!=
nil
{
Failf
(
"failed to create CustomResourceDefinition: %v"
,
err
)
return
nil
,
err
}
resourceClient
:=
dynamicClient
.
Resource
(
&
metav1
.
APIResource
{
Name
:
crd
.
Spec
.
Names
.
Plural
,
Namespaced
:
true
,
},
f
.
Namespace
.
Name
)
gvr
:=
schema
.
GroupVersionResource
{
Group
:
crd
.
Spec
.
Group
,
Version
:
crd
.
Spec
.
Version
,
Resource
:
crd
.
Spec
.
Names
.
Plural
}
resourceClient
:=
dynamicClient
.
NamespacedResource
(
gvr
,
f
.
Namespace
.
Name
)
testcrd
.
ApiExtensionClient
=
apiExtensionClient
testcrd
.
Crd
=
crd
...
...
test/e2e/framework/framework.go
View file @
39332449
...
...
@@ -70,7 +70,7 @@ type Framework struct {
InternalClientset
*
internalclientset
.
Clientset
AggregatorClient
*
aggregatorclient
.
Clientset
ClientPool
dynamic
.
ClientPool
DynamicClient
dynamic
.
DynamicInterface
ScalesGetter
scaleclient
.
ScalesGetter
...
...
@@ -167,7 +167,8 @@ func (f *Framework) BeforeEach() {
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
f
.
AggregatorClient
,
err
=
aggregatorclient
.
NewForConfig
(
config
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
f
.
ClientPool
=
dynamic
.
NewClientPool
(
config
,
legacyscheme
.
Registry
.
RESTMapper
(),
dynamic
.
LegacyAPIPathResolverFunc
)
f
.
DynamicClient
,
err
=
dynamic
.
NewForConfig
(
config
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
// create scales getter, set GroupVersion and NegotiatedSerializer to default values
// as they are required when creating a REST client.
...
...
@@ -288,7 +289,7 @@ func (f *Framework) AfterEach() {
if
f
.
NamespaceDeletionTimeout
!=
0
{
timeout
=
f
.
NamespaceDeletionTimeout
}
if
err
:=
deleteNS
(
f
.
ClientSet
,
f
.
ClientPool
,
ns
.
Name
,
timeout
);
err
!=
nil
{
if
err
:=
deleteNS
(
f
.
ClientSet
,
f
.
DynamicClient
,
ns
.
Name
,
timeout
);
err
!=
nil
{
if
!
apierrors
.
IsNotFound
(
err
)
{
nsDeletionErrors
[
ns
.
Name
]
=
err
}
else
{
...
...
test/e2e/framework/util.go
View file @
39332449
...
...
@@ -56,7 +56,6 @@ import (
extensions
"k8s.io/api/extensions/v1beta1"
apierrs
"k8s.io/apimachinery/pkg/api/errors"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime"
...
...
@@ -508,13 +507,9 @@ func SkipUnlessServerVersionGTE(v *utilversion.Version, c discovery.ServerVersio
}
}
func
SkipIfMissingResource
(
clientPool
dynamic
.
ClientPool
,
gvr
schema
.
GroupVersionResource
,
namespace
string
)
{
dynamicClient
,
err
:=
clientPool
.
ClientForGroupVersionResource
(
gvr
)
if
err
!=
nil
{
Failf
(
"Unexpected error getting dynamic client for %v: %v"
,
gvr
.
GroupVersion
(),
err
)
}
apiResource
:=
metav1
.
APIResource
{
Name
:
gvr
.
Resource
,
Namespaced
:
true
}
_
,
err
=
dynamicClient
.
Resource
(
&
apiResource
,
namespace
)
.
List
(
metav1
.
ListOptions
{})
func
SkipIfMissingResource
(
dynamicClient
dynamic
.
DynamicInterface
,
gvr
schema
.
GroupVersionResource
,
namespace
string
)
{
resourceClient
:=
dynamicClient
.
NamespacedResource
(
gvr
,
namespace
)
_
,
err
:=
resourceClient
.
List
(
metav1
.
ListOptions
{})
if
err
!=
nil
{
// not all resources support list, so we ignore those
if
apierrs
.
IsMethodNotSupported
(
err
)
||
apierrs
.
IsNotFound
(
err
)
||
apierrs
.
IsForbidden
(
err
)
{
...
...
@@ -1092,7 +1087,7 @@ func CheckTestingNSDeletedExcept(c clientset.Interface, skip string) error {
// deleteNS deletes the provided namespace, waits for it to be completely deleted, and then checks
// whether there are any pods remaining in a non-terminating state.
func
deleteNS
(
c
clientset
.
Interface
,
clientPool
dynamic
.
ClientPool
,
namespace
string
,
timeout
time
.
Duration
)
error
{
func
deleteNS
(
c
clientset
.
Interface
,
dynamicClient
dynamic
.
DynamicInterface
,
namespace
string
,
timeout
time
.
Duration
)
error
{
startTime
:=
time
.
Now
()
if
err
:=
c
.
CoreV1
()
.
Namespaces
()
.
Delete
(
namespace
,
nil
);
err
!=
nil
{
return
err
...
...
@@ -1111,7 +1106,7 @@ func deleteNS(c clientset.Interface, clientPool dynamic.ClientPool, namespace st
})
// verify there is no more remaining content in the namespace
remainingContent
,
cerr
:=
hasRemainingContent
(
c
,
clientPool
,
namespace
)
remainingContent
,
cerr
:=
hasRemainingContent
(
c
,
dynamicClient
,
namespace
)
if
cerr
!=
nil
{
return
cerr
}
...
...
@@ -1236,10 +1231,10 @@ func isDynamicDiscoveryError(err error) bool {
}
// hasRemainingContent checks if there is remaining content in the namespace via API discovery
func
hasRemainingContent
(
c
clientset
.
Interface
,
clientPool
dynamic
.
ClientPool
,
namespace
string
)
(
bool
,
error
)
{
func
hasRemainingContent
(
c
clientset
.
Interface
,
dynamicClient
dynamic
.
DynamicInterface
,
namespace
string
)
(
bool
,
error
)
{
// some tests generate their own framework.Client rather than the default
// TODO: ensure every test call has a configured
clientPool
if
clientPool
==
nil
{
// TODO: ensure every test call has a configured
dynamicClient
if
dynamicClient
==
nil
{
return
false
,
nil
}
...
...
@@ -1263,7 +1258,7 @@ func hasRemainingContent(c clientset.Interface, clientPool dynamic.ClientPool, n
// dump how many of resource type is on the server in a log.
for
gvr
:=
range
groupVersionResources
{
// get a client for this group version...
dynamicClient
,
err
:=
clientPool
.
ClientForGroupVersionResource
(
gvr
)
dynamicClient
:=
dynamicClient
.
NamespacedResource
(
gvr
,
namespace
)
if
err
!=
nil
{
// not all resource types support list, so some errors here are normal depending on the resource type.
Logf
(
"namespace: %s, unable to get client - gvr: %v, error: %v"
,
namespace
,
gvr
,
err
)
...
...
@@ -1271,12 +1266,11 @@ func hasRemainingContent(c clientset.Interface, clientPool dynamic.ClientPool, n
}
// get the api resource
apiResource
:=
metav1
.
APIResource
{
Name
:
gvr
.
Resource
,
Namespaced
:
true
}
// TODO: temporary hack for https://github.com/kubernetes/kubernetes/issues/31798
if
ignoredResources
.
Has
(
apiResource
.
Name
)
{
if
ignoredResources
.
Has
(
gvr
.
Resource
)
{
Logf
(
"namespace: %s, resource: %s, ignored listing per whitelist"
,
namespace
,
apiResource
.
Name
)
continue
}
obj
,
err
:=
dynamicClient
.
Resource
(
&
apiResource
,
namespace
)
.
List
(
metav1
.
ListOptions
{})
unstructuredList
,
err
:=
dynamicClient
.
List
(
metav1
.
ListOptions
{})
if
err
!=
nil
{
// not all resources support list, so we ignore those
if
apierrs
.
IsMethodNotSupported
(
err
)
||
apierrs
.
IsNotFound
(
err
)
||
apierrs
.
IsForbidden
(
err
)
{
...
...
@@ -1288,10 +1282,6 @@ func hasRemainingContent(c clientset.Interface, clientPool dynamic.ClientPool, n
}
return
false
,
err
}
unstructuredList
,
ok
:=
obj
.
(
*
unstructured
.
UnstructuredList
)
if
!
ok
{
return
false
,
fmt
.
Errorf
(
"namespace: %s, resource: %s, expected *unstructured.UnstructuredList, got %#v"
,
namespace
,
apiResource
.
Name
,
obj
)
}
if
len
(
unstructuredList
.
Items
)
>
0
{
Logf
(
"namespace: %s, resource: %s, items remaining: %v"
,
namespace
,
apiResource
.
Name
,
len
(
unstructuredList
.
Items
))
contentRemaining
=
true
...
...
test/e2e/kubectl/kubectl.go
View file @
39332449
...
...
@@ -199,7 +199,7 @@ var _ = SIGDescribe("Kubectl alpha client", func() {
})
It
(
"should create a CronJob"
,
func
()
{
framework
.
SkipIfMissingResource
(
f
.
ClientPool
,
CronJobGroupVersionResourceAlpha
,
f
.
Namespace
.
Name
)
framework
.
SkipIfMissingResource
(
f
.
DynamicClient
,
CronJobGroupVersionResourceAlpha
,
f
.
Namespace
.
Name
)
schedule
:=
"*/5 * * * ?"
framework
.
RunKubectlOrDie
(
"run"
,
cjName
,
"--restart=OnFailure"
,
"--generator=cronjob/v2alpha1"
,
...
...
@@ -1414,7 +1414,7 @@ metadata:
})
It
(
"should create a CronJob"
,
func
()
{
framework
.
SkipIfMissingResource
(
f
.
ClientPool
,
CronJobGroupVersionResourceBeta
,
f
.
Namespace
.
Name
)
framework
.
SkipIfMissingResource
(
f
.
DynamicClient
,
CronJobGroupVersionResourceBeta
,
f
.
Namespace
.
Name
)
schedule
:=
"*/5 * * * ?"
framework
.
RunKubectlOrDie
(
"run"
,
cjName
,
"--restart=OnFailure"
,
"--generator=cronjob/v1beta1"
,
...
...
test/integration/garbagecollector/BUILD
View file @
39332449
...
...
@@ -23,6 +23,7 @@ go_test(
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library",
...
...
test/integration/garbagecollector/garbage_collector_test.go
View file @
39332449
...
...
@@ -32,6 +32,7 @@ import (
"k8s.io/apimachinery/pkg/api/meta"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apiserver/pkg/storage/names"
...
...
@@ -167,23 +168,23 @@ func link(t *testing.T, owner, dependent metav1.Object) {
func
createRandomCustomResourceDefinition
(
t
*
testing
.
T
,
apiExtensionClient
apiextensionsclientset
.
Interface
,
clientPool
dynamic
.
ClientPool
,
dynamicClient
dynamic
.
DynamicInterface
,
namespace
string
,
)
(
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
dynamic
.
ResourceInterface
)
{
)
(
*
apiextensionsv1beta1
.
CustomResourceDefinition
,
dynamic
.
Dynamic
ResourceInterface
)
{
// Create a random custom resource definition and ensure it's available for
// use.
definition
:=
apiextensionstestserver
.
NewRandomNameCustomResourceDefinition
(
apiextensionsv1beta1
.
NamespaceScoped
)
client
,
err
:=
apiextensionstestserver
.
CreateNewCustomResourceDefinition
(
definition
,
apiExtensionClient
,
clientPool
)
err
:=
apiextensionstestserver
.
CreateNewCustomResourceDefinition
(
definition
,
apiExtensionClient
,
dynamicClient
)
if
err
!=
nil
{
t
.
Fatalf
(
"failed to create CustomResourceDefinition: %v"
,
err
)
}
// Get a client for the custom resource.
resourceClient
:=
client
.
Resource
(
&
metav1
.
APIResource
{
Name
:
definition
.
Spec
.
Names
.
Plural
,
Namespaced
:
true
,
},
namespace
)
gvr
:=
schema
.
GroupVersionResource
{
Group
:
definition
.
Spec
.
Group
,
Version
:
definition
.
Spec
.
Version
,
Resource
:
definition
.
Spec
.
Names
.
Plural
}
resourceClient
:=
dynamicClient
.
NamespacedResource
(
gvr
,
namespace
)
return
definition
,
resourceClient
}
...
...
@@ -192,7 +193,7 @@ type testContext struct {
gc
*
garbagecollector
.
GarbageCollector
clientSet
clientset
.
Interface
apiExtensionClient
apiextensionsclientset
.
Interface
clientPool
dynamic
.
ClientPool
dynamicClient
dynamic
.
DynamicInterface
startGC
func
(
workers
int
)
// syncPeriod is how often the GC started with startGC will be resynced.
syncPeriod
time
.
Duration
...
...
@@ -226,6 +227,10 @@ func setupWithServer(t *testing.T, result *kubeapiservertesting.TestServer, work
config
.
ContentConfig
=
dynamic
.
ContentConfig
()
metaOnlyClientPool
:=
dynamic
.
NewClientPool
(
&
config
,
restMapper
,
dynamic
.
LegacyAPIPathResolverFunc
)
clientPool
:=
dynamic
.
NewClientPool
(
&
config
,
restMapper
,
dynamic
.
LegacyAPIPathResolverFunc
)
dynamicClient
,
err
:=
dynamic
.
NewForConfig
(
&
config
)
if
err
!=
nil
{
t
.
Fatalf
(
"failed to create dynamicClient: %v"
,
err
)
}
sharedInformers
:=
informers
.
NewSharedInformerFactory
(
clientSet
,
0
)
alwaysStarted
:=
make
(
chan
struct
{})
close
(
alwaysStarted
)
...
...
@@ -262,7 +267,7 @@ func setupWithServer(t *testing.T, result *kubeapiservertesting.TestServer, work
gc
:
gc
,
clientSet
:
clientSet
,
apiExtensionClient
:
apiExtensionClient
,
clientPool
:
clientPool
,
dynamicClient
:
dynamicClient
,
startGC
:
startGC
,
syncPeriod
:
syncPeriod
,
}
...
...
@@ -797,11 +802,11 @@ func TestCustomResourceCascadingDeletion(t *testing.T) {
ctx
:=
setup
(
t
,
5
)
defer
ctx
.
tearDown
()
clientSet
,
apiExtensionClient
,
clientPool
:=
ctx
.
clientSet
,
ctx
.
apiExtensionClient
,
ctx
.
clientPool
clientSet
,
apiExtensionClient
,
dynamicClient
:=
ctx
.
clientSet
,
ctx
.
apiExtensionClient
,
ctx
.
dynamicClient
ns
:=
createNamespaceOrDie
(
"crd-cascading"
,
clientSet
,
t
)
definition
,
resourceClient
:=
createRandomCustomResourceDefinition
(
t
,
apiExtensionClient
,
clientPool
,
ns
.
Name
)
definition
,
resourceClient
:=
createRandomCustomResourceDefinition
(
t
,
apiExtensionClient
,
dynamicClient
,
ns
.
Name
)
// Create a custom owner resource.
owner
:=
newCRDInstance
(
definition
,
ns
.
Name
,
names
.
SimpleNameGenerator
.
GenerateName
(
"owner"
))
...
...
@@ -857,13 +862,13 @@ func TestMixedRelationships(t *testing.T) {
ctx
:=
setup
(
t
,
5
)
defer
ctx
.
tearDown
()
clientSet
,
apiExtensionClient
,
clientPool
:=
ctx
.
clientSet
,
ctx
.
apiExtensionClient
,
ctx
.
clientPool
clientSet
,
apiExtensionClient
,
dynamicClient
:=
ctx
.
clientSet
,
ctx
.
apiExtensionClient
,
ctx
.
dynamicClient
ns
:=
createNamespaceOrDie
(
"crd-mixed"
,
clientSet
,
t
)
configMapClient
:=
clientSet
.
CoreV1
()
.
ConfigMaps
(
ns
.
Name
)
definition
,
resourceClient
:=
createRandomCustomResourceDefinition
(
t
,
apiExtensionClient
,
clientPool
,
ns
.
Name
)
definition
,
resourceClient
:=
createRandomCustomResourceDefinition
(
t
,
apiExtensionClient
,
dynamicClient
,
ns
.
Name
)
// Create a custom owner resource.
customOwner
,
err
:=
resourceClient
.
Create
(
newCRDInstance
(
definition
,
ns
.
Name
,
names
.
SimpleNameGenerator
.
GenerateName
(
"owner"
)))
...
...
@@ -955,13 +960,13 @@ func TestCRDDeletionCascading(t *testing.T) {
ctx
:=
setup
(
t
,
5
)
defer
ctx
.
tearDown
()
clientSet
,
apiExtensionClient
,
clientPool
:=
ctx
.
clientSet
,
ctx
.
apiExtensionClient
,
ctx
.
clientPool
clientSet
,
apiExtensionClient
,
dynamicClient
:=
ctx
.
clientSet
,
ctx
.
apiExtensionClient
,
ctx
.
dynamicClient
ns
:=
createNamespaceOrDie
(
"crd-mixed"
,
clientSet
,
t
)
configMapClient
:=
clientSet
.
CoreV1
()
.
ConfigMaps
(
ns
.
Name
)
definition
,
resourceClient
:=
createRandomCustomResourceDefinition
(
t
,
apiExtensionClient
,
clientPool
,
ns
.
Name
)
definition
,
resourceClient
:=
createRandomCustomResourceDefinition
(
t
,
apiExtensionClient
,
dynamicClient
,
ns
.
Name
)
// Create a custom owner resource.
owner
,
err
:=
resourceClient
.
Create
(
newCRDInstance
(
definition
,
ns
.
Name
,
names
.
SimpleNameGenerator
.
GenerateName
(
"owner"
)))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment