Manual changes for k8s v1.5.0-beta.1
The internal k8s client has now been taken out of the kubernetes repo and is fully at k8s.io/client-go. Minikube should only reference the client-go library, while Localkube can continue to reference both internal k8s components as well as client-go. make gendocspull/908/head
parent
c28b4e7f7e
commit
12c5973fbf
|
@ -24,8 +24,10 @@ import (
|
|||
"github.com/docker/machine/libmachine"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/client-go/1.5/pkg/api/v1"
|
||||
"k8s.io/minikube/pkg/minikube/cluster"
|
||||
"k8s.io/minikube/pkg/minikube/constants"
|
||||
"k8s.io/minikube/pkg/util"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -93,3 +95,37 @@ func validateService(namespace string, service string) error {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// CheckService waits for the specified service to be ready by returning an error until the service is up
|
||||
// The check is done by polling the endpoint associated with the service and when the endpoint exists, returning no error->service-online
|
||||
func CheckService(namespace string, service string) error {
|
||||
client, err := cluster.GetKubernetesClient()
|
||||
if err != nil {
|
||||
return &util.RetriableError{Err: err}
|
||||
}
|
||||
endpoints := client.Endpoints(namespace)
|
||||
if err != nil {
|
||||
return &util.RetriableError{Err: err}
|
||||
}
|
||||
endpoint, err := endpoints.Get(service)
|
||||
if err != nil {
|
||||
return &util.RetriableError{Err: err}
|
||||
}
|
||||
return CheckEndpointReady(endpoint)
|
||||
}
|
||||
|
||||
const notReadyMsg = "Waiting, endpoint for service is not ready yet...\n"
|
||||
|
||||
func CheckEndpointReady(endpoint *v1.Endpoints) error {
|
||||
if len(endpoint.Subsets) == 0 {
|
||||
fmt.Fprintf(os.Stderr, notReadyMsg)
|
||||
return &util.RetriableError{Err: errors.New("Endpoint for service is not ready yet")}
|
||||
}
|
||||
for _, subset := range endpoint.Subsets {
|
||||
if len(subset.Addresses) == 0 {
|
||||
fmt.Fprintf(os.Stderr, notReadyMsg)
|
||||
return &util.RetriableError{Err: errors.New("No endpoints for service are ready yet")}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors All rights reserved.
|
||||
|
||||
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 cmd
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"k8s.io/client-go/1.5/pkg/api/v1"
|
||||
)
|
||||
|
||||
func TestCheckEndpointReady(t *testing.T) {
|
||||
endpointNoSubsets := &v1.Endpoints{}
|
||||
if err := CheckEndpointReady(endpointNoSubsets); err == nil {
|
||||
t.Fatalf("Endpoint had no subsets but CheckEndpointReady did not return an error")
|
||||
}
|
||||
|
||||
endpointNotReady := &v1.Endpoints{
|
||||
Subsets: []v1.EndpointSubset{
|
||||
{Addresses: []v1.EndpointAddress{},
|
||||
NotReadyAddresses: []v1.EndpointAddress{
|
||||
{IP: "1.1.1.1"},
|
||||
{IP: "2.2.2.2"},
|
||||
{IP: "3.3.3.3"},
|
||||
}}}}
|
||||
if err := CheckEndpointReady(endpointNotReady); err == nil {
|
||||
t.Fatalf("Endpoint had no Addresses but CheckEndpointReady did not return an error")
|
||||
}
|
||||
|
||||
endpointReady := &v1.Endpoints{
|
||||
Subsets: []v1.EndpointSubset{
|
||||
{Addresses: []v1.EndpointAddress{
|
||||
{IP: "1.1.1.1"},
|
||||
{IP: "2.2.2.2"},
|
||||
},
|
||||
NotReadyAddresses: []v1.EndpointAddress{},
|
||||
}},
|
||||
}
|
||||
if err := CheckEndpointReady(endpointReady); err != nil {
|
||||
t.Fatalf("Endpoint was ready with at least one Address, but CheckEndpointReady returned an error")
|
||||
}
|
||||
}
|
|
@ -26,13 +26,8 @@ minikube start
|
|||
--hyperv-virtual-switch string The hyperv virtual switch name. Defaults to first found. (only supported with HyperV driver)
|
||||
--insecure-registry stringSlice Insecure Docker registries to pass to the Docker daemon
|
||||
--iso-url string Location of the minikube iso (default "https://storage.googleapis.com/minikube/minikube-0.7.iso")
|
||||
<<<<<<< HEAD
|
||||
--kubernetes-version string The kubernetes version that the minikube VM will use (ex: v1.2.3)
|
||||
OR a URI which contains a localkube binary (ex: https://storage.googleapis.com/minikube/k8sReleases/v1.3.0/localkube-linux-amd64) (default "v1.5.0-alpha.2")
|
||||
=======
|
||||
--kubernetes-version string The kubernetes version that the minikube VM will (ex: v1.2.3)
|
||||
OR a URI which contains a localkube binary (ex: https://storage.googleapis.com/minikube/k8sReleases/v1.3.0/localkube-linux-amd64) (default "v1.5.0-beta.1")
|
||||
>>>>>>> 54df7ea... Update to k8s v1.5.0-beta.1
|
||||
--kvm-network string The KVM network name. (only supported with KVM driver) (default "default")
|
||||
--memory int Amount of RAM allocated to the minikube VM (default 2048)
|
||||
--network-plugin string The name of the network plugin
|
||||
|
|
|
@ -19,11 +19,11 @@ package localkube
|
|||
import (
|
||||
"strings"
|
||||
|
||||
"k8s.io/client-go/1.5/kubernetes"
|
||||
"k8s.io/client-go/1.5/rest"
|
||||
apiserver "k8s.io/kubernetes/cmd/kube-apiserver/app"
|
||||
"k8s.io/kubernetes/cmd/kube-apiserver/app/options"
|
||||
|
||||
kuberest "k8s.io/kubernetes/pkg/client/restclient"
|
||||
kubeclient "k8s.io/kubernetes/pkg/client/unversioned"
|
||||
"k8s.io/kubernetes/pkg/storage/storagebackend"
|
||||
)
|
||||
|
||||
|
@ -32,32 +32,32 @@ func (lk LocalkubeServer) NewAPIServer() Server {
|
|||
}
|
||||
|
||||
func StartAPIServer(lk LocalkubeServer) func() error {
|
||||
config := options.NewAPIServer()
|
||||
config := options.NewServerRunOptions()
|
||||
|
||||
config.BindAddress = lk.APIServerAddress
|
||||
config.SecurePort = lk.APIServerPort
|
||||
config.InsecureBindAddress = lk.APIServerInsecureAddress
|
||||
config.InsecurePort = lk.APIServerInsecurePort
|
||||
config.GenericServerRunOptions.BindAddress = lk.APIServerAddress
|
||||
config.GenericServerRunOptions.SecurePort = lk.APIServerPort
|
||||
config.GenericServerRunOptions.InsecureBindAddress = lk.APIServerInsecureAddress
|
||||
config.GenericServerRunOptions.InsecurePort = lk.APIServerInsecurePort
|
||||
|
||||
config.ClientCAFile = lk.GetCAPublicKeyCertPath()
|
||||
config.TLSCertFile = lk.GetPublicKeyCertPath()
|
||||
config.TLSPrivateKeyFile = lk.GetPrivateKeyCertPath()
|
||||
config.AdmissionControl = "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota"
|
||||
config.GenericServerRunOptions.ClientCAFile = lk.GetCAPublicKeyCertPath()
|
||||
config.GenericServerRunOptions.TLSCertFile = lk.GetPublicKeyCertPath()
|
||||
config.GenericServerRunOptions.TLSPrivateKeyFile = lk.GetPrivateKeyCertPath()
|
||||
config.GenericServerRunOptions.AdmissionControl = "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota"
|
||||
|
||||
// use localkube etcd
|
||||
config.StorageConfig = storagebackend.Config{ServerList: KubeEtcdClientURLs}
|
||||
config.GenericServerRunOptions.StorageConfig = storagebackend.Config{ServerList: KubeEtcdClientURLs}
|
||||
|
||||
// set Service IP range
|
||||
config.ServiceClusterIPRange = lk.ServiceClusterIPRange
|
||||
config.GenericServerRunOptions.ServiceClusterIPRange = lk.ServiceClusterIPRange
|
||||
|
||||
// defaults from apiserver command
|
||||
config.EnableProfiling = true
|
||||
config.EnableWatchCache = true
|
||||
config.MinRequestTimeout = 1800
|
||||
config.GenericServerRunOptions.EnableProfiling = true
|
||||
config.GenericServerRunOptions.EnableWatchCache = true
|
||||
config.GenericServerRunOptions.MinRequestTimeout = 1800
|
||||
|
||||
config.AllowPrivileged = true
|
||||
|
||||
config.RuntimeConfig = lk.RuntimeConfig
|
||||
config.GenericServerRunOptions.RuntimeConfig = lk.RuntimeConfig
|
||||
|
||||
lk.SetExtraConfigForComponent("apiserver", &config)
|
||||
|
||||
|
@ -74,11 +74,11 @@ func notFoundErr(err error) bool {
|
|||
return strings.HasSuffix(err.Error(), "not found")
|
||||
}
|
||||
|
||||
func kubeClient() *kubeclient.Client {
|
||||
config := &kuberest.Config{
|
||||
func kubeClient() *kubernetes.Clientset {
|
||||
config := &rest.Config{
|
||||
Host: "http://localhost:8080", // TODO: Make configurable
|
||||
}
|
||||
client, err := kubeclient.New(config)
|
||||
client, err := kubernetes.NewForConfig(config)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
|
|
@ -41,10 +41,12 @@ import (
|
|||
download "github.com/jimmidyson/go-download"
|
||||
"github.com/pkg/browser"
|
||||
"github.com/pkg/errors"
|
||||
kubeapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
"k8s.io/client-go/1.5/kubernetes"
|
||||
corev1 "k8s.io/client-go/1.5/kubernetes/typed/core/v1"
|
||||
kubeapi "k8s.io/client-go/1.5/pkg/api"
|
||||
"k8s.io/client-go/1.5/pkg/api/v1"
|
||||
"k8s.io/client-go/1.5/pkg/labels"
|
||||
"k8s.io/client-go/1.5/tools/clientcmd"
|
||||
|
||||
"k8s.io/minikube/pkg/minikube/assets"
|
||||
"k8s.io/minikube/pkg/minikube/constants"
|
||||
|
@ -536,7 +538,7 @@ func GetServiceURLsForService(api libmachine.API, namespace, service string, t *
|
|||
return getServiceURLsWithClient(client, ip, namespace, service, t)
|
||||
}
|
||||
|
||||
func getServiceURLsWithClient(client *unversioned.Client, ip, namespace, service string, t *template.Template) ([]string, error) {
|
||||
func getServiceURLsWithClient(client *kubernetes.Clientset, ip, namespace, service string, t *template.Template) ([]string, error) {
|
||||
if t == nil {
|
||||
return nil, errors.New("Error, attempted to generate service url with nil --format template")
|
||||
}
|
||||
|
@ -565,24 +567,24 @@ func getServiceURLsWithClient(client *unversioned.Client, ip, namespace, service
|
|||
}
|
||||
|
||||
type serviceGetter interface {
|
||||
Get(name string) (*kubeapi.Service, error)
|
||||
List(kubeapi.ListOptions) (*kubeapi.ServiceList, error)
|
||||
Get(name string) (*v1.Service, error)
|
||||
List(kubeapi.ListOptions) (*v1.ServiceList, error)
|
||||
}
|
||||
|
||||
func getServicePorts(client *unversioned.Client, namespace, service string) ([]int32, error) {
|
||||
func getServicePorts(client *kubernetes.Clientset, namespace, service string) ([]int32, error) {
|
||||
services := client.Services(namespace)
|
||||
return getServicePortsFromServiceGetter(services, service)
|
||||
}
|
||||
|
||||
type MissingNodePortError struct {
|
||||
service *kubeapi.Service
|
||||
service *v1.Service
|
||||
}
|
||||
|
||||
func (e MissingNodePortError) Error() string {
|
||||
return fmt.Sprintf("Service %s/%s does not have a node port. To have one assigned automatically, the service type must be NodePort or LoadBalancer, but this service is of type %s.", e.service.Namespace, e.service.Name, e.service.Spec.Type)
|
||||
}
|
||||
|
||||
func getServiceFromServiceGetter(services serviceGetter, service string) (*kubeapi.Service, error) {
|
||||
func getServiceFromServiceGetter(services serviceGetter, service string) (*v1.Service, error) {
|
||||
svc, err := services.Get(service)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Error getting %s service: %s", service, err)
|
||||
|
@ -609,7 +611,7 @@ func getServicePortsFromServiceGetter(services serviceGetter, service string) ([
|
|||
return nodePorts, nil
|
||||
}
|
||||
|
||||
func GetKubernetesClient() (*unversioned.Client, error) {
|
||||
func GetKubernetesClient() (*kubernetes.Clientset, error) {
|
||||
loadingRules := clientcmd.NewDefaultClientConfigLoadingRules()
|
||||
configOverrides := &clientcmd.ConfigOverrides{}
|
||||
kubeConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, configOverrides)
|
||||
|
@ -617,7 +619,7 @@ func GetKubernetesClient() (*unversioned.Client, error) {
|
|||
if err != nil {
|
||||
return nil, fmt.Errorf("Error creating kubeConfig: %s", err)
|
||||
}
|
||||
client, err := unversioned.New(config)
|
||||
client, err := kubernetes.NewForConfig(config)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "Error creating new client from kubeConfig.ClientConfig()")
|
||||
}
|
||||
|
@ -704,7 +706,7 @@ func CheckService(namespace string, service string) error {
|
|||
return checkEndpointReady(endpoint)
|
||||
}
|
||||
|
||||
func checkEndpointReady(endpoint *kubeapi.Endpoints) error {
|
||||
func checkEndpointReady(endpoint *v1.Endpoints) error {
|
||||
const notReadyMsg = "Waiting, endpoint for service is not ready yet...\n"
|
||||
if len(endpoint.Subsets) == 0 {
|
||||
fmt.Fprintf(os.Stderr, notReadyMsg)
|
||||
|
@ -744,26 +746,26 @@ func WaitAndMaybeOpenService(api libmachine.API, namespace string, service strin
|
|||
}
|
||||
}
|
||||
|
||||
func GetServiceListByLabel(namespace string, key string, value string) (*kubeapi.ServiceList, error) {
|
||||
func GetServiceListByLabel(namespace string, key string, value string) (*v1.ServiceList, error) {
|
||||
client, err := GetKubernetesClient()
|
||||
if err != nil {
|
||||
return &kubeapi.ServiceList{}, &util.RetriableError{Err: err}
|
||||
return &v1.ServiceList{}, &util.RetriableError{Err: err}
|
||||
}
|
||||
services := client.Services(namespace)
|
||||
if err != nil {
|
||||
return &kubeapi.ServiceList{}, &util.RetriableError{Err: err}
|
||||
return &v1.ServiceList{}, &util.RetriableError{Err: err}
|
||||
}
|
||||
return getServiceListFromServicesByLabel(services, key, value)
|
||||
}
|
||||
|
||||
func getServiceListFromServicesByLabel(services unversioned.ServiceInterface, key string, value string) (*kubeapi.ServiceList, error) {
|
||||
func getServiceListFromServicesByLabel(services corev1.ServiceInterface, key string, value string) (*v1.ServiceList, error) {
|
||||
selector := labels.SelectorFromSet(labels.Set(map[string]string{key: value}))
|
||||
serviceList, err := services.List(kubeapi.ListOptions{LabelSelector: selector})
|
||||
if err != nil {
|
||||
return &kubeapi.ServiceList{}, &util.RetriableError{Err: err}
|
||||
return &v1.ServiceList{}, &util.RetriableError{Err: err}
|
||||
}
|
||||
if len(serviceList.Items) == 0 {
|
||||
return &kubeapi.ServiceList{}, &util.RetriableError{Err: err}
|
||||
return &v1.ServiceList{}, &util.RetriableError{Err: err}
|
||||
}
|
||||
return serviceList, nil
|
||||
}
|
||||
|
|
|
@ -32,10 +32,11 @@ import (
|
|||
"github.com/docker/machine/libmachine/provision"
|
||||
"github.com/docker/machine/libmachine/state"
|
||||
"github.com/pkg/errors"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/client/restclient"
|
||||
"k8s.io/kubernetes/pkg/watch"
|
||||
"k8s.io/client-go/1.5/pkg/api"
|
||||
"k8s.io/client-go/1.5/pkg/api/unversioned"
|
||||
"k8s.io/client-go/1.5/pkg/api/v1"
|
||||
"k8s.io/client-go/1.5/pkg/watch"
|
||||
"k8s.io/client-go/1.5/rest"
|
||||
"k8s.io/minikube/pkg/minikube/assets"
|
||||
"k8s.io/minikube/pkg/minikube/constants"
|
||||
"k8s.io/minikube/pkg/minikube/tests"
|
||||
|
@ -524,16 +525,16 @@ func TestCreateSSHShell(t *testing.T) {
|
|||
}
|
||||
|
||||
type MockServiceGetter struct {
|
||||
services map[string]api.Service
|
||||
services map[string]v1.Service
|
||||
}
|
||||
|
||||
func NewMockServiceGetter() *MockServiceGetter {
|
||||
return &MockServiceGetter{
|
||||
services: make(map[string]api.Service),
|
||||
services: make(map[string]v1.Service),
|
||||
}
|
||||
}
|
||||
|
||||
func (mockServiceGetter *MockServiceGetter) Get(name string) (*api.Service, error) {
|
||||
func (mockServiceGetter *MockServiceGetter) Get(name string) (*v1.Service, error) {
|
||||
service, ok := mockServiceGetter.services[name]
|
||||
if !ok {
|
||||
return nil, errors.Errorf("Error getting %s service from mockServiceGetter", name)
|
||||
|
@ -541,8 +542,8 @@ func (mockServiceGetter *MockServiceGetter) Get(name string) (*api.Service, erro
|
|||
return &service, nil
|
||||
}
|
||||
|
||||
func (mockServiceGetter *MockServiceGetter) List(options api.ListOptions) (*api.ServiceList, error) {
|
||||
services := api.ServiceList{
|
||||
func (mockServiceGetter *MockServiceGetter) List(options api.ListOptions) (*v1.ServiceList, error) {
|
||||
services := v1.ServiceList{
|
||||
TypeMeta: unversioned.TypeMeta{Kind: "ServiceList", APIVersion: "v1"},
|
||||
ListMeta: unversioned.ListMeta{},
|
||||
}
|
||||
|
@ -556,9 +557,9 @@ func (mockServiceGetter *MockServiceGetter) List(options api.ListOptions) (*api.
|
|||
func TestGetServiceURLs(t *testing.T) {
|
||||
mockServiceGetter := NewMockServiceGetter()
|
||||
expected := []int32{1111, 2222}
|
||||
mockDashboardService := api.Service{
|
||||
Spec: api.ServiceSpec{
|
||||
Ports: []api.ServicePort{
|
||||
mockDashboardService := v1.Service{
|
||||
Spec: v1.ServiceSpec{
|
||||
Ports: []v1.ServicePort{
|
||||
{
|
||||
NodePort: expected[0],
|
||||
}, {
|
||||
|
@ -581,7 +582,7 @@ func TestGetServiceURLs(t *testing.T) {
|
|||
|
||||
func TestGetServiceURLWithoutNodePort(t *testing.T) {
|
||||
mockServiceGetter := NewMockServiceGetter()
|
||||
mockDashboardService := api.Service{}
|
||||
mockDashboardService := v1.Service{}
|
||||
mockServiceGetter.services["mock-service"] = mockDashboardService
|
||||
|
||||
_, err := getServicePortsFromServiceGetter(mockServiceGetter, "mock-service")
|
||||
|
@ -783,15 +784,15 @@ func TestUpdateCustomAddons(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestCheckEndpointReady(t *testing.T) {
|
||||
endpointNoSubsets := &api.Endpoints{}
|
||||
endpointNoSubsets := &v1.Endpoints{}
|
||||
if err := checkEndpointReady(endpointNoSubsets); err == nil {
|
||||
t.Fatalf("Endpoint had no subsets but checkEndpointReady did not return an error")
|
||||
}
|
||||
|
||||
endpointNotReady := &api.Endpoints{
|
||||
Subsets: []api.EndpointSubset{
|
||||
{Addresses: []api.EndpointAddress{},
|
||||
NotReadyAddresses: []api.EndpointAddress{
|
||||
endpointNotReady := &v1.Endpoints{
|
||||
Subsets: []v1.EndpointSubset{
|
||||
{Addresses: []v1.EndpointAddress{},
|
||||
NotReadyAddresses: []v1.EndpointAddress{
|
||||
{IP: "1.1.1.1"},
|
||||
{IP: "2.2.2.2"},
|
||||
{IP: "3.3.3.3"},
|
||||
|
@ -800,13 +801,13 @@ func TestCheckEndpointReady(t *testing.T) {
|
|||
t.Fatalf("Endpoint had no Addresses but checkEndpointReady did not return an error")
|
||||
}
|
||||
|
||||
endpointReady := &api.Endpoints{
|
||||
Subsets: []api.EndpointSubset{
|
||||
{Addresses: []api.EndpointAddress{
|
||||
endpointReady := &v1.Endpoints{
|
||||
Subsets: []v1.EndpointSubset{
|
||||
{Addresses: []v1.EndpointAddress{
|
||||
{IP: "1.1.1.1"},
|
||||
{IP: "2.2.2.2"},
|
||||
},
|
||||
NotReadyAddresses: []api.EndpointAddress{},
|
||||
NotReadyAddresses: []v1.EndpointAddress{},
|
||||
}},
|
||||
}
|
||||
if err := checkEndpointReady(endpointReady); err != nil {
|
||||
|
@ -815,12 +816,12 @@ func TestCheckEndpointReady(t *testing.T) {
|
|||
}
|
||||
|
||||
type ServiceInterfaceMock struct {
|
||||
ServiceList *api.ServiceList
|
||||
ServiceList *v1.ServiceList
|
||||
}
|
||||
|
||||
func (s ServiceInterfaceMock) List(opts api.ListOptions) (*api.ServiceList, error) {
|
||||
serviceList := &api.ServiceList{
|
||||
Items: []api.Service{},
|
||||
func (s ServiceInterfaceMock) List(opts api.ListOptions) (*v1.ServiceList, error) {
|
||||
serviceList := &v1.ServiceList{
|
||||
Items: []v1.Service{},
|
||||
}
|
||||
keyValArr := strings.Split(opts.LabelSelector.String(), "=")
|
||||
for _, service := range s.ServiceList.Items {
|
||||
|
@ -830,33 +831,41 @@ func (s ServiceInterfaceMock) List(opts api.ListOptions) (*api.ServiceList, erro
|
|||
}
|
||||
return serviceList, nil
|
||||
}
|
||||
func (s ServiceInterfaceMock) Get(name string) (*api.Service, error) {
|
||||
func (s ServiceInterfaceMock) Get(name string) (*v1.Service, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (s ServiceInterfaceMock) Create(*api.Service) (*api.Service, error) {
|
||||
func (s ServiceInterfaceMock) Create(*v1.Service) (*v1.Service, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (s ServiceInterfaceMock) Update(*api.Service) (*api.Service, error) {
|
||||
func (s ServiceInterfaceMock) Update(*v1.Service) (*v1.Service, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (s ServiceInterfaceMock) UpdateStatus(*api.Service) (*api.Service, error) {
|
||||
func (s ServiceInterfaceMock) UpdateStatus(*v1.Service) (*v1.Service, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (s ServiceInterfaceMock) Delete(name string) error {
|
||||
func (s ServiceInterfaceMock) Delete(string, *api.DeleteOptions) error {
|
||||
return nil
|
||||
}
|
||||
func (s ServiceInterfaceMock) Watch(opts api.ListOptions) (watch.Interface, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (s ServiceInterfaceMock) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper {
|
||||
func (s ServiceInterfaceMock) ProxyGet(scheme, name, port, path string, params map[string]string) rest.ResponseWrapper {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s ServiceInterfaceMock) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s ServiceInterfaceMock) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *v1.Service, err error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func TestGetServiceListFromServicesByLabel(t *testing.T) {
|
||||
serviceList := &api.ServiceList{
|
||||
Items: []api.Service{
|
||||
serviceList := &v1.ServiceList{
|
||||
Items: []v1.Service{
|
||||
{
|
||||
Spec: api.ServiceSpec{
|
||||
Spec: v1.ServiceSpec{
|
||||
Selector: map[string]string{
|
||||
"foo": "bar",
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue