mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 16:29:21 +00:00
Merge pull request #54533 from mengqiy/kubectl_scheme
Automatic merge from submit-queue (batch tested with PRs 54533, 54777, 54763, 54806, 54703). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Create kubectl's own instance of Scheme and Registry Create kubectl's own instance of Registry and Scheme. Switch most command that doesn't depend on internal types to use kubectl's own scheme and register. There are some hack of registering the internal types in some of unit test now, they should be gone after switch to the external type. Switch kubectl's factory code to use kubectl's scheme will create a lot of ripples. I don't want make this PR a super giant PR, so I will do it in a followup PR. Partially addressed #48564. Copy the summary from https://github.com/kubernetes/kubernetes/pull/54533#issuecomment-340522302: - creates pkg/kubectl/scheme (install.go and scheme.go) with deps on properly vendored k8s.io packages. - deletes about 80% percent of dependence on pkg/api/legacyscheme - replaces direct dependence from pkg/kubectl on pkg/apis/rbac to a vendor style dependence on k8s.io/api/rbac and removes dependencies on rbac paths containing internalversion - replaces almost 50% of direct dependence on pkg/api with (properly vendored) k8s.io/api/core/v1 - deletes all of dependence on pkg/apis/policy and k8s.io/api/policy/v1beta1 ```release-note NONE ``` /assign @monopole @apelisse cc: @pwittrock
This commit is contained in:
commit
812f1a3edb
@ -42,7 +42,6 @@ go_test(
|
|||||||
"//pkg/apis/apps:go_default_library",
|
"//pkg/apis/apps:go_default_library",
|
||||||
"//pkg/apis/batch:go_default_library",
|
"//pkg/apis/batch:go_default_library",
|
||||||
"//pkg/apis/extensions:go_default_library",
|
"//pkg/apis/extensions:go_default_library",
|
||||||
"//pkg/apis/rbac:go_default_library",
|
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/fake:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/fake:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library",
|
||||||
@ -58,6 +57,7 @@ go_test(
|
|||||||
"//vendor/k8s.io/api/batch/v2alpha1:go_default_library",
|
"//vendor/k8s.io/api/batch/v2alpha1:go_default_library",
|
||||||
"//vendor/k8s.io/api/core/v1:go_default_library",
|
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||||
"//vendor/k8s.io/api/extensions/v1beta1:go_default_library",
|
"//vendor/k8s.io/api/extensions/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/rbac/v1:go_default_library",
|
||||||
"//vendor/k8s.io/api/rbac/v1beta1:go_default_library",
|
"//vendor/k8s.io/api/rbac/v1beta1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
@ -121,8 +121,6 @@ go_library(
|
|||||||
"//pkg/apis/apps:go_default_library",
|
"//pkg/apis/apps:go_default_library",
|
||||||
"//pkg/apis/batch:go_default_library",
|
"//pkg/apis/batch:go_default_library",
|
||||||
"//pkg/apis/extensions:go_default_library",
|
"//pkg/apis/extensions:go_default_library",
|
||||||
"//pkg/apis/policy:go_default_library",
|
|
||||||
"//pkg/apis/rbac:go_default_library",
|
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/apps/internalversion:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/typed/apps/internalversion:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library",
|
||||||
@ -149,6 +147,8 @@ go_library(
|
|||||||
"//vendor/k8s.io/api/batch/v2alpha1:go_default_library",
|
"//vendor/k8s.io/api/batch/v2alpha1:go_default_library",
|
||||||
"//vendor/k8s.io/api/core/v1:go_default_library",
|
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||||
"//vendor/k8s.io/api/extensions/v1beta1:go_default_library",
|
"//vendor/k8s.io/api/extensions/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/policy/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/rbac/v1:go_default_library",
|
||||||
"//vendor/k8s.io/api/rbac/v1beta1:go_default_library",
|
"//vendor/k8s.io/api/rbac/v1beta1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
||||||
@ -198,6 +198,7 @@ filegroup(
|
|||||||
"//pkg/kubectl/plugins:all-srcs",
|
"//pkg/kubectl/plugins:all-srcs",
|
||||||
"//pkg/kubectl/proxy:all-srcs",
|
"//pkg/kubectl/proxy:all-srcs",
|
||||||
"//pkg/kubectl/resource:all-srcs",
|
"//pkg/kubectl/resource:all-srcs",
|
||||||
|
"//pkg/kubectl/scheme:all-srcs",
|
||||||
"//pkg/kubectl/testing:all-srcs",
|
"//pkg/kubectl/testing:all-srcs",
|
||||||
"//pkg/kubectl/util:all-srcs",
|
"//pkg/kubectl/util:all-srcs",
|
||||||
"//pkg/kubectl/validation:all-srcs",
|
"//pkg/kubectl/validation:all-srcs",
|
||||||
|
@ -72,10 +72,8 @@ go_library(
|
|||||||
"//pkg/api/legacyscheme:go_default_library",
|
"//pkg/api/legacyscheme:go_default_library",
|
||||||
"//pkg/api/validation:go_default_library",
|
"//pkg/api/validation:go_default_library",
|
||||||
"//pkg/apis/certificates:go_default_library",
|
"//pkg/apis/certificates:go_default_library",
|
||||||
"//pkg/apis/rbac:go_default_library",
|
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion:go_default_library",
|
|
||||||
"//pkg/client/unversioned:go_default_library",
|
"//pkg/client/unversioned:go_default_library",
|
||||||
"//pkg/kubectl:go_default_library",
|
"//pkg/kubectl:go_default_library",
|
||||||
"//pkg/kubectl/apply/parse:go_default_library",
|
"//pkg/kubectl/apply/parse:go_default_library",
|
||||||
@ -93,6 +91,7 @@ go_library(
|
|||||||
"//pkg/kubectl/plugins:go_default_library",
|
"//pkg/kubectl/plugins:go_default_library",
|
||||||
"//pkg/kubectl/proxy:go_default_library",
|
"//pkg/kubectl/proxy:go_default_library",
|
||||||
"//pkg/kubectl/resource:go_default_library",
|
"//pkg/kubectl/resource:go_default_library",
|
||||||
|
"//pkg/kubectl/scheme:go_default_library",
|
||||||
"//pkg/kubectl/util:go_default_library",
|
"//pkg/kubectl/util:go_default_library",
|
||||||
"//pkg/kubectl/util/i18n:go_default_library",
|
"//pkg/kubectl/util/i18n:go_default_library",
|
||||||
"//pkg/kubectl/util/term:go_default_library",
|
"//pkg/kubectl/util/term:go_default_library",
|
||||||
@ -116,6 +115,7 @@ go_library(
|
|||||||
"//vendor/k8s.io/api/core/v1:go_default_library",
|
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||||
"//vendor/k8s.io/api/extensions/v1beta1:go_default_library",
|
"//vendor/k8s.io/api/extensions/v1beta1:go_default_library",
|
||||||
"//vendor/k8s.io/api/policy/v1beta1:go_default_library",
|
"//vendor/k8s.io/api/policy/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/rbac/v1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
@ -140,6 +140,7 @@ go_library(
|
|||||||
"//vendor/k8s.io/apimachinery/pkg/watch:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/watch:go_default_library",
|
||||||
"//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library",
|
"//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/kubernetes:go_default_library",
|
"//vendor/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
|
"//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/rest:go_default_library",
|
"//vendor/k8s.io/client-go/rest:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/tools/clientcmd:go_default_library",
|
"//vendor/k8s.io/client-go/tools/clientcmd:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/tools/portforward:go_default_library",
|
"//vendor/k8s.io/client-go/tools/portforward:go_default_library",
|
||||||
@ -205,15 +206,16 @@ go_test(
|
|||||||
"//pkg/api/ref:go_default_library",
|
"//pkg/api/ref:go_default_library",
|
||||||
"//pkg/api/testapi:go_default_library",
|
"//pkg/api/testapi:go_default_library",
|
||||||
"//pkg/api/testing:go_default_library",
|
"//pkg/api/testing:go_default_library",
|
||||||
|
"//pkg/api/v1:go_default_library",
|
||||||
"//pkg/apis/batch:go_default_library",
|
"//pkg/apis/batch:go_default_library",
|
||||||
"//pkg/apis/extensions:go_default_library",
|
"//pkg/apis/extensions:go_default_library",
|
||||||
"//pkg/apis/rbac:go_default_library",
|
|
||||||
"//pkg/kubectl:go_default_library",
|
"//pkg/kubectl:go_default_library",
|
||||||
"//pkg/kubectl/cmd/testing:go_default_library",
|
"//pkg/kubectl/cmd/testing:go_default_library",
|
||||||
"//pkg/kubectl/cmd/util:go_default_library",
|
"//pkg/kubectl/cmd/util:go_default_library",
|
||||||
"//pkg/kubectl/cmd/util/openapi:go_default_library",
|
"//pkg/kubectl/cmd/util/openapi:go_default_library",
|
||||||
"//pkg/kubectl/plugins:go_default_library",
|
"//pkg/kubectl/plugins:go_default_library",
|
||||||
"//pkg/kubectl/resource:go_default_library",
|
"//pkg/kubectl/resource:go_default_library",
|
||||||
|
"//pkg/kubectl/scheme:go_default_library",
|
||||||
"//pkg/kubectl/util/i18n:go_default_library",
|
"//pkg/kubectl/util/i18n:go_default_library",
|
||||||
"//pkg/kubectl/util/term:go_default_library",
|
"//pkg/kubectl/util/term:go_default_library",
|
||||||
"//pkg/printers:go_default_library",
|
"//pkg/printers:go_default_library",
|
||||||
@ -224,6 +226,7 @@ go_test(
|
|||||||
"//vendor/gopkg.in/yaml.v2:go_default_library",
|
"//vendor/gopkg.in/yaml.v2:go_default_library",
|
||||||
"//vendor/k8s.io/api/core/v1:go_default_library",
|
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||||
"//vendor/k8s.io/api/policy/v1beta1:go_default_library",
|
"//vendor/k8s.io/api/policy/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/rbac/v1:go_default_library",
|
||||||
"//vendor/k8s.io/api/rbac/v1beta1:go_default_library",
|
"//vendor/k8s.io/api/rbac/v1beta1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
|
@ -25,10 +25,9 @@ import (
|
|||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
restclient "k8s.io/client-go/rest"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -419,7 +418,7 @@ func TestAnnotateErrors(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
cmd := NewCmdAnnotate(f, buf)
|
cmd := NewCmdAnnotate(f, buf)
|
||||||
@ -452,7 +451,7 @@ func TestAnnotateObject(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.Method {
|
switch req.Method {
|
||||||
@ -479,7 +478,7 @@ func TestAnnotateObject(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
cmd := NewCmdAnnotate(f, buf)
|
cmd := NewCmdAnnotate(f, buf)
|
||||||
@ -503,7 +502,7 @@ func TestAnnotateObjectFromFile(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.Method {
|
switch req.Method {
|
||||||
@ -530,7 +529,7 @@ func TestAnnotateObjectFromFile(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
cmd := NewCmdAnnotate(f, buf)
|
cmd := NewCmdAnnotate(f, buf)
|
||||||
@ -552,7 +551,7 @@ func TestAnnotateObjectFromFile(t *testing.T) {
|
|||||||
func TestAnnotateLocal(t *testing.T) {
|
func TestAnnotateLocal(t *testing.T) {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req)
|
t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req)
|
||||||
@ -560,7 +559,7 @@ func TestAnnotateLocal(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
cmd := NewCmdAnnotate(f, buf)
|
cmd := NewCmdAnnotate(f, buf)
|
||||||
@ -585,7 +584,7 @@ func TestAnnotateMultipleObjects(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.Method {
|
switch req.Method {
|
||||||
@ -614,7 +613,7 @@ func TestAnnotateMultipleObjects(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
cmd := NewCmdAnnotate(f, buf)
|
cmd := NewCmdAnnotate(f, buf)
|
||||||
|
@ -38,12 +38,12 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -589,7 +589,7 @@ func (p *patcher) patchSimple(obj runtime.Object, modified []byte, source, names
|
|||||||
|
|
||||||
// Create the versioned struct from the type defined in the restmapping
|
// Create the versioned struct from the type defined in the restmapping
|
||||||
// (which is the API version we'll be submitting the patch to)
|
// (which is the API version we'll be submitting the patch to)
|
||||||
versionedObject, err := legacyscheme.Scheme.New(p.mapping.GroupVersionKind)
|
versionedObject, err := scheme.Scheme.New(p.mapping.GroupVersionKind)
|
||||||
var patchType types.PatchType
|
var patchType types.PatchType
|
||||||
var patch []byte
|
var patch []byte
|
||||||
createPatchErrFormat := "creating patch with:\noriginal:\n%s\nmodified:\n%s\ncurrent:\n%s\nfor:"
|
createPatchErrFormat := "creating patch with:\noriginal:\n%s\nmodified:\n%s\ncurrent:\n%s\nfor:"
|
||||||
|
@ -33,10 +33,8 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
@ -358,7 +356,6 @@ func TestApplyObjectWithoutAnnotation(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -403,7 +400,6 @@ func TestApplyObject(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -460,7 +456,6 @@ func TestApplyObjectOutput(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &printers.YAMLPrinter{}
|
tf.Printer = &printers.YAMLPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -505,7 +500,6 @@ func TestApplyRetry(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -559,7 +553,6 @@ func TestApplyNonExistObject(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -610,7 +603,6 @@ func testApplyMultipleObjects(t *testing.T, asList bool) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -688,7 +680,6 @@ func TestApplyNULLPreservation(t *testing.T) {
|
|||||||
|
|
||||||
f, tf, _, _ := cmdtesting.NewTestFactory()
|
f, tf, _, _ := cmdtesting.NewTestFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -757,7 +748,6 @@ func TestUnstructuredApply(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -821,7 +811,6 @@ func TestUnstructuredIdempotentApply(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -1035,7 +1024,6 @@ func TestForceApply(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: schema.GroupVersion{Version: "v1"},
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -1093,7 +1081,7 @@ func TestForceApply(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Client = tf.UnstructuredClient
|
tf.Client = tf.UnstructuredClient
|
||||||
tf.ClientConfig = &restclient.Config{}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
errBuf := bytes.NewBuffer([]byte{})
|
errBuf := bytes.NewBuffer([]byte{})
|
||||||
|
@ -53,9 +53,8 @@ go_test(
|
|||||||
importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/auth",
|
importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/auth",
|
||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api:go_default_library",
|
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
|
||||||
"//pkg/kubectl/cmd/testing:go_default_library",
|
"//pkg/kubectl/cmd/testing:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/rest:go_default_library",
|
"//vendor/k8s.io/client-go/rest:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/rest/fake:go_default_library",
|
"//vendor/k8s.io/client-go/rest/fake:go_default_library",
|
||||||
],
|
],
|
||||||
|
@ -24,10 +24,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -122,7 +121,7 @@ func TestRunAccessCheck(t *testing.T) {
|
|||||||
|
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Group: "", Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
expectPath := "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews"
|
expectPath := "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews"
|
||||||
@ -153,7 +152,7 @@ func TestRunAccessCheck(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"}}}
|
||||||
|
|
||||||
if err := test.o.Complete(f, test.args); err != nil {
|
if err := test.o.Complete(f, test.args); err != nil {
|
||||||
t.Errorf("%s: %v", test.name, err)
|
t.Errorf("%s: %v", test.name, err)
|
||||||
|
@ -37,15 +37,20 @@ import (
|
|||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
|
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
|
||||||
"k8s.io/kubernetes/pkg/util/strings"
|
"k8s.io/kubernetes/pkg/util/strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// This init should be removed after switching this command and its tests to user external types.
|
||||||
|
func init() {
|
||||||
|
api.AddToScheme(scheme.Scheme)
|
||||||
|
}
|
||||||
|
|
||||||
func initTestErrorHandler(t *testing.T) {
|
func initTestErrorHandler(t *testing.T) {
|
||||||
cmdutil.BehaviorOnFatal(func(str string, code int) {
|
cmdutil.BehaviorOnFatal(func(str string, code int) {
|
||||||
t.Errorf("Error running command (exit code %d): %s", code, str)
|
t.Errorf("Error running command (exit code %d): %s", code, str)
|
||||||
@ -62,9 +67,9 @@ func defaultClientConfig() *restclient.Config {
|
|||||||
return &restclient.Config{
|
return &restclient.Config{
|
||||||
APIPath: "/api",
|
APIPath: "/api",
|
||||||
ContentConfig: restclient.ContentConfig{
|
ContentConfig: restclient.ContentConfig{
|
||||||
NegotiatedSerializer: legacyscheme.Codecs,
|
NegotiatedSerializer: scheme.Codecs,
|
||||||
ContentType: runtime.ContentTypeJSON,
|
ContentType: runtime.ContentTypeJSON,
|
||||||
GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: &schema.GroupVersion{Version: "v1"},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -73,7 +78,7 @@ func defaultClientConfigForVersion(version *schema.GroupVersion) *restclient.Con
|
|||||||
return &restclient.Config{
|
return &restclient.Config{
|
||||||
APIPath: "/api",
|
APIPath: "/api",
|
||||||
ContentConfig: restclient.ContentConfig{
|
ContentConfig: restclient.ContentConfig{
|
||||||
NegotiatedSerializer: legacyscheme.Codecs,
|
NegotiatedSerializer: scheme.Codecs,
|
||||||
ContentType: runtime.ContentTypeJSON,
|
ContentType: runtime.ContentTypeJSON,
|
||||||
GroupVersion: version,
|
GroupVersion: version,
|
||||||
},
|
},
|
||||||
@ -163,7 +168,6 @@ func Example_printReplicationControllerWithNamespace() {
|
|||||||
printersinternal.AddHandlers(p)
|
printersinternal.AddHandlers(p)
|
||||||
tf.Printer = p
|
tf.Printer = p
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
}
|
}
|
||||||
@ -216,7 +220,6 @@ func Example_printMultiContainersReplicationControllerWithWide() {
|
|||||||
printersinternal.AddHandlers(p)
|
printersinternal.AddHandlers(p)
|
||||||
tf.Printer = p
|
tf.Printer = p
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
}
|
}
|
||||||
@ -270,7 +273,6 @@ func Example_printReplicationController() {
|
|||||||
printersinternal.AddHandlers(p)
|
printersinternal.AddHandlers(p)
|
||||||
tf.Printer = p
|
tf.Printer = p
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
}
|
}
|
||||||
@ -325,7 +327,6 @@ func Example_printPodWithWideFormat() {
|
|||||||
printersinternal.AddHandlers(p)
|
printersinternal.AddHandlers(p)
|
||||||
tf.Printer = p
|
tf.Printer = p
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
}
|
}
|
||||||
@ -368,7 +369,6 @@ func Example_printPodWithShowLabels() {
|
|||||||
printersinternal.AddHandlers(p)
|
printersinternal.AddHandlers(p)
|
||||||
tf.Printer = p
|
tf.Printer = p
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
}
|
}
|
||||||
@ -505,7 +505,6 @@ func Example_printPodHideTerminated() {
|
|||||||
printersinternal.AddHandlers(p)
|
printersinternal.AddHandlers(p)
|
||||||
tf.Printer = p
|
tf.Printer = p
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
}
|
}
|
||||||
@ -541,7 +540,6 @@ func Example_printPodShowAll() {
|
|||||||
printersinternal.AddHandlers(p)
|
printersinternal.AddHandlers(p)
|
||||||
tf.Printer = p
|
tf.Printer = p
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
}
|
}
|
||||||
@ -570,7 +568,6 @@ func Example_printServiceWithNamespacesAndLabels() {
|
|||||||
printersinternal.AddHandlers(p)
|
printersinternal.AddHandlers(p)
|
||||||
tf.Printer = p
|
tf.Printer = p
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: nil,
|
Client: nil,
|
||||||
}
|
}
|
||||||
|
@ -24,10 +24,10 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
|
|
||||||
@ -119,11 +119,11 @@ func outputVersion(cmd *cobra.Command, defaultVersion *schema.GroupVersion) (sch
|
|||||||
|
|
||||||
// Complete collects information required to run Convert command from command line.
|
// Complete collects information required to run Convert command from command line.
|
||||||
func (o *ConvertOptions) Complete(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) (err error) {
|
func (o *ConvertOptions) Complete(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) (err error) {
|
||||||
o.outputVersion, err = outputVersion(cmd, &legacyscheme.Registry.EnabledVersionsForGroup(api.GroupName)[0])
|
o.outputVersion, err = outputVersion(cmd, &scheme.Registry.EnabledVersionsForGroup(api.GroupName)[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if !legacyscheme.Registry.IsEnabledVersion(o.outputVersion) {
|
if !scheme.Registry.IsEnabledVersion(o.outputVersion) {
|
||||||
cmdutil.UsageErrorf(cmd, "'%s' is not a registered version.", o.outputVersion)
|
cmdutil.UsageErrorf(cmd, "'%s' is not a registered version.", o.outputVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,7 +208,7 @@ func (o *ConvertOptions) RunConvert() error {
|
|||||||
// and squashes the list's items into a single versioned runtime.Object.
|
// and squashes the list's items into a single versioned runtime.Object.
|
||||||
func objectListToVersionedObject(objects []runtime.Object, version schema.GroupVersion) (runtime.Object, error) {
|
func objectListToVersionedObject(objects []runtime.Object, version schema.GroupVersion) (runtime.Object, error) {
|
||||||
objectList := &api.List{Items: objects}
|
objectList := &api.List{Items: objects}
|
||||||
converted, err := tryConvert(legacyscheme.Scheme, objectList, version, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion)
|
converted, err := tryConvert(scheme.Scheme, objectList, version, scheme.Registry.GroupOrDie(api.GroupName).GroupVersion)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -230,7 +230,7 @@ func asVersionedObject(infos []*resource.Info, forceList bool, version schema.Gr
|
|||||||
object = objects[0]
|
object = objects[0]
|
||||||
} else {
|
} else {
|
||||||
object = &api.List{Items: objects}
|
object = &api.List{Items: objects}
|
||||||
converted, err := tryConvert(legacyscheme.Scheme, object, version, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion)
|
converted, err := tryConvert(scheme.Scheme, object, version, scheme.Registry.GroupOrDie(api.GroupName).GroupVersion)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -261,7 +261,7 @@ func asVersionedObjects(infos []*resource.Info, version schema.GroupVersion, enc
|
|||||||
// objects that are not part of api.Scheme must be converted to JSON
|
// objects that are not part of api.Scheme must be converted to JSON
|
||||||
// TODO: convert to map[string]interface{}, attach to runtime.Unknown?
|
// TODO: convert to map[string]interface{}, attach to runtime.Unknown?
|
||||||
if !version.Empty() {
|
if !version.Empty() {
|
||||||
if _, _, err := legacyscheme.Scheme.ObjectKinds(info.Object); runtime.IsNotRegisteredError(err) {
|
if _, _, err := scheme.Scheme.ObjectKinds(info.Object); runtime.IsNotRegisteredError(err) {
|
||||||
// TODO: ideally this would encode to version, but we don't expose multiple codecs here.
|
// TODO: ideally this would encode to version, but we don't expose multiple codecs here.
|
||||||
data, err := runtime.Encode(encoder, info.Object)
|
data, err := runtime.Encode(encoder, info.Object)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
rbacv1 "k8s.io/api/rbac/v1"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
||||||
@ -155,7 +155,7 @@ func (c *CreateClusterRoleOptions) Validate() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *CreateClusterRoleOptions) RunCreateRole() error {
|
func (c *CreateClusterRoleOptions) RunCreateRole() error {
|
||||||
clusterRole := &rbac.ClusterRole{}
|
clusterRole := &rbacv1.ClusterRole{}
|
||||||
clusterRole.Name = c.Name
|
clusterRole.Name = c.Name
|
||||||
rules, err := generateResourcePolicyRules(c.Mapper, c.Verbs, c.Resources, c.ResourceNames, c.NonResourceURLs)
|
rules, err := generateResourcePolicyRules(c.Mapper, c.Verbs, c.Resources, c.ResourceNames, c.NonResourceURLs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -22,10 +22,10 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
rbac "k8s.io/api/rbac/v1"
|
||||||
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -30,8 +30,6 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -78,7 +76,6 @@ func TestCreateClusterRoleBinding(t *testing.T) {
|
|||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &ClusterRoleBindingRESTClient{
|
tf.Client = &ClusterRoleBindingRESTClient{
|
||||||
RESTClient: &fake.RESTClient{
|
RESTClient: &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -131,7 +128,6 @@ type ClusterRoleBindingRESTClient struct {
|
|||||||
func (c *ClusterRoleBindingRESTClient) Post() *restclient.Request {
|
func (c *ClusterRoleBindingRESTClient) Post() *restclient.Request {
|
||||||
config := restclient.ContentConfig{
|
config := restclient.ContentConfig{
|
||||||
ContentType: runtime.ContentTypeJSON,
|
ContentType: runtime.ContentTypeJSON,
|
||||||
GroupVersion: &schema.GroupVersion{Group: "rbac.authorization.k8s.io", Version: "v1beta1"},
|
|
||||||
NegotiatedSerializer: c.NegotiatedSerializer,
|
NegotiatedSerializer: c.NegotiatedSerializer,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,19 +21,19 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateConfigMap(t *testing.T) {
|
func TestCreateConfigMap(t *testing.T) {
|
||||||
configMap := &api.ConfigMap{}
|
configMap := &v1.ConfigMap{}
|
||||||
configMap.Name = "my-configmap"
|
configMap.Name = "my-configmap"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Group: "", Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -26,8 +26,6 @@ import (
|
|||||||
|
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
@ -77,7 +75,6 @@ func TestCreateDeployment(t *testing.T) {
|
|||||||
depName := "jonny-dep"
|
depName := "jonny-dep"
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
return &http.Response{
|
return &http.Response{
|
||||||
@ -106,7 +103,6 @@ func TestCreateDeploymentNoImage(t *testing.T) {
|
|||||||
depName := "jonny-dep"
|
depName := "jonny-dep"
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
return &http.Response{
|
return &http.Response{
|
||||||
|
@ -21,19 +21,19 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateNamespace(t *testing.T) {
|
func TestCreateNamespace(t *testing.T) {
|
||||||
namespaceObject := &api.Namespace{}
|
namespaceObject := &v1.Namespace{}
|
||||||
namespaceObject.Name = "my-namespace"
|
namespaceObject.Name = "my-namespace"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -22,10 +22,9 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -33,7 +32,7 @@ func TestCreatePdb(t *testing.T) {
|
|||||||
pdbName := "my-pdb"
|
pdbName := "my-pdb"
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Group: "policy", Version: "v1beta1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
return &http.Response{
|
return &http.Response{
|
||||||
|
@ -21,19 +21,19 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateQuota(t *testing.T) {
|
func TestCreateQuota(t *testing.T) {
|
||||||
resourceQuotaObject := &api.ResourceQuota{}
|
resourceQuotaObject := &v1.ResourceQuota{}
|
||||||
resourceQuotaObject.Name = "my-quota"
|
resourceQuotaObject.Name = "my-quota"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -23,12 +23,12 @@ import (
|
|||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
rbacv1 "k8s.io/api/rbac/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
clientgorbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1"
|
||||||
internalversionrbac "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
||||||
@ -108,7 +108,7 @@ type CreateRoleOptions struct {
|
|||||||
DryRun bool
|
DryRun bool
|
||||||
OutputFormat string
|
OutputFormat string
|
||||||
Namespace string
|
Namespace string
|
||||||
Client internalversionrbac.RbacInterface
|
Client clientgorbacv1.RbacV1Interface
|
||||||
Mapper meta.RESTMapper
|
Mapper meta.RESTMapper
|
||||||
Out io.Writer
|
Out io.Writer
|
||||||
PrintObject func(obj runtime.Object) error
|
PrintObject func(obj runtime.Object) error
|
||||||
@ -206,11 +206,11 @@ func (c *CreateRoleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
|
|||||||
return f.PrintObject(cmd, false, c.Mapper, obj, c.Out)
|
return f.PrintObject(cmd, false, c.Mapper, obj, c.Out)
|
||||||
}
|
}
|
||||||
|
|
||||||
clientSet, err := f.ClientSet()
|
clientset, err := f.KubernetesClientSet()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
c.Client = clientSet.Rbac()
|
c.Client = clientset.RbacV1()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -275,7 +275,7 @@ func (c *CreateRoleOptions) validateResource() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *CreateRoleOptions) RunCreateRole() error {
|
func (c *CreateRoleOptions) RunCreateRole() error {
|
||||||
role := &rbac.Role{}
|
role := &rbacv1.Role{}
|
||||||
role.Name = c.Name
|
role.Name = c.Name
|
||||||
rules, err := generateResourcePolicyRules(c.Mapper, c.Verbs, c.Resources, c.ResourceNames, []string{})
|
rules, err := generateResourcePolicyRules(c.Mapper, c.Verbs, c.Resources, c.ResourceNames, []string{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -308,7 +308,7 @@ func arrayContains(s []string, e string) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func generateResourcePolicyRules(mapper meta.RESTMapper, verbs []string, resources []ResourceOptions, resourceNames []string, nonResourceURLs []string) ([]rbac.PolicyRule, error) {
|
func generateResourcePolicyRules(mapper meta.RESTMapper, verbs []string, resources []ResourceOptions, resourceNames []string, nonResourceURLs []string) ([]rbacv1.PolicyRule, error) {
|
||||||
// groupResourceMapping is a apigroup-resource map. The key of this map is api group, while the value
|
// groupResourceMapping is a apigroup-resource map. The key of this map is api group, while the value
|
||||||
// is a string array of resources under this api group.
|
// is a string array of resources under this api group.
|
||||||
// E.g. groupResourceMapping = {"extensions": ["replicasets", "deployments"], "batch":["jobs"]}
|
// E.g. groupResourceMapping = {"extensions": ["replicasets", "deployments"], "batch":["jobs"]}
|
||||||
@ -334,9 +334,9 @@ func generateResourcePolicyRules(mapper meta.RESTMapper, verbs []string, resourc
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create separate rule for each of the api group.
|
// Create separate rule for each of the api group.
|
||||||
rules := []rbac.PolicyRule{}
|
rules := []rbacv1.PolicyRule{}
|
||||||
for _, g := range sets.StringKeySet(groupResourceMapping).List() {
|
for _, g := range sets.StringKeySet(groupResourceMapping).List() {
|
||||||
rule := rbac.PolicyRule{}
|
rule := rbacv1.PolicyRule{}
|
||||||
rule.Verbs = verbs
|
rule.Verbs = verbs
|
||||||
rule.Resources = groupResourceMapping[g]
|
rule.Resources = groupResourceMapping[g]
|
||||||
rule.APIGroups = []string{g}
|
rule.APIGroups = []string{g}
|
||||||
@ -345,7 +345,7 @@ func generateResourcePolicyRules(mapper meta.RESTMapper, verbs []string, resourc
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(nonResourceURLs) > 0 {
|
if len(nonResourceURLs) > 0 {
|
||||||
rule := rbac.PolicyRule{}
|
rule := rbacv1.PolicyRule{}
|
||||||
rule.Verbs = verbs
|
rule.Verbs = verbs
|
||||||
rule.NonResourceURLs = nonResourceURLs
|
rule.NonResourceURLs = nonResourceURLs
|
||||||
rules = append(rules, rule)
|
rules = append(rules, rule)
|
||||||
|
@ -22,10 +22,10 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
rbac "k8s.io/api/rbac/v1"
|
||||||
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -24,21 +24,23 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
rbac "k8s.io/api/rbac/v1"
|
||||||
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
var groupVersion = schema.GroupVersion{Group: "rbac.authorization.k8s.io", Version: "v1alpha1"}
|
var groupVersion = schema.GroupVersion{Group: "rbac.authorization.k8s.io", Version: "v1"}
|
||||||
|
|
||||||
func TestCreateRoleBinding(t *testing.T) {
|
func TestCreateRoleBinding(t *testing.T) {
|
||||||
expectBinding := &rbac.RoleBinding{
|
expectBinding := &rbac.RoleBinding{
|
||||||
|
TypeMeta: v1.TypeMeta{
|
||||||
|
APIVersion: "rbac.authorization.k8s.io/v1",
|
||||||
|
Kind: "RoleBinding",
|
||||||
|
},
|
||||||
ObjectMeta: v1.ObjectMeta{
|
ObjectMeta: v1.ObjectMeta{
|
||||||
Name: "fake-binding",
|
Name: "fake-binding",
|
||||||
},
|
},
|
||||||
@ -76,7 +78,6 @@ func TestCreateRoleBinding(t *testing.T) {
|
|||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &RoleBindingRESTClient{
|
tf.Client = &RoleBindingRESTClient{
|
||||||
RESTClient: &fake.RESTClient{
|
RESTClient: &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -21,14 +21,14 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateSecretGeneric(t *testing.T) {
|
func TestCreateSecretGeneric(t *testing.T) {
|
||||||
secretObject := &api.Secret{
|
secretObject := &v1.Secret{
|
||||||
Data: map[string][]byte{
|
Data: map[string][]byte{
|
||||||
"password": []byte("includes,comma"),
|
"password": []byte("includes,comma"),
|
||||||
"username": []byte("test_user"),
|
"username": []byte("test_user"),
|
||||||
@ -38,7 +38,7 @@ func TestCreateSecretGeneric(t *testing.T) {
|
|||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -64,12 +64,12 @@ func TestCreateSecretGeneric(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCreateSecretDockerRegistry(t *testing.T) {
|
func TestCreateSecretDockerRegistry(t *testing.T) {
|
||||||
secretObject := &api.Secret{}
|
secretObject := &v1.Secret{}
|
||||||
secretObject.Name = "my-secret"
|
secretObject.Name = "my-secret"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -21,7 +21,7 @@ import (
|
|||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
@ -98,7 +98,7 @@ func CreateServiceClusterIP(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.Comm
|
|||||||
generator = &kubectl.ServiceCommonGeneratorV1{
|
generator = &kubectl.ServiceCommonGeneratorV1{
|
||||||
Name: name,
|
Name: name,
|
||||||
TCP: cmdutil.GetFlagStringSlice(cmd, "tcp"),
|
TCP: cmdutil.GetFlagStringSlice(cmd, "tcp"),
|
||||||
Type: api.ServiceTypeClusterIP,
|
Type: v1.ServiceTypeClusterIP,
|
||||||
ClusterIP: cmdutil.GetFlagString(cmd, "clusterip"),
|
ClusterIP: cmdutil.GetFlagString(cmd, "clusterip"),
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -154,7 +154,7 @@ func CreateServiceNodePort(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.Comma
|
|||||||
generator = &kubectl.ServiceCommonGeneratorV1{
|
generator = &kubectl.ServiceCommonGeneratorV1{
|
||||||
Name: name,
|
Name: name,
|
||||||
TCP: cmdutil.GetFlagStringSlice(cmd, "tcp"),
|
TCP: cmdutil.GetFlagStringSlice(cmd, "tcp"),
|
||||||
Type: api.ServiceTypeNodePort,
|
Type: v1.ServiceTypeNodePort,
|
||||||
ClusterIP: "",
|
ClusterIP: "",
|
||||||
NodePort: cmdutil.GetFlagInt(cmd, "node-port"),
|
NodePort: cmdutil.GetFlagInt(cmd, "node-port"),
|
||||||
}
|
}
|
||||||
@ -210,7 +210,7 @@ func CreateServiceLoadBalancer(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.C
|
|||||||
generator = &kubectl.ServiceCommonGeneratorV1{
|
generator = &kubectl.ServiceCommonGeneratorV1{
|
||||||
Name: name,
|
Name: name,
|
||||||
TCP: cmdutil.GetFlagStringSlice(cmd, "tcp"),
|
TCP: cmdutil.GetFlagStringSlice(cmd, "tcp"),
|
||||||
Type: api.ServiceTypeLoadBalancer,
|
Type: v1.ServiceTypeLoadBalancer,
|
||||||
ClusterIP: "",
|
ClusterIP: "",
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -270,7 +270,7 @@ func CreateExternalNameService(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.C
|
|||||||
case cmdutil.ServiceExternalNameGeneratorV1Name:
|
case cmdutil.ServiceExternalNameGeneratorV1Name:
|
||||||
generator = &kubectl.ServiceCommonGeneratorV1{
|
generator = &kubectl.ServiceCommonGeneratorV1{
|
||||||
Name: name,
|
Name: name,
|
||||||
Type: api.ServiceTypeExternalName,
|
Type: v1.ServiceTypeExternalName,
|
||||||
ExternalName: cmdutil.GetFlagString(cmd, "external-name"),
|
ExternalName: cmdutil.GetFlagString(cmd, "external-name"),
|
||||||
ClusterIP: "",
|
ClusterIP: "",
|
||||||
}
|
}
|
||||||
|
@ -21,19 +21,19 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateService(t *testing.T) {
|
func TestCreateService(t *testing.T) {
|
||||||
service := &api.Service{}
|
service := &v1.Service{}
|
||||||
service.Name = "my-service"
|
service.Name = "my-service"
|
||||||
f, tf, codec, negSer := cmdtesting.NewAPIFactory()
|
f, tf, codec, negSer := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: negSer,
|
NegotiatedSerializer: negSer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -58,12 +58,12 @@ func TestCreateService(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCreateServiceNodePort(t *testing.T) {
|
func TestCreateServiceNodePort(t *testing.T) {
|
||||||
service := &api.Service{}
|
service := &v1.Service{}
|
||||||
service.Name = "my-node-port-service"
|
service.Name = "my-node-port-service"
|
||||||
f, tf, codec, negSer := cmdtesting.NewAPIFactory()
|
f, tf, codec, negSer := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: negSer,
|
NegotiatedSerializer: negSer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -88,12 +88,12 @@ func TestCreateServiceNodePort(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCreateServiceExternalName(t *testing.T) {
|
func TestCreateServiceExternalName(t *testing.T) {
|
||||||
service := &api.Service{}
|
service := &v1.Service{}
|
||||||
service.Name = "my-external-name-service"
|
service.Name = "my-external-name-service"
|
||||||
f, tf, codec, negSer := cmdtesting.NewAPIFactory()
|
f, tf, codec, negSer := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: negSer,
|
NegotiatedSerializer: negSer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -21,19 +21,19 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateServiceAccount(t *testing.T) {
|
func TestCreateServiceAccount(t *testing.T) {
|
||||||
serviceAccountObject := &api.ServiceAccount{}
|
serviceAccountObject := &v1.ServiceAccount{}
|
||||||
serviceAccountObject.Name = "my-service-account"
|
serviceAccountObject.Name = "my-service-account"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -21,9 +21,8 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -48,7 +47,7 @@ func TestCreateObject(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -82,7 +81,7 @@ func TestCreateMultipleObject(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -120,7 +119,7 @@ func TestCreateDirectory(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -32,10 +32,8 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/api/meta"
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/client-go/dynamic"
|
"k8s.io/client-go/dynamic"
|
||||||
restclient "k8s.io/client-go/rest"
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
@ -58,7 +56,6 @@ func TestDeleteObjectByTuple(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -123,7 +120,6 @@ func TestOrphanDependentsInDeleteObject(t *testing.T) {
|
|||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
var expectedOrphanDependents *bool
|
var expectedOrphanDependents *bool
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m, b := req.URL.Path, req.Method, req.Body; {
|
switch p, m, b := req.URL.Path, req.Method, req.Body; {
|
||||||
@ -172,7 +168,6 @@ func TestDeleteNamedObject(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -223,7 +218,6 @@ func TestDeleteObject(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -282,7 +276,6 @@ func TestDeleteObjectGraceZero(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
t.Logf("got request %s %s", req.Method, req.URL.Path)
|
t.Logf("got request %s %s", req.Method, req.URL.Path)
|
||||||
@ -332,7 +325,6 @@ func TestDeleteObjectNotFound(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -370,7 +362,6 @@ func TestDeleteObjectIgnoreNotFound(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -408,7 +399,6 @@ func TestDeleteAllNotFound(t *testing.T) {
|
|||||||
|
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -458,7 +448,6 @@ func TestDeleteAllIgnoreNotFound(t *testing.T) {
|
|||||||
|
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -495,7 +484,6 @@ func TestDeleteMultipleObject(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -531,7 +519,6 @@ func TestDeleteMultipleObjectContinueOnMissing(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -576,7 +563,6 @@ func TestDeleteMultipleResourcesWithTheSameName(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -615,7 +601,6 @@ func TestDeleteDirectory(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -648,17 +633,16 @@ func TestDeleteMultipleSelector(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
case p == "/namespaces/test/pods" && m == "GET":
|
case p == "/namespaces/test/pods" && m == "GET":
|
||||||
if req.URL.Query().Get(metav1.LabelSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String())) != "a=b" {
|
if req.URL.Query().Get(metav1.LabelSelectorQueryParam("v1")) != "a=b" {
|
||||||
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
||||||
}
|
}
|
||||||
return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)}, nil
|
return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)}, nil
|
||||||
case p == "/namespaces/test/services" && m == "GET":
|
case p == "/namespaces/test/services" && m == "GET":
|
||||||
if req.URL.Query().Get(metav1.LabelSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String())) != "a=b" {
|
if req.URL.Query().Get(metav1.LabelSelectorQueryParam("v1")) != "a=b" {
|
||||||
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
||||||
}
|
}
|
||||||
return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, svc)}, nil
|
return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, svc)}, nil
|
||||||
@ -714,7 +698,7 @@ func TestResourceErrors(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
buf, errBuf := bytes.NewBuffer([]byte{}), bytes.NewBuffer([]byte{})
|
buf, errBuf := bytes.NewBuffer([]byte{}), bytes.NewBuffer([]byte{})
|
||||||
|
|
||||||
|
@ -23,8 +23,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -34,7 +32,6 @@ func TestDescribeUnknownSchemaObject(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewTestFactory()
|
f, tf, codec, _ := cmdtesting.NewTestFactory()
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", "foo"))},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", "foo"))},
|
||||||
}
|
}
|
||||||
@ -59,7 +56,6 @@ func TestDescribeUnknownNamespacedSchemaObject(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewTestFactory()
|
f, tf, codec, _ := cmdtesting.NewTestFactory()
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalNamespacedType("", "", "foo", "non-default"))},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalNamespacedType("", "", "foo", "non-default"))},
|
||||||
}
|
}
|
||||||
@ -84,7 +80,6 @@ func TestDescribeObject(t *testing.T) {
|
|||||||
d := &testDescriber{Output: "test output"}
|
d := &testDescriber{Output: "test output"}
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -118,7 +113,6 @@ func TestDescribeListObjects(t *testing.T) {
|
|||||||
d := &testDescriber{Output: "test output"}
|
d := &testDescriber{Output: "test output"}
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
||||||
}
|
}
|
||||||
@ -139,7 +133,6 @@ func TestDescribeObjectShowEvents(t *testing.T) {
|
|||||||
d := &testDescriber{Output: "test output"}
|
d := &testDescriber{Output: "test output"}
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
||||||
}
|
}
|
||||||
@ -161,7 +154,6 @@ func TestDescribeObjectSkipEvents(t *testing.T) {
|
|||||||
d := &testDescriber{Output: "test output"}
|
d := &testDescriber{Output: "test output"}
|
||||||
tf.Describer = d
|
tf.Describer = d
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
||||||
}
|
}
|
||||||
|
@ -36,8 +36,6 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/diff"
|
"k8s.io/apimachinery/pkg/util/diff"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
@ -218,7 +216,6 @@ func TestEdit(t *testing.T) {
|
|||||||
versionedAPIPath = "/apis/" + mapping.GroupVersionKind.Group + "/" + mapping.GroupVersionKind.Version
|
versionedAPIPath = "/apis/" + mapping.GroupVersionKind.Group + "/" + mapping.GroupVersionKind.Version
|
||||||
}
|
}
|
||||||
return &fake.RESTClient{
|
return &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
VersionedAPIPath: versionedAPIPath,
|
VersionedAPIPath: versionedAPIPath,
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(reqResp),
|
Client: fake.CreateHTTPClient(reqResp),
|
||||||
|
@ -34,7 +34,6 @@ import (
|
|||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/client-go/tools/remotecommand"
|
"k8s.io/client-go/tools/remotecommand"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/term"
|
"k8s.io/kubernetes/pkg/kubectl/util/term"
|
||||||
)
|
)
|
||||||
@ -131,7 +130,6 @@ func TestPodAndContainer(t *testing.T) {
|
|||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { return nil, nil }),
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { return nil, nil }),
|
||||||
}
|
}
|
||||||
@ -163,7 +161,7 @@ func TestPodAndContainer(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestExec(t *testing.T) {
|
func TestExec(t *testing.T) {
|
||||||
version := legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version
|
version := "v1"
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name, podPath, execPath, container string
|
name, podPath, execPath, container string
|
||||||
pod *api.Pod
|
pod *api.Pod
|
||||||
@ -186,7 +184,6 @@ func TestExec(t *testing.T) {
|
|||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -23,10 +23,10 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/explain"
|
"k8s.io/kubernetes/pkg/kubectl/explain"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ func RunExplain(f cmdutil.Factory, out, cmdErr io.Writer, cmd *cobra.Command, ar
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(apiVersionString) == 0 {
|
if len(apiVersionString) == 0 {
|
||||||
groupMeta, err := legacyscheme.Registry.Group(gvk.Group)
|
groupMeta, err := scheme.Registry.Group(gvk.Group)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -25,14 +25,20 @@ import (
|
|||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// This init should be removed after switching this command and its tests to user external types.
|
||||||
|
func init() {
|
||||||
|
api.AddToScheme(scheme.Scheme)
|
||||||
|
}
|
||||||
|
|
||||||
func TestRunExposeService(t *testing.T) {
|
func TestRunExposeService(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@ -463,7 +469,7 @@ func TestRunExposeService(t *testing.T) {
|
|||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &printers.JSONPrinter{}
|
tf.Printer = &printers.JSONPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -40,13 +40,21 @@ import (
|
|||||||
restclientwatch "k8s.io/client-go/rest/watch"
|
restclientwatch "k8s.io/client-go/rest/watch"
|
||||||
"k8s.io/kube-openapi/pkg/util/proto"
|
"k8s.io/kube-openapi/pkg/util/proto"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// This init should be removed after switching this command and its tests to user external types.
|
||||||
|
func init() {
|
||||||
|
api.AddToScheme(scheme.Scheme)
|
||||||
|
scheme.Scheme.AddConversionFuncs(v1.Convert_api_PodSpec_To_v1_PodSpec)
|
||||||
|
scheme.Scheme.AddConversionFuncs(v1.Convert_v1_PodSecurityContext_To_api_PodSecurityContext)
|
||||||
|
}
|
||||||
|
|
||||||
func testData() (*api.PodList, *api.ServiceList, *api.ReplicationControllerList) {
|
func testData() (*api.PodList, *api.ServiceList, *api.ReplicationControllerList) {
|
||||||
pods := &api.PodList{
|
pods := &api.PodList{
|
||||||
ListMeta: metav1.ListMeta{
|
ListMeta: metav1.ListMeta{
|
||||||
@ -126,12 +134,11 @@ func TestGetUnknownSchemaObject(t *testing.T) {
|
|||||||
_, _, codec, _ := cmdtesting.NewTestFactory()
|
_, _, codec, _ := cmdtesting.NewTestFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", "foo"))},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", "foo"))},
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
errBuf := bytes.NewBuffer([]byte{})
|
errBuf := bytes.NewBuffer([]byte{})
|
||||||
|
|
||||||
@ -151,7 +158,7 @@ func TestGetUnknownSchemaObject(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
actualJSON := runtime.EncodeOrDie(legacyscheme.Codecs.LegacyCodec(), obj)
|
actualJSON := runtime.EncodeOrDie(scheme.Codecs.LegacyCodec(), obj)
|
||||||
actualMap := map[string]interface{}{}
|
actualMap := map[string]interface{}{}
|
||||||
if err := encjson.Unmarshal([]byte(actualJSON), &actualMap); err != nil {
|
if err := encjson.Unmarshal([]byte(actualJSON), &actualMap); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -167,16 +174,15 @@ func TestGetUnknownSchemaObject(t *testing.T) {
|
|||||||
func TestGetSchemaObject(t *testing.T) {
|
func TestGetSchemaObject(t *testing.T) {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Mapper = testapi.Default.RESTMapper()
|
tf.Mapper = testapi.Default.RESTMapper()
|
||||||
tf.Typer = legacyscheme.Scheme
|
tf.Typer = scheme.Scheme
|
||||||
codec := testapi.Default.Codec()
|
codec := testapi.Default.Codec()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &api.ReplicationController{ObjectMeta: metav1.ObjectMeta{Name: "foo"}})},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &api.ReplicationController{ObjectMeta: metav1.ObjectMeta{Name: "foo"}})},
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: "v1"}}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
errBuf := bytes.NewBuffer([]byte{})
|
errBuf := bytes.NewBuffer([]byte{})
|
||||||
|
|
||||||
@ -197,7 +203,6 @@ func TestGetObjectsWithOpenAPIOutputFormatPresent(t *testing.T) {
|
|||||||
// for Pod type.
|
// for Pod type.
|
||||||
tf.OpenAPISchemaFunc = testOpenAPISchemaData
|
tf.OpenAPISchemaFunc = testOpenAPISchemaData
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
||||||
}
|
}
|
||||||
@ -251,7 +256,6 @@ func TestGetObjects(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
||||||
}
|
}
|
||||||
@ -303,7 +307,7 @@ func TestGetObjectsFiltered(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{GenericPrinter: test.genericPrinter}
|
tf.Printer = &testPrinter{GenericPrinter: test.genericPrinter}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, test.resp)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, test.resp)},
|
||||||
}
|
}
|
||||||
@ -344,7 +348,6 @@ func TestGetObjectIgnoreNotFound(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{GenericPrinter: true}
|
tf.Printer = &testPrinter{GenericPrinter: true}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -397,7 +400,6 @@ func TestGetSortedObjects(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
||||||
}
|
}
|
||||||
@ -434,8 +436,8 @@ func verifyObjects(t *testing.T, expected, actual []runtime.Object) {
|
|||||||
switch obj.(type) {
|
switch obj.(type) {
|
||||||
case runtime.Unstructured, *runtime.Unknown:
|
case runtime.Unstructured, *runtime.Unknown:
|
||||||
actualObj, err = runtime.Decode(
|
actualObj, err = runtime.Decode(
|
||||||
legacyscheme.Codecs.UniversalDecoder(),
|
scheme.Codecs.UniversalDecoder(),
|
||||||
[]byte(runtime.EncodeOrDie(legacyscheme.Codecs.LegacyCodec(), obj)))
|
[]byte(runtime.EncodeOrDie(scheme.Codecs.LegacyCodec(), obj)))
|
||||||
default:
|
default:
|
||||||
actualObj = obj
|
actualObj = obj
|
||||||
err = nil
|
err = nil
|
||||||
@ -456,7 +458,6 @@ func TestGetObjectsIdentifiedByFile(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{GenericPrinter: true}
|
tf.Printer = &testPrinter{GenericPrinter: true}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
||||||
}
|
}
|
||||||
@ -483,7 +484,6 @@ func TestGetListObjects(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
||||||
}
|
}
|
||||||
@ -524,7 +524,6 @@ func TestGetAllListObjects(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)},
|
||||||
}
|
}
|
||||||
@ -554,7 +553,6 @@ func TestGetListComponentStatus(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, statuses)},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, statuses)},
|
||||||
}
|
}
|
||||||
@ -596,7 +594,6 @@ func TestGetMixedGenericObjects(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{GenericPrinter: true}
|
tf.Printer = &testPrinter{GenericPrinter: true}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
@ -609,7 +606,7 @@ func TestGetMixedGenericObjects(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
errBuf := bytes.NewBuffer([]byte{})
|
errBuf := bytes.NewBuffer([]byte{})
|
||||||
|
|
||||||
@ -624,7 +621,7 @@ func TestGetMixedGenericObjects(t *testing.T) {
|
|||||||
|
|
||||||
actual := tf.Printer.(*testPrinter).Objects
|
actual := tf.Printer.(*testPrinter).Objects
|
||||||
fn := func(obj runtime.Object) unstructured.Unstructured {
|
fn := func(obj runtime.Object) unstructured.Unstructured {
|
||||||
data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(schema.GroupVersion{Version: "v1"}), obj)
|
data, err := runtime.Encode(scheme.Codecs.LegacyCodec(schema.GroupVersion{Version: "v1"}), obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@ -660,7 +657,6 @@ func TestGetMultipleTypeObjects(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
@ -699,7 +695,6 @@ func TestGetMultipleTypeObjectsAsList(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{GenericPrinter: true}
|
tf.Printer = &testPrinter{GenericPrinter: true}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
@ -714,7 +709,7 @@ func TestGetMultipleTypeObjectsAsList(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
errBuf := bytes.NewBuffer([]byte{})
|
errBuf := bytes.NewBuffer([]byte{})
|
||||||
|
|
||||||
@ -726,7 +721,7 @@ func TestGetMultipleTypeObjectsAsList(t *testing.T) {
|
|||||||
|
|
||||||
actual := tf.Printer.(*testPrinter).Objects
|
actual := tf.Printer.(*testPrinter).Objects
|
||||||
fn := func(obj runtime.Object) unstructured.Unstructured {
|
fn := func(obj runtime.Object) unstructured.Unstructured {
|
||||||
data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(schema.GroupVersion{Version: "v1"}), obj)
|
data, err := runtime.Encode(scheme.Codecs.LegacyCodec(schema.GroupVersion{Version: "v1"}), obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -764,10 +759,9 @@ func TestGetMultipleTypeObjectsWithSelector(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
if req.URL.Query().Get(metav1.LabelSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String())) != "a=b" {
|
if req.URL.Query().Get(metav1.LabelSelectorQueryParam("v1")) != "a=b" {
|
||||||
t.Fatalf("request url: %#v,and request: %#v", req.URL, req)
|
t.Fatalf("request url: %#v,and request: %#v", req.URL, req)
|
||||||
}
|
}
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
@ -816,7 +810,6 @@ func TestGetMultipleTypeObjectsWithDirectReference(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
@ -853,7 +846,6 @@ func TestGetByFormatForcesFlag(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{GenericPrinter: true}
|
tf.Printer = &testPrinter{GenericPrinter: true}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])},
|
||||||
}
|
}
|
||||||
@ -954,10 +946,9 @@ func TestWatchSelector(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
if req.URL.Query().Get(metav1.LabelSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String())) != "a=b" {
|
if req.URL.Query().Get(metav1.LabelSelectorQueryParam("v1")) != "a=b" {
|
||||||
t.Fatalf("request url: %#v,and request: %#v", req.URL, req)
|
t.Fatalf("request url: %#v,and request: %#v", req.URL, req)
|
||||||
}
|
}
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
@ -998,7 +989,6 @@ func TestWatchResource(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
@ -1040,7 +1030,6 @@ func TestWatchResourceIdentifiedByFile(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
@ -1083,7 +1072,6 @@ func TestWatchOnlyResource(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
@ -1131,7 +1119,6 @@ func TestWatchOnlyList(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
|
@ -25,10 +25,8 @@ import (
|
|||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
restclient "k8s.io/client-go/rest"
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
)
|
)
|
||||||
@ -324,7 +322,7 @@ func TestLabelErrors(t *testing.T) {
|
|||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
cmd := NewCmdLabel(f, buf)
|
cmd := NewCmdLabel(f, buf)
|
||||||
@ -358,7 +356,6 @@ func TestLabelForResourceFromFile(t *testing.T) {
|
|||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.Method {
|
switch req.Method {
|
||||||
@ -385,7 +382,7 @@ func TestLabelForResourceFromFile(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
cmd := NewCmdLabel(f, buf)
|
cmd := NewCmdLabel(f, buf)
|
||||||
@ -409,7 +406,6 @@ func TestLabelForResourceFromFile(t *testing.T) {
|
|||||||
func TestLabelLocal(t *testing.T) {
|
func TestLabelLocal(t *testing.T) {
|
||||||
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
f, tf, _, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req)
|
t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req)
|
||||||
@ -417,7 +413,7 @@ func TestLabelLocal(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
cmd := NewCmdLabel(f, buf)
|
cmd := NewCmdLabel(f, buf)
|
||||||
@ -443,7 +439,6 @@ func TestLabelMultipleObjects(t *testing.T) {
|
|||||||
pods, _, _ := testData()
|
pods, _, _ := testData()
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch req.Method {
|
switch req.Method {
|
||||||
@ -472,7 +467,7 @@ func TestLabelMultipleObjects(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
cmd := NewCmdLabel(f, buf)
|
cmd := NewCmdLabel(f, buf)
|
||||||
|
@ -27,11 +27,8 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
restclient "k8s.io/client-go/rest"
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -52,7 +49,6 @@ func TestLog(t *testing.T) {
|
|||||||
logContent := "test log content"
|
logContent := "test log content"
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -70,7 +66,7 @@ func TestLog(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs, GroupVersion: &schema.GroupVersion{Version: test.version}}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
|
|
||||||
cmd := NewCmdLogs(f, buf)
|
cmd := NewCmdLogs(f, buf)
|
||||||
|
@ -34,11 +34,11 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
||||||
"k8s.io/apimachinery/pkg/util/yaml"
|
"k8s.io/apimachinery/pkg/util/yaml"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
)
|
)
|
||||||
@ -249,7 +249,7 @@ func RunPatch(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []strin
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
originalPatchedObjJS, err := getPatchedJSON(patchType, originalObjJS, patchBytes, mapping.GroupVersionKind, legacyscheme.Scheme)
|
originalPatchedObjJS, err := getPatchedJSON(patchType, originalObjJS, patchBytes, mapping.GroupVersionKind, scheme.Scheme)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -23,8 +23,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
)
|
)
|
||||||
@ -34,7 +32,6 @@ func TestPatchObject(t *testing.T) {
|
|||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -73,7 +70,6 @@ func TestPatchObjectFromFile(t *testing.T) {
|
|||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -108,7 +104,6 @@ func TestPatchNoop(t *testing.T) {
|
|||||||
|
|
||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -154,7 +149,6 @@ func TestPatchObjectFromFileOutput(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &printers.YAMLPrinter{}
|
tf.Printer = &printers.YAMLPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -25,9 +25,9 @@ import (
|
|||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ func (f *fakePortForwarder) ForwardPorts(method string, url *url.URL, opts PortF
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testPortForward(t *testing.T, flags map[string]string, args []string) {
|
func testPortForward(t *testing.T, flags map[string]string, args []string) {
|
||||||
version := legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version
|
version := "v1"
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@ -70,7 +70,7 @@ func testPortForward(t *testing.T, flags map[string]string, args []string) {
|
|||||||
var err error
|
var err error
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Group: ""},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -24,7 +24,6 @@ import (
|
|||||||
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -35,7 +34,6 @@ func TestReplaceObject(t *testing.T) {
|
|||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
deleted := false
|
deleted := false
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -92,7 +90,6 @@ func TestReplaceMultipleObject(t *testing.T) {
|
|||||||
redisMasterDeleted := false
|
redisMasterDeleted := false
|
||||||
frontendDeleted := false
|
frontendDeleted := false
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -161,7 +158,6 @@ func TestReplaceDirectory(t *testing.T) {
|
|||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
created := map[string]bool{}
|
created := map[string]bool{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -217,7 +213,6 @@ func TestForceReplaceObjectNotFound(t *testing.T) {
|
|||||||
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
f, tf, codec, _ := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.UnstructuredClient = &fake.RESTClient{
|
tf.UnstructuredClient = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: unstructuredSerializer,
|
NegotiatedSerializer: unstructuredSerializer,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
|
@ -36,12 +36,17 @@ import (
|
|||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// This init should be removed after switching this command and its tests to user external types.
|
||||||
|
func init() {
|
||||||
|
api.AddToScheme(scheme.Scheme)
|
||||||
|
}
|
||||||
|
|
||||||
func TestGetRestartPolicy(t *testing.T) {
|
func TestGetRestartPolicy(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
input string
|
input string
|
||||||
@ -164,7 +169,7 @@ func TestRunArgsFollowDashRules(t *testing.T) {
|
|||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
if req.URL.Path == "/namespaces/test/replicationcontrollers" {
|
if req.URL.Path == "/namespaces/test/replicationcontrollers" {
|
||||||
@ -285,10 +290,10 @@ func TestGenerateService(t *testing.T) {
|
|||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
sawPOST := false
|
sawPOST := false
|
||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
GroupVersion: schema.GroupVersion{Version: "v1"},
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -429,12 +434,11 @@ func TestRunValidations(t *testing.T) {
|
|||||||
f, tf, codec, ns := cmdtesting.NewTestFactory()
|
f, tf, codec, ns := cmdtesting.NewTestFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", ""))},
|
Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", ""))},
|
||||||
}
|
}
|
||||||
tf.Namespace = "test"
|
tf.Namespace = "test"
|
||||||
tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: "v1"}}}
|
tf.ClientConfig = defaultClientConfig()
|
||||||
inBuf := bytes.NewReader([]byte{})
|
inBuf := bytes.NewReader([]byte{})
|
||||||
outBuf := bytes.NewBuffer([]byte{})
|
outBuf := bytes.NewBuffer([]byte{})
|
||||||
errBuf := bytes.NewBuffer([]byte{})
|
errBuf := bytes.NewBuffer([]byte{})
|
||||||
|
@ -29,8 +29,6 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
)
|
)
|
||||||
@ -243,7 +241,6 @@ func TestTaint(t *testing.T) {
|
|||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
|
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
m := &MyReq{req}
|
m := &MyReq{req}
|
||||||
|
@ -27,7 +27,6 @@ import (
|
|||||||
|
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
"k8s.io/metrics/pkg/apis/metrics/v1alpha1"
|
"k8s.io/metrics/pkg/apis/metrics/v1alpha1"
|
||||||
)
|
)
|
||||||
@ -46,7 +45,6 @@ func TestTopNodeAllMetrics(t *testing.T) {
|
|||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -92,7 +90,6 @@ func TestTopNodeAllMetricsCustomDefaults(t *testing.T) {
|
|||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -148,7 +145,6 @@ func TestTopNodeWithNameMetrics(t *testing.T) {
|
|||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
@ -208,7 +204,6 @@ func TestTopNodeWithLabelSelectorMetrics(t *testing.T) {
|
|||||||
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
f, tf, codec, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m, q := req.URL.Path, req.Method, req.URL.RawQuery; {
|
switch p, m, q := req.URL.Path, req.Method, req.URL.RawQuery; {
|
||||||
|
@ -29,8 +29,6 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/client-go/rest/fake"
|
"k8s.io/client-go/rest/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||||
metricsapi "k8s.io/metrics/pkg/apis/metrics/v1alpha1"
|
metricsapi "k8s.io/metrics/pkg/apis/metrics/v1alpha1"
|
||||||
)
|
)
|
||||||
@ -119,7 +117,6 @@ func TestTopPod(t *testing.T) {
|
|||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m, q := req.URL.Path, req.Method, req.URL.RawQuery; {
|
switch p, m, q := req.URL.Path, req.Method, req.URL.RawQuery; {
|
||||||
@ -255,7 +252,6 @@ func TestTopPodCustomDefaults(t *testing.T) {
|
|||||||
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
f, tf, _, ns := cmdtesting.NewAPIFactory()
|
||||||
tf.Printer = &testPrinter{}
|
tf.Printer = &testPrinter{}
|
||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion,
|
|
||||||
NegotiatedSerializer: ns,
|
NegotiatedSerializer: ns,
|
||||||
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m, q := req.URL.Path, req.Method, req.URL.RawQuery; {
|
switch p, m, q := req.URL.Path, req.Method, req.URL.RawQuery; {
|
||||||
|
@ -16,10 +16,10 @@ go_library(
|
|||||||
],
|
],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api:go_default_library",
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
|
||||||
"//pkg/kubectl:go_default_library",
|
"//pkg/kubectl:go_default_library",
|
||||||
"//pkg/kubectl/cmd/util:go_default_library",
|
"//pkg/kubectl/cmd/util:go_default_library",
|
||||||
"//pkg/kubectl/resource:go_default_library",
|
"//pkg/kubectl/resource:go_default_library",
|
||||||
|
"//pkg/kubectl/scheme:go_default_library",
|
||||||
"//pkg/kubectl/util/crlf:go_default_library",
|
"//pkg/kubectl/util/crlf:go_default_library",
|
||||||
"//pkg/kubectl/util/term:go_default_library",
|
"//pkg/kubectl/util/term:go_default_library",
|
||||||
"//pkg/printers:go_default_library",
|
"//pkg/printers:go_default_library",
|
||||||
|
@ -42,10 +42,10 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||||
"k8s.io/apimachinery/pkg/util/yaml"
|
"k8s.io/apimachinery/pkg/util/yaml"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/crlf"
|
"k8s.io/kubernetes/pkg/kubectl/util/crlf"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
)
|
)
|
||||||
@ -548,7 +548,7 @@ func (o *EditOptions) visitToPatch(originalInfos []*resource.Info, patchVisitor
|
|||||||
|
|
||||||
// Create the versioned struct from the type defined in the mapping
|
// Create the versioned struct from the type defined in the mapping
|
||||||
// (which is the API version we'll be submitting the patch to)
|
// (which is the API version we'll be submitting the patch to)
|
||||||
versionedObject, err := legacyscheme.Scheme.New(info.Mapping.GroupVersionKind)
|
versionedObject, err := scheme.Scheme.New(info.Mapping.GroupVersionKind)
|
||||||
var patchType types.PatchType
|
var patchType types.PatchType
|
||||||
var patch []byte
|
var patch []byte
|
||||||
switch {
|
switch {
|
||||||
|
@ -23,9 +23,9 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/validation"
|
"k8s.io/apimachinery/pkg/util/validation"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util"
|
"k8s.io/kubernetes/pkg/kubectl/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/hash"
|
"k8s.io/kubernetes/pkg/kubectl/util/hash"
|
||||||
)
|
)
|
||||||
@ -127,7 +127,7 @@ func (s ConfigMapGeneratorV1) StructuredGenerate() (runtime.Object, error) {
|
|||||||
if err := s.validate(); err != nil {
|
if err := s.validate(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
configMap := &api.ConfigMap{}
|
configMap := &v1.ConfigMap{}
|
||||||
configMap.Name = s.Name
|
configMap.Name = s.Name
|
||||||
configMap.Data = map[string]string{}
|
configMap.Data = map[string]string{}
|
||||||
if len(s.FileSources) > 0 {
|
if len(s.FileSources) > 0 {
|
||||||
@ -168,7 +168,7 @@ func (s ConfigMapGeneratorV1) validate() error {
|
|||||||
|
|
||||||
// handleConfigMapFromLiteralSources adds the specified literal source
|
// handleConfigMapFromLiteralSources adds the specified literal source
|
||||||
// information into the provided configMap.
|
// information into the provided configMap.
|
||||||
func handleConfigMapFromLiteralSources(configMap *api.ConfigMap, literalSources []string) error {
|
func handleConfigMapFromLiteralSources(configMap *v1.ConfigMap, literalSources []string) error {
|
||||||
for _, literalSource := range literalSources {
|
for _, literalSource := range literalSources {
|
||||||
keyName, value, err := util.ParseLiteralSource(literalSource)
|
keyName, value, err := util.ParseLiteralSource(literalSource)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -184,7 +184,7 @@ func handleConfigMapFromLiteralSources(configMap *api.ConfigMap, literalSources
|
|||||||
|
|
||||||
// handleConfigMapFromFileSources adds the specified file source information
|
// handleConfigMapFromFileSources adds the specified file source information
|
||||||
// into the provided configMap
|
// into the provided configMap
|
||||||
func handleConfigMapFromFileSources(configMap *api.ConfigMap, fileSources []string) error {
|
func handleConfigMapFromFileSources(configMap *v1.ConfigMap, fileSources []string) error {
|
||||||
for _, fileSource := range fileSources {
|
for _, fileSource := range fileSources {
|
||||||
keyName, filePath, err := util.ParseFileSource(fileSource)
|
keyName, filePath, err := util.ParseFileSource(fileSource)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -229,7 +229,7 @@ func handleConfigMapFromFileSources(configMap *api.ConfigMap, fileSources []stri
|
|||||||
|
|
||||||
// handleConfigMapFromEnvFileSource adds the specified env file source information
|
// handleConfigMapFromEnvFileSource adds the specified env file source information
|
||||||
// into the provided configMap
|
// into the provided configMap
|
||||||
func handleConfigMapFromEnvFileSource(configMap *api.ConfigMap, envFileSource string) error {
|
func handleConfigMapFromEnvFileSource(configMap *v1.ConfigMap, envFileSource string) error {
|
||||||
info, err := os.Stat(envFileSource)
|
info, err := os.Stat(envFileSource)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
switch err := err.(type) {
|
switch err := err.(type) {
|
||||||
@ -250,7 +250,7 @@ func handleConfigMapFromEnvFileSource(configMap *api.ConfigMap, envFileSource st
|
|||||||
|
|
||||||
// addKeyFromFileToConfigMap adds a key with the given name to a ConfigMap, populating
|
// addKeyFromFileToConfigMap adds a key with the given name to a ConfigMap, populating
|
||||||
// the value with the content of the given file path, or returns an error.
|
// the value with the content of the given file path, or returns an error.
|
||||||
func addKeyFromFileToConfigMap(configMap *api.ConfigMap, keyName, filePath string) error {
|
func addKeyFromFileToConfigMap(configMap *v1.ConfigMap, keyName, filePath string) error {
|
||||||
data, err := ioutil.ReadFile(filePath)
|
data, err := ioutil.ReadFile(filePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -260,7 +260,7 @@ func addKeyFromFileToConfigMap(configMap *api.ConfigMap, keyName, filePath strin
|
|||||||
|
|
||||||
// addKeyFromLiteralToConfigMap adds the given key and data to the given config map,
|
// addKeyFromLiteralToConfigMap adds the given key and data to the given config map,
|
||||||
// returning an error if the key is not valid or if the key already exists.
|
// returning an error if the key is not valid or if the key already exists.
|
||||||
func addKeyFromLiteralToConfigMap(configMap *api.ConfigMap, keyName, data string) error {
|
func addKeyFromLiteralToConfigMap(configMap *v1.ConfigMap, keyName, data string) error {
|
||||||
// Note, the rules for ConfigMap keys are the exact same as the ones for SecretKeys.
|
// Note, the rules for ConfigMap keys are the exact same as the ones for SecretKeys.
|
||||||
if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 {
|
if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 {
|
||||||
return fmt.Errorf("%q is not a valid key name for a ConfigMap: %s", keyName, strings.Join(errs, ";"))
|
return fmt.Errorf("%q is not a valid key name for a ConfigMap: %s", keyName, strings.Join(errs, ";"))
|
||||||
|
@ -22,22 +22,22 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestConfigMapGenerate(t *testing.T) {
|
func TestConfigMapGenerate(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
setup func(t *testing.T, params map[string]interface{}) func()
|
setup func(t *testing.T, params map[string]interface{}) func()
|
||||||
params map[string]interface{}
|
params map[string]interface{}
|
||||||
expected *api.ConfigMap
|
expected *v1.ConfigMap
|
||||||
expectErr bool
|
expectErr bool
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
params: map[string]interface{}{
|
params: map[string]interface{}{
|
||||||
"name": "foo",
|
"name": "foo",
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
@ -50,7 +50,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"name": "foo",
|
"name": "foo",
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo-867km9574f",
|
Name: "foo-867km9574f",
|
||||||
},
|
},
|
||||||
@ -63,7 +63,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"name": "foo",
|
"name": "foo",
|
||||||
"type": "my-type",
|
"type": "my-type",
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
@ -77,7 +77,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"type": "my-type",
|
"type": "my-type",
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo-867km9574f",
|
Name: "foo-867km9574f",
|
||||||
},
|
},
|
||||||
@ -90,7 +90,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"name": "foo",
|
"name": "foo",
|
||||||
"from-literal": []string{"key1=value1", "key2=value2"},
|
"from-literal": []string{"key1=value1", "key2=value2"},
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
@ -107,7 +107,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"from-literal": []string{"key1=value1", "key2=value2"},
|
"from-literal": []string{"key1=value1", "key2=value2"},
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo-gcb75dd9gb",
|
Name: "foo-gcb75dd9gb",
|
||||||
},
|
},
|
||||||
@ -144,7 +144,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"name": "foo",
|
"name": "foo",
|
||||||
"from-literal": []string{"key1==value1"},
|
"from-literal": []string{"key1==value1"},
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
@ -160,7 +160,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"from-literal": []string{"key1==value1"},
|
"from-literal": []string{"key1==value1"},
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo-bdgk9ttt7m",
|
Name: "foo-bdgk9ttt7m",
|
||||||
},
|
},
|
||||||
@ -176,7 +176,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"name": "valid_env",
|
"name": "valid_env",
|
||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "valid_env",
|
Name: "valid_env",
|
||||||
},
|
},
|
||||||
@ -194,7 +194,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "valid_env-2cgh8552ch",
|
Name: "valid_env-2cgh8552ch",
|
||||||
},
|
},
|
||||||
@ -215,7 +215,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"name": "getenv",
|
"name": "getenv",
|
||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "getenv",
|
Name: "getenv",
|
||||||
},
|
},
|
||||||
@ -237,7 +237,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "getenv-b4hh92hgdk",
|
Name: "getenv-b4hh92hgdk",
|
||||||
},
|
},
|
||||||
@ -270,7 +270,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"name": "with_spaces",
|
"name": "with_spaces",
|
||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "with_spaces",
|
Name: "with_spaces",
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.ConfigMap{
|
expected: &v1.ConfigMap{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "with_spaces-bfc558b4ct",
|
Name: "with_spaces-bfc558b4ct",
|
||||||
},
|
},
|
||||||
@ -312,8 +312,8 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
if test.expectErr && err != nil {
|
if test.expectErr && err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(obj.(*api.ConfigMap), test.expected) {
|
if !reflect.DeepEqual(obj.(*v1.ConfigMap), test.expected) {
|
||||||
t.Errorf("\ncase %d, expected:\n%#v\nsaw:\n%#v", i, test.expected, obj.(*api.ConfigMap))
|
t.Errorf("\ncase %d, expected:\n%#v\nsaw:\n%#v", i, test.expected, obj.(*v1.ConfigMap))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,10 +20,10 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
policy "k8s.io/api/policy/v1beta1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
"k8s.io/kubernetes/pkg/apis/policy"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// PodDisruptionBudgetV1Generator supports stable generation of a pod disruption budget.
|
// PodDisruptionBudgetV1Generator supports stable generation of a pod disruption budget.
|
||||||
|
@ -20,8 +20,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// ResourceQuotaGeneratorV1 supports stable generation of a resource quota
|
// ResourceQuotaGeneratorV1 supports stable generation of a resource quota
|
||||||
@ -79,7 +79,7 @@ func (g *ResourceQuotaGeneratorV1) StructuredGenerate() (runtime.Object, error)
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
resourceList, err := populateResourceList(g.Hard)
|
resourceList, err := populateResourceListV1(g.Hard)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -89,7 +89,7 @@ func (g *ResourceQuotaGeneratorV1) StructuredGenerate() (runtime.Object, error)
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
resourceQuota := &api.ResourceQuota{}
|
resourceQuota := &v1.ResourceQuota{}
|
||||||
resourceQuota.Name = g.Name
|
resourceQuota.Name = g.Name
|
||||||
resourceQuota.Spec.Hard = resourceList
|
resourceQuota.Spec.Hard = resourceList
|
||||||
resourceQuota.Spec.Scopes = scopes
|
resourceQuota.Spec.Scopes = scopes
|
||||||
@ -104,14 +104,14 @@ func (r *ResourceQuotaGeneratorV1) validate() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseScopes(spec string) ([]api.ResourceQuotaScope, error) {
|
func parseScopes(spec string) ([]v1.ResourceQuotaScope, error) {
|
||||||
// empty input gets a nil response to preserve generator test expected behaviors
|
// empty input gets a nil response to preserve generator test expected behaviors
|
||||||
if spec == "" {
|
if spec == "" {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
scopes := strings.Split(spec, ",")
|
scopes := strings.Split(spec, ",")
|
||||||
result := make([]api.ResourceQuotaScope, 0, len(scopes))
|
result := make([]v1.ResourceQuotaScope, 0, len(scopes))
|
||||||
for _, scope := range scopes {
|
for _, scope := range scopes {
|
||||||
// intentionally do not verify the scope against the valid scope list. This is done by the apiserver anyway.
|
// intentionally do not verify the scope against the valid scope list. This is done by the apiserver anyway.
|
||||||
|
|
||||||
@ -119,7 +119,7 @@ func parseScopes(spec string) ([]api.ResourceQuotaScope, error) {
|
|||||||
return nil, fmt.Errorf("invalid resource quota scope \"\"")
|
return nil, fmt.Errorf("invalid resource quota scope \"\"")
|
||||||
}
|
}
|
||||||
|
|
||||||
result = append(result, api.ResourceQuotaScope(scope))
|
result = append(result, v1.ResourceQuotaScope(scope))
|
||||||
}
|
}
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
@ -20,20 +20,20 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestQuotaGenerate(t *testing.T) {
|
func TestQuotaGenerate(t *testing.T) {
|
||||||
hard := "cpu=10,memory=5G,pods=10,services=7"
|
hard := "cpu=10,memory=5G,pods=10,services=7"
|
||||||
resourceQuotaSpecList, err := populateResourceList(hard)
|
resourceQuotaSpecList, err := populateResourceListV1(hard)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("unexpected error: %v", err)
|
t.Errorf("unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
params map[string]interface{}
|
params map[string]interface{}
|
||||||
expected *api.ResourceQuota
|
expected *v1.ResourceQuota
|
||||||
expectErr bool
|
expectErr bool
|
||||||
}{
|
}{
|
||||||
"test-valid-use": {
|
"test-valid-use": {
|
||||||
@ -41,11 +41,11 @@ func TestQuotaGenerate(t *testing.T) {
|
|||||||
"name": "foo",
|
"name": "foo",
|
||||||
"hard": hard,
|
"hard": hard,
|
||||||
},
|
},
|
||||||
expected: &api.ResourceQuota{
|
expected: &v1.ResourceQuota{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
Spec: api.ResourceQuotaSpec{Hard: resourceQuotaSpecList},
|
Spec: v1.ResourceQuotaSpec{Hard: resourceQuotaSpecList},
|
||||||
},
|
},
|
||||||
expectErr: false,
|
expectErr: false,
|
||||||
},
|
},
|
||||||
@ -61,15 +61,15 @@ func TestQuotaGenerate(t *testing.T) {
|
|||||||
"hard": hard,
|
"hard": hard,
|
||||||
"scopes": "BestEffort,NotTerminating",
|
"scopes": "BestEffort,NotTerminating",
|
||||||
},
|
},
|
||||||
expected: &api.ResourceQuota{
|
expected: &v1.ResourceQuota{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
Spec: api.ResourceQuotaSpec{
|
Spec: v1.ResourceQuotaSpec{
|
||||||
Hard: resourceQuotaSpecList,
|
Hard: resourceQuotaSpecList,
|
||||||
Scopes: []api.ResourceQuotaScope{
|
Scopes: []v1.ResourceQuotaScope{
|
||||||
api.ResourceQuotaScopeBestEffort,
|
v1.ResourceQuotaScopeBestEffort,
|
||||||
api.ResourceQuotaScopeNotTerminating,
|
v1.ResourceQuotaScopeNotTerminating,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -81,11 +81,11 @@ func TestQuotaGenerate(t *testing.T) {
|
|||||||
"hard": hard,
|
"hard": hard,
|
||||||
"scopes": "",
|
"scopes": "",
|
||||||
},
|
},
|
||||||
expected: &api.ResourceQuota{
|
expected: &v1.ResourceQuota{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
Spec: api.ResourceQuotaSpec{Hard: resourceQuotaSpecList},
|
Spec: v1.ResourceQuotaSpec{Hard: resourceQuotaSpecList},
|
||||||
},
|
},
|
||||||
expectErr: false,
|
expectErr: false,
|
||||||
},
|
},
|
||||||
@ -108,8 +108,8 @@ func TestQuotaGenerate(t *testing.T) {
|
|||||||
if test.expectErr && err != nil {
|
if test.expectErr && err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(obj.(*api.ResourceQuota), test.expected) {
|
if !reflect.DeepEqual(obj.(*v1.ResourceQuota), test.expected) {
|
||||||
t.Errorf("%s:\nexpected:\n%#v\nsaw:\n%#v", name, test.expected, obj.(*api.ResourceQuota))
|
t.Errorf("%s:\nexpected:\n%#v\nsaw:\n%#v", name, test.expected, obj.(*v1.ResourceQuota))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,9 +21,9 @@ import (
|
|||||||
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
rbacv1 "k8s.io/api/rbac/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// RoleBindingGeneratorV1 supports stable generation of a roleBinding.
|
// RoleBindingGeneratorV1 supports stable generation of a roleBinding.
|
||||||
@ -113,35 +113,35 @@ func (s RoleBindingGeneratorV1) StructuredGenerate() (runtime.Object, error) {
|
|||||||
if err := s.validate(); err != nil {
|
if err := s.validate(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
roleBinding := &rbac.RoleBinding{}
|
roleBinding := &rbacv1.RoleBinding{}
|
||||||
roleBinding.Name = s.Name
|
roleBinding.Name = s.Name
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
case len(s.Role) > 0:
|
case len(s.Role) > 0:
|
||||||
roleBinding.RoleRef = rbac.RoleRef{
|
roleBinding.RoleRef = rbacv1.RoleRef{
|
||||||
APIGroup: rbac.GroupName,
|
APIGroup: rbacv1.GroupName,
|
||||||
Kind: "Role",
|
Kind: "Role",
|
||||||
Name: s.Role,
|
Name: s.Role,
|
||||||
}
|
}
|
||||||
case len(s.ClusterRole) > 0:
|
case len(s.ClusterRole) > 0:
|
||||||
roleBinding.RoleRef = rbac.RoleRef{
|
roleBinding.RoleRef = rbacv1.RoleRef{
|
||||||
APIGroup: rbac.GroupName,
|
APIGroup: rbacv1.GroupName,
|
||||||
Kind: "ClusterRole",
|
Kind: "ClusterRole",
|
||||||
Name: s.ClusterRole,
|
Name: s.ClusterRole,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, user := range sets.NewString(s.Users...).List() {
|
for _, user := range sets.NewString(s.Users...).List() {
|
||||||
roleBinding.Subjects = append(roleBinding.Subjects, rbac.Subject{
|
roleBinding.Subjects = append(roleBinding.Subjects, rbacv1.Subject{
|
||||||
Kind: rbac.UserKind,
|
Kind: rbacv1.UserKind,
|
||||||
APIGroup: rbac.GroupName,
|
APIGroup: rbacv1.GroupName,
|
||||||
Name: user,
|
Name: user,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
for _, group := range sets.NewString(s.Groups...).List() {
|
for _, group := range sets.NewString(s.Groups...).List() {
|
||||||
roleBinding.Subjects = append(roleBinding.Subjects, rbac.Subject{
|
roleBinding.Subjects = append(roleBinding.Subjects, rbacv1.Subject{
|
||||||
Kind: rbac.GroupKind,
|
Kind: rbacv1.GroupKind,
|
||||||
APIGroup: rbac.GroupName,
|
APIGroup: rbacv1.GroupName,
|
||||||
Name: group,
|
Name: group,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -150,8 +150,8 @@ func (s RoleBindingGeneratorV1) StructuredGenerate() (runtime.Object, error) {
|
|||||||
if len(tokens) != 2 || tokens[1] == "" {
|
if len(tokens) != 2 || tokens[1] == "" {
|
||||||
return nil, fmt.Errorf("serviceaccount must be <namespace>:<name>")
|
return nil, fmt.Errorf("serviceaccount must be <namespace>:<name>")
|
||||||
}
|
}
|
||||||
roleBinding.Subjects = append(roleBinding.Subjects, rbac.Subject{
|
roleBinding.Subjects = append(roleBinding.Subjects, rbacv1.Subject{
|
||||||
Kind: rbac.ServiceAccountKind,
|
Kind: rbacv1.ServiceAccountKind,
|
||||||
APIGroup: "",
|
APIGroup: "",
|
||||||
Namespace: tokens[0],
|
Namespace: tokens[0],
|
||||||
Name: tokens[1],
|
Name: tokens[1],
|
||||||
|
@ -20,8 +20,8 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
rbac "k8s.io/api/rbac/v1"
|
||||||
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRoleBindingGenerate(t *testing.T) {
|
func TestRoleBindingGenerate(t *testing.T) {
|
||||||
|
62
pkg/kubectl/scheme/BUILD
Normal file
62
pkg/kubectl/scheme/BUILD
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = [
|
||||||
|
"install.go",
|
||||||
|
"scheme.go",
|
||||||
|
],
|
||||||
|
importpath = "k8s.io/kubernetes/pkg/kubectl/scheme",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//vendor/k8s.io/api/admission/v1alpha1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/apps/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/apps/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/apps/v1beta2:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/authentication/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/authentication/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/authorization/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/authorization/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/autoscaling/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/batch/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/batch/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/batch/v2alpha1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/certificates/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/extensions/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/imagepolicy/v1alpha1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/networking/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/policy/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/rbac/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/rbac/v1alpha1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/rbac/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/settings/v1alpha1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/storage/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/api/storage/v1beta1:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||||
|
"//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
307
pkg/kubectl/scheme/install.go
Normal file
307
pkg/kubectl/scheme/install.go
Normal file
@ -0,0 +1,307 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2017 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package scheme
|
||||||
|
|
||||||
|
import (
|
||||||
|
admissionv1alpha1 "k8s.io/api/admission/v1alpha1"
|
||||||
|
admissionregistrationv1alpha1 "k8s.io/api/admissionregistration/v1alpha1"
|
||||||
|
appsv1 "k8s.io/api/apps/v1"
|
||||||
|
appsv1beta1 "k8s.io/api/apps/v1beta1"
|
||||||
|
appsv1beta2 "k8s.io/api/apps/v1beta2"
|
||||||
|
authenticationv1 "k8s.io/api/authentication/v1"
|
||||||
|
authenticationv1beta1 "k8s.io/api/authentication/v1beta1"
|
||||||
|
authorizationv1 "k8s.io/api/authorization/v1"
|
||||||
|
authorizationv1beta1 "k8s.io/api/authorization/v1beta1"
|
||||||
|
autoscalingv1 "k8s.io/api/autoscaling/v1"
|
||||||
|
autoscalingv2beta1 "k8s.io/api/autoscaling/v2beta1"
|
||||||
|
batchv1 "k8s.io/api/batch/v1"
|
||||||
|
batchv1beta1 "k8s.io/api/batch/v1beta1"
|
||||||
|
batchv2alpha1 "k8s.io/api/batch/v2alpha1"
|
||||||
|
certificatesv1beta1 "k8s.io/api/certificates/v1beta1"
|
||||||
|
corev1 "k8s.io/api/core/v1"
|
||||||
|
extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
|
||||||
|
imagepolicyv1alpha1 "k8s.io/api/imagepolicy/v1alpha1"
|
||||||
|
networkingv1 "k8s.io/api/networking/v1"
|
||||||
|
policyv1beta1 "k8s.io/api/policy/v1beta1"
|
||||||
|
rbacv1 "k8s.io/api/rbac/v1"
|
||||||
|
rbacv1alpha1 "k8s.io/api/rbac/v1alpha1"
|
||||||
|
rbacv1beta1 "k8s.io/api/rbac/v1beta1"
|
||||||
|
schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1"
|
||||||
|
settingsv1alpha1 "k8s.io/api/settings/v1alpha1"
|
||||||
|
storagev1 "k8s.io/api/storage/v1"
|
||||||
|
storagev1beta1 "k8s.io/api/storage/v1beta1"
|
||||||
|
"k8s.io/apimachinery/pkg/apimachinery/announced"
|
||||||
|
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
|
"k8s.io/client-go/kubernetes/scheme"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Register all groups in the kubectl's registry, but no componentconfig group since it's not in k8s.io/api
|
||||||
|
// The code in this file mostly duplicate the install under k8s.io/kubernetes/pkg/api and k8s.io/kubernetes/pkg/apis,
|
||||||
|
// but does NOT register the internal types.
|
||||||
|
func init() {
|
||||||
|
// Register external types for Scheme
|
||||||
|
v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"})
|
||||||
|
scheme.AddToScheme(Scheme)
|
||||||
|
|
||||||
|
// Register external types for Registry
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: corev1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{corev1.SchemeGroupVersion.Version},
|
||||||
|
RootScopedKinds: sets.NewString(
|
||||||
|
"Node",
|
||||||
|
"Namespace",
|
||||||
|
"PersistentVolume",
|
||||||
|
"ComponentStatus",
|
||||||
|
),
|
||||||
|
IgnoredKinds: sets.NewString(
|
||||||
|
"ListOptions",
|
||||||
|
"DeleteOptions",
|
||||||
|
"Status",
|
||||||
|
"PodLogOptions",
|
||||||
|
"PodExecOptions",
|
||||||
|
"PodAttachOptions",
|
||||||
|
"PodPortForwardOptions",
|
||||||
|
"PodProxyOptions",
|
||||||
|
"NodeProxyOptions",
|
||||||
|
"ServiceProxyOptions",
|
||||||
|
"ThirdPartyResource",
|
||||||
|
"ThirdPartyResourceData",
|
||||||
|
"ThirdPartyResourceList",
|
||||||
|
),
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
corev1.SchemeGroupVersion.Version: corev1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: admissionv1alpha1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{admissionv1alpha1.SchemeGroupVersion.Version},
|
||||||
|
RootScopedKinds: sets.NewString("AdmissionReview"),
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
admissionv1alpha1.SchemeGroupVersion.Version: admissionv1alpha1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: admissionregistrationv1alpha1.GroupName,
|
||||||
|
RootScopedKinds: sets.NewString("InitializerConfiguration", "ExternalAdmissionHookConfiguration"),
|
||||||
|
VersionPreferenceOrder: []string{admissionregistrationv1alpha1.SchemeGroupVersion.Version},
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
admissionregistrationv1alpha1.SchemeGroupVersion.Version: admissionregistrationv1alpha1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: appsv1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{appsv1beta1.SchemeGroupVersion.Version, appsv1beta2.SchemeGroupVersion.Version, appsv1.SchemeGroupVersion.Version},
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
appsv1beta1.SchemeGroupVersion.Version: appsv1beta1.AddToScheme,
|
||||||
|
appsv1beta2.SchemeGroupVersion.Version: appsv1beta2.AddToScheme,
|
||||||
|
appsv1.SchemeGroupVersion.Version: appsv1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: authenticationv1beta1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{authenticationv1.SchemeGroupVersion.Version, authenticationv1beta1.SchemeGroupVersion.Version},
|
||||||
|
RootScopedKinds: sets.NewString("TokenReview"),
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
authenticationv1beta1.SchemeGroupVersion.Version: authenticationv1beta1.AddToScheme,
|
||||||
|
authenticationv1.SchemeGroupVersion.Version: authenticationv1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: authorizationv1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{authorizationv1.SchemeGroupVersion.Version, authorizationv1beta1.SchemeGroupVersion.Version},
|
||||||
|
RootScopedKinds: sets.NewString("SubjectAccessReview", "SelfSubjectAccessReview", "SelfSubjectRulesReview"),
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
authorizationv1beta1.SchemeGroupVersion.Version: authorizationv1beta1.AddToScheme,
|
||||||
|
authorizationv1.SchemeGroupVersion.Version: authorizationv1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: autoscalingv1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{autoscalingv1.SchemeGroupVersion.Version, autoscalingv2beta1.SchemeGroupVersion.Version},
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
autoscalingv1.SchemeGroupVersion.Version: autoscalingv1.AddToScheme,
|
||||||
|
autoscalingv2beta1.SchemeGroupVersion.Version: autoscalingv2beta1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: batchv1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{batchv1.SchemeGroupVersion.Version, batchv1beta1.SchemeGroupVersion.Version, batchv2alpha1.SchemeGroupVersion.Version},
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
batchv1.SchemeGroupVersion.Version: batchv1.AddToScheme,
|
||||||
|
batchv1beta1.SchemeGroupVersion.Version: batchv1beta1.AddToScheme,
|
||||||
|
batchv2alpha1.SchemeGroupVersion.Version: batchv2alpha1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: certificatesv1beta1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{certificatesv1beta1.SchemeGroupVersion.Version},
|
||||||
|
RootScopedKinds: sets.NewString("CertificateSigningRequest"),
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
certificatesv1beta1.SchemeGroupVersion.Version: certificatesv1beta1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: extensionsv1beta1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{extensionsv1beta1.SchemeGroupVersion.Version},
|
||||||
|
RootScopedKinds: sets.NewString("PodSecurityPolicy", "ThirdPartyResource"),
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
extensionsv1beta1.SchemeGroupVersion.Version: extensionsv1beta1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: imagepolicyv1alpha1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{imagepolicyv1alpha1.SchemeGroupVersion.Version},
|
||||||
|
RootScopedKinds: sets.NewString("ImageReview"),
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
imagepolicyv1alpha1.SchemeGroupVersion.Version: imagepolicyv1alpha1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: networkingv1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{networkingv1.SchemeGroupVersion.Version},
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
networkingv1.SchemeGroupVersion.Version: networkingv1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: policyv1beta1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{policyv1beta1.SchemeGroupVersion.Version},
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
policyv1beta1.SchemeGroupVersion.Version: policyv1beta1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: rbacv1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{rbacv1.SchemeGroupVersion.Version, rbacv1beta1.SchemeGroupVersion.Version, rbacv1alpha1.SchemeGroupVersion.Version},
|
||||||
|
RootScopedKinds: sets.NewString("ClusterRole", "ClusterRoleBinding"),
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
rbacv1.SchemeGroupVersion.Version: rbacv1.AddToScheme,
|
||||||
|
rbacv1beta1.SchemeGroupVersion.Version: rbacv1beta1.AddToScheme,
|
||||||
|
rbacv1alpha1.SchemeGroupVersion.Version: rbacv1alpha1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: schedulingv1alpha1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{schedulingv1alpha1.SchemeGroupVersion.Version},
|
||||||
|
RootScopedKinds: sets.NewString("PriorityClass"),
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
schedulingv1alpha1.SchemeGroupVersion.Version: schedulingv1alpha1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: settingsv1alpha1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{settingsv1alpha1.SchemeGroupVersion.Version},
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
settingsv1alpha1.SchemeGroupVersion.Version: settingsv1alpha1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := announced.NewGroupMetaFactory(
|
||||||
|
&announced.GroupMetaFactoryArgs{
|
||||||
|
GroupName: storagev1.GroupName,
|
||||||
|
VersionPreferenceOrder: []string{storagev1.SchemeGroupVersion.Version, storagev1beta1.SchemeGroupVersion.Version},
|
||||||
|
RootScopedKinds: sets.NewString("StorageClass"),
|
||||||
|
},
|
||||||
|
announced.VersionToSchemeFunc{
|
||||||
|
storagev1.SchemeGroupVersion.Version: storagev1.AddToScheme,
|
||||||
|
storagev1beta1.SchemeGroupVersion.Version: storagev1beta1.AddToScheme,
|
||||||
|
},
|
||||||
|
).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
43
pkg/kubectl/scheme/scheme.go
Normal file
43
pkg/kubectl/scheme/scheme.go
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2017 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package scheme
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/apimachinery/announced"
|
||||||
|
"k8s.io/apimachinery/pkg/apimachinery/registered"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
|
)
|
||||||
|
|
||||||
|
// All kubectl code should eventually switch to use this Registry and Scheme instead of the global ones.
|
||||||
|
|
||||||
|
// GroupFactoryRegistry is the APIGroupFactoryRegistry (overlaps a bit with Registry, see comments in package for details)
|
||||||
|
var GroupFactoryRegistry = make(announced.APIGroupFactoryRegistry)
|
||||||
|
|
||||||
|
// Registry is an instance of an API registry.
|
||||||
|
var Registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS"))
|
||||||
|
|
||||||
|
// Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered.
|
||||||
|
var Scheme = runtime.NewScheme()
|
||||||
|
|
||||||
|
// Codecs provides access to encoding and decoding for the scheme
|
||||||
|
var Codecs = serializer.NewCodecFactory(Scheme)
|
||||||
|
|
||||||
|
// ParameterCodec handles versioning of objects that are converted to query parameters.
|
||||||
|
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
@ -23,9 +23,9 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/validation"
|
"k8s.io/apimachinery/pkg/util/validation"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util"
|
"k8s.io/kubernetes/pkg/kubectl/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/hash"
|
"k8s.io/kubernetes/pkg/kubectl/util/hash"
|
||||||
)
|
)
|
||||||
@ -129,11 +129,11 @@ func (s SecretGeneratorV1) StructuredGenerate() (runtime.Object, error) {
|
|||||||
if err := s.validate(); err != nil {
|
if err := s.validate(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
secret := &api.Secret{}
|
secret := &v1.Secret{}
|
||||||
secret.Name = s.Name
|
secret.Name = s.Name
|
||||||
secret.Data = map[string][]byte{}
|
secret.Data = map[string][]byte{}
|
||||||
if len(s.Type) > 0 {
|
if len(s.Type) > 0 {
|
||||||
secret.Type = api.SecretType(s.Type)
|
secret.Type = v1.SecretType(s.Type)
|
||||||
}
|
}
|
||||||
if len(s.FileSources) > 0 {
|
if len(s.FileSources) > 0 {
|
||||||
if err := handleFromFileSources(secret, s.FileSources); err != nil {
|
if err := handleFromFileSources(secret, s.FileSources); err != nil {
|
||||||
@ -172,7 +172,7 @@ func (s SecretGeneratorV1) validate() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// handleFromLiteralSources adds the specified literal source information into the provided secret
|
// handleFromLiteralSources adds the specified literal source information into the provided secret
|
||||||
func handleFromLiteralSources(secret *api.Secret, literalSources []string) error {
|
func handleFromLiteralSources(secret *v1.Secret, literalSources []string) error {
|
||||||
for _, literalSource := range literalSources {
|
for _, literalSource := range literalSources {
|
||||||
keyName, value, err := util.ParseLiteralSource(literalSource)
|
keyName, value, err := util.ParseLiteralSource(literalSource)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -186,7 +186,7 @@ func handleFromLiteralSources(secret *api.Secret, literalSources []string) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
// handleFromFileSources adds the specified file source information into the provided secret
|
// handleFromFileSources adds the specified file source information into the provided secret
|
||||||
func handleFromFileSources(secret *api.Secret, fileSources []string) error {
|
func handleFromFileSources(secret *v1.Secret, fileSources []string) error {
|
||||||
for _, fileSource := range fileSources {
|
for _, fileSource := range fileSources {
|
||||||
keyName, filePath, err := util.ParseFileSource(fileSource)
|
keyName, filePath, err := util.ParseFileSource(fileSource)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -230,7 +230,7 @@ func handleFromFileSources(secret *api.Secret, fileSources []string) error {
|
|||||||
|
|
||||||
// handleFromEnvFileSource adds the specified env file source information
|
// handleFromEnvFileSource adds the specified env file source information
|
||||||
// into the provided secret
|
// into the provided secret
|
||||||
func handleFromEnvFileSource(secret *api.Secret, envFileSource string) error {
|
func handleFromEnvFileSource(secret *v1.Secret, envFileSource string) error {
|
||||||
info, err := os.Stat(envFileSource)
|
info, err := os.Stat(envFileSource)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
switch err := err.(type) {
|
switch err := err.(type) {
|
||||||
@ -249,7 +249,7 @@ func handleFromEnvFileSource(secret *api.Secret, envFileSource string) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func addKeyFromFileToSecret(secret *api.Secret, keyName, filePath string) error {
|
func addKeyFromFileToSecret(secret *v1.Secret, keyName, filePath string) error {
|
||||||
data, err := ioutil.ReadFile(filePath)
|
data, err := ioutil.ReadFile(filePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -257,7 +257,7 @@ func addKeyFromFileToSecret(secret *api.Secret, keyName, filePath string) error
|
|||||||
return addKeyFromLiteralToSecret(secret, keyName, data)
|
return addKeyFromLiteralToSecret(secret, keyName, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
func addKeyFromLiteralToSecret(secret *api.Secret, keyName string, data []byte) error {
|
func addKeyFromLiteralToSecret(secret *v1.Secret, keyName string, data []byte) error {
|
||||||
if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 {
|
if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 {
|
||||||
return fmt.Errorf("%q is not a valid key name for a Secret: %s", keyName, strings.Join(errs, ";"))
|
return fmt.Errorf("%q is not a valid key name for a Secret: %s", keyName, strings.Join(errs, ";"))
|
||||||
}
|
}
|
||||||
|
@ -20,8 +20,8 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/credentialprovider"
|
"k8s.io/kubernetes/pkg/credentialprovider"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/hash"
|
"k8s.io/kubernetes/pkg/kubectl/util/hash"
|
||||||
)
|
)
|
||||||
@ -89,11 +89,11 @@ func (s SecretForDockerRegistryGeneratorV1) StructuredGenerate() (runtime.Object
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
secret := &api.Secret{}
|
secret := &v1.Secret{}
|
||||||
secret.Name = s.Name
|
secret.Name = s.Name
|
||||||
secret.Type = api.SecretTypeDockercfg
|
secret.Type = v1.SecretTypeDockercfg
|
||||||
secret.Data = map[string][]byte{}
|
secret.Data = map[string][]byte{}
|
||||||
secret.Data[api.DockerConfigKey] = dockercfgContent
|
secret.Data[v1.DockerConfigKey] = dockercfgContent
|
||||||
if s.AppendHash {
|
if s.AppendHash {
|
||||||
h, err := hash.SecretHash(secret)
|
h, err := hash.SecretHash(secret)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -20,8 +20,8 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSecretForDockerRegistryGenerate(t *testing.T) {
|
func TestSecretForDockerRegistryGenerate(t *testing.T) {
|
||||||
@ -37,7 +37,7 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) {
|
|||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
params map[string]interface{}
|
params map[string]interface{}
|
||||||
expected *api.Secret
|
expected *v1.Secret
|
||||||
expectErr bool
|
expectErr bool
|
||||||
}{
|
}{
|
||||||
"test-valid-use": {
|
"test-valid-use": {
|
||||||
@ -48,14 +48,14 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) {
|
|||||||
"docker-password": password,
|
"docker-password": password,
|
||||||
"docker-email": email,
|
"docker-email": email,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
Data: map[string][]byte{
|
Data: map[string][]byte{
|
||||||
api.DockerConfigKey: secretData,
|
v1.DockerConfigKey: secretData,
|
||||||
},
|
},
|
||||||
Type: api.SecretTypeDockercfg,
|
Type: v1.SecretTypeDockercfg,
|
||||||
},
|
},
|
||||||
expectErr: false,
|
expectErr: false,
|
||||||
},
|
},
|
||||||
@ -68,14 +68,14 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) {
|
|||||||
"docker-email": email,
|
"docker-email": email,
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo-94759gc65b",
|
Name: "foo-94759gc65b",
|
||||||
},
|
},
|
||||||
Data: map[string][]byte{
|
Data: map[string][]byte{
|
||||||
api.DockerConfigKey: secretData,
|
v1.DockerConfigKey: secretData,
|
||||||
},
|
},
|
||||||
Type: api.SecretTypeDockercfg,
|
Type: v1.SecretTypeDockercfg,
|
||||||
},
|
},
|
||||||
expectErr: false,
|
expectErr: false,
|
||||||
},
|
},
|
||||||
@ -86,14 +86,14 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) {
|
|||||||
"docker-username": username,
|
"docker-username": username,
|
||||||
"docker-password": password,
|
"docker-password": password,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
Data: map[string][]byte{
|
Data: map[string][]byte{
|
||||||
api.DockerConfigKey: secretDataNoEmail,
|
v1.DockerConfigKey: secretDataNoEmail,
|
||||||
},
|
},
|
||||||
Type: api.SecretTypeDockercfg,
|
Type: v1.SecretTypeDockercfg,
|
||||||
},
|
},
|
||||||
expectErr: false,
|
expectErr: false,
|
||||||
},
|
},
|
||||||
@ -117,8 +117,8 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) {
|
|||||||
if test.expectErr && err != nil {
|
if test.expectErr && err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(obj.(*api.Secret), test.expected) {
|
if !reflect.DeepEqual(obj.(*v1.Secret), test.expected) {
|
||||||
t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*api.Secret))
|
t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*v1.Secret))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,8 +21,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/kubectl/util/hash"
|
"k8s.io/kubernetes/pkg/kubectl/util/hash"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -87,12 +87,12 @@ func (s SecretForTLSGeneratorV1) StructuredGenerate() (runtime.Object, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
secret := &api.Secret{}
|
secret := &v1.Secret{}
|
||||||
secret.Name = s.Name
|
secret.Name = s.Name
|
||||||
secret.Type = api.SecretTypeTLS
|
secret.Type = v1.SecretTypeTLS
|
||||||
secret.Data = map[string][]byte{}
|
secret.Data = map[string][]byte{}
|
||||||
secret.Data[api.TLSCertKey] = []byte(tlsCrt)
|
secret.Data[v1.TLSCertKey] = []byte(tlsCrt)
|
||||||
secret.Data[api.TLSPrivateKeyKey] = []byte(tlsKey)
|
secret.Data[v1.TLSPrivateKeyKey] = []byte(tlsKey)
|
||||||
if s.AppendHash {
|
if s.AppendHash {
|
||||||
h, err := hash.SecretHash(secret)
|
h, err := hash.SecretHash(secret)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -23,9 +23,9 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
utiltesting "k8s.io/client-go/util/testing"
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var rsaCertPEM = `-----BEGIN CERTIFICATE-----
|
var rsaCertPEM = `-----BEGIN CERTIFICATE-----
|
||||||
@ -124,7 +124,7 @@ func TestSecretForTLSGenerate(t *testing.T) {
|
|||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
params map[string]interface{}
|
params map[string]interface{}
|
||||||
expected *api.Secret
|
expected *v1.Secret
|
||||||
expectErr bool
|
expectErr bool
|
||||||
}{
|
}{
|
||||||
"test-valid-tls-secret": {
|
"test-valid-tls-secret": {
|
||||||
@ -133,15 +133,15 @@ func TestSecretForTLSGenerate(t *testing.T) {
|
|||||||
"key": validKeyPath,
|
"key": validKeyPath,
|
||||||
"cert": validCertPath,
|
"cert": validCertPath,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
Data: map[string][]byte{
|
Data: map[string][]byte{
|
||||||
api.TLSCertKey: []byte(rsaCertPEM),
|
v1.TLSCertKey: []byte(rsaCertPEM),
|
||||||
api.TLSPrivateKeyKey: []byte(rsaKeyPEM),
|
v1.TLSPrivateKeyKey: []byte(rsaKeyPEM),
|
||||||
},
|
},
|
||||||
Type: api.SecretTypeTLS,
|
Type: v1.SecretTypeTLS,
|
||||||
},
|
},
|
||||||
expectErr: false,
|
expectErr: false,
|
||||||
},
|
},
|
||||||
@ -152,15 +152,15 @@ func TestSecretForTLSGenerate(t *testing.T) {
|
|||||||
"cert": validCertPath,
|
"cert": validCertPath,
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo-272h6tt825",
|
Name: "foo-272h6tt825",
|
||||||
},
|
},
|
||||||
Data: map[string][]byte{
|
Data: map[string][]byte{
|
||||||
api.TLSCertKey: []byte(rsaCertPEM),
|
v1.TLSCertKey: []byte(rsaCertPEM),
|
||||||
api.TLSPrivateKeyKey: []byte(rsaKeyPEM),
|
v1.TLSPrivateKeyKey: []byte(rsaKeyPEM),
|
||||||
},
|
},
|
||||||
Type: api.SecretTypeTLS,
|
Type: v1.SecretTypeTLS,
|
||||||
},
|
},
|
||||||
expectErr: false,
|
expectErr: false,
|
||||||
},
|
},
|
||||||
@ -170,15 +170,15 @@ func TestSecretForTLSGenerate(t *testing.T) {
|
|||||||
"key": invalidKeyPath,
|
"key": invalidKeyPath,
|
||||||
"cert": invalidCertPath,
|
"cert": invalidCertPath,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
Data: map[string][]byte{
|
Data: map[string][]byte{
|
||||||
api.TLSCertKey: []byte("test"),
|
v1.TLSCertKey: []byte("test"),
|
||||||
api.TLSPrivateKeyKey: []byte("test"),
|
v1.TLSPrivateKeyKey: []byte("test"),
|
||||||
},
|
},
|
||||||
Type: api.SecretTypeTLS,
|
Type: v1.SecretTypeTLS,
|
||||||
},
|
},
|
||||||
expectErr: true,
|
expectErr: true,
|
||||||
},
|
},
|
||||||
@ -188,15 +188,15 @@ func TestSecretForTLSGenerate(t *testing.T) {
|
|||||||
"key": mismatchKeyPath,
|
"key": mismatchKeyPath,
|
||||||
"cert": mismatchCertPath,
|
"cert": mismatchCertPath,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
Data: map[string][]byte{
|
Data: map[string][]byte{
|
||||||
api.TLSCertKey: []byte(rsaCertPEM),
|
v1.TLSCertKey: []byte(rsaCertPEM),
|
||||||
api.TLSPrivateKeyKey: []byte(mismatchRSAKeyPEM),
|
v1.TLSPrivateKeyKey: []byte(mismatchRSAKeyPEM),
|
||||||
},
|
},
|
||||||
Type: api.SecretTypeTLS,
|
Type: v1.SecretTypeTLS,
|
||||||
},
|
},
|
||||||
expectErr: true,
|
expectErr: true,
|
||||||
},
|
},
|
||||||
@ -218,8 +218,8 @@ func TestSecretForTLSGenerate(t *testing.T) {
|
|||||||
if test.expectErr && err != nil {
|
if test.expectErr && err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(obj.(*api.Secret), test.expected) {
|
if !reflect.DeepEqual(obj.(*v1.Secret), test.expected) {
|
||||||
t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*api.Secret))
|
t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*v1.Secret))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,22 +21,22 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSecretGenerate(t *testing.T) {
|
func TestSecretGenerate(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
setup func(t *testing.T, params map[string]interface{}) func()
|
setup func(t *testing.T, params map[string]interface{}) func()
|
||||||
params map[string]interface{}
|
params map[string]interface{}
|
||||||
expected *api.Secret
|
expected *v1.Secret
|
||||||
expectErr bool
|
expectErr bool
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
params: map[string]interface{}{
|
params: map[string]interface{}{
|
||||||
"name": "foo",
|
"name": "foo",
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
@ -49,7 +49,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"name": "foo",
|
"name": "foo",
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo-949tdgdkgg",
|
Name: "foo-949tdgdkgg",
|
||||||
},
|
},
|
||||||
@ -62,7 +62,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"name": "foo",
|
"name": "foo",
|
||||||
"type": "my-type",
|
"type": "my-type",
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
@ -77,7 +77,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"type": "my-type",
|
"type": "my-type",
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo-dg474f9t76",
|
Name: "foo-dg474f9t76",
|
||||||
},
|
},
|
||||||
@ -91,7 +91,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"name": "foo",
|
"name": "foo",
|
||||||
"from-literal": []string{"key1=value1", "key2=value2"},
|
"from-literal": []string{"key1=value1", "key2=value2"},
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
@ -108,7 +108,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"from-literal": []string{"key1=value1", "key2=value2"},
|
"from-literal": []string{"key1=value1", "key2=value2"},
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo-tf72c228m4",
|
Name: "foo-tf72c228m4",
|
||||||
},
|
},
|
||||||
@ -145,7 +145,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"name": "foo",
|
"name": "foo",
|
||||||
"from-literal": []string{"key1==value1"},
|
"from-literal": []string{"key1==value1"},
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
@ -161,7 +161,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"from-literal": []string{"key1==value1"},
|
"from-literal": []string{"key1==value1"},
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo-fdcc8tkhh5",
|
Name: "foo-fdcc8tkhh5",
|
||||||
},
|
},
|
||||||
@ -177,7 +177,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"name": "valid_env",
|
"name": "valid_env",
|
||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "valid_env",
|
Name: "valid_env",
|
||||||
},
|
},
|
||||||
@ -195,7 +195,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "valid_env-bkb2m2965h",
|
Name: "valid_env-bkb2m2965h",
|
||||||
},
|
},
|
||||||
@ -216,7 +216,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"name": "getenv",
|
"name": "getenv",
|
||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "getenv",
|
Name: "getenv",
|
||||||
},
|
},
|
||||||
@ -238,7 +238,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "getenv-m7kg2khdb4",
|
Name: "getenv-m7kg2khdb4",
|
||||||
},
|
},
|
||||||
@ -271,7 +271,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"name": "with_spaces",
|
"name": "with_spaces",
|
||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "with_spaces",
|
Name: "with_spaces",
|
||||||
},
|
},
|
||||||
@ -288,7 +288,7 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
"from-env-file": "file.env",
|
"from-env-file": "file.env",
|
||||||
"append-hash": true,
|
"append-hash": true,
|
||||||
},
|
},
|
||||||
expected: &api.Secret{
|
expected: &v1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "with_spaces-4488d5b57d",
|
Name: "with_spaces-4488d5b57d",
|
||||||
},
|
},
|
||||||
@ -314,8 +314,8 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
if test.expectErr && err != nil {
|
if test.expectErr && err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(obj.(*api.Secret), test.expected) {
|
if !reflect.DeepEqual(obj.(*v1.Secret), test.expected) {
|
||||||
t.Errorf("\ncase %d, expected:\n%#v\nsaw:\n%#v", i, test.expected, obj.(*api.Secret))
|
t.Errorf("\ncase %d, expected:\n%#v\nsaw:\n%#v", i, test.expected, obj.(*v1.Secret))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,17 +21,17 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
"k8s.io/apimachinery/pkg/util/validation"
|
"k8s.io/apimachinery/pkg/util/validation"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ServiceCommonGeneratorV1 struct {
|
type ServiceCommonGeneratorV1 struct {
|
||||||
Name string
|
Name string
|
||||||
TCP []string
|
TCP []string
|
||||||
Type api.ServiceType
|
Type v1.ServiceType
|
||||||
ClusterIP string
|
ClusterIP string
|
||||||
NodePort int
|
NodePort int
|
||||||
ExternalName string
|
ExternalName string
|
||||||
@ -131,7 +131,7 @@ func (s ServiceLoadBalancerGeneratorV1) Generate(params map[string]interface{})
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
delegate := &ServiceCommonGeneratorV1{Type: api.ServiceTypeLoadBalancer, ClusterIP: ""}
|
delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeLoadBalancer, ClusterIP: ""}
|
||||||
err = delegate.GenerateCommon(params)
|
err = delegate.GenerateCommon(params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -144,7 +144,7 @@ func (s ServiceNodePortGeneratorV1) Generate(params map[string]interface{}) (run
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
delegate := &ServiceCommonGeneratorV1{Type: api.ServiceTypeNodePort, ClusterIP: ""}
|
delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeNodePort, ClusterIP: ""}
|
||||||
err = delegate.GenerateCommon(params)
|
err = delegate.GenerateCommon(params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -157,7 +157,7 @@ func (s ServiceClusterIPGeneratorV1) Generate(params map[string]interface{}) (ru
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
delegate := &ServiceCommonGeneratorV1{Type: api.ServiceTypeClusterIP, ClusterIP: ""}
|
delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeClusterIP, ClusterIP: ""}
|
||||||
err = delegate.GenerateCommon(params)
|
err = delegate.GenerateCommon(params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -170,7 +170,7 @@ func (s ServiceExternalNameGeneratorV1) Generate(params map[string]interface{})
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
delegate := &ServiceCommonGeneratorV1{Type: api.ServiceTypeExternalName, ClusterIP: ""}
|
delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeExternalName, ClusterIP: ""}
|
||||||
err = delegate.GenerateCommon(params)
|
err = delegate.GenerateCommon(params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -187,13 +187,13 @@ func (s ServiceCommonGeneratorV1) validate() error {
|
|||||||
if len(s.Type) == 0 {
|
if len(s.Type) == 0 {
|
||||||
return fmt.Errorf("type must be specified")
|
return fmt.Errorf("type must be specified")
|
||||||
}
|
}
|
||||||
if s.ClusterIP == api.ClusterIPNone && s.Type != api.ServiceTypeClusterIP {
|
if s.ClusterIP == v1.ClusterIPNone && s.Type != v1.ServiceTypeClusterIP {
|
||||||
return fmt.Errorf("ClusterIP=None can only be used with ClusterIP service type")
|
return fmt.Errorf("ClusterIP=None can only be used with ClusterIP service type")
|
||||||
}
|
}
|
||||||
if s.ClusterIP != api.ClusterIPNone && len(s.TCP) == 0 && s.Type != api.ServiceTypeExternalName {
|
if s.ClusterIP != v1.ClusterIPNone && len(s.TCP) == 0 && s.Type != v1.ServiceTypeExternalName {
|
||||||
return fmt.Errorf("at least one tcp port specifier must be provided")
|
return fmt.Errorf("at least one tcp port specifier must be provided")
|
||||||
}
|
}
|
||||||
if s.Type == api.ServiceTypeExternalName {
|
if s.Type == v1.ServiceTypeExternalName {
|
||||||
if errs := validation.IsDNS1123Subdomain(s.ExternalName); len(errs) != 0 {
|
if errs := validation.IsDNS1123Subdomain(s.ExternalName); len(errs) != 0 {
|
||||||
return fmt.Errorf("invalid service external name %s", s.ExternalName)
|
return fmt.Errorf("invalid service external name %s", s.ExternalName)
|
||||||
}
|
}
|
||||||
@ -206,7 +206,7 @@ func (s ServiceCommonGeneratorV1) StructuredGenerate() (runtime.Object, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ports := []api.ServicePort{}
|
ports := []v1.ServicePort{}
|
||||||
for _, tcpString := range s.TCP {
|
for _, tcpString := range s.TCP {
|
||||||
port, targetPort, err := parsePorts(tcpString)
|
port, targetPort, err := parsePorts(tcpString)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -214,11 +214,11 @@ func (s ServiceCommonGeneratorV1) StructuredGenerate() (runtime.Object, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
portName := strings.Replace(tcpString, ":", "-", -1)
|
portName := strings.Replace(tcpString, ":", "-", -1)
|
||||||
ports = append(ports, api.ServicePort{
|
ports = append(ports, v1.ServicePort{
|
||||||
Name: portName,
|
Name: portName,
|
||||||
Port: port,
|
Port: port,
|
||||||
TargetPort: targetPort,
|
TargetPort: targetPort,
|
||||||
Protocol: api.Protocol("TCP"),
|
Protocol: v1.Protocol("TCP"),
|
||||||
NodePort: int32(s.NodePort),
|
NodePort: int32(s.NodePort),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -229,13 +229,13 @@ func (s ServiceCommonGeneratorV1) StructuredGenerate() (runtime.Object, error) {
|
|||||||
selector := map[string]string{}
|
selector := map[string]string{}
|
||||||
selector["app"] = s.Name
|
selector["app"] = s.Name
|
||||||
|
|
||||||
service := api.Service{
|
service := v1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: s.Name,
|
Name: s.Name,
|
||||||
Labels: labels,
|
Labels: labels,
|
||||||
},
|
},
|
||||||
Spec: api.ServiceSpec{
|
Spec: v1.ServiceSpec{
|
||||||
Type: api.ServiceType(s.Type),
|
Type: v1.ServiceType(s.Type),
|
||||||
Selector: selector,
|
Selector: selector,
|
||||||
Ports: ports,
|
Ports: ports,
|
||||||
ExternalName: s.ExternalName,
|
ExternalName: s.ExternalName,
|
||||||
|
@ -20,32 +20,32 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestServiceBasicGenerate(t *testing.T) {
|
func TestServiceBasicGenerate(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
serviceType api.ServiceType
|
serviceType v1.ServiceType
|
||||||
tcp []string
|
tcp []string
|
||||||
clusterip string
|
clusterip string
|
||||||
expected *api.Service
|
expected *v1.Service
|
||||||
expectErr bool
|
expectErr bool
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "clusterip-ok",
|
name: "clusterip-ok",
|
||||||
tcp: []string{"456", "321:908"},
|
tcp: []string{"456", "321:908"},
|
||||||
clusterip: "",
|
clusterip: "",
|
||||||
serviceType: api.ServiceTypeClusterIP,
|
serviceType: v1.ServiceTypeClusterIP,
|
||||||
expected: &api.Service{
|
expected: &v1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "clusterip-ok",
|
Name: "clusterip-ok",
|
||||||
Labels: map[string]string{"app": "clusterip-ok"},
|
Labels: map[string]string{"app": "clusterip-ok"},
|
||||||
},
|
},
|
||||||
Spec: api.ServiceSpec{Type: "ClusterIP",
|
Spec: v1.ServiceSpec{Type: "ClusterIP",
|
||||||
Ports: []api.ServicePort{{Name: "456", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 456, StrVal: ""}, NodePort: 0},
|
Ports: []v1.ServicePort{{Name: "456", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 456, StrVal: ""}, NodePort: 0},
|
||||||
{Name: "321-908", Protocol: "TCP", Port: 321, TargetPort: intstr.IntOrString{Type: 0, IntVal: 908, StrVal: ""}, NodePort: 0}},
|
{Name: "321-908", Protocol: "TCP", Port: 321, TargetPort: intstr.IntOrString{Type: 0, IntVal: 908, StrVal: ""}, NodePort: 0}},
|
||||||
Selector: map[string]string{"app": "clusterip-ok"},
|
Selector: map[string]string{"app": "clusterip-ok"},
|
||||||
ClusterIP: "", ExternalIPs: []string(nil), LoadBalancerIP: ""},
|
ClusterIP: "", ExternalIPs: []string(nil), LoadBalancerIP: ""},
|
||||||
@ -54,28 +54,28 @@ func TestServiceBasicGenerate(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "clusterip-missing",
|
name: "clusterip-missing",
|
||||||
serviceType: api.ServiceTypeClusterIP,
|
serviceType: v1.ServiceTypeClusterIP,
|
||||||
expectErr: true,
|
expectErr: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "clusterip-none-wrong-type",
|
name: "clusterip-none-wrong-type",
|
||||||
tcp: []string{},
|
tcp: []string{},
|
||||||
clusterip: "None",
|
clusterip: "None",
|
||||||
serviceType: api.ServiceTypeNodePort,
|
serviceType: v1.ServiceTypeNodePort,
|
||||||
expectErr: true,
|
expectErr: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "clusterip-none-ok",
|
name: "clusterip-none-ok",
|
||||||
tcp: []string{},
|
tcp: []string{},
|
||||||
clusterip: "None",
|
clusterip: "None",
|
||||||
serviceType: api.ServiceTypeClusterIP,
|
serviceType: v1.ServiceTypeClusterIP,
|
||||||
expected: &api.Service{
|
expected: &v1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "clusterip-none-ok",
|
Name: "clusterip-none-ok",
|
||||||
Labels: map[string]string{"app": "clusterip-none-ok"},
|
Labels: map[string]string{"app": "clusterip-none-ok"},
|
||||||
},
|
},
|
||||||
Spec: api.ServiceSpec{Type: "ClusterIP",
|
Spec: v1.ServiceSpec{Type: "ClusterIP",
|
||||||
Ports: []api.ServicePort{},
|
Ports: []v1.ServicePort{},
|
||||||
Selector: map[string]string{"app": "clusterip-none-ok"},
|
Selector: map[string]string{"app": "clusterip-none-ok"},
|
||||||
ClusterIP: "None", ExternalIPs: []string(nil), LoadBalancerIP: ""},
|
ClusterIP: "None", ExternalIPs: []string(nil), LoadBalancerIP: ""},
|
||||||
},
|
},
|
||||||
@ -85,14 +85,14 @@ func TestServiceBasicGenerate(t *testing.T) {
|
|||||||
name: "clusterip-none-and-port-mapping",
|
name: "clusterip-none-and-port-mapping",
|
||||||
tcp: []string{"456:9898"},
|
tcp: []string{"456:9898"},
|
||||||
clusterip: "None",
|
clusterip: "None",
|
||||||
serviceType: api.ServiceTypeClusterIP,
|
serviceType: v1.ServiceTypeClusterIP,
|
||||||
expected: &api.Service{
|
expected: &v1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "clusterip-none-and-port-mapping",
|
Name: "clusterip-none-and-port-mapping",
|
||||||
Labels: map[string]string{"app": "clusterip-none-and-port-mapping"},
|
Labels: map[string]string{"app": "clusterip-none-and-port-mapping"},
|
||||||
},
|
},
|
||||||
Spec: api.ServiceSpec{Type: "ClusterIP",
|
Spec: v1.ServiceSpec{Type: "ClusterIP",
|
||||||
Ports: []api.ServicePort{{Name: "456-9898", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 9898, StrVal: ""}, NodePort: 0}},
|
Ports: []v1.ServicePort{{Name: "456-9898", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 9898, StrVal: ""}, NodePort: 0}},
|
||||||
Selector: map[string]string{"app": "clusterip-none-and-port-mapping"},
|
Selector: map[string]string{"app": "clusterip-none-and-port-mapping"},
|
||||||
ClusterIP: "None", ExternalIPs: []string(nil), LoadBalancerIP: ""},
|
ClusterIP: "None", ExternalIPs: []string(nil), LoadBalancerIP: ""},
|
||||||
},
|
},
|
||||||
@ -102,14 +102,14 @@ func TestServiceBasicGenerate(t *testing.T) {
|
|||||||
name: "loadbalancer-ok",
|
name: "loadbalancer-ok",
|
||||||
tcp: []string{"456:9898"},
|
tcp: []string{"456:9898"},
|
||||||
clusterip: "",
|
clusterip: "",
|
||||||
serviceType: api.ServiceTypeLoadBalancer,
|
serviceType: v1.ServiceTypeLoadBalancer,
|
||||||
expected: &api.Service{
|
expected: &v1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "loadbalancer-ok",
|
Name: "loadbalancer-ok",
|
||||||
Labels: map[string]string{"app": "loadbalancer-ok"},
|
Labels: map[string]string{"app": "loadbalancer-ok"},
|
||||||
},
|
},
|
||||||
Spec: api.ServiceSpec{Type: "LoadBalancer",
|
Spec: v1.ServiceSpec{Type: "LoadBalancer",
|
||||||
Ports: []api.ServicePort{{Name: "456-9898", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 9898, StrVal: ""}, NodePort: 0}},
|
Ports: []v1.ServicePort{{Name: "456-9898", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 9898, StrVal: ""}, NodePort: 0}},
|
||||||
Selector: map[string]string{"app": "loadbalancer-ok"},
|
Selector: map[string]string{"app": "loadbalancer-ok"},
|
||||||
ClusterIP: "", ExternalIPs: []string(nil), LoadBalancerIP: ""},
|
ClusterIP: "", ExternalIPs: []string(nil), LoadBalancerIP: ""},
|
||||||
},
|
},
|
||||||
@ -133,8 +133,8 @@ func TestServiceBasicGenerate(t *testing.T) {
|
|||||||
if test.expectErr && err != nil {
|
if test.expectErr && err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(obj.(*api.Service), test.expected) {
|
if !reflect.DeepEqual(obj.(*v1.Service), test.expected) {
|
||||||
t.Errorf("test: %v\nexpected:\n%#v\nsaw:\n%#v", test.name, test.expected, obj.(*api.Service))
|
t.Errorf("test: %v\nexpected:\n%#v\nsaw:\n%#v", test.name, test.expected, obj.(*v1.Service))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,8 +19,8 @@ package kubectl
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// ServiceAccountGeneratorV1 supports stable generation of a service account
|
// ServiceAccountGeneratorV1 supports stable generation of a service account
|
||||||
@ -37,7 +37,7 @@ func (g *ServiceAccountGeneratorV1) StructuredGenerate() (runtime.Object, error)
|
|||||||
if err := g.validate(); err != nil {
|
if err := g.validate(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
serviceAccount := &api.ServiceAccount{}
|
serviceAccount := &v1.ServiceAccount{}
|
||||||
serviceAccount.Name = g.Name
|
serviceAccount.Name = g.Name
|
||||||
return serviceAccount, nil
|
return serviceAccount, nil
|
||||||
}
|
}
|
||||||
|
@ -20,19 +20,19 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestServiceAccountGenerate(t *testing.T) {
|
func TestServiceAccountGenerate(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
expected *api.ServiceAccount
|
expected *v1.ServiceAccount
|
||||||
expectErr bool
|
expectErr bool
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "foo",
|
name: "foo",
|
||||||
expected: &api.ServiceAccount{
|
expected: &v1.ServiceAccount{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
},
|
},
|
||||||
@ -54,8 +54,8 @@ func TestServiceAccountGenerate(t *testing.T) {
|
|||||||
if test.expectErr && err != nil {
|
if test.expectErr && err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(obj.(*api.ServiceAccount), test.expected) {
|
if !reflect.DeepEqual(obj.(*v1.ServiceAccount), test.expected) {
|
||||||
t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*api.ServiceAccount))
|
t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*v1.ServiceAccount))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,14 +11,14 @@ go_test(
|
|||||||
srcs = ["hash_test.go"],
|
srcs = ["hash_test.go"],
|
||||||
importpath = "k8s.io/kubernetes/pkg/kubectl/util/hash",
|
importpath = "k8s.io/kubernetes/pkg/kubectl/util/hash",
|
||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
deps = ["//pkg/api:go_default_library"],
|
deps = ["//vendor/k8s.io/api/core/v1:go_default_library"],
|
||||||
)
|
)
|
||||||
|
|
||||||
go_library(
|
go_library(
|
||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = ["hash.go"],
|
srcs = ["hash.go"],
|
||||||
importpath = "k8s.io/kubernetes/pkg/kubectl/util/hash",
|
importpath = "k8s.io/kubernetes/pkg/kubectl/util/hash",
|
||||||
deps = ["//pkg/api:go_default_library"],
|
deps = ["//vendor/k8s.io/api/core/v1:go_default_library"],
|
||||||
)
|
)
|
||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
|
@ -21,12 +21,12 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/api/core/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ConfigMapHash returns a hash of the ConfigMap.
|
// ConfigMapHash returns a hash of the ConfigMap.
|
||||||
// The Data, Kind, and Name are taken into account.
|
// The Data, Kind, and Name are taken into account.
|
||||||
func ConfigMapHash(cm *api.ConfigMap) (string, error) {
|
func ConfigMapHash(cm *v1.ConfigMap) (string, error) {
|
||||||
encoded, err := encodeConfigMap(cm)
|
encoded, err := encodeConfigMap(cm)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
@ -40,7 +40,7 @@ func ConfigMapHash(cm *api.ConfigMap) (string, error) {
|
|||||||
|
|
||||||
// SecretHash returns a hash of the Secret.
|
// SecretHash returns a hash of the Secret.
|
||||||
// The Data, Kind, Name, and Type are taken into account.
|
// The Data, Kind, Name, and Type are taken into account.
|
||||||
func SecretHash(sec *api.Secret) (string, error) {
|
func SecretHash(sec *v1.Secret) (string, error) {
|
||||||
encoded, err := encodeSecret(sec)
|
encoded, err := encodeSecret(sec)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
@ -54,7 +54,7 @@ func SecretHash(sec *api.Secret) (string, error) {
|
|||||||
|
|
||||||
// encodeConfigMap encodes a ConfigMap.
|
// encodeConfigMap encodes a ConfigMap.
|
||||||
// Data, Kind, and Name are taken into account.
|
// Data, Kind, and Name are taken into account.
|
||||||
func encodeConfigMap(cm *api.ConfigMap) (string, error) {
|
func encodeConfigMap(cm *v1.ConfigMap) (string, error) {
|
||||||
// json.Marshal sorts the keys in a stable order in the encoding
|
// json.Marshal sorts the keys in a stable order in the encoding
|
||||||
data, err := json.Marshal(map[string]interface{}{"kind": "ConfigMap", "name": cm.Name, "data": cm.Data})
|
data, err := json.Marshal(map[string]interface{}{"kind": "ConfigMap", "name": cm.Name, "data": cm.Data})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -65,7 +65,7 @@ func encodeConfigMap(cm *api.ConfigMap) (string, error) {
|
|||||||
|
|
||||||
// encodeSecret encodes a Secret.
|
// encodeSecret encodes a Secret.
|
||||||
// Data, Kind, Name, and Type are taken into account.
|
// Data, Kind, Name, and Type are taken into account.
|
||||||
func encodeSecret(sec *api.Secret) (string, error) {
|
func encodeSecret(sec *v1.Secret) (string, error) {
|
||||||
// json.Marshal sorts the keys in a stable order in the encoding
|
// json.Marshal sorts the keys in a stable order in the encoding
|
||||||
data, err := json.Marshal(map[string]interface{}{"kind": "Secret", "type": sec.Type, "name": sec.Name, "data": sec.Data})
|
data, err := json.Marshal(map[string]interface{}{"kind": "Secret", "type": sec.Type, "name": sec.Name, "data": sec.Data})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -21,22 +21,22 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/api/core/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestConfigMapHash(t *testing.T) {
|
func TestConfigMapHash(t *testing.T) {
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
desc string
|
desc string
|
||||||
cm *api.ConfigMap
|
cm *v1.ConfigMap
|
||||||
hash string
|
hash string
|
||||||
err string
|
err string
|
||||||
}{
|
}{
|
||||||
// empty map
|
// empty map
|
||||||
{"empty data", &api.ConfigMap{Data: map[string]string{}}, "42745tchd9", ""},
|
{"empty data", &v1.ConfigMap{Data: map[string]string{}}, "42745tchd9", ""},
|
||||||
// one key
|
// one key
|
||||||
{"one key", &api.ConfigMap{Data: map[string]string{"one": ""}}, "9g67k2htb6", ""},
|
{"one key", &v1.ConfigMap{Data: map[string]string{"one": ""}}, "9g67k2htb6", ""},
|
||||||
// three keys (tests sorting order)
|
// three keys (tests sorting order)
|
||||||
{"three keys", &api.ConfigMap{Data: map[string]string{"two": "2", "one": "", "three": "3"}}, "f5h7t85m9b", ""},
|
{"three keys", &v1.ConfigMap{Data: map[string]string{"two": "2", "one": "", "three": "3"}}, "f5h7t85m9b", ""},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, c := range cases {
|
for _, c := range cases {
|
||||||
@ -53,16 +53,16 @@ func TestConfigMapHash(t *testing.T) {
|
|||||||
func TestSecretHash(t *testing.T) {
|
func TestSecretHash(t *testing.T) {
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
desc string
|
desc string
|
||||||
secret *api.Secret
|
secret *v1.Secret
|
||||||
hash string
|
hash string
|
||||||
err string
|
err string
|
||||||
}{
|
}{
|
||||||
// empty map
|
// empty map
|
||||||
{"empty data", &api.Secret{Type: "my-type", Data: map[string][]byte{}}, "t75bgf6ctb", ""},
|
{"empty data", &v1.Secret{Type: "my-type", Data: map[string][]byte{}}, "t75bgf6ctb", ""},
|
||||||
// one key
|
// one key
|
||||||
{"one key", &api.Secret{Type: "my-type", Data: map[string][]byte{"one": []byte("")}}, "74bd68bm66", ""},
|
{"one key", &v1.Secret{Type: "my-type", Data: map[string][]byte{"one": []byte("")}}, "74bd68bm66", ""},
|
||||||
// three keys (tests sorting order)
|
// three keys (tests sorting order)
|
||||||
{"three keys", &api.Secret{Type: "my-type", Data: map[string][]byte{"two": []byte("2"), "one": []byte(""), "three": []byte("3")}}, "dgcb6h9tmk", ""},
|
{"three keys", &v1.Secret{Type: "my-type", Data: map[string][]byte{"two": []byte("2"), "one": []byte(""), "three": []byte("3")}}, "dgcb6h9tmk", ""},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, c := range cases {
|
for _, c := range cases {
|
||||||
@ -79,16 +79,16 @@ func TestSecretHash(t *testing.T) {
|
|||||||
func TestEncodeConfigMap(t *testing.T) {
|
func TestEncodeConfigMap(t *testing.T) {
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
desc string
|
desc string
|
||||||
cm *api.ConfigMap
|
cm *v1.ConfigMap
|
||||||
expect string
|
expect string
|
||||||
err string
|
err string
|
||||||
}{
|
}{
|
||||||
// empty map
|
// empty map
|
||||||
{"empty data", &api.ConfigMap{Data: map[string]string{}}, `{"data":{},"kind":"ConfigMap","name":""}`, ""},
|
{"empty data", &v1.ConfigMap{Data: map[string]string{}}, `{"data":{},"kind":"ConfigMap","name":""}`, ""},
|
||||||
// one key
|
// one key
|
||||||
{"one key", &api.ConfigMap{Data: map[string]string{"one": ""}}, `{"data":{"one":""},"kind":"ConfigMap","name":""}`, ""},
|
{"one key", &v1.ConfigMap{Data: map[string]string{"one": ""}}, `{"data":{"one":""},"kind":"ConfigMap","name":""}`, ""},
|
||||||
// three keys (tests sorting order)
|
// three keys (tests sorting order)
|
||||||
{"three keys", &api.ConfigMap{Data: map[string]string{"two": "2", "one": "", "three": "3"}}, `{"data":{"one":"","three":"3","two":"2"},"kind":"ConfigMap","name":""}`, ""},
|
{"three keys", &v1.ConfigMap{Data: map[string]string{"two": "2", "one": "", "three": "3"}}, `{"data":{"one":"","three":"3","two":"2"},"kind":"ConfigMap","name":""}`, ""},
|
||||||
}
|
}
|
||||||
for _, c := range cases {
|
for _, c := range cases {
|
||||||
s, err := encodeConfigMap(c.cm)
|
s, err := encodeConfigMap(c.cm)
|
||||||
@ -104,16 +104,16 @@ func TestEncodeConfigMap(t *testing.T) {
|
|||||||
func TestEncodeSecret(t *testing.T) {
|
func TestEncodeSecret(t *testing.T) {
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
desc string
|
desc string
|
||||||
secret *api.Secret
|
secret *v1.Secret
|
||||||
expect string
|
expect string
|
||||||
err string
|
err string
|
||||||
}{
|
}{
|
||||||
// empty map
|
// empty map
|
||||||
{"empty data", &api.Secret{Type: "my-type", Data: map[string][]byte{}}, `{"data":{},"kind":"Secret","name":"","type":"my-type"}`, ""},
|
{"empty data", &v1.Secret{Type: "my-type", Data: map[string][]byte{}}, `{"data":{},"kind":"Secret","name":"","type":"my-type"}`, ""},
|
||||||
// one key
|
// one key
|
||||||
{"one key", &api.Secret{Type: "my-type", Data: map[string][]byte{"one": []byte("")}}, `{"data":{"one":""},"kind":"Secret","name":"","type":"my-type"}`, ""},
|
{"one key", &v1.Secret{Type: "my-type", Data: map[string][]byte{"one": []byte("")}}, `{"data":{"one":""},"kind":"Secret","name":"","type":"my-type"}`, ""},
|
||||||
// three keys (tests sorting order) - note json.Marshal base64 encodes the values because they come in as []byte
|
// three keys (tests sorting order) - note json.Marshal base64 encodes the values because they come in as []byte
|
||||||
{"three keys", &api.Secret{Type: "my-type", Data: map[string][]byte{"two": []byte("2"), "one": []byte(""), "three": []byte("3")}}, `{"data":{"one":"","three":"Mw==","two":"Mg=="},"kind":"Secret","name":"","type":"my-type"}`, ""},
|
{"three keys", &v1.Secret{Type: "my-type", Data: map[string][]byte{"two": []byte("2"), "one": []byte(""), "three": []byte("3")}}, `{"data":{"one":"","three":"Mw==","two":"Mg=="},"kind":"Secret","name":"","type":"my-type"}`, ""},
|
||||||
}
|
}
|
||||||
for _, c := range cases {
|
for _, c := range cases {
|
||||||
s, err := encodeSecret(c.secret)
|
s, err := encodeSecret(c.secret)
|
||||||
@ -148,8 +148,8 @@ not their metadata (e.g. the Data of a ConfigMap, but nothing in ObjectMeta).
|
|||||||
obj interface{}
|
obj interface{}
|
||||||
expect int
|
expect int
|
||||||
}{
|
}{
|
||||||
{"ConfigMap", api.ConfigMap{}, 3},
|
{"ConfigMap", v1.ConfigMap{}, 3},
|
||||||
{"Secret", api.Secret{}, 4},
|
{"Secret", v1.Secret{}, 5},
|
||||||
}
|
}
|
||||||
for _, c := range cases {
|
for _, c := range cases {
|
||||||
val := reflect.ValueOf(c.obj)
|
val := reflect.ValueOf(c.obj)
|
||||||
|
Loading…
Reference in New Issue
Block a user