From 170bf62a47304ccda3171dae93c9d11dc086da8e Mon Sep 17 00:00:00 2001 From: bergzhao <13611129507@163.com> Date: Tue, 7 Apr 2020 15:00:28 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20=E6=94=AF=E6=8C=81=E5=AE=B9=E5=99=A8?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E8=B5=84=E6=BA=90=E8=B0=83=E5=BA=A6=E6=9C=BA?= =?UTF-8?q?=E5=88=B6=20#424?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gopkg.lock | 25 +- Makefile | 8 +- bcs-common/common/types/api.go | 7 + bcs-common/common/types/rc.go | 5 +- bcs-common/common/types/resource.go | 15 + bcs-common/pkg/mesosdriver/client.go | 139 +++++++++ bcs-common/pkg/mesosdriver/config.go | 31 ++ bcs-common/pkg/module-discovery/discovery.go | 10 +- .../container/docker.go | 18 +- .../mesosdriver/backend/v4http/create.go | 11 +- .../bcs-mesos-watch/storage/taskgroup.go | 4 +- .../src/manager/sched/api/api.go | 4 +- .../src/manager/sched/backend/interface.go | 2 +- .../src/manager/sched/backend/list.go | 4 - .../src/manager/sched/offer/interface.go | 2 +- .../src/manager/sched/offer/offerpool.go | 59 ++-- .../src/manager/sched/operator/agent_sync.go | 6 +- .../src/manager/sched/scheduler/scheduler.go | 88 ++---- .../manager/sched/scheduler/service_mgr.go | 1 + .../src/manager/sched/task/task.go | 32 ++- .../src/manager/store/etcd/agent.go | 22 +- .../src/manager/store/etcd/application.go | 10 +- .../src/manager/store/etcd/configmap.go | 4 +- .../src/manager/store/etcd/deployment.go | 14 +- .../src/manager/store/etcd/mgr_cache.go | 58 ++-- .../src/manager/store/etcd/secret.go | 2 +- .../src/manager/store/etcd/service.go | 14 +- .../src/manager/store/etcd/store.go | 13 +- .../src/manager/store/etcd/task.go | 2 +- .../src/manager/store/etcd/taskgroup.go | 2 +- .../src/manager/store/etcd/version.go | 2 +- .../src/manager/store/zk/agent.go | 16 +- .../bcs-scheduler/src/types/application.go | 23 +- bcs-mesos/bcs-scheduler/src/util/lock.go | 13 +- bcs-mesos/bcs-scheduler/src/util/util.go | 2 +- bcs-services/bcs-cpuset-device/app/app.go | 44 +++ .../bcs-cpuset-device/app/options/options.go | 33 +++ .../bcs-cpuset-device/config/config.go | 26 ++ .../cpuset-device/container.go | 93 ++++++ .../cpuset-device/manager.go | 268 ++++++++++++++++++ .../bcs-cpuset-device/cpuset-device/numa.go | 80 ++++++ bcs-services/bcs-cpuset-device/main.go | 45 +++ bcs-services/bcs-cpuset-device/types/types.go | 59 ++++ .../bcs-mesos-driver/driver-implement.md | 2 +- .../bcs-kube-agent/kube-agent.yaml | 62 +--- vendor/bitbucket.org/ww/goautoneg/Makefile | 13 - vendor/bitbucket.org/ww/goautoneg/README.txt | 67 ----- vendor/bitbucket.org/ww/goautoneg/autoneg.go | 162 ----------- .../client/informers/externalversions/BUILD | 40 --- .../externalversions/apiextensions/BUILD | 31 -- .../apiextensions/interface.go | 14 +- .../apiextensions/v1beta1/BUILD | 37 --- .../v1beta1/customresourcedefinition.go | 33 ++- .../apiextensions/v1beta1/interface.go | 14 +- .../informers/externalversions/factory.go | 86 +++++- .../informers/externalversions/generic.go | 7 +- .../externalversions/internalinterfaces/BUILD | 29 -- .../internalinterfaces/factory_interfaces.go | 10 +- .../client/informers/internalversion/BUILD | 40 --- .../internalversion/apiextensions/BUILD | 31 -- .../apiextensions/interface.go | 44 --- .../apiextensions/internalversion/BUILD | 37 --- .../customresourcedefinition.go | 73 ----- .../internalversion/interface.go | 43 --- .../informers/internalversion/factory.go | 118 -------- .../informers/internalversion/generic.go | 61 ---- .../internalversion/internalinterfaces/BUILD | 29 -- .../internalinterfaces/factory_interfaces.go | 34 --- .../apiextensions/internalversion/BUILD | 33 --- .../customresourcedefinition.go | 65 ----- .../internalversion/expansion_generated.go | 23 -- .../listers/apiextensions/v1beta1/BUILD | 33 --- .../v1beta1/customresourcedefinition.go | 4 +- .../v1beta1/expansion_generated.go | 4 +- 74 files changed, 1216 insertions(+), 1379 deletions(-) create mode 100644 bcs-common/pkg/mesosdriver/client.go create mode 100644 bcs-common/pkg/mesosdriver/config.go create mode 100644 bcs-services/bcs-cpuset-device/app/app.go create mode 100644 bcs-services/bcs-cpuset-device/app/options/options.go create mode 100644 bcs-services/bcs-cpuset-device/config/config.go create mode 100644 bcs-services/bcs-cpuset-device/cpuset-device/container.go create mode 100644 bcs-services/bcs-cpuset-device/cpuset-device/manager.go create mode 100644 bcs-services/bcs-cpuset-device/cpuset-device/numa.go create mode 100644 bcs-services/bcs-cpuset-device/main.go create mode 100644 bcs-services/bcs-cpuset-device/types/types.go delete mode 100644 vendor/bitbucket.org/ww/goautoneg/Makefile delete mode 100644 vendor/bitbucket.org/ww/goautoneg/README.txt delete mode 100644 vendor/bitbucket.org/ww/goautoneg/autoneg.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/interface.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/factory.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/generic.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/expansion_generated.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD diff --git a/Gopkg.lock b/Gopkg.lock index d55e075409..a646d870f2 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -1,14 +1,6 @@ # This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. -[[projects]] - branch = "default" - digest = "1:24df057f15e7a09e75c1241cbe6f6590fd3eac9804f1110b02efade3214f042d" - name = "bitbucket.org/ww/goautoneg" - packages = ["."] - pruneopts = "UT" - revision = "75cd24fc2f2c2a2088577d12123ddee5f54e0675" - [[projects]] digest = "1:5ad08b0e14866764a6d7475eb11c9cf05cad9a52c442593bdfa544703ff77f61" name = "cloud.google.com/go" @@ -2000,7 +1992,7 @@ version = "kubernetes-1.12.3" [[projects]] - digest = "1:69a093b765d41b0bd1e03d5b47afff3738725f11e9410fc86c1e741454336689" + digest = "1:e6546e6c30174f43dac4817fc8dbcc9eff28989576992634cc91b31390812841" name = "k8s.io/apiextensions-apiserver" packages = [ "pkg/apis/apiextensions", @@ -2012,6 +2004,11 @@ "pkg/client/clientset/internalclientset", "pkg/client/clientset/internalclientset/scheme", "pkg/client/clientset/internalclientset/typed/apiextensions/internalversion", + "pkg/client/informers/externalversions", + "pkg/client/informers/externalversions/apiextensions", + "pkg/client/informers/externalversions/apiextensions/v1beta1", + "pkg/client/informers/externalversions/internalinterfaces", + "pkg/client/listers/apiextensions/v1beta1", "pkg/features", ] pruneopts = "UT" @@ -2388,7 +2385,7 @@ revision = "743ec37842bffe49dd4221d9026f30fb1d5adbc4" [[projects]] - digest = "1:20c24e6f59d7feac4de254f819185aa4c415bf1d7d6f044d7ad85878112e2cbf" + digest = "1:4b5aecf1bb5a5564ea628bff1dc83ac05919ab8b733d52b48c045e8b9d524703" name = "k8s.io/kubernetes" packages = [ "pkg/api/legacyscheme", @@ -2409,6 +2406,7 @@ "pkg/controller/history", "pkg/features", "pkg/fieldpath", + "pkg/kubelet/apis/deviceplugin/v1beta1", "pkg/kubelet/types", "pkg/master/ports", "pkg/scheduler/api", @@ -2572,6 +2570,7 @@ "github.com/emicklei/go-restful", "github.com/fsnotify/fsnotify", "github.com/fsouza/go-dockerclient", + "github.com/ghodss/yaml", "github.com/go-sql-driver/mysql", "github.com/golang/glog", "github.com/golang/protobuf/proto", @@ -2630,17 +2629,16 @@ "gopkg.in/go-playground/validator.v9", "gopkg.in/mgo.v2", "gopkg.in/mgo.v2/bson", + "gopkg.in/yaml.v2", "k8s.io/api/admission/v1beta1", "k8s.io/api/apps/v1", - "k8s.io/api/apps/v1beta1", - "k8s.io/api/batch/v1", "k8s.io/api/core/v1", - "k8s.io/api/extensions/v1beta1", "k8s.io/api/rbac/v1", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1", "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset", "k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset", + "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions", "k8s.io/apimachinery/pkg/api/errors", "k8s.io/apimachinery/pkg/api/resource", "k8s.io/apimachinery/pkg/apis/meta/v1", @@ -2691,6 +2689,7 @@ "k8s.io/kubernetes/pkg/apis/autoscaling", "k8s.io/kubernetes/pkg/controller", "k8s.io/kubernetes/pkg/controller/history", + "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1", "k8s.io/kubernetes/pkg/scheduler/api", "k8s.io/kubernetes/pkg/util/mount", "k8s.io/kubernetes/pkg/util/node", diff --git a/Makefile b/Makefile index 0b822f0663..f3ef7a0f8d 100644 --- a/Makefile +++ b/Makefile @@ -34,8 +34,8 @@ PACKAGEPATH=./build/bcs.${VERSION} EXPORTPATH=./build/api_export # options -default:api dns health client storage check executor mesos-driver mesos-watch scheduler loadbalance metricservice metriccollector exporter k8s-watch kube-agent k8s-driver api-export netservice sd-prometheus process-executor process-daemon bmsf-mesos-adapter hpacontroller kube-sche consoleproxy clb-controller gw-controller logbeat-sidecar csi-cbs bcs-webhook-server k8s-statefulsetplus network detection -specific:api dns health client storage check executor mesos-driver mesos-watch scheduler loadbalance metricservice metriccollector exporter k8s-watch kube-agent k8s-driver api-export netservice sd-prometheus process-executor process-daemon bmsf-mesos-adapter hpacontroller kube-sche consoleproxy clb-controller gw-controller logbeat-sidecar csi-cbs bcs-webhook-server k8s-statefulsetplus network detection +default:api dns health client storage check executor mesos-driver mesos-watch scheduler loadbalance metricservice metriccollector exporter k8s-watch kube-agent k8s-driver api-export netservice sd-prometheus process-executor process-daemon bmsf-mesos-adapter hpacontroller kube-sche consoleproxy clb-controller gw-controller logbeat-sidecar csi-cbs bcs-webhook-server k8s-statefulsetplus network detection cpuset +specific:api dns health client storage check executor mesos-driver mesos-watch scheduler loadbalance metricservice metriccollector exporter k8s-watch kube-agent k8s-driver api-export netservice sd-prometheus process-executor process-daemon bmsf-mesos-adapter hpacontroller kube-sche consoleproxy clb-controller gw-controller logbeat-sidecar csi-cbs bcs-webhook-server k8s-statefulsetplus network detection cpuset k8s:api client storage k8s-watch kube-agent k8s-driver csi-cbs kube-sche k8s-statefulsetplus allpack: svcpack k8spack mmpack mnpack @@ -248,6 +248,10 @@ clb-controller:pre cp -R ./install/conf/bcs-services/bcs-clb-controller ${PACKAGEPATH}/bcs-services go build ${LDFLAG} -o ${PACKAGEPATH}/bcs-services/bcs-clb-controller/bcs-clb-controller ./bcs-services/bcs-clb-controller/main.go +cpuset:pre + mkdir -p ${PACKAGEPATH}/bcs-services/bcs-cpuset-device + go build ${LDFLAG} -o ${PACKAGEPATH}/bcs-services/bcs-cpuset-device/bcs-cpuset-device ./bcs-services/bcs-cpuset-device/main.go + gw-controller:pre mkdir -p ${PACKAGEPATH}/bcs-services/bcs-gw-controller cp -R ./install/conf/bcs-services/bcs-gw-controller ${PACKAGEPATH}/bcs-services diff --git a/bcs-common/common/types/api.go b/bcs-common/common/types/api.go index 951a414c46..2d3f6f80fa 100644 --- a/bcs-common/common/types/api.go +++ b/bcs-common/common/types/api.go @@ -48,3 +48,10 @@ const ( HttpMethod_DELETE = "DELETE" HttpMethod_PATCH = "PATCH" ) + +type APIResponse struct { + Result bool `json:"result"` + Code int `json:"code"` + Data interface{} `json:"data"` + Message string `json:"message"` +} diff --git a/bcs-common/common/types/rc.go b/bcs-common/common/types/rc.go index 389fc69cbf..0c929513da 100644 --- a/bcs-common/common/types/rc.go +++ b/bcs-common/common/types/rc.go @@ -121,8 +121,9 @@ type VolumeUnit struct { // ResourceRequirements describes the compute resource requirement type ResourceRequirements struct { - Limits ResourceList `json:"limits,omitempty"` - Requests ResourceList `json:"requests,omitempty"` + Limits ResourceList `json:"limits,omitempty"` + Requests ResourceList `json:"requests,omitempty"` + Externals ExternalResource `json:"externals,omitempty"` } type ResourceList struct { diff --git a/bcs-common/common/types/resource.go b/bcs-common/common/types/resource.go index 50652b0b6f..e319c9ceb4 100644 --- a/bcs-common/common/types/resource.go +++ b/bcs-common/common/types/resource.go @@ -81,12 +81,27 @@ type BcsClusterAgentSetting struct { NoSchedule map[string]string `json:"noSchedule"` //Pods index Pods []string `json:"pods"` + //External Resources, key=ExternalResource.Name + ExternalResources map[string]ExternalResource // Populated by the system. // Read-only. // Value must be treated as opaque by clients and . ResourceVersion string `json:"-"` } +type ExternalResource struct { + //InnerIP, agent ip + InnerIP string + //external resource name, example: bkbcs/cpuset + Name string + //Value + Value float64 + //Capacity + Capacity float64 + //device plugin socket address, exmaple: /data/bcs/cpuset.socket + Socket string +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *BcsClusterAgentSetting) DeepCopyInto(out *BcsClusterAgentSetting) { *out = *in diff --git a/bcs-common/pkg/mesosdriver/client.go b/bcs-common/pkg/mesosdriver/client.go new file mode 100644 index 0000000000..7e8b096104 --- /dev/null +++ b/bcs-common/pkg/mesosdriver/client.go @@ -0,0 +1,139 @@ +/* + * Tencent is pleased to support the open source community by making Blueking Container Service available. + * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. + * Licensed under the MIT License (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * http://opensource.org/licenses/MIT + * 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 mesosdriver + +import ( + "encoding/json" + "fmt" + "net/http" + + "bk-bcs/bcs-common/common/blog" + "bk-bcs/bcs-common/common/http/httpclient" + commtypes "bk-bcs/bcs-common/common/types" + moduleDiscovery "bk-bcs/bcs-common/pkg/module-discovery" +) + +type MesosDriverClient struct { + conf *Config + + //to discovery mesos driver address + moduleDiscovery moduleDiscovery.ModuleDiscovery + //http client + cli *httpclient.HttpClient +} + +// new MesosPlatform object +func NewMesosPlatform(conf *Config) (*MesosDriverClient, error) { + m := &MesosDriverClient{ + conf: conf, + } + + var err error + //start module discovery to discovery mesos driver + //moduleDiscovery.GetModuleServers(module) can return server information + m.moduleDiscovery, err = moduleDiscovery.NewDiscoveryV2(m.conf.ZkAddr, []string{commtypes.BCS_MODULE_MESOSAPISERVER}) + if err != nil { + return nil, err + } + blog.Infof("NewDiscoveryV2 done") + + //init http client + m.cli = httpclient.NewHttpClient() + //if https + if m.conf.ClientCert.IsSSL { + blog.Infof("NetworkDetection http client cert ssl") + m.cli.SetTlsVerity(m.conf.ClientCert.CAFile, m.conf.ClientCert.CertFile, m.conf.ClientCert.KeyFile, + m.conf.ClientCert.CertPasswd) + } + m.cli.SetHeader("Content-Type", "application/json") + m.cli.SetHeader("Accept", "application/json") + return m, nil +} + +//get module address +//clusterid, example BCS-MESOS-10001 +//return first parameter: module address, example 127.0.0.1:8090 +func (m *MesosDriverClient) getModuleAddr(clusterid string) (string, error) { + serv, err := m.moduleDiscovery.GetRandModuleServer(commtypes.BCS_MODULE_MESOSAPISERVER) + if err != nil { + blog.Errorf("discovery zk %s module %s error %s", m.conf.ZkAddr, commtypes.BCS_MODULE_MESOSAPISERVER, err.Error()) + return "", err + } + //serv is string object + data, _ := serv.(string) + var servInfo *commtypes.BcsMesosApiserverInfo + err = json.Unmarshal([]byte(data), &servInfo) + if err != nil { + blog.Errorf("getModuleAddr Unmarshal data(%s) to commtypes.BcsMesosApiserverInfo failed: %s", data, err.Error()) + return "", err + } + + return fmt.Sprintf("%s://%s:%d", servInfo.Scheme, servInfo.IP, servInfo.Port), nil +} + +//update agent external resources +func (m *MesosDriverClient) UpdateAgentExternalResources(er *commtypes.ExternalResource) error { + _, err := m.requestMesosApiserver(m.conf.ClusterId, http.MethodPut, "agentsettings/externalresources", nil) + if err != nil { + blog.Errorf("update agent %s external resources error %s", er.InnerIP, err.Error()) + return err + } + blog.Infof("update agent %s external resources %s success", er.InnerIP, er.Name) + return nil +} + +//method=http.method: POST、GET、PUT、DELETE +//request url = address/url +//payload is request body +//if error!=nil, then request mesos failed, errom.Error() is failed message +//if error==nil, []byte is response body information +func (m *MesosDriverClient) requestMesosApiserver(clusterid, method, url string, payload []byte) ([]byte, error) { + //get mesos api address + addr, err := m.getModuleAddr(clusterid) + if err != nil { + return nil, fmt.Errorf("get cluster %s mesosapi failed: %s", clusterid, err.Error()) + } + uri := fmt.Sprintf("%s/mesosdriver/v4/%s", addr, url) + m.cli.SetHeader("BCS-ClusterID", clusterid) + + var by []byte + switch method { + case "GET": + by, err = m.cli.GET(uri, nil, payload) + case "POST": + by, err = m.cli.POST(uri, nil, payload) + case "DELETE": + by, err = m.cli.DELETE(uri, nil, payload) + case "PUT": + by, err = m.cli.PUT(uri, nil, payload) + default: + err = fmt.Errorf("uri %s method %s is invalid", uri, method) + } + if err != nil { + return nil, err + } + + //unmarshal response.body + var result *commtypes.APIResponse + err = json.Unmarshal(by, &result) + if err != nil { + return nil, fmt.Errorf("Unmarshal body(%s) failed: %s", string(by), err.Error()) + } + //if result.Result==false, then request failed + if !result.Result { + return nil, fmt.Errorf("request %s failed: %s", uri, result.Message) + } + by, _ = json.Marshal(result.Data) + return by, nil +} diff --git a/bcs-common/pkg/mesosdriver/config.go b/bcs-common/pkg/mesosdriver/config.go new file mode 100644 index 0000000000..1162a6af3d --- /dev/null +++ b/bcs-common/pkg/mesosdriver/config.go @@ -0,0 +1,31 @@ +/* + * Tencent is pleased to support the open source community by making Blueking Container Service available. + * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. + * Licensed under the MIT License (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * http://opensource.org/licenses/MIT + * 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 mesosdriver + +//CertConfig is configuration of Cert +type CertConfig struct { + CAFile string + CertFile string + KeyFile string + CertPasswd string + IsSSL bool +} + +type Config struct { + ZkAddr string + //http client cert config + ClientCert *CertConfig + //clusterid + ClusterId string +} diff --git a/bcs-common/pkg/module-discovery/discovery.go b/bcs-common/pkg/module-discovery/discovery.go index ba8bb3ed2c..eac420f3e9 100644 --- a/bcs-common/pkg/module-discovery/discovery.go +++ b/bcs-common/pkg/module-discovery/discovery.go @@ -79,11 +79,13 @@ func (r *DiscoveryV2) GetModuleServers(moduleName string) ([]interface{}, error) r.RLock() defer r.RUnlock() - servs, ok := r.servers[moduleName] - if !ok { - return nil, fmt.Errorf("Module %s not found", moduleName) + servs := make([]interface{}, 0) + for k, v := range r.servers { + blog.Infof("k") + if strings.Contains(k, moduleName) { + servs = append(servs, v...) + } } - if len(servs) == 0 { return nil, fmt.Errorf("Module %s don't have endpoints", moduleName) } diff --git a/bcs-mesos/bcs-container-executor/container/docker.go b/bcs-mesos/bcs-container-executor/container/docker.go index 8cdacf2b85..70b88606f4 100644 --- a/bcs-mesos/bcs-container-executor/container/docker.go +++ b/bcs-mesos/bcs-container-executor/container/docker.go @@ -15,14 +15,11 @@ package container import ( "archive/tar" - "bk-bcs/bcs-mesos/bcs-container-executor/util" "bytes" "fmt" "io" - "math" "os" "path/filepath" - "runtime" "strconv" "strings" @@ -352,15 +349,16 @@ func (docker *DockerContainer) CreateContainer(containerName string, containerTa hostConfig.Memory = int64(containerTask.Resource.Mem * 1024 * 1024) hostConfig.MemorySwap = int64(containerTask.Resource.Mem * 1024 * 1024) } - if float64(runtime.NumCPU()) > containerTask.Resource.Cpus && containerTask.Resource.CPUSet > 0 { + if len(containerTask.Resource.CPUSet) > 0 { //only setting cpu info when cpu request can be met in slave host - cpuList, numaList := util.GetBindingCPUs(int(math.Ceil(containerTask.Resource.Cpus)), int64(containerTask.Resource.Mem)) - if len(cpuList) > 0 { - //change int list to string - hostConfig.CPUSetCPUs = util.ListJoin(cpuList) - hostConfig.CPUSetMEMs = util.ListJoin(numaList) - fmt.Fprintf(os.Stdout, "DEBUG: CPU List info %v, numa: %v, post: %s, %s\n", cpuList, numaList, hostConfig.CPUSetCPUs, hostConfig.CPUSetMEMs) + //cpuList, numaList := util.GetBindingCPUs(int(math.Ceil(containerTask.Resource.Cpus)), int64(containerTask.Resource.Mem)) + //change int list to string + for _, set := range containerTask.Resource.CPUSet { + hostConfig.CPUSetCPUs += fmt.Sprintf("%s,", set) + hostConfig.CPUSetMEMs } + hostConfig.CPUSetCPUs = strings.TrimRight(hostConfig.CPUSetCPUs, "") + fmt.Fprintf(os.Stdout, "DEBUG: task(%s) set cpuset(%s)\n", containerTask.Name, hostConfig.CPUSetCPUs) } if containerTask.LimitResource != nil && containerTask.LimitResource.Cpus > 0 { diff --git a/bcs-mesos/bcs-mesos-driver/mesosdriver/backend/v4http/create.go b/bcs-mesos/bcs-mesos-driver/mesosdriver/backend/v4http/create.go index a1b7c97573..7daa7d6e80 100644 --- a/bcs-mesos/bcs-mesos-driver/mesosdriver/backend/v4http/create.go +++ b/bcs-mesos/bcs-mesos-driver/mesosdriver/backend/v4http/create.go @@ -228,10 +228,13 @@ func (s *Scheduler) setVersionWithPodSpec(version *types.Version, spec *bcstype. } //limit resuroces - container.LimitResoures = new(types.Resource) - container.LimitResoures.Cpus, _ = strconv.ParseFloat(c.Resources.Limits.Cpu, 64) - container.LimitResoures.Mem, _ = strconv.ParseFloat(c.Resources.Limits.Mem, 64) - container.LimitResoures.Disk, _ = strconv.ParseFloat(c.Resources.Limits.Storage, 64) + // if cpuset==false, then limit resource is valid + if !container.Cpuset { + container.LimitResoures = new(types.Resource) + container.LimitResoures.Cpus, _ = strconv.ParseFloat(c.Resources.Limits.Cpu, 64) + container.LimitResoures.Mem, _ = strconv.ParseFloat(c.Resources.Limits.Mem, 64) + container.LimitResoures.Disk, _ = strconv.ParseFloat(c.Resources.Limits.Storage, 64) + } container.DataClass = &types.DataClass{ Resources: new(types.Resource), diff --git a/bcs-mesos/bcs-mesos-watch/storage/taskgroup.go b/bcs-mesos/bcs-mesos-watch/storage/taskgroup.go index 0fc140e3a3..161c004177 100644 --- a/bcs-mesos/bcs-mesos-watch/storage/taskgroup.go +++ b/bcs-mesos/bcs-mesos-watch/storage/taskgroup.go @@ -158,9 +158,9 @@ func (handler *TaskGroupHandler) FormatConv(taskgroup *schedtypes.TaskGroup) (*c container.Message = bcsInfo.Message container.FinishTime = bcsInfo.FinishAt - if bcsInfo.NodeAddress != "" { + /*if bcsInfo.NodeAddress != "" { status.HostIP = bcsInfo.NodeAddress - } + }*/ if bcsInfo.IPAddress != "" { status.PodIP = bcsInfo.IPAddress } diff --git a/bcs-mesos/bcs-scheduler/src/manager/sched/api/api.go b/bcs-mesos/bcs-scheduler/src/manager/sched/api/api.go index 4dadac81ad..9106b0042d 100644 --- a/bcs-mesos/bcs-scheduler/src/manager/sched/api/api.go +++ b/bcs-mesos/bcs-scheduler/src/manager/sched/api/api.go @@ -1153,7 +1153,7 @@ func (r *Router) deleteApplication(req *restful.Request, resp *restful.Response) } //ListApplicationTasks is used to list all tasks belong to application via application id. -func (r *Router) listApplicationTasks(req *restful.Request, resp *restful.Response) { +/*func (r *Router) listApplicationTasks(req *restful.Request, resp *restful.Response) { if r.backend.GetRole() != scheduler.SchedulerRoleMaster { blog.Warn("scheduler is not master, can not process cmd") return @@ -1180,7 +1180,7 @@ func (r *Router) listApplicationTasks(req *restful.Request, resp *restful.Respon blog.Info("request list application(%s %s) tasks end", runAs, appId) return -} +}*/ func (r *Router) listApplicationTaskGroups(req *restful.Request, resp *restful.Response) { if r.backend.GetRole() != scheduler.SchedulerRoleMaster { diff --git a/bcs-mesos/bcs-scheduler/src/manager/sched/backend/interface.go b/bcs-mesos/bcs-scheduler/src/manager/sched/backend/interface.go index 3215caff31..8fc576d7c3 100644 --- a/bcs-mesos/bcs-scheduler/src/manager/sched/backend/interface.go +++ b/bcs-mesos/bcs-scheduler/src/manager/sched/backend/interface.go @@ -87,7 +87,7 @@ type Backend interface { //list all tasks of a specific application //first para is namespace, and second one is appid - ListApplicationTasks(string, string) ([]*types.Task, error) + //ListApplicationTasks(string, string) ([]*types.Task, error) //list all versions of application //first para is namespace, and second one is appid diff --git a/bcs-mesos/bcs-scheduler/src/manager/sched/backend/list.go b/bcs-mesos/bcs-scheduler/src/manager/sched/backend/list.go index c2488b34eb..15e63a2f31 100644 --- a/bcs-mesos/bcs-scheduler/src/manager/sched/backend/list.go +++ b/bcs-mesos/bcs-scheduler/src/manager/sched/backend/list.go @@ -28,10 +28,6 @@ func (b *backend) ListApplicationTaskGroups(runAs, appId string) ([]*types.TaskG return b.store.ListTaskGroups(runAs, appId) } -func (b *backend) ListApplicationTasks(runAs, appId string) ([]*types.Task, error) { - return b.store.ListTasks(runAs, appId) -} - // ListApplicationVersions is used to list all versions for application from db specified by application id. func (b *backend) ListApplicationVersions(runAs, appId string) ([]string, error) { return b.store.ListVersions(runAs, appId) diff --git a/bcs-mesos/bcs-scheduler/src/manager/sched/offer/interface.go b/bcs-mesos/bcs-scheduler/src/manager/sched/offer/interface.go index b8c959b7ba..5177e7846c 100644 --- a/bcs-mesos/bcs-scheduler/src/manager/sched/offer/interface.go +++ b/bcs-mesos/bcs-scheduler/src/manager/sched/offer/interface.go @@ -49,7 +49,7 @@ type SchedManager interface { //fetch taskgroup FetchTaskGroup(taskGroupID string) (*types.TaskGroup, error) //fetch mesos agent - FetchMesosAgent(innerIP string)(*types.Agent,error) + FetchMesosAgent(innerIP string) (*types.Agent, error) } //OfferPool is mesos offer pool, it is responsible for the managements of the mesos's offers. diff --git a/bcs-mesos/bcs-scheduler/src/manager/sched/offer/offerpool.go b/bcs-mesos/bcs-scheduler/src/manager/sched/offer/offerpool.go index 06dda0c547..0d9bc66858 100644 --- a/bcs-mesos/bcs-scheduler/src/manager/sched/offer/offerpool.go +++ b/bcs-mesos/bcs-scheduler/src/manager/sched/offer/offerpool.go @@ -474,44 +474,35 @@ func (p *offerPool) addOffers(offers []*mesos.Offer) bool { return true } -func (p *offerPool) setOfferCpuset(offer *mesos.Offer)error{ - ip,ok := GetOfferIp(offer) +func (p *offerPool) setOfferCpuset(offer *mesos.Offer) error { + ip, ok := GetOfferIp(offer) if !ok { return nil } - //lock agent setting - obj := commtype.BcsClusterAgentSetting{} - util.Lock.Lock(obj,ip) - defer util.Lock.UnLock(obj,ip) - - setting,err := p.scheduler.FetchAgentSetting(ip) - if err!=nil { - return err - } - agent,err := p.scheduler.FetchMesosAgent(ip) - if err!=nil { + agent, err := p.scheduler.FetchMesosAgent(ip) + if err != nil { return err } //key = cpu index, example: 1 usedCpu := make(map[string]struct{}) - if setting!=nil { - for _,podId :=range setting.Pods { - taskg,err := p.scheduler.FetchTaskGroup(podId) - if err!=nil { - blog.Errorf("FetchTaskGroup pod %s error %s",podId,err.Error()) - continue - } - if taskg.Status!=types.TASKGROUP_STATUS_RUNNING && taskg.Status!=types.TASKGROUP_STATUS_STAGING && - taskg.Status!=types.TASKGROUP_STATUS_STARTING { - continue - } - for _,task :=range taskg.Taskgroup { - //this task have cpuset setting - if len(task.DataClass.Cpuset)!=0 { - blog.V(3).Infof("node %s task %s use cpuset %v",ip, task.ID, task.DataClass.Cpuset) - for _,set :=range task.DataClass.Cpuset { - usedCpu[set] = struct{}{} - } + for _, executorId := range offer.GetExecutorIds() { + //offer executorid is taskgroupid + podId := executorId.GetValue() + taskg, err := p.scheduler.FetchTaskGroup(podId) + if err != nil { + blog.Errorf("FetchTaskGroup pod %s error %s", podId, err.Error()) + continue + } + if taskg.Status != types.TASKGROUP_STATUS_RUNNING && taskg.Status != types.TASKGROUP_STATUS_STAGING && + taskg.Status != types.TASKGROUP_STATUS_STARTING { + continue + } + for _, task := range taskg.Taskgroup { + //this task have cpuset setting + if len(task.DataClass.Cpuset) != 0 { + blog.V(3).Infof("node %s task %s use cpuset %v", ip, task.ID, task.DataClass.Cpuset) + for _, set := range task.DataClass.Cpuset { + usedCpu[set] = struct{}{} } } } @@ -525,11 +516,11 @@ func (p *offerPool) setOfferCpuset(offer *mesos.Offer)error{ Name: &cpusetK, Type: &cpusetT, Set: &mesos.Value_Set{ - Item: make([]string,0), + Item: make([]string, 0), }, } - for i:=0;i= len(req.DevicesIDs) { + mnode = node + break + } + } + //don't contain enough cpuset + if mnode == nil { + return nil, fmt.Errorf("no enough cpuset to allocated container") + } + cpuset, _ := mnode.AllocateCpuset(len(req.DevicesIDs)) + response := pluginapi.ContainerAllocateResponse{ + Envs: map[string]string{ + EnvBkbcsAllocateCpuset: strings.Join(cpuset, ","), + }, + } + + responses.ContainerResponses = append(responses.ContainerResponses, &response) + } + + return &responses, nil +} + +func (c *CpusetDevicePlugin) PreStartContainer(context.Context, *pluginapi.PreStartContainerRequest) (*pluginapi.PreStartContainerResponse, error) { + return &pluginapi.PreStartContainerResponse{}, nil +} diff --git a/bcs-services/bcs-cpuset-device/cpuset-device/numa.go b/bcs-services/bcs-cpuset-device/cpuset-device/numa.go new file mode 100644 index 0000000000..801493a488 --- /dev/null +++ b/bcs-services/bcs-cpuset-device/cpuset-device/numa.go @@ -0,0 +1,80 @@ +/* + * Tencent is pleased to support the open source community by making Blueking Container Service available. + * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. + * Licensed under the MIT License (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * http://opensource.org/licenses/MIT + * 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 cpuset_device + +// #cgo LDFLAGS: -lnuma +// #include +import "C" +import ( + "fmt" + "strconv" +) + +//ErrNumaNotAvailable error type for NUMA +var ErrNumaNotAvailable = fmt.Errorf("No NUMA support available on this system") + +//IsNumaAvailable Is Numa available +func IsNumaAvailable() bool { + if int(C.numa_available()) >= 0 { + return true + } + return false +} + +//NUMANodes Get Numa Nodes +func NUMANodes() ([]string, error) { + if !IsNumaAvailable() { + return nil, ErrNumaNotAvailable + } + maxnode := int(C.numa_max_node()) + nodes := make([]string, 0, maxnode) + for i := 0; i <= maxnode; i++ { + if C.numa_bitmask_isbitset(C.numa_nodes_ptr, C.uint(i)) > 0 { + nodes = append(nodes, strconv.Itoa(i)) + } + } + return nodes, nil +} + +//NUMACPUsOfNode Get CPU slice from the specified Node +func NUMACPUsOfNode(node string) ([]string, error) { + if !IsNumaAvailable() { + return nil, ErrNumaNotAvailable + } + nodei, err := strconv.Atoi(node) + if err != nil { + return nil, fmt.Errorf("node %s is invalid", node) + } + + mask := C.numa_allocate_cpumask() + defer C.numa_free_cpumask(mask) + rc := C.numa_node_to_cpus(C.int(nodei), mask) + maxCpus := NUMAConfiguredCPUs() + cpus := make([]string, 0, maxCpus) + if rc >= 0 { + for i := 0; i < maxCpus; i++ { + if C.numa_bitmask_isbitset(mask, C.uint(i)) > 0 { + cpus = append(cpus, strconv.Itoa(i)) + } + } + } else { + return cpus, ErrNumaNotAvailable + } + return cpus, nil +} + +//NUMAConfiguredCPUs get configure cpu number +func NUMAConfiguredCPUs() int { + return int(C.numa_num_configured_cpus()) +} diff --git a/bcs-services/bcs-cpuset-device/main.go b/bcs-services/bcs-cpuset-device/main.go new file mode 100644 index 0000000000..15a7ae7ffe --- /dev/null +++ b/bcs-services/bcs-cpuset-device/main.go @@ -0,0 +1,45 @@ +/* + * Tencent is pleased to support the open source community by making Blueking Container Service available. + * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. + * Licensed under the MIT License (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * http://opensource.org/licenses/MIT + * 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 main + +import ( + "os" + "runtime" + + "bk-bcs/bcs-common/common/blog" + "bk-bcs/bcs-common/common/conf" + "bk-bcs/bcs-common/common/license" + "bk-bcs/bcs-services/bcs-cpuset-device/app" + "bk-bcs/bcs-services/bcs-cpuset-device/app/options" +) + +func main() { + runtime.GOMAXPROCS(runtime.NumCPU()) + op := options.NewOption() + conf.Parse(op) + + blog.InitLogs(op.LogConfig) + defer blog.CloseLogs() + blog.Info("init logs success") + license.CheckLicense(op.LicenseServerConfig) + + err := app.Run(op) + if err != nil { + blog.Errorf(err.Error()) + os.Exit(1) + } + + ch := make(chan bool) + <-ch +} diff --git a/bcs-services/bcs-cpuset-device/types/types.go b/bcs-services/bcs-cpuset-device/types/types.go new file mode 100644 index 0000000000..efc42593fb --- /dev/null +++ b/bcs-services/bcs-cpuset-device/types/types.go @@ -0,0 +1,59 @@ +/* + * Tencent is pleased to support the open source community by making Blueking Container Service available. + * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. + * Licensed under the MIT License (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * http://opensource.org/licenses/MIT + * 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 types + +import "fmt" + +type CpusetNode struct { + //cpuset node id + //show available: 2 nodes (0-1) + Id string + //the node include cpusets + //show node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 24 25 26 27 28 29 30 31 32 33 34 35 + Cpuset []string + //allocated cpuset of container + //the cpuset belongs to only one container + AllocatedCpuset []string +} + +func (c *CpusetNode) Capacity() int { + return len(c.Cpuset) - len(c.AllocatedCpuset) +} + +func (c *CpusetNode) AllocateCpuset(number int) ([]string, error) { + if c.Capacity() < number { + return nil, fmt.Errorf("Cpuset node %s Capacity %d, then can't allocate %d cpuset", c.Id, c.Capacity(), number) + } + + cpuset := make([]string, 0, number) + for _, o := range c.Cpuset { + allocated := false + for _, set := range c.AllocatedCpuset { + if o == set { + allocated = true + break + } + } + if allocated { + continue + } + cpuset = append(cpuset, o) + c.AllocatedCpuset = append(c.AllocatedCpuset, o) + if len(cpuset) == number { + break + } + } + + return cpuset, nil +} diff --git a/docs/features/bcs-mesos-driver/driver-implement.md b/docs/features/bcs-mesos-driver/driver-implement.md index 903d4df497..0f4ceac061 100644 --- a/docs/features/bcs-mesos-driver/driver-implement.md +++ b/docs/features/bcs-mesos-driver/driver-implement.md @@ -34,7 +34,7 @@ AdmissionWebhook定义 }, "resourcesRef": { "operation": "Create | Update", - "kind": "Application | Deployment", + "kind": "Application | Deployment" }, "admissionWebhooks":[ { diff --git a/install/conf/bcs-k8s-master/bcs-kube-agent/kube-agent.yaml b/install/conf/bcs-k8s-master/bcs-kube-agent/kube-agent.yaml index 8fde6b3595..ce251737ea 100644 --- a/install/conf/bcs-k8s-master/bcs-kube-agent/kube-agent.yaml +++ b/install/conf/bcs-k8s-master/bcs-kube-agent/kube-agent.yaml @@ -1,55 +1,11 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: bcs-kube-agent - namespace: kube-system ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1beta1 -metadata: - name: bcs-kube-agent -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin -subjects: -- kind: ServiceAccount - name: bcs-kube-agent - namespace: kube-system ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: bcs-kube-agent - namespace: kube-system -spec: - replicas: 1 - selector: - matchLabels: - app: bcs-kube-agent - template: - metadata: - labels: - app: bcs-kube-agent + + + apiVersion: tkex.tencent.com/v1 + kind: TkexCl5Config spec: - containers: - - name: bcs-kube-agent - image: ${kubeAgentImage} - imagePullPolicy: IfNotPresent - args: - - --bke-address=${bkeAddress} - - --cluster-id=${clusterId} - env: - - name: REGISTER_TOKEN - valueFrom: - secretKeyRef: - name: bke-info - key: token - - name: SERVER_CERT - valueFrom: - secretKeyRef: - name: bke-info - key: bke-cert - serviceAccountName: bcs-kube-agent + service: + namespace: defaultgroup + name: service-name + sid: "1213:456:NOSET" + bindPorts: "8089;8899" diff --git a/vendor/bitbucket.org/ww/goautoneg/Makefile b/vendor/bitbucket.org/ww/goautoneg/Makefile deleted file mode 100644 index e33ee17303..0000000000 --- a/vendor/bitbucket.org/ww/goautoneg/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -include $(GOROOT)/src/Make.inc - -TARG=bitbucket.org/ww/goautoneg -GOFILES=autoneg.go - -include $(GOROOT)/src/Make.pkg - -format: - gofmt -w *.go - -docs: - gomake clean - godoc ${TARG} > README.txt diff --git a/vendor/bitbucket.org/ww/goautoneg/README.txt b/vendor/bitbucket.org/ww/goautoneg/README.txt deleted file mode 100644 index 7723656d58..0000000000 --- a/vendor/bitbucket.org/ww/goautoneg/README.txt +++ /dev/null @@ -1,67 +0,0 @@ -PACKAGE - -package goautoneg -import "bitbucket.org/ww/goautoneg" - -HTTP Content-Type Autonegotiation. - -The functions in this package implement the behaviour specified in -http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html - -Copyright (c) 2011, Open Knowledge Foundation Ltd. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - Neither the name of the Open Knowledge Foundation Ltd. nor the - names of its contributors may be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -FUNCTIONS - -func Negotiate(header string, alternatives []string) (content_type string) -Negotiate the most appropriate content_type given the accept header -and a list of alternatives. - -func ParseAccept(header string) (accept []Accept) -Parse an Accept Header string returning a sorted list -of clauses - - -TYPES - -type Accept struct { - Type, SubType string - Q float32 - Params map[string]string -} -Structure to represent a clause in an HTTP Accept Header - - -SUBDIRECTORIES - - .hg diff --git a/vendor/bitbucket.org/ww/goautoneg/autoneg.go b/vendor/bitbucket.org/ww/goautoneg/autoneg.go deleted file mode 100644 index 648b38cb65..0000000000 --- a/vendor/bitbucket.org/ww/goautoneg/autoneg.go +++ /dev/null @@ -1,162 +0,0 @@ -/* -HTTP Content-Type Autonegotiation. - -The functions in this package implement the behaviour specified in -http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html - -Copyright (c) 2011, Open Knowledge Foundation Ltd. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - Neither the name of the Open Knowledge Foundation Ltd. nor the - names of its contributors may be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ -package goautoneg - -import ( - "sort" - "strconv" - "strings" -) - -// Structure to represent a clause in an HTTP Accept Header -type Accept struct { - Type, SubType string - Q float64 - Params map[string]string -} - -// For internal use, so that we can use the sort interface -type accept_slice []Accept - -func (accept accept_slice) Len() int { - slice := []Accept(accept) - return len(slice) -} - -func (accept accept_slice) Less(i, j int) bool { - slice := []Accept(accept) - ai, aj := slice[i], slice[j] - if ai.Q > aj.Q { - return true - } - if ai.Type != "*" && aj.Type == "*" { - return true - } - if ai.SubType != "*" && aj.SubType == "*" { - return true - } - return false -} - -func (accept accept_slice) Swap(i, j int) { - slice := []Accept(accept) - slice[i], slice[j] = slice[j], slice[i] -} - -// Parse an Accept Header string returning a sorted list -// of clauses -func ParseAccept(header string) (accept []Accept) { - parts := strings.Split(header, ",") - accept = make([]Accept, 0, len(parts)) - for _, part := range parts { - part := strings.Trim(part, " ") - - a := Accept{} - a.Params = make(map[string]string) - a.Q = 1.0 - - mrp := strings.Split(part, ";") - - media_range := mrp[0] - sp := strings.Split(media_range, "/") - a.Type = strings.Trim(sp[0], " ") - - switch { - case len(sp) == 1 && a.Type == "*": - a.SubType = "*" - case len(sp) == 2: - a.SubType = strings.Trim(sp[1], " ") - default: - continue - } - - if len(mrp) == 1 { - accept = append(accept, a) - continue - } - - for _, param := range mrp[1:] { - sp := strings.SplitN(param, "=", 2) - if len(sp) != 2 { - continue - } - token := strings.Trim(sp[0], " ") - if token == "q" { - a.Q, _ = strconv.ParseFloat(sp[1], 32) - } else { - a.Params[token] = strings.Trim(sp[1], " ") - } - } - - accept = append(accept, a) - } - - slice := accept_slice(accept) - sort.Sort(slice) - - return -} - -// Negotiate the most appropriate content_type given the accept header -// and a list of alternatives. -func Negotiate(header string, alternatives []string) (content_type string) { - asp := make([][]string, 0, len(alternatives)) - for _, ctype := range alternatives { - asp = append(asp, strings.SplitN(ctype, "/", 2)) - } - for _, clause := range ParseAccept(header) { - for i, ctsp := range asp { - if clause.Type == ctsp[0] && clause.SubType == ctsp[1] { - content_type = alternatives[i] - return - } - if clause.Type == ctsp[0] && clause.SubType == "*" { - content_type = alternatives[i] - return - } - if clause.Type == "*" && clause.SubType == "*" { - content_type = alternatives[i] - return - } - } - } - return -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD deleted file mode 100644 index 94f642a2c9..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "factory.go", - "generic.go", - ], - deps = [ - "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces: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/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions:all-srcs", - "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD deleted file mode 100644 index f8613a82db..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - deps = [ - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go index de7f6e34e6..7b48c57ca4 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2017 The Kubernetes Authors. +Copyright 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. @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This file was automatically generated by informer-gen +// Code generated by informer-gen. DO NOT EDIT. package apiextensions @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1beta1 returns a new v1beta1.Interface. func (g *group) V1beta1() v1beta1.Interface { - return v1beta1.New(g.SharedInformerFactory) + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD deleted file mode 100644 index 69f89a94bf..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "customresourcedefinition.go", - "interface.go", - ], - deps = [ - "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1: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/watch:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go index e28ec5db66..05e8c42179 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go @@ -1,5 +1,5 @@ /* -Copyright 2017 The Kubernetes Authors. +Copyright 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. @@ -14,12 +14,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This file was automatically generated by informer-gen +// Code generated by informer-gen. DO NOT EDIT. package v1beta1 import ( - apiextensions_v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" + time "time" + + apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces" v1beta1 "k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1" @@ -27,7 +29,6 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - time "time" ) // CustomResourceDefinitionInformer provides access to a shared informer and lister for @@ -38,34 +39,48 @@ type CustomResourceDefinitionInformer interface { } type customResourceDefinitionInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition type. // Always prefer using an informer factory to get a shared informer instead of getting an independent // one. This reduces memory footprint and number of connections to the server. func NewCustomResourceDefinitionInformer(client clientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCustomResourceDefinitionInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredCustomResourceDefinitionInformer(client clientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ApiextensionsV1beta1().CustomResourceDefinitions().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ApiextensionsV1beta1().CustomResourceDefinitions().Watch(options) }, }, - &apiextensions_v1beta1.CustomResourceDefinition{}, + &apiextensionsv1beta1.CustomResourceDefinition{}, resyncPeriod, indexers, ) } -func defaultCustomResourceDefinitionInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewCustomResourceDefinitionInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *customResourceDefinitionInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCustomResourceDefinitionInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *customResourceDefinitionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apiextensions_v1beta1.CustomResourceDefinition{}, defaultCustomResourceDefinitionInformer) + return f.factory.InformerFor(&apiextensionsv1beta1.CustomResourceDefinition{}, f.defaultInformer) } func (f *customResourceDefinitionInformer) Lister() v1beta1.CustomResourceDefinitionLister { diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go index cada14028b..f78edbb593 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2017 The Kubernetes Authors. +Copyright 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. @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This file was automatically generated by informer-gen +// Code generated by informer-gen. DO NOT EDIT. package v1beta1 @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // CustomResourceDefinitions returns a CustomResourceDefinitionInformer. func (v *version) CustomResourceDefinitions() CustomResourceDefinitionInformer { - return &customResourceDefinitionInformer{factory: v.SharedInformerFactory} + return &customResourceDefinitionInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go index 0f94a664d9..94d039c729 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go @@ -1,5 +1,5 @@ /* -Copyright 2017 The Kubernetes Authors. +Copyright 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. @@ -14,26 +14,34 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This file was automatically generated by informer-gen +// Code generated by informer-gen. DO NOT EDIT. package externalversions import ( + reflect "reflect" + sync "sync" + time "time" + clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" apiextensions "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions" internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" - reflect "reflect" - sync "sync" - time "time" ) +// SharedInformerOption defines the functional option type for SharedInformerFactory. +type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory + type sharedInformerFactory struct { - client clientset.Interface - lock sync.Mutex - defaultResync time.Duration + client clientset.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration + customResync map[reflect.Type]time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -41,14 +49,62 @@ type sharedInformerFactory struct { startedInformers map[reflect.Type]bool } -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory +// WithCustomResyncConfig sets a custom resync period for the specified informer types. +func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + for k, v := range resyncConfig { + factory.customResync[reflect.TypeOf(k)] = v + } + return factory + } +} + +// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. +func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.tweakListOptions = tweakListOptions + return factory + } +} + +// WithNamespace limits the SharedInformerFactory to the specified namespace. +func WithNamespace(namespace string) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.namespace = namespace + return factory + } +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. func NewSharedInformerFactory(client clientset.Interface, defaultResync time.Duration) SharedInformerFactory { - return &sharedInformerFactory{ + return NewSharedInformerFactoryWithOptions(client, defaultResync) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +// Deprecated: Please use NewSharedInformerFactoryWithOptions instead +func NewFilteredSharedInformerFactory(client clientset.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { + return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) +} + +// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. +func NewSharedInformerFactoryWithOptions(client clientset.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory { + factory := &sharedInformerFactory{ client: client, + namespace: v1.NamespaceAll, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), + customResync: make(map[reflect.Type]time.Duration), + } + + // Apply all options + for _, opt := range options { + factory = opt(factory) } + + return factory } // Start initializes all requested informers. @@ -97,7 +153,13 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal if exists { return informer } - informer = newFunc(f.client, f.defaultResync) + + resyncPeriod, exists := f.customResync[informerType] + if !exists { + resyncPeriod = f.defaultResync + } + + informer = newFunc(f.client, resyncPeriod) f.informers[informerType] = informer return informer @@ -114,5 +176,5 @@ type SharedInformerFactory interface { } func (f *sharedInformerFactory) Apiextensions() apiextensions.Interface { - return apiextensions.New(f) + return apiextensions.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go index 06abdaa9de..da8a2ab0c6 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go @@ -1,5 +1,5 @@ /* -Copyright 2017 The Kubernetes Authors. +Copyright 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. @@ -14,12 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This file was automatically generated by informer-gen +// Code generated by informer-gen. DO NOT EDIT. package externalversions import ( "fmt" + v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" @@ -51,7 +52,7 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Apiextensions, Version=V1beta1 + // Group=apiextensions.k8s.io, Version=v1beta1 case v1beta1.SchemeGroupVersion.WithResource("customresourcedefinitions"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apiextensions().V1beta1().CustomResourceDefinitions().Informer()}, nil diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD deleted file mode 100644 index 3c686edf47..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["factory_interfaces.go"], - deps = [ - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go index 6f7b0a8106..3b17f5a1a5 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -1,5 +1,5 @@ /* -Copyright 2017 The Kubernetes Authors. +Copyright 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. @@ -14,15 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This file was automatically generated by informer-gen +// Code generated by informer-gen. DO NOT EDIT. package internalinterfaces import ( + time "time" + clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" - time "time" ) type NewInformerFunc func(clientset.Interface, time.Duration) cache.SharedIndexInformer @@ -32,3 +34,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD deleted file mode 100644 index 3855ac6236..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "factory.go", - "generic.go", - ], - deps = [ - "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces: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/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions:all-srcs", - "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD deleted file mode 100644 index 3d8440cb11..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - deps = [ - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/interface.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/interface.go deleted file mode 100644 index 8137e94b71..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/interface.go +++ /dev/null @@ -1,44 +0,0 @@ -/* -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. -*/ - -// This file was automatically generated by informer-gen - -package apiextensions - -import ( - internalversion "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion" - internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // InternalVersion provides access to shared informers for resources in InternalVersion. - InternalVersion() internalversion.Interface -} - -type group struct { - internalinterfaces.SharedInformerFactory -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} -} - -// InternalVersion returns a new internalversion.Interface. -func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD deleted file mode 100644 index ba99018061..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "customresourcedefinition.go", - "interface.go", - ], - deps = [ - "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion: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/watch:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go deleted file mode 100644 index 4c14fd1119..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -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. -*/ - -// This file was automatically generated by informer-gen - -package internalversion - -import ( - apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions" - internalclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset" - internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces" - internalversion "k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - cache "k8s.io/client-go/tools/cache" - time "time" -) - -// CustomResourceDefinitionInformer provides access to a shared informer and lister for -// CustomResourceDefinitions. -type CustomResourceDefinitionInformer interface { - Informer() cache.SharedIndexInformer - Lister() internalversion.CustomResourceDefinitionLister -} - -type customResourceDefinitionInformer struct { - factory internalinterfaces.SharedInformerFactory -} - -// NewCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewCustomResourceDefinitionInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - return client.Apiextensions().CustomResourceDefinitions().List(options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - return client.Apiextensions().CustomResourceDefinitions().Watch(options) - }, - }, - &apiextensions.CustomResourceDefinition{}, - resyncPeriod, - indexers, - ) -} - -func defaultCustomResourceDefinitionInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewCustomResourceDefinitionInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) -} - -func (f *customResourceDefinitionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apiextensions.CustomResourceDefinition{}, defaultCustomResourceDefinitionInformer) -} - -func (f *customResourceDefinitionInformer) Lister() internalversion.CustomResourceDefinitionLister { - return internalversion.NewCustomResourceDefinitionLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go deleted file mode 100644 index e9ba1c90a2..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go +++ /dev/null @@ -1,43 +0,0 @@ -/* -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. -*/ - -// This file was automatically generated by informer-gen - -package internalversion - -import ( - internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // CustomResourceDefinitions returns a CustomResourceDefinitionInformer. - CustomResourceDefinitions() CustomResourceDefinitionInformer -} - -type version struct { - internalinterfaces.SharedInformerFactory -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} -} - -// CustomResourceDefinitions returns a CustomResourceDefinitionInformer. -func (v *version) CustomResourceDefinitions() CustomResourceDefinitionInformer { - return &customResourceDefinitionInformer{factory: v.SharedInformerFactory} -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/factory.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/factory.go deleted file mode 100644 index fc5fda9fc4..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/factory.go +++ /dev/null @@ -1,118 +0,0 @@ -/* -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. -*/ - -// This file was automatically generated by informer-gen - -package internalversion - -import ( - internalclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset" - apiextensions "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions" - internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces" - runtime "k8s.io/apimachinery/pkg/runtime" - schema "k8s.io/apimachinery/pkg/runtime/schema" - cache "k8s.io/client-go/tools/cache" - reflect "reflect" - sync "sync" - time "time" -) - -type sharedInformerFactory struct { - client internalclientset.Interface - lock sync.Mutex - defaultResync time.Duration - - informers map[reflect.Type]cache.SharedIndexInformer - // startedInformers is used for tracking which informers have been started. - // This allows Start() to be called multiple times safely. - startedInformers map[reflect.Type]bool -} - -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory -func NewSharedInformerFactory(client internalclientset.Interface, defaultResync time.Duration) SharedInformerFactory { - return &sharedInformerFactory{ - client: client, - defaultResync: defaultResync, - informers: make(map[reflect.Type]cache.SharedIndexInformer), - startedInformers: make(map[reflect.Type]bool), - } -} - -// Start initializes all requested informers. -func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) { - f.lock.Lock() - defer f.lock.Unlock() - - for informerType, informer := range f.informers { - if !f.startedInformers[informerType] { - go informer.Run(stopCh) - f.startedInformers[informerType] = true - } - } -} - -// WaitForCacheSync waits for all started informers' cache were synced. -func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool { - informers := func() map[reflect.Type]cache.SharedIndexInformer { - f.lock.Lock() - defer f.lock.Unlock() - - informers := map[reflect.Type]cache.SharedIndexInformer{} - for informerType, informer := range f.informers { - if f.startedInformers[informerType] { - informers[informerType] = informer - } - } - return informers - }() - - res := map[reflect.Type]bool{} - for informType, informer := range informers { - res[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced) - } - return res -} - -// InternalInformerFor returns the SharedIndexInformer for obj using an internal -// client. -func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer { - f.lock.Lock() - defer f.lock.Unlock() - - informerType := reflect.TypeOf(obj) - informer, exists := f.informers[informerType] - if exists { - return informer - } - informer = newFunc(f.client, f.defaultResync) - f.informers[informerType] = informer - - return informer -} - -// SharedInformerFactory provides shared informers for resources in all known -// API group versions. -type SharedInformerFactory interface { - internalinterfaces.SharedInformerFactory - ForResource(resource schema.GroupVersionResource) (GenericInformer, error) - WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool - - Apiextensions() apiextensions.Interface -} - -func (f *sharedInformerFactory) Apiextensions() apiextensions.Interface { - return apiextensions.New(f) -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/generic.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/generic.go deleted file mode 100644 index a338c57c53..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/generic.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -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. -*/ - -// This file was automatically generated by informer-gen - -package internalversion - -import ( - "fmt" - apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions" - schema "k8s.io/apimachinery/pkg/runtime/schema" - cache "k8s.io/client-go/tools/cache" -) - -// GenericInformer is type of SharedIndexInformer which will locate and delegate to other -// sharedInformers based on type -type GenericInformer interface { - Informer() cache.SharedIndexInformer - Lister() cache.GenericLister -} - -type genericInformer struct { - informer cache.SharedIndexInformer - resource schema.GroupResource -} - -// Informer returns the SharedIndexInformer. -func (f *genericInformer) Informer() cache.SharedIndexInformer { - return f.informer -} - -// Lister returns the GenericLister. -func (f *genericInformer) Lister() cache.GenericLister { - return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource) -} - -// ForResource gives generic access to a shared informer of the matching type -// TODO extend this to unknown resources with a client pool -func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { - switch resource { - // Group=Apiextensions, Version=InternalVersion - case apiextensions.SchemeGroupVersion.WithResource("customresourcedefinitions"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Apiextensions().InternalVersion().CustomResourceDefinitions().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD deleted file mode 100644 index deda85345e..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["factory_interfaces.go"], - deps = [ - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 395b69ff89..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -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. -*/ - -// This file was automatically generated by informer-gen - -package internalinterfaces - -import ( - internalclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" - time "time" -) - -type NewInformerFunc func(internalclientset.Interface, time.Duration) cache.SharedIndexInformer - -// SharedInformerFactory a small interface to allow for adding an informer without an import cycle -type SharedInformerFactory interface { - Start(stopCh <-chan struct{}) - InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD deleted file mode 100644 index e9d41b5cc4..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD +++ /dev/null @@ -1,33 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "customresourcedefinition.go", - "expansion_generated.go", - ], - deps = [ - "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go deleted file mode 100644 index 1bd8480514..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go +++ /dev/null @@ -1,65 +0,0 @@ -/* -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. -*/ - -// This file was automatically generated by lister-gen - -package internalversion - -import ( - apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// CustomResourceDefinitionLister helps list CustomResourceDefinitions. -type CustomResourceDefinitionLister interface { - // List lists all CustomResourceDefinitions in the indexer. - List(selector labels.Selector) (ret []*apiextensions.CustomResourceDefinition, err error) - // Get retrieves the CustomResourceDefinition from the index for a given name. - Get(name string) (*apiextensions.CustomResourceDefinition, error) - CustomResourceDefinitionListerExpansion -} - -// customResourceDefinitionLister implements the CustomResourceDefinitionLister interface. -type customResourceDefinitionLister struct { - indexer cache.Indexer -} - -// NewCustomResourceDefinitionLister returns a new CustomResourceDefinitionLister. -func NewCustomResourceDefinitionLister(indexer cache.Indexer) CustomResourceDefinitionLister { - return &customResourceDefinitionLister{indexer: indexer} -} - -// List lists all CustomResourceDefinitions in the indexer. -func (s *customResourceDefinitionLister) List(selector labels.Selector) (ret []*apiextensions.CustomResourceDefinition, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*apiextensions.CustomResourceDefinition)) - }) - return ret, err -} - -// Get retrieves the CustomResourceDefinition from the index for a given name. -func (s *customResourceDefinitionLister) Get(name string) (*apiextensions.CustomResourceDefinition, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(apiextensions.Resource("customresourcedefinition"), name) - } - return obj.(*apiextensions.CustomResourceDefinition), nil -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/expansion_generated.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/expansion_generated.go deleted file mode 100644 index 3be1e91649..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/expansion_generated.go +++ /dev/null @@ -1,23 +0,0 @@ -/* -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. -*/ - -// This file was automatically generated by lister-gen - -package internalversion - -// CustomResourceDefinitionListerExpansion allows custom methods to be added to -// CustomResourceDefinitionLister. -type CustomResourceDefinitionListerExpansion interface{} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD deleted file mode 100644 index e90b609298..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD +++ /dev/null @@ -1,33 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "customresourcedefinition.go", - "expansion_generated.go", - ], - deps = [ - "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go index 316721bd68..87633217b0 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go @@ -1,5 +1,5 @@ /* -Copyright 2017 The Kubernetes Authors. +Copyright 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. @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This file was automatically generated by lister-gen +// Code generated by lister-gen. DO NOT EDIT. package v1beta1 diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/expansion_generated.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/expansion_generated.go index 5723fc39b7..429782deb0 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2017 The Kubernetes Authors. +Copyright 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. @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This file was automatically generated by lister-gen +// Code generated by lister-gen. DO NOT EDIT. package v1beta1