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
222988bd
Commit
222988bd
authored
Feb 22, 2019
by
Tim Allclair
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Migrate to internal node.k8s.io client
parent
820a1dc9
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
29 additions
and
123 deletions
+29
-123
BUILD
cmd/kubelet/app/BUILD
+0
-1
server.go
cmd/kubelet/app/server.go
+0
-10
BUILD
pkg/kubelet/BUILD
+0
-1
kubelet.go
pkg/kubelet/kubelet.go
+2
-4
BUILD
pkg/kubelet/runtimeclass/BUILD
+3
-4
runtimeclass_manager.go
pkg/kubelet/runtimeclass/runtimeclass_manager.go
+10
-22
runtimeclass_manager_test.go
pkg/kubelet/runtimeclass/runtimeclass_manager_test.go
+0
-1
BUILD
pkg/kubelet/runtimeclass/testing/BUILD
+3
-3
fake_manager.go
pkg/kubelet/runtimeclass/testing/fake_manager.go
+9
-11
BUILD
test/e2e/framework/BUILD
+0
-1
framework.go
test/e2e/framework/framework.go
+0
-3
BUILD
test/e2e/node/BUILD
+0
-1
runtimeclass.go
test/e2e/node/runtimeclass.go
+2
-61
No files found.
cmd/kubelet/app/BUILD
View file @
222988bd
...
@@ -137,7 +137,6 @@ go_library(
...
@@ -137,7 +137,6 @@ go_library(
"//staging/src/k8s.io/cloud-provider:go_default_library",
"//staging/src/k8s.io/cloud-provider:go_default_library",
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
"//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library",
"//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library",
"//staging/src/k8s.io/node-api/pkg/client/clientset/versioned:go_default_library",
"//vendor/github.com/coreos/go-systemd/daemon:go_default_library",
"//vendor/github.com/coreos/go-systemd/daemon:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library",
...
...
cmd/kubelet/app/server.go
View file @
222988bd
...
@@ -95,7 +95,6 @@ import (
...
@@ -95,7 +95,6 @@ import (
"k8s.io/kubernetes/pkg/version"
"k8s.io/kubernetes/pkg/version"
"k8s.io/kubernetes/pkg/version/verflag"
"k8s.io/kubernetes/pkg/version/verflag"
"k8s.io/kubernetes/pkg/volume/util/subpath"
"k8s.io/kubernetes/pkg/volume/util/subpath"
nodeapiclientset
"k8s.io/node-api/pkg/client/clientset/versioned"
"k8s.io/utils/exec"
"k8s.io/utils/exec"
"k8s.io/utils/nsenter"
"k8s.io/utils/nsenter"
)
)
...
@@ -592,15 +591,6 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
...
@@ -592,15 +591,6 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
if
err
!=
nil
{
if
err
!=
nil
{
return
fmt
.
Errorf
(
"failed to initialize kubelet heartbeat client: %v"
,
err
)
return
fmt
.
Errorf
(
"failed to initialize kubelet heartbeat client: %v"
,
err
)
}
}
// CRDs are JSON only, and client renegotiation for streaming is not correct as per #67803
crdClientConfig
:=
restclient
.
CopyConfig
(
clientConfig
)
crdClientConfig
.
ContentType
=
"application/json"
kubeDeps
.
NodeAPIClient
,
err
=
nodeapiclientset
.
NewForConfig
(
crdClientConfig
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"failed to initialize kubelet node-api client: %v"
,
err
)
}
}
}
// If the kubelet config controller is available, and dynamic config is enabled, start the config and status sync loops
// If the kubelet config controller is available, and dynamic config is enabled, start the config and status sync loops
...
...
pkg/kubelet/BUILD
View file @
222988bd
...
@@ -140,7 +140,6 @@ go_library(
...
@@ -140,7 +140,6 @@ go_library(
"//staging/src/k8s.io/client-go/util/certificate:go_default_library",
"//staging/src/k8s.io/client-go/util/certificate:go_default_library",
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
"//staging/src/k8s.io/cloud-provider:go_default_library",
"//staging/src/k8s.io/cloud-provider:go_default_library",
"//staging/src/k8s.io/node-api/pkg/client/clientset/versioned:go_default_library",
"//third_party/forked/golang/expansion:go_default_library",
"//third_party/forked/golang/expansion:go_default_library",
"//vendor/github.com/golang/groupcache/lru:go_default_library",
"//vendor/github.com/golang/groupcache/lru:go_default_library",
"//vendor/github.com/google/cadvisor/events:go_default_library",
"//vendor/github.com/google/cadvisor/events:go_default_library",
...
...
pkg/kubelet/kubelet.go
View file @
222988bd
...
@@ -113,7 +113,6 @@ import (
...
@@ -113,7 +113,6 @@ import (
"k8s.io/kubernetes/pkg/volume"
"k8s.io/kubernetes/pkg/volume"
"k8s.io/kubernetes/pkg/volume/csi"
"k8s.io/kubernetes/pkg/volume/csi"
"k8s.io/kubernetes/pkg/volume/util/subpath"
"k8s.io/kubernetes/pkg/volume/util/subpath"
nodeapiclientset
"k8s.io/node-api/pkg/client/clientset/versioned"
utilexec
"k8s.io/utils/exec"
utilexec
"k8s.io/utils/exec"
"k8s.io/utils/integer"
"k8s.io/utils/integer"
)
)
...
@@ -248,7 +247,6 @@ type Dependencies struct {
...
@@ -248,7 +247,6 @@ type Dependencies struct {
HeartbeatClient
clientset
.
Interface
HeartbeatClient
clientset
.
Interface
OnHeartbeatFailure
func
()
OnHeartbeatFailure
func
()
KubeClient
clientset
.
Interface
KubeClient
clientset
.
Interface
NodeAPIClient
nodeapiclientset
.
Interface
Mounter
mount
.
Interface
Mounter
mount
.
Interface
OOMAdjuster
*
oom
.
OOMAdjuster
OOMAdjuster
*
oom
.
OOMAdjuster
OSInterface
kubecontainer
.
OSInterface
OSInterface
kubecontainer
.
OSInterface
...
@@ -658,8 +656,8 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
...
@@ -658,8 +656,8 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
}
}
klet
.
runtimeService
=
runtimeService
klet
.
runtimeService
=
runtimeService
if
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
RuntimeClass
)
&&
kubeDeps
.
NodeAPIClient
!=
nil
{
if
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
RuntimeClass
)
{
klet
.
runtimeClassManager
=
runtimeclass
.
NewManager
(
kubeDeps
.
NodeAPI
Client
)
klet
.
runtimeClassManager
=
runtimeclass
.
NewManager
(
kubeDeps
.
Kube
Client
)
}
}
runtime
,
err
:=
kuberuntime
.
NewKubeGenericRuntimeManager
(
runtime
,
err
:=
kuberuntime
.
NewKubeGenericRuntimeManager
(
...
...
pkg/kubelet/runtimeclass/BUILD
View file @
222988bd
...
@@ -7,10 +7,9 @@ go_library(
...
@@ -7,10 +7,9 @@ go_library(
visibility = ["//visibility:public"],
visibility = ["//visibility:public"],
deps = [
deps = [
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/client-go/informers:go_default_library",
"//staging/src/k8s.io/node-api/pkg/client/clientset/versioned:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//staging/src/k8s.io/node-api/pkg/client/informers/externalversions:go_default_library",
"//vendor/k8s.io/client-go/listers/node/v1beta1:go_default_library",
"//staging/src/k8s.io/node-api/pkg/client/listers/node/v1alpha1:go_default_library",
],
],
)
)
...
...
pkg/kubelet/runtimeclass/runtimeclass_manager.go
View file @
222988bd
...
@@ -20,31 +20,23 @@ import (
...
@@ -20,31 +20,23 @@ import (
"fmt"
"fmt"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/informers"
nodeapiclient
"k8s.io/node-api/pkg/client/clientset/versioned"
clientset
"k8s.io/client-go/kubernetes"
nodeapiinformer
"k8s.io/node-api/pkg/client/informers/externalversions"
nodev1beta1
"k8s.io/client-go/listers/node/v1beta1"
nodev1alpha1
"k8s.io/node-api/pkg/client/listers/node/v1alpha1"
)
var
(
runtimeClassGVR
=
schema
.
GroupVersionResource
{
Group
:
"node.k8s.io"
,
Version
:
"v1alpha1"
,
Resource
:
"runtimeclasses"
,
}
)
)
// Manager caches RuntimeClass API objects, and provides accessors to the Kubelet.
// Manager caches RuntimeClass API objects, and provides accessors to the Kubelet.
type
Manager
struct
{
type
Manager
struct
{
informerFactory
nodeapiinformer
.
SharedInformerFactory
informerFactory
informers
.
SharedInformerFactory
lister
nodev1
alph
a1
.
RuntimeClassLister
lister
nodev1
bet
a1
.
RuntimeClassLister
}
}
// NewManager returns a new RuntimeClass Manager. Run must be called before the manager can be used.
// NewManager returns a new RuntimeClass Manager. Run must be called before the manager can be used.
func
NewManager
(
client
nodeapiclien
t
.
Interface
)
*
Manager
{
func
NewManager
(
client
clientse
t
.
Interface
)
*
Manager
{
const
resyncPeriod
=
0
const
resyncPeriod
=
0
factory
:=
nodeapiinformer
.
NewSharedInformerFactory
(
client
,
resyncPeriod
)
lister
:=
factory
.
Node
()
.
V1alpha1
()
.
RuntimeClasses
()
.
Lister
()
factory
:=
informers
.
NewSharedInformerFactory
(
client
,
resyncPeriod
)
lister
:=
factory
.
Node
()
.
V1beta1
()
.
RuntimeClasses
()
.
Lister
()
return
&
Manager
{
return
&
Manager
{
informerFactory
:
factory
,
informerFactory
:
factory
,
...
@@ -82,9 +74,5 @@ func (m *Manager) LookupRuntimeHandler(runtimeClassName *string) (string, error)
...
@@ -82,9 +74,5 @@ func (m *Manager) LookupRuntimeHandler(runtimeClassName *string) (string, error)
return
""
,
fmt
.
Errorf
(
"Failed to lookup RuntimeClass %s: %v"
,
name
,
err
)
return
""
,
fmt
.
Errorf
(
"Failed to lookup RuntimeClass %s: %v"
,
name
,
err
)
}
}
handler
:=
rc
.
Spec
.
RuntimeHandler
return
rc
.
Handler
,
nil
if
handler
==
nil
{
return
""
,
nil
}
return
*
handler
,
nil
}
}
pkg/kubelet/runtimeclass/runtimeclass_manager_test.go
View file @
222988bd
...
@@ -33,7 +33,6 @@ func TestLookupRuntimeHandler(t *testing.T) {
...
@@ -33,7 +33,6 @@ func TestLookupRuntimeHandler(t *testing.T) {
expected
string
expected
string
expectError
bool
expectError
bool
}{
}{
{
rcn
:
nil
,
expected
:
""
},
{
rcn
:
pointer
.
StringPtr
(
""
),
expected
:
""
},
{
rcn
:
pointer
.
StringPtr
(
""
),
expected
:
""
},
{
rcn
:
pointer
.
StringPtr
(
rctest
.
EmptyRuntimeClass
),
expected
:
""
},
{
rcn
:
pointer
.
StringPtr
(
rctest
.
EmptyRuntimeClass
),
expected
:
""
},
{
rcn
:
pointer
.
StringPtr
(
rctest
.
SandboxRuntimeClass
),
expected
:
"kata-containers"
},
{
rcn
:
pointer
.
StringPtr
(
rctest
.
SandboxRuntimeClass
),
expected
:
"kata-containers"
},
...
...
pkg/kubelet/runtimeclass/testing/BUILD
View file @
222988bd
...
@@ -7,10 +7,10 @@ go_library(
...
@@ -7,10 +7,10 @@ go_library(
visibility = ["//visibility:public"],
visibility = ["//visibility:public"],
deps = [
deps = [
"//pkg/kubelet/runtimeclass:go_default_library",
"//pkg/kubelet/runtimeclass:go_default_library",
"//staging/src/k8s.io/api/node/v1beta1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/node-api/pkg/apis/node/v1alpha1:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//staging/src/k8s.io/node-api/pkg/client/clientset/versioned:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
"//staging/src/k8s.io/node-api/pkg/client/clientset/versioned/fake:go_default_library",
],
],
)
)
...
...
pkg/kubelet/runtimeclass/testing/fake_manager.go
View file @
222988bd
...
@@ -17,11 +17,11 @@ limitations under the License.
...
@@ -17,11 +17,11 @@ limitations under the License.
package
testing
package
testing
import
(
import
(
nodev1beta1
"k8s.io/api/node/v1beta1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
clientset
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes/fake"
"k8s.io/kubernetes/pkg/kubelet/runtimeclass"
"k8s.io/kubernetes/pkg/kubelet/runtimeclass"
nodev1alpha1
"k8s.io/node-api/pkg/apis/node/v1alpha1"
nodeapiclient
"k8s.io/node-api/pkg/client/clientset/versioned"
nodeapifake
"k8s.io/node-api/pkg/client/clientset/versioned/fake"
)
)
const
(
const
(
...
@@ -34,10 +34,10 @@ const (
...
@@ -34,10 +34,10 @@ const (
EmptyRuntimeClass
=
"native"
EmptyRuntimeClass
=
"native"
)
)
// NewPopulatedClient creates a
node-api
client for use with the runtimeclass.Manager,
// NewPopulatedClient creates a
fake
client for use with the runtimeclass.Manager,
// and populates it with a few test RuntimeClass objects.
// and populates it with a few test RuntimeClass objects.
func
NewPopulatedClient
()
nodeapiclien
t
.
Interface
{
func
NewPopulatedClient
()
clientse
t
.
Interface
{
return
nodeapi
fake
.
NewSimpleClientset
(
return
fake
.
NewSimpleClientset
(
NewRuntimeClass
(
EmptyRuntimeClass
,
""
),
NewRuntimeClass
(
EmptyRuntimeClass
,
""
),
NewRuntimeClass
(
SandboxRuntimeClass
,
SandboxRuntimeHandler
),
NewRuntimeClass
(
SandboxRuntimeClass
,
SandboxRuntimeHandler
),
)
)
...
@@ -57,13 +57,11 @@ func StartManagerSync(m *runtimeclass.Manager) func() {
...
@@ -57,13 +57,11 @@ func StartManagerSync(m *runtimeclass.Manager) func() {
// NewRuntimeClass is a helper to generate a RuntimeClass resource with
// NewRuntimeClass is a helper to generate a RuntimeClass resource with
// the given name & handler.
// the given name & handler.
func
NewRuntimeClass
(
name
,
handler
string
)
*
nodev1
alph
a1
.
RuntimeClass
{
func
NewRuntimeClass
(
name
,
handler
string
)
*
nodev1
bet
a1
.
RuntimeClass
{
return
&
nodev1
alph
a1
.
RuntimeClass
{
return
&
nodev1
bet
a1
.
RuntimeClass
{
ObjectMeta
:
metav1
.
ObjectMeta
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
name
,
Name
:
name
,
},
},
Spec
:
nodev1alpha1
.
RuntimeClassSpec
{
Handler
:
handler
,
RuntimeHandler
:
&
handler
,
},
}
}
}
}
test/e2e/framework/BUILD
View file @
222988bd
...
@@ -127,7 +127,6 @@ go_library(
...
@@ -127,7 +127,6 @@ go_library(
"//staging/src/k8s.io/client-go/util/retry:go_default_library",
"//staging/src/k8s.io/client-go/util/retry:go_default_library",
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
"//staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset:go_default_library",
"//staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset:go_default_library",
"//staging/src/k8s.io/node-api/pkg/client/clientset/versioned:go_default_library",
"//test/e2e/framework/ginkgowrapper:go_default_library",
"//test/e2e/framework/ginkgowrapper:go_default_library",
"//test/e2e/framework/metrics:go_default_library",
"//test/e2e/framework/metrics:go_default_library",
"//test/e2e/framework/testfiles:go_default_library",
"//test/e2e/framework/testfiles:go_default_library",
...
...
test/e2e/framework/framework.go
View file @
222988bd
...
@@ -51,7 +51,6 @@ import (
...
@@ -51,7 +51,6 @@ import (
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/test/e2e/framework/metrics"
"k8s.io/kubernetes/test/e2e/framework/metrics"
testutils
"k8s.io/kubernetes/test/utils"
testutils
"k8s.io/kubernetes/test/utils"
nodeapiclient
"k8s.io/node-api/pkg/client/clientset/versioned"
.
"github.com/onsi/ginkgo"
.
"github.com/onsi/ginkgo"
.
"github.com/onsi/gomega"
.
"github.com/onsi/gomega"
...
@@ -77,7 +76,6 @@ type Framework struct {
...
@@ -77,7 +76,6 @@ type Framework struct {
ClientSet
clientset
.
Interface
ClientSet
clientset
.
Interface
KubemarkExternalClusterClientSet
clientset
.
Interface
KubemarkExternalClusterClientSet
clientset
.
Interface
APIExtensionsClientSet
apiextensionsclient
.
Interface
APIExtensionsClientSet
apiextensionsclient
.
Interface
NodeAPIClientSet
nodeapiclient
.
Interface
InternalClientset
*
internalclientset
.
Clientset
InternalClientset
*
internalclientset
.
Clientset
AggregatorClient
*
aggregatorclient
.
Clientset
AggregatorClient
*
aggregatorclient
.
Clientset
...
@@ -195,7 +193,6 @@ func (f *Framework) BeforeEach() {
...
@@ -195,7 +193,6 @@ func (f *Framework) BeforeEach() {
// node.k8s.io is based on CRD, which is served only as JSON
// node.k8s.io is based on CRD, which is served only as JSON
jsonConfig
:=
config
jsonConfig
:=
config
jsonConfig
.
ContentType
=
"application/json"
jsonConfig
.
ContentType
=
"application/json"
f
.
NodeAPIClientSet
,
err
=
nodeapiclient
.
NewForConfig
(
jsonConfig
)
ExpectNoError
(
err
)
ExpectNoError
(
err
)
// create scales getter, set GroupVersion and NegotiatedSerializer to default values
// create scales getter, set GroupVersion and NegotiatedSerializer to default values
...
...
test/e2e/node/BUILD
View file @
222988bd
...
@@ -34,7 +34,6 @@ go_library(
...
@@ -34,7 +34,6 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
...
...
test/e2e/node/runtimeclass.go
View file @
222988bd
...
@@ -24,7 +24,6 @@ import (
...
@@ -24,7 +24,6 @@ import (
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/errors"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/kubernetes/pkg/kubelet/events"
"k8s.io/kubernetes/pkg/kubelet/events"
runtimeclasstest
"k8s.io/kubernetes/pkg/kubelet/runtimeclass/testing"
runtimeclasstest
"k8s.io/kubernetes/pkg/kubelet/runtimeclass/testing"
...
@@ -35,16 +34,6 @@ import (
...
@@ -35,16 +34,6 @@ import (
.
"github.com/onsi/ginkgo"
.
"github.com/onsi/ginkgo"
)
)
const
runtimeClassCRDName
=
"runtimeclasses.node.k8s.io"
var
(
runtimeClassGVR
=
schema
.
GroupVersionResource
{
Group
:
"node.k8s.io"
,
Version
:
"v1alpha1"
,
Resource
:
"runtimeclasses"
,
}
)
var
_
=
SIGDescribe
(
"RuntimeClass [Feature:RuntimeClass]"
,
func
()
{
var
_
=
SIGDescribe
(
"RuntimeClass [Feature:RuntimeClass]"
,
func
()
{
f
:=
framework
.
NewDefaultFramework
(
"runtimeclass"
)
f
:=
framework
.
NewDefaultFramework
(
"runtimeclass"
)
...
@@ -69,7 +58,7 @@ var _ = SIGDescribe("RuntimeClass [Feature:RuntimeClass]", func() {
...
@@ -69,7 +58,7 @@ var _ = SIGDescribe("RuntimeClass [Feature:RuntimeClass]", func() {
It
(
"should reject a Pod requesting a deleted RuntimeClass"
,
func
()
{
It
(
"should reject a Pod requesting a deleted RuntimeClass"
,
func
()
{
rcName
:=
createRuntimeClass
(
f
,
"delete-me"
,
""
)
rcName
:=
createRuntimeClass
(
f
,
"delete-me"
,
""
)
rcClient
:=
f
.
NodeAPIClientSet
.
NodeV1alph
a1
()
.
RuntimeClasses
()
rcClient
:=
f
.
ClientSet
.
NodeV1bet
a1
()
.
RuntimeClasses
()
By
(
"Deleting RuntimeClass "
+
rcName
,
func
()
{
By
(
"Deleting RuntimeClass "
+
rcName
,
func
()
{
err
:=
rcClient
.
Delete
(
rcName
,
nil
)
err
:=
rcClient
.
Delete
(
rcName
,
nil
)
...
@@ -92,54 +81,6 @@ var _ = SIGDescribe("RuntimeClass [Feature:RuntimeClass]", func() {
...
@@ -92,54 +81,6 @@ var _ = SIGDescribe("RuntimeClass [Feature:RuntimeClass]", func() {
expectSandboxFailureEvent
(
f
,
pod
,
fmt
.
Sprintf
(
"
\"
%s
\"
not found"
,
rcName
))
expectSandboxFailureEvent
(
f
,
pod
,
fmt
.
Sprintf
(
"
\"
%s
\"
not found"
,
rcName
))
})
})
It
(
"should recover when the RuntimeClass CRD is deleted [Slow]"
,
func
()
{
By
(
"Deleting the RuntimeClass CRD"
,
func
()
{
crds
:=
f
.
APIExtensionsClientSet
.
ApiextensionsV1beta1
()
.
CustomResourceDefinitions
()
runtimeClassCRD
,
err
:=
crds
.
Get
(
runtimeClassCRDName
,
metav1
.
GetOptions
{})
framework
.
ExpectNoError
(
err
,
"failed to get RuntimeClass CRD %s"
,
runtimeClassCRDName
)
runtimeClassCRDUID
:=
runtimeClassCRD
.
GetUID
()
err
=
crds
.
Delete
(
runtimeClassCRDName
,
nil
)
framework
.
ExpectNoError
(
err
,
"failed to delete RuntimeClass CRD %s"
,
runtimeClassCRDName
)
By
(
"Waiting for the CRD to disappear"
)
framework
.
ExpectNoError
(
wait
.
PollImmediate
(
framework
.
Poll
,
time
.
Minute
,
func
()
(
bool
,
error
)
{
crd
,
err
:=
crds
.
Get
(
runtimeClassCRDName
,
metav1
.
GetOptions
{})
if
errors
.
IsNotFound
(
err
)
{
return
true
,
nil
// done
}
if
err
!=
nil
{
return
true
,
err
// stop wait with error
}
// If the UID changed, that means the addon manager has already recreated it.
return
crd
.
GetUID
()
!=
runtimeClassCRDUID
,
nil
}))
By
(
"Waiting for the CRD to be recreated"
)
framework
.
ExpectNoError
(
wait
.
PollImmediate
(
framework
.
Poll
,
5
*
time
.
Minute
,
func
()
(
bool
,
error
)
{
crd
,
err
:=
crds
.
Get
(
runtimeClassCRDName
,
metav1
.
GetOptions
{})
if
errors
.
IsNotFound
(
err
)
{
return
false
,
nil
// still not recreated
}
if
err
!=
nil
{
return
true
,
err
// stop wait with error
}
if
crd
.
GetUID
()
==
runtimeClassCRDUID
{
return
true
,
fmt
.
Errorf
(
"RuntimeClass CRD never deleted"
)
// this shouldn't happen
}
return
true
,
nil
}))
})
rcName
:=
createRuntimeClass
(
f
,
"valid"
,
""
)
pod
:=
createRuntimeClassPod
(
f
,
rcName
)
// Before the pod can be run, the RuntimeClass informer must time out, by which time the Kubelet
// will probably be in a backoff state, so the pod can take a long time to start.
framework
.
ExpectNoError
(
framework
.
WaitForPodSuccessInNamespaceSlow
(
f
.
ClientSet
,
pod
.
Name
,
f
.
Namespace
.
Name
))
})
// TODO(tallclair): Test an actual configured non-default runtimeHandler.
// TODO(tallclair): Test an actual configured non-default runtimeHandler.
})
})
...
@@ -148,7 +89,7 @@ var _ = SIGDescribe("RuntimeClass [Feature:RuntimeClass]", func() {
...
@@ -148,7 +89,7 @@ var _ = SIGDescribe("RuntimeClass [Feature:RuntimeClass]", func() {
func
createRuntimeClass
(
f
*
framework
.
Framework
,
name
,
handler
string
)
string
{
func
createRuntimeClass
(
f
*
framework
.
Framework
,
name
,
handler
string
)
string
{
uniqueName
:=
fmt
.
Sprintf
(
"%s-%s"
,
f
.
Namespace
.
Name
,
name
)
uniqueName
:=
fmt
.
Sprintf
(
"%s-%s"
,
f
.
Namespace
.
Name
,
name
)
rc
:=
runtimeclasstest
.
NewRuntimeClass
(
uniqueName
,
handler
)
rc
:=
runtimeclasstest
.
NewRuntimeClass
(
uniqueName
,
handler
)
rc
,
err
:=
f
.
NodeAPIClientSet
.
NodeV1alph
a1
()
.
RuntimeClasses
()
.
Create
(
rc
)
rc
,
err
:=
f
.
ClientSet
.
NodeV1bet
a1
()
.
RuntimeClasses
()
.
Create
(
rc
)
framework
.
ExpectNoError
(
err
,
"failed to create RuntimeClass resource"
)
framework
.
ExpectNoError
(
err
,
"failed to create RuntimeClass resource"
)
return
rc
.
GetName
()
return
rc
.
GetName
()
}
}
...
...
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