From 6195b03bd0e74fc1e55d6fc5f43b2ecf34e05419 Mon Sep 17 00:00:00 2001 From: Robert-André Mauchin Date: Jul 03 2019 14:12:16 +0000 Subject: Initial import Signed-off-by: Robert-André Mauchin --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ec6df0d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/kubernetes-1.13.7-beta.0.tar.gz diff --git a/0001-Bump-k8s.io-utils-to-8e7ff06.patch b/0001-Bump-k8s.io-utils-to-8e7ff06.patch new file mode 100644 index 0000000..ac2fd3b --- /dev/null +++ b/0001-Bump-k8s.io-utils-to-8e7ff06.patch @@ -0,0 +1,122 @@ +From 0d4b5c98f81a3e04b18610f983eb1b68e5fa11bf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Hannes=20H=C3=B6rl?= +Date: Wed, 14 Nov 2018 23:10:07 +0000 +Subject: [PATCH] Bump k8s.io/uitls to 8e7ff06 + +The reason for the bump is the new functionality of the +k8s.io/utils/exec package which allows +- to get a hold of the process' std{out,err} as `io.Reader`s +- to `Start` a process and `Wait` for it + +This should help on addressing #70890 by allowing to wrap std{out,err} +of the process to be wrapped with a `io.limitedReader`. + +It also updates +- k8s.io/kubernetes/pkg/probe/exec.FakeCmd +- k8s.io/kubernetes/pkg/kubelet/prober.execInContainer +- k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet.fakeCmd +to implement the changed interface. + +The dependency on 'k8s.io/utils/pointer' to the new version has also +been bumped in some staging repos: +- apiserver +- kube-controller-manager +- kube-scheduler +--- + cmd/kubeadm/app/phases/kubelet/flags_test.go | 21 +++--- + pkg/kubelet/prober/prober.go | 20 ++++++ + pkg/probe/exec/exec_test.go | 14 ++++ + 3 files changed, 47 insertions(+), 8 deletions(-) + create mode 100644 vendor/k8s.io/utils/pointer/OWNERS + +diff --git a/cmd/kubeadm/app/phases/kubelet/flags_test.go b/cmd/kubeadm/app/phases/kubelet/flags_test.go +index 26d4774c39e99..1b06330504cd7 100644 +--- a/cmd/kubeadm/app/phases/kubelet/flags_test.go ++++ b/cmd/kubeadm/app/phases/kubelet/flags_test.go +@@ -34,14 +34,19 @@ type fakeCmd struct { + err error + } + +-func (f fakeCmd) Run() error { return f.err } +-func (f fakeCmd) CombinedOutput() ([]byte, error) { return f.b, f.err } +-func (f fakeCmd) Output() ([]byte, error) { return f.b, f.err } +-func (f fakeCmd) SetDir(dir string) {} +-func (f fakeCmd) SetStdin(in io.Reader) {} +-func (f fakeCmd) SetStdout(out io.Writer) {} +-func (f fakeCmd) SetStderr(out io.Writer) {} +-func (f fakeCmd) Stop() {} ++func (f fakeCmd) Run() error { return f.err } ++func (f fakeCmd) CombinedOutput() ([]byte, error) { return f.b, f.err } ++func (f fakeCmd) Output() ([]byte, error) { return f.b, f.err } ++func (f fakeCmd) SetDir(dir string) {} ++func (f fakeCmd) SetStdin(in io.Reader) {} ++func (f fakeCmd) SetStdout(out io.Writer) {} ++func (f fakeCmd) SetStderr(out io.Writer) {} ++func (f fakeCmd) SetEnv([]string) {} ++func (f fakeCmd) Stop() {} ++func (f fakeCmd) Start() error { return nil } ++func (f fakeCmd) Wait() error { return nil } ++func (f fakeCmd) StdoutPipe() (io.ReadCloser, error) { return nil, nil } ++func (f fakeCmd) StderrPipe() (io.ReadCloser, error) { return nil, nil } + + type fakeExecer struct { + ioMap map[string]fakeCmd +diff --git a/pkg/kubelet/prober/prober.go b/pkg/kubelet/prober/prober.go +index efec60c98d2a1..cc69ec02f7c5f 100644 +--- a/pkg/kubelet/prober/prober.go ++++ b/pkg/kubelet/prober/prober.go +@@ -274,6 +274,26 @@ func (eic execInContainer) SetStderr(out io.Writer) { + //unimplemented + } + ++func (eic execInContainer) SetEnv(env []string) { ++ //unimplemented ++} ++ + func (eic execInContainer) Stop() { + //unimplemented + } ++ ++func (eic execInContainer) Start() error { ++ return fmt.Errorf("unimplemented") ++} ++ ++func (eic execInContainer) Wait() error { ++ return fmt.Errorf("unimplemented") ++} ++ ++func (eic execInContainer) StdoutPipe() (io.ReadCloser, error) { ++ return nil, fmt.Errorf("unimplemented") ++} ++ ++func (eic execInContainer) StderrPipe() (io.ReadCloser, error) { ++ return nil, fmt.Errorf("unimplemented") ++} +diff --git a/pkg/probe/exec/exec_test.go b/pkg/probe/exec/exec_test.go +index 3621983059651..1d8eebb063431 100644 +--- a/pkg/probe/exec/exec_test.go ++++ b/pkg/probe/exec/exec_test.go +@@ -50,8 +50,22 @@ func (f *FakeCmd) SetStdout(out io.Writer) {} + + func (f *FakeCmd) SetStderr(out io.Writer) {} + ++func (f *FakeCmd) SetEnv(env []string) {} ++ + func (f *FakeCmd) Stop() {} + ++func (f *FakeCmd) Start() error { return nil } ++ ++func (f *FakeCmd) Wait() error { return nil } ++ ++func (f *FakeCmd) StdoutPipe() (io.ReadCloser, error) { ++ return nil, nil ++} ++ ++func (f *FakeCmd) StderrPipe() (io.ReadCloser, error) { ++ return nil, nil ++} ++ + type fakeExitError struct { + exited bool + statusCode int + diff --git a/0001-Extract-new-keyutil-package-from-client-go-util-cert.patch b/0001-Extract-new-keyutil-package-from-client-go-util-cert.patch new file mode 100644 index 0000000..46d514b --- /dev/null +++ b/0001-Extract-new-keyutil-package-from-client-go-util-cert.patch @@ -0,0 +1,412 @@ +From 18458392ca24c85c688e655aace1afd04f864cbd Mon Sep 17 00:00:00 2001 +From: Andrew Lytvynov +Date: Sun, 9 Dec 2018 16:24:38 -0800 +Subject: [PATCH] Extract new keyutil package from client-go/util/cert + +This package contains public/private key utilities copied directly from +client-go/util/cert. All imports were updated. + +Future PRs will actually refactor the libraries. + +Updates #71004 +--- + +diff -up kubernetes-1.13.7-beta.0/cmd/kubeadm/app/phases/kubeconfig/kubeconfig.go.keyutil kubernetes-1.13.7-beta.0/cmd/kubeadm/app/phases/kubeconfig/kubeconfig.go +--- kubernetes-1.13.7-beta.0/cmd/kubeadm/app/phases/kubeconfig/kubeconfig.go.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/cmd/kubeadm/app/phases/kubeconfig/kubeconfig.go 2019-05-21 09:24:07.256958952 +0200 +@@ -29,6 +29,7 @@ import ( + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + certutil "k8s.io/client-go/util/cert" ++ "k8s.io/client-go/util/keyutil" + "k8s.io/klog" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" +@@ -205,13 +206,17 @@ func buildKubeConfigFromSpec(spec *kubeC + return nil, errors.Wrapf(err, "failure while creating %s client certificate", spec.ClientName) + } + ++ encodedClientKey, err := keyutil.MarshalPrivateKeyToPEM(clientKey) ++ if err != nil { ++ return nil, errors.Wrapf(err, "failed to marshal private key to PEM") ++ } + // create a kubeconfig with the client certs + return kubeconfigutil.CreateWithCerts( + spec.APIServer, + clustername, + spec.ClientName, + certutil.EncodeCertPEM(spec.CACert), +- certutil.EncodePrivateKeyPEM(clientKey), ++ encodedClientKey, + certutil.EncodeCertPEM(clientCert), + ), nil + } +diff -up kubernetes-1.13.7-beta.0/cmd/kubeadm/app/util/pkiutil/pki_helpers.go.keyutil kubernetes-1.13.7-beta.0/cmd/kubeadm/app/util/pkiutil/pki_helpers.go +--- kubernetes-1.13.7-beta.0/cmd/kubeadm/app/util/pkiutil/pki_helpers.go.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/cmd/kubeadm/app/util/pkiutil/pki_helpers.go 2019-05-21 09:21:29.248165205 +0200 +@@ -34,6 +34,7 @@ import ( + + "k8s.io/apimachinery/pkg/util/validation" + certutil "k8s.io/client-go/util/cert" ++ "k8s.io/client-go/util/keyutil" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" + kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" +@@ -125,7 +126,11 @@ func WriteKey(pkiPath, name string, key + } + + privateKeyPath := pathForKey(pkiPath, name) +- if err := certutil.WriteKey(privateKeyPath, certutil.EncodePrivateKeyPEM(key)); err != nil { ++ encoded, err := keyutil.MarshalPrivateKeyToPEM(key) ++ if err != nil { ++ return errors.Wrapf(err, "unable to marshal private key to PEM") ++ } ++ if err := keyutil.WriteKey(privateKeyPath, encoded); err != nil { + return errors.Wrapf(err, "unable to write private key to file %s", privateKeyPath) + } + +@@ -164,7 +169,7 @@ func WritePublicKey(pkiPath, name string + return err + } + publicKeyPath := pathForPublicKey(pkiPath, name) +- if err := certutil.WriteKey(publicKeyPath, publicKeyBytes); err != nil { ++ if err := keyutil.WriteKey(publicKeyPath, publicKeyBytes); err != nil { + return errors.Wrapf(err, "unable to write public key to file %s", publicKeyPath) + } + +@@ -242,7 +247,7 @@ func TryLoadKeyFromDisk(pkiPath, name st + privateKeyPath := pathForKey(pkiPath, name) + + // Parse the private key from a file +- privKey, err := certutil.PrivateKeyFromFile(privateKeyPath) ++ privKey, err := keyutil.PrivateKeyFromFile(privateKeyPath) + if err != nil { + return nil, errors.Wrapf(err, "couldn't load the private key file %s", privateKeyPath) + } +@@ -281,7 +286,7 @@ func TryLoadPrivatePublicKeyFromDisk(pki + privateKeyPath := pathForKey(pkiPath, name) + + // Parse the private key from a file +- privKey, err := certutil.PrivateKeyFromFile(privateKeyPath) ++ privKey, err := keyutil.PrivateKeyFromFile(privateKeyPath) + if err != nil { + return nil, nil, errors.Wrapf(err, "couldn't load the private key file %s", privateKeyPath) + } +@@ -289,7 +294,7 @@ func TryLoadPrivatePublicKeyFromDisk(pki + publicKeyPath := pathForPublicKey(pkiPath, name) + + // Parse the public key from a file +- pubKeys, err := certutil.PublicKeysFromFile(publicKeyPath) ++ pubKeys, err := keyutil.PublicKeysFromFile(publicKeyPath) + if err != nil { + return nil, nil, errors.Wrapf(err, "couldn't load the public key file %s", publicKeyPath) + } +diff -up kubernetes-1.13.7-beta.0/cmd/kube-apiserver/app/server.go.keyutil kubernetes-1.13.7-beta.0/cmd/kube-apiserver/app/server.go +--- kubernetes-1.13.7-beta.0/cmd/kube-apiserver/app/server.go.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/cmd/kube-apiserver/app/server.go 2019-05-21 09:19:37.160312456 +0200 +@@ -54,7 +54,7 @@ import ( + "k8s.io/apiserver/pkg/util/webhook" + clientgoinformers "k8s.io/client-go/informers" + clientgoclientset "k8s.io/client-go/kubernetes" +- certutil "k8s.io/client-go/util/cert" ++ "k8s.io/client-go/util/keyutil" + cloudprovider "k8s.io/cloud-provider" + "k8s.io/klog" + aggregatorapiserver "k8s.io/kube-aggregator/pkg/apiserver" +@@ -576,7 +576,7 @@ func Complete(s *options.ServerRunOption + } + + if s.ServiceAccountSigningKeyFile != "" && s.Authentication.ServiceAccounts.Issuer != "" { +- sk, err := certutil.PrivateKeyFromFile(s.ServiceAccountSigningKeyFile) ++ sk, err := keyutil.PrivateKeyFromFile(s.ServiceAccountSigningKeyFile) + if err != nil { + return options, fmt.Errorf("failed to parse service-account-issuer-key-file: %v", err) + } +diff -up kubernetes-1.13.7-beta.0/cmd/kube-controller-manager/app/controllermanager.go.keyutil kubernetes-1.13.7-beta.0/cmd/kube-controller-manager/app/controllermanager.go +--- kubernetes-1.13.7-beta.0/cmd/kube-controller-manager/app/controllermanager.go.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/cmd/kube-controller-manager/app/controllermanager.go 2019-05-21 09:19:37.163312452 +0200 +@@ -48,6 +48,7 @@ import ( + "k8s.io/client-go/tools/leaderelection" + "k8s.io/client-go/tools/leaderelection/resourcelock" + certutil "k8s.io/client-go/util/cert" ++ "k8s.io/client-go/util/keyutil" + cloudprovider "k8s.io/cloud-provider" + "k8s.io/klog" + genericcontrollermanager "k8s.io/kubernetes/cmd/controller-manager/app" +@@ -536,7 +537,7 @@ func (c serviceAccountTokenControllerSta + klog.Warningf("%q is disabled because there is no private key", saTokenControllerName) + return nil, false, nil + } +- privateKey, err := certutil.PrivateKeyFromFile(ctx.ComponentConfig.SAController.ServiceAccountKeyFile) ++ privateKey, err := keyutil.PrivateKeyFromFile(ctx.ComponentConfig.SAController.ServiceAccountKeyFile) + if err != nil { + return nil, true, fmt.Errorf("error reading key for service account token controller: %v", err) + } +diff -up kubernetes-1.13.7-beta.0/cmd/kubelet/app/server.go.keyutil kubernetes-1.13.7-beta.0/cmd/kubelet/app/server.go +--- kubernetes-1.13.7-beta.0/cmd/kubelet/app/server.go.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/cmd/kubelet/app/server.go 2019-05-21 09:21:29.252165199 +0200 +@@ -56,6 +56,7 @@ import ( + "k8s.io/client-go/tools/record" + certutil "k8s.io/client-go/util/cert" + "k8s.io/client-go/util/certificate" ++ "k8s.io/client-go/util/keyutil" + cloudprovider "k8s.io/cloud-provider" + csiclientset "k8s.io/csi-api/pkg/client/clientset/versioned" + kubeletconfigv1beta1 "k8s.io/kubelet/config/v1beta1" +@@ -818,7 +819,7 @@ func InitializeTLS(kf *options.KubeletFl + return nil, err + } + +- if err := certutil.WriteKey(kc.TLSPrivateKeyFile, key); err != nil { ++ if err := keyutil.WriteKey(kc.TLSPrivateKeyFile, key); err != nil { + return nil, err + } + +diff -up kubernetes-1.13.7-beta.0/pkg/kubeapiserver/authenticator/config.go.keyutil kubernetes-1.13.7-beta.0/pkg/kubeapiserver/authenticator/config.go +--- kubernetes-1.13.7-beta.0/pkg/kubeapiserver/authenticator/config.go.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/kubeapiserver/authenticator/config.go 2019-05-21 09:21:29.254165197 +0200 +@@ -38,9 +38,11 @@ import ( + "k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth" + "k8s.io/apiserver/plugin/pkg/authenticator/token/oidc" + "k8s.io/apiserver/plugin/pkg/authenticator/token/webhook" ++ + // Initialize all known client auth plugins. + _ "k8s.io/client-go/plugin/pkg/client/auth" + certutil "k8s.io/client-go/util/cert" ++ "k8s.io/client-go/util/keyutil" + "k8s.io/kubernetes/pkg/features" + "k8s.io/kubernetes/pkg/serviceaccount" + ) +@@ -226,7 +228,7 @@ func (config Config) New() (authenticato + + // IsValidServiceAccountKeyFile returns true if a valid public RSA key can be read from the given file + func IsValidServiceAccountKeyFile(file string) bool { +- _, err := certutil.PublicKeysFromFile(file) ++ _, err := keyutil.PublicKeysFromFile(file) + return err == nil + } + +@@ -279,7 +281,7 @@ func newAuthenticatorFromOIDCIssuerURL(o + func newLegacyServiceAccountAuthenticator(keyfiles []string, lookup bool, apiAudiences authenticator.Audiences, serviceAccountGetter serviceaccount.ServiceAccountTokenGetter) (authenticator.Token, error) { + allPublicKeys := []interface{}{} + for _, keyfile := range keyfiles { +- publicKeys, err := certutil.PublicKeysFromFile(keyfile) ++ publicKeys, err := keyutil.PublicKeysFromFile(keyfile) + if err != nil { + return nil, err + } +@@ -294,7 +296,7 @@ func newLegacyServiceAccountAuthenticato + func newServiceAccountAuthenticator(iss string, keyfiles []string, apiAudiences authenticator.Audiences, serviceAccountGetter serviceaccount.ServiceAccountTokenGetter) (authenticator.Token, error) { + allPublicKeys := []interface{}{} + for _, keyfile := range keyfiles { +- publicKeys, err := certutil.PublicKeysFromFile(keyfile) ++ publicKeys, err := keyutil.PublicKeysFromFile(keyfile) + if err != nil { + return nil, err + } +diff -up kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/bootstrap.go.keyutil kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/bootstrap.go +--- kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/bootstrap.go.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/bootstrap.go 2019-05-21 09:21:29.257165193 +0200 +@@ -43,6 +43,7 @@ import ( + certutil "k8s.io/client-go/util/cert" + "k8s.io/client-go/util/certificate" + "k8s.io/client-go/util/certificate/csr" ++ "k8s.io/client-go/util/keyutil" + ) + + const tmpPrivateKeyFile = "kubelet-client.key.tmp" +@@ -82,7 +83,7 @@ func LoadClientCert(kubeconfigPath strin + var keyData []byte + if cert, err := store.Current(); err == nil { + if cert.PrivateKey != nil { +- keyData, err = certutil.MarshalPrivateKeyToPEM(cert.PrivateKey) ++ keyData, err = keyutil.MarshalPrivateKeyToPEM(cert.PrivateKey) + if err != nil { + keyData = nil + } +@@ -96,7 +97,7 @@ func LoadClientCert(kubeconfigPath strin + klog.V(2).Infof("No valid private key and/or certificate found, reusing existing private key or creating a new one") + // Note: always call LoadOrGenerateKeyFile so that private key is + // reused on next startup if CSR request fails. +- keyData, _, err = certutil.LoadOrGenerateKeyFile(privKeyPath) ++ keyData, _, err = keyutil.LoadOrGenerateKeyFile(privKeyPath) + if err != nil { + return err + } +@@ -218,7 +219,7 @@ func verifyKeyData(data []byte) bool { + if len(data) == 0 { + return false + } +- _, err := certutil.ParsePrivateKeyPEM(data) ++ _, err := keyutil.ParsePrivateKeyPEM(data) + return err == nil + } + +@@ -262,7 +263,7 @@ func requestNodeCertificate(client certi + CommonName: "system:node:" + string(nodeName), + } + +- privateKey, err := certutil.ParsePrivateKeyPEM(privateKeyData) ++ privateKey, err := keyutil.ParsePrivateKeyPEM(privateKeyData) + if err != nil { + return nil, fmt.Errorf("invalid private key for certificate request: %v", err) + } +diff -up kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/bootstrap_test.go.keyutil kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/bootstrap_test.go +--- kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/bootstrap_test.go.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/bootstrap_test.go 2019-05-21 09:21:29.258165191 +0200 +@@ -29,7 +29,7 @@ import ( + "k8s.io/apimachinery/pkg/watch" + certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" + restclient "k8s.io/client-go/rest" +- certutil "k8s.io/client-go/util/cert" ++ "k8s.io/client-go/util/keyutil" + ) + + func TestLoadRESTClientConfig(t *testing.T) { +@@ -104,7 +104,7 @@ func TestRequestNodeCertificateErrorCrea + client := &fakeClient{ + failureType: createError, + } +- privateKeyData, err := certutil.MakeEllipticPrivateKeyPEM() ++ privateKeyData, err := keyutil.MakeEllipticPrivateKeyPEM() + if err != nil { + t.Fatalf("Unable to generate a new private key: %v", err) + } +@@ -119,7 +119,7 @@ func TestRequestNodeCertificateErrorCrea + } + + func TestRequestNodeCertificate(t *testing.T) { +- privateKeyData, err := certutil.MakeEllipticPrivateKeyPEM() ++ privateKeyData, err := keyutil.MakeEllipticPrivateKeyPEM() + if err != nil { + t.Fatalf("Unable to generate a new private key: %v", err) + } +diff -up kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/BUILD.keyutil kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/BUILD +--- kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/BUILD.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/kubelet/certificate/bootstrap/BUILD 2019-05-21 09:21:29.256165194 +0200 +@@ -17,7 +17,7 @@ go_test( + "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", + "//staging/src/k8s.io/client-go/rest:go_default_library", +- "//staging/src/k8s.io/client-go/util/cert:go_default_library", ++ "//staging/src/k8s.io/client-go/util/keyutil:go_default_library", + ], + ) + +@@ -40,6 +40,7 @@ go_library( + "//staging/src/k8s.io/client-go/util/cert:go_default_library", + "//staging/src/k8s.io/client-go/util/certificate:go_default_library", + "//staging/src/k8s.io/client-go/util/certificate/csr:go_default_library", ++ "//staging/src/k8s.io/client-go/util/keyutil:go_default_library", + "//vendor/k8s.io/klog:go_default_library", + ], + ) +diff -up kubernetes-1.13.7-beta.0/pkg/serviceaccount/jwt_test.go.keyutil kubernetes-1.13.7-beta.0/pkg/serviceaccount/jwt_test.go +--- kubernetes-1.13.7-beta.0/pkg/serviceaccount/jwt_test.go.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/serviceaccount/jwt_test.go 2019-05-21 09:25:20.167863782 +0200 +@@ -21,12 +21,12 @@ import ( + "reflect" + "testing" + +- "k8s.io/api/core/v1" ++ v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/authenticator" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/client-go/kubernetes/fake" +- certutil "k8s.io/client-go/util/cert" ++ "k8s.io/client-go/util/keyutil" + serviceaccountcontroller "k8s.io/kubernetes/pkg/controller/serviceaccount" + "k8s.io/kubernetes/pkg/serviceaccount" + ) +@@ -95,12 +95,12 @@ X2i8uIp/C/ASqiIGUeeKQtX0/IR3qCXyThP/dbCi + -----END PUBLIC KEY-----` + + func getPrivateKey(data string) interface{} { +- key, _ := certutil.ParsePrivateKeyPEM([]byte(data)) ++ key, _ := keyutil.ParsePrivateKeyPEM([]byte(data)) + return key + } + + func getPublicKey(data string) interface{} { +- keys, _ := certutil.ParsePublicKeysPEM([]byte(data)) ++ keys, _ := keyutil.ParsePublicKeysPEM([]byte(data)) + return keys[0] + } + func TestTokenGenerateAndValidate(t *testing.T) { +diff -up kubernetes-1.13.7-beta.0/test/e2e/apimachinery/certs.go.keyutil kubernetes-1.13.7-beta.0/test/e2e/apimachinery/certs.go +--- kubernetes-1.13.7-beta.0/test/e2e/apimachinery/certs.go.keyutil 2019-05-21 09:21:29.265165182 +0200 ++++ kubernetes-1.13.7-beta.0/test/e2e/apimachinery/certs.go 2019-05-21 09:30:18.346474554 +0200 +@@ -22,6 +22,7 @@ import ( + "os" + + "k8s.io/client-go/util/cert" ++ "k8s.io/client-go/util/keyutil" + "k8s.io/kubernetes/test/e2e/framework" + ) + +@@ -79,12 +80,16 @@ func setupServerCert(namespaceName, serv + if err = ioutil.WriteFile(certFile.Name(), cert.EncodeCertPEM(signedCert), 0600); err != nil { + framework.Failf("Failed to write cert file %v", err) + } +- if err = ioutil.WriteFile(keyFile.Name(), cert.EncodePrivateKeyPEM(key), 0644); err != nil { ++ privateKeyPEM, err := keyutil.MarshalPrivateKeyToPEM(key) ++ if err != nil { ++ framework.Failf("Failed to marshal key %v", err) ++ } ++ if err = ioutil.WriteFile(keyFile.Name(), privateKeyPEM, 0644); err != nil { + framework.Failf("Failed to write key file %v", err) + } + return &certContext{ + cert: cert.EncodeCertPEM(signedCert), +- key: cert.EncodePrivateKeyPEM(key), ++ key: privateKeyPEM, + signingCert: cert.EncodeCertPEM(signingCert), + } + } +diff -up kubernetes-1.13.7-beta.0/test/e2e/auth/certificates.go.keyutil kubernetes-1.13.7-beta.0/test/e2e/auth/certificates.go +diff -up kubernetes-1.13.7-beta.0/test/integration/auth/svcaccttoken_test.go.keyutil kubernetes-1.13.7-beta.0/test/integration/auth/svcaccttoken_test.go +--- kubernetes-1.13.7-beta.0/test/integration/auth/svcaccttoken_test.go.keyutil 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/test/integration/auth/svcaccttoken_test.go 2019-05-21 09:32:44.894283241 +0200 +@@ -39,7 +39,7 @@ import ( + utilfeature "k8s.io/apiserver/pkg/util/feature" + utilfeaturetesting "k8s.io/apiserver/pkg/util/feature/testing" + clientset "k8s.io/client-go/kubernetes" +- certutil "k8s.io/client-go/util/cert" ++ "k8s.io/client-go/util/keyutil" + "k8s.io/kubernetes/pkg/apis/core" + serviceaccountgetter "k8s.io/kubernetes/pkg/controller/serviceaccount" + "k8s.io/kubernetes/pkg/features" +@@ -57,7 +57,7 @@ func TestServiceAccountTokenCreate(t *te + defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.TokenRequest, true)() + + // Build client config, clientset, and informers +- sk, err := certutil.ParsePrivateKeyPEM([]byte(ecdsaPrivateKey)) ++ sk, err := keyutil.ParsePrivateKeyPEM([]byte(ecdsaPrivateKey)) + if err != nil { + t.Fatalf("err: %v", err) + } +diff -up kubernetes-1.13.7-beta.0/test/integration/examples/apiserver_test.go.keyutil kubernetes-1.13.7-beta.0/test/integration/examples/apiserver_test.go +--- kubernetes-1.13.7-beta.0/test/integration/examples/apiserver_test.go.keyutil 2019-05-21 09:21:29.272165173 +0200 ++++ kubernetes-1.13.7-beta.0/test/integration/examples/apiserver_test.go 2019-05-21 09:35:51.578039553 +0200 +@@ -43,6 +43,7 @@ import ( + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + "k8s.io/client-go/util/cert" ++ "k8s.io/client-go/util/keyutil" + apiregistrationv1beta1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1" + aggregatorclient "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset" + kubeaggregatorserver "k8s.io/kube-aggregator/pkg/cmd/server" +@@ -250,7 +251,11 @@ func TestAggregatedAPIServer(t *testing. + if err := ioutil.WriteFile(proxyClientCertFile.Name(), cert.EncodeCertPEM(proxyClientCert), 0600); err != nil { + t.Fatal(err) + } +- if err := ioutil.WriteFile(proxyClientKeyFile.Name(), cert.EncodePrivateKeyPEM(proxyClientKey), 0644); err != nil { ++ proxyClientKeyPEM, err := keyutil.MarshalPrivateKeyToPEM(proxyClientKey) ++ if err != nil { ++ t.Fatal(err) ++ } ++ if err := ioutil.WriteFile(proxyClientKeyFile.Name(), proxyClientKeyPEM, 0644); err != nil { + t.Fatal(err) + } + aggregatorPort := new(int32) diff --git a/0001-Fix-for-newer-azure-sdk-for-go.patch b/0001-Fix-for-newer-azure-sdk-for-go.patch new file mode 100644 index 0000000..3d37fda --- /dev/null +++ b/0001-Fix-for-newer-azure-sdk-for-go.patch @@ -0,0 +1,55 @@ +diff -up kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_blobDiskController.go.fix_azure_api kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_blobDiskController.go +--- kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_blobDiskController.go.fix_azure_api 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_blobDiskController.go 2019-05-20 21:55:57.775360786 +0200 +@@ -598,7 +598,7 @@ func (c *BlobDiskController) findSANameF + func (c *BlobDiskController) getStorageAccountState(storageAccountName string) (bool, storage.ProvisioningState, error) { + ctx, cancel := getContextWithCancel() + defer cancel() +- account, err := c.common.cloud.StorageAccountClient.GetProperties(ctx, c.common.resourceGroup, storageAccountName) ++ account, err := c.common.cloud.StorageAccountClient.GetProperties(ctx, c.common.resourceGroup, storageAccountName, "") + if err != nil { + return false, "", err + } +diff -up kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_client.go.fix_azure_api kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_client.go +--- kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_client.go.fix_azure_api 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_client.go 2019-05-20 21:26:28.553486442 +0200 +@@ -119,7 +119,7 @@ type StorageAccountClient interface { + Delete(ctx context.Context, resourceGroupName string, accountName string) (result autorest.Response, err error) + ListKeys(ctx context.Context, resourceGroupName string, accountName string) (result storage.AccountListKeysResult, err error) + ListByResourceGroup(ctx context.Context, resourceGroupName string) (result storage.AccountListResult, err error) +- GetProperties(ctx context.Context, resourceGroupName string, accountName string) (result storage.Account, err error) ++ GetProperties(ctx context.Context, resourceGroupName string, accountName string, expand storage.AccountExpand) (result storage.Account, err error) + } + + // DisksClient defines needed functions for azure compute.DisksClient +@@ -1181,7 +1181,7 @@ func (az *azStorageAccountClient) ListBy + return + } + +-func (az *azStorageAccountClient) GetProperties(ctx context.Context, resourceGroupName string, accountName string) (result storage.Account, err error) { ++func (az *azStorageAccountClient) GetProperties(ctx context.Context, resourceGroupName string, accountName string, expand storage.AccountExpand) (result storage.Account, err error) { + if !az.rateLimiterReader.TryAccept() { + err = createRateLimitErr(false, "GetStorageAccount/Properties") + return +@@ -1193,7 +1193,7 @@ func (az *azStorageAccountClient) GetPro + }() + + mc := newMetricContext("storage_account", "get_properties", resourceGroupName, az.client.SubscriptionID) +- result, err = az.client.GetProperties(ctx, resourceGroupName, accountName) ++ result, err = az.client.GetProperties(ctx, resourceGroupName, accountName, expand) + mc.Observe(err) + return + } +diff -up kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_fakes.go.fix_azure_api kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_fakes.go +--- kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_fakes.go.fix_azure_api 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_fakes.go 2019-05-20 22:45:27.072126914 +0200 +@@ -784,7 +784,7 @@ func (fSAC *fakeStorageAccountClient) Li + return fSAC.Accounts, fSAC.Err + } + +-func (fSAC *fakeStorageAccountClient) GetProperties(ctx context.Context, resourceGroupName string, accountName string) (result storage.Account, err error) { ++func (fSAC *fakeStorageAccountClient) GetProperties(ctx context.Context, resourceGroupName string, accountName string, expand storage.AccountExpand) (result storage.Account, err error) { + fSAC.mutex.Lock() + defer fSAC.mutex.Unlock() + +diff -up kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_storage_test.go.fix_azure_api kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/azure/azure_storage_test.go diff --git a/0001-Fix-for-newer-client_golang.patch b/0001-Fix-for-newer-client_golang.patch new file mode 100644 index 0000000..730dd57 --- /dev/null +++ b/0001-Fix-for-newer-client_golang.patch @@ -0,0 +1,44 @@ +diff --git a/pkg/kubelet/metrics/collectors/helper_test.go b/pkg/kubelet/metrics/collectors/helper_test.go +index a63f80b932f6b..f209b87a6b8aa 100644 +--- a/pkg/kubelet/metrics/collectors/helper_test.go ++++ b/pkg/kubelet/metrics/collectors/helper_test.go +@@ -120,7 +120,27 @@ func removeUnusedWhitespace(s string) string { + return strings.Join(trimmedLines, "\n") + "\n" + } + +-// The below sorting code is copied form the Prometheus client library modulo the added ++// The below code is copied from the Prometheus client library in order to work around the fact that LabelPairSorter is now unexported. ++// https://github.com/prometheus/client_golang/pull/453 ++// https://github.com/prometheus/client_golang/blob/v0.9.0/prometheus/metric.go#L116-L130 ++ ++// labelPairSorter implements sort.Interface. It is used to sort a slice of ++// dto.LabelPair pointers. ++type labelPairSorter []*dto.LabelPair ++ ++func (s labelPairSorter) Len() int { ++ return len(s) ++} ++ ++func (s labelPairSorter) Swap(i, j int) { ++ s[i], s[j] = s[j], s[i] ++} ++ ++func (s labelPairSorter) Less(i, j int) bool { ++ return s[i].GetName() < s[j].GetName() ++} ++ ++// The below sorting code is copied from the Prometheus client library modulo the added + // label pair sorting. + // https://github.com/prometheus/client_golang/blob/ea6e1db4cb8127eeb0b6954f7320363e5451820f/prometheus/registry.go#L642-L684 + +@@ -136,8 +156,8 @@ func (s metricSorter) Swap(i, j int) { + } + + func (s metricSorter) Less(i, j int) bool { +- sort.Sort(prometheus.LabelPairSorter(s[i].Label)) +- sort.Sort(prometheus.LabelPairSorter(s[j].Label)) ++ sort.Sort(labelPairSorter(s[i].Label)) ++ sort.Sort(labelPairSorter(s[j].Label)) + + if len(s[i].Label) != len(s[j].Label) { + return len(s[i].Label) < len(s[j].Label) diff --git a/0001-Fix-for-newer-gophercloud.patch b/0001-Fix-for-newer-gophercloud.patch new file mode 100644 index 0000000..48f10a7 --- /dev/null +++ b/0001-Fix-for-newer-gophercloud.patch @@ -0,0 +1,23 @@ +diff -up kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/openstack/openstack_volumes.go.fix_for_gophercloud kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/openstack/openstack_volumes.go +--- kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/openstack/openstack_volumes.go.fix_for_gophercloud 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/openstack/openstack_volumes.go 2019-05-20 21:33:05.128510184 +0200 +@@ -256,7 +256,8 @@ func (volumes *VolumesV1) deleteVolume(v + + func (volumes *VolumesV2) deleteVolume(volumeID string) error { + startTime := time.Now() +- err := volumes_v2.Delete(volumes.blockstorage, volumeID).ExtractErr() ++ deleteOpts := volumes_v2.DeleteOpts{Cascade: true} ++ err := volumes_v2.Delete(volumes.blockstorage, volumeID, deleteOpts).ExtractErr() + timeTaken := time.Since(startTime).Seconds() + recordOpenstackOperationMetric("delete_v2_volume", timeTaken, err) + return err +@@ -264,7 +265,8 @@ func (volumes *VolumesV2) deleteVolume(v + + func (volumes *VolumesV3) deleteVolume(volumeID string) error { + startTime := time.Now() +- err := volumes_v3.Delete(volumes.blockstorage, volumeID).ExtractErr() ++ deleteOpts := volumes_v3.DeleteOpts{Cascade: true} ++ err := volumes_v3.Delete(volumes.blockstorage, volumeID, deleteOpts).ExtractErr() + timeTaken := time.Since(startTime).Seconds() + recordOpenstackOperationMetric("delete_v3_volume", timeTaken, err) + return err diff --git a/0001-Fix-for-using-with-newer-github.com-containernetworking-cni.patch b/0001-Fix-for-using-with-newer-github.com-containernetworking-cni.patch new file mode 100644 index 0000000..6de8f0b --- /dev/null +++ b/0001-Fix-for-using-with-newer-github.com-containernetworking-cni.patch @@ -0,0 +1,121 @@ +diff -up kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/cni.go.fix_for_cni kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/cni.go +--- kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/cni.go.fix_for_cni 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/cni.go 2019-05-21 01:00:02.107907074 +0200 +@@ -17,6 +17,7 @@ limitations under the License. + package cni + + import ( ++ "context" + "encoding/json" + "errors" + "fmt" +@@ -319,7 +320,7 @@ func (plugin *cniNetworkPlugin) addToNet + pdesc := podDesc(podNamespace, podName, podSandboxID) + netConf, cniNet := network.NetworkConfig, network.CNIConfig + klog.V(4).Infof("Adding %s to network %s/%s netns %q", pdesc, netConf.Plugins[0].Network.Type, netConf.Name, podNetnsPath) +- res, err := cniNet.AddNetworkList(netConf, rt) ++ res, err := cniNet.AddNetworkList(context.TODO(), netConf, rt) + if err != nil { + klog.Errorf("Error adding %s to network %s/%s: %v", pdesc, netConf.Plugins[0].Network.Type, netConf.Name, err) + return nil, err +@@ -338,7 +339,7 @@ func (plugin *cniNetworkPlugin) deleteFr + pdesc := podDesc(podNamespace, podName, podSandboxID) + netConf, cniNet := network.NetworkConfig, network.CNIConfig + klog.V(4).Infof("Deleting %s from network %s/%s netns %q", pdesc, netConf.Plugins[0].Network.Type, netConf.Name, podNetnsPath) +- err = cniNet.DelNetworkList(netConf, rt) ++ err = cniNet.DelNetworkList(context.TODO(), netConf, rt) + // The pod may not get deleted successfully at the first time. + // Ignore "no such file or directory" error in case the network has already been deleted in previous attempts. + if err != nil && !strings.Contains(err.Error(), "no such file or directory") { +diff -up kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/cni_test.go.fix_for_cni kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/cni_test.go +--- kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/cni_test.go.fix_for_cni 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/cni_test.go 2019-05-21 15:00:58.992042116 +0200 +@@ -20,6 +20,7 @@ package cni + + import ( + "bytes" ++ "context" + "encoding/json" + "fmt" + "io/ioutil" +@@ -216,7 +217,7 @@ func TestCNIPlugin(t *testing.T) { + cniPlugin.execer = fexec + cniPlugin.loNetwork.CNIConfig = mockLoCNI + +- mockLoCNI.On("AddNetworkList", cniPlugin.loNetwork.NetworkConfig, mock.AnythingOfType("*libcni.RuntimeConf")).Return(&types020.Result{IP4: &types020.IPConfig{IP: net.IPNet{IP: []byte{127, 0, 0, 1}}}}, nil) ++ mockLoCNI.On("AddNetworkList", context.TODO(), cniPlugin.loNetwork.NetworkConfig, mock.AnythingOfType("*libcni.RuntimeConf")).Return(&types020.Result{IP4: &types020.IPConfig{IP: net.IPNet{IP: []byte{127, 0, 0, 1}}}}, nil) + + // Check that status returns an error + if err := cniPlugin.Status(); err == nil { +diff -up kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/testing/mock_cni.go.fix_for_cni kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/testing/mock_cni.go +--- kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/testing/mock_cni.go.fix_for_cni 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/cni/testing/mock_cni.go 2019-05-21 15:01:04.291034654 +0200 +@@ -19,6 +19,8 @@ limitations under the License. + package mock_cni + + import ( ++ "context" ++ + "github.com/containernetworking/cni/libcni" + "github.com/containernetworking/cni/pkg/types" + "github.com/stretchr/testify/mock" +@@ -28,22 +30,22 @@ type MockCNI struct { + mock.Mock + } + +-func (m *MockCNI) AddNetwork(net *libcni.NetworkConfig, rt *libcni.RuntimeConf) (types.Result, error) { +- args := m.Called(net, rt) ++func (m *MockCNI) AddNetwork(ctx context.Context, net *libcni.NetworkConfig, rt *libcni.RuntimeConf) (types.Result, error) { ++ args := m.Called(ctx, net, rt) + return args.Get(0).(types.Result), args.Error(1) + } + +-func (m *MockCNI) DelNetwork(net *libcni.NetworkConfig, rt *libcni.RuntimeConf) error { +- args := m.Called(net, rt) ++func (m *MockCNI) DelNetwork(ctx context.Context, net *libcni.NetworkConfig, rt *libcni.RuntimeConf) error { ++ args := m.Called(ctx, net, rt) + return args.Error(0) + } + +-func (m *MockCNI) DelNetworkList(net *libcni.NetworkConfigList, rt *libcni.RuntimeConf) error { +- args := m.Called(net, rt) ++func (m *MockCNI) DelNetworkList(ctx context.Context, net *libcni.NetworkConfigList, rt *libcni.RuntimeConf) error { ++ args := m.Called(ctx, net, rt) + return args.Error(0) + } + +-func (m *MockCNI) AddNetworkList(net *libcni.NetworkConfigList, rt *libcni.RuntimeConf) (types.Result, error) { +- args := m.Called(net, rt) ++func (m *MockCNI) AddNetworkList(ctx context.Context, net *libcni.NetworkConfigList, rt *libcni.RuntimeConf) (types.Result, error) { ++ args := m.Called(ctx, net, rt) + return args.Get(0).(types.Result), args.Error(1) + } +diff -up kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go.fix_for_cni kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go +--- kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go.fix_for_cni 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go 2019-05-21 01:01:19.992784742 +0200 +@@ -19,6 +19,7 @@ limitations under the License. + package kubenet + + import ( ++ "context" + "fmt" + "io/ioutil" + "net" +@@ -570,7 +571,7 @@ func (plugin *kubenetNetworkPlugin) addC + // The network plugin can take up to 3 seconds to execute, + // so yield the lock while it runs. + plugin.mu.Unlock() +- res, err := plugin.cniConfig.AddNetwork(config, rt) ++ res, err := plugin.cniConfig.AddNetwork(context.TODO(), config, rt) + plugin.mu.Lock() + if err != nil { + return nil, fmt.Errorf("Error adding container to network: %v", err) +@@ -585,7 +586,7 @@ func (plugin *kubenetNetworkPlugin) delC + } + + klog.V(3).Infof("Removing %s/%s from '%s' with CNI '%s' plugin and runtime: %+v", namespace, name, config.Network.Name, config.Network.Type, rt) +- err = plugin.cniConfig.DelNetwork(config, rt) ++ err = plugin.cniConfig.DelNetwork(context.TODO(), config, rt) + // The pod may not get deleted successfully at the first time. + // Ignore "no such file or directory" error in case the network has already been deleted in previous attempts. + if err != nil && !strings.Contains(err.Error(), "no such file or directory") { diff --git a/0001-Fix-for-using-with-newer-github.com-opencontainers-r.patch b/0001-Fix-for-using-with-newer-github.com-opencontainers-r.patch new file mode 100644 index 0000000..203459b --- /dev/null +++ b/0001-Fix-for-using-with-newer-github.com-opencontainers-r.patch @@ -0,0 +1,12 @@ +diff -up kubernetes-1.13.7-beta.0/pkg/kubelet/cm/util/cgroups_linux.go.fix_for_new_runc kubernetes-1.13.7-beta.0/pkg/kubelet/cm/util/cgroups_linux.go +--- kubernetes-1.13.7-beta.0/pkg/kubelet/cm/util/cgroups_linux.go.fix_for_new_runc 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/kubelet/cm/util/cgroups_linux.go 2019-05-21 00:17:26.709415566 +0200 +@@ -37,7 +37,7 @@ func GetPids(cgroupPath string) ([]int, + func getCgroupPath(cgroupPath string) (string, error) { + cgroupPath = libcontainerutils.CleanPath(cgroupPath) + +- mnt, root, err := libcontainercgroups.FindCgroupMountpointAndRoot("devices") ++ mnt, root, err := libcontainercgroups.FindCgroupMountpointAndRoot("", "devices") + // If we didn't mount the subsystem, there is no point we make the path. + if err != nil { + return "", err diff --git a/0001-Fix-for-using-with-newer-github.com-square-go-jose.patch b/0001-Fix-for-using-with-newer-github.com-square-go-jose.patch new file mode 100644 index 0000000..92680b1 --- /dev/null +++ b/0001-Fix-for-using-with-newer-github.com-square-go-jose.patch @@ -0,0 +1,55 @@ +diff -up kubernetes-1.13.7-beta.0/pkg/serviceaccount/claims_test.go.fix_for_jose kubernetes-1.13.7-beta.0/pkg/serviceaccount/claims_test.go +--- kubernetes-1.13.7-beta.0/pkg/serviceaccount/claims_test.go.fix_for_jose 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/serviceaccount/claims_test.go 2019-05-21 18:50:11.272979838 +0200 +@@ -80,9 +80,9 @@ func TestClaims(t *testing.T) { + + sc: &jwt.Claims{ + Subject: "system:serviceaccount:myns:mysvcacct", +- IssuedAt: jwt.NumericDate(1514764800), +- NotBefore: jwt.NumericDate(1514764800), +- Expiry: jwt.NumericDate(1514764800), ++ IssuedAt: jwt.NewNumericDate(time.Unix(1514764800, 0)), ++ NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)), ++ Expiry: jwt.NewNumericDate(time.Unix(1514764800, 0)), + }, + pc: &privateClaims{ + Kubernetes: kubernetes{ +@@ -102,9 +102,9 @@ func TestClaims(t *testing.T) { + + sc: &jwt.Claims{ + Subject: "system:serviceaccount:myns:mysvcacct", +- IssuedAt: jwt.NumericDate(1514764800), +- NotBefore: jwt.NumericDate(1514764800), +- Expiry: jwt.NumericDate(1514764800 + 100), ++ IssuedAt: jwt.NewNumericDate(time.Unix(1514764800, 0)), ++ NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)), ++ Expiry: jwt.NewNumericDate(time.Unix(1514764800 + 100, 0)), + }, + pc: &privateClaims{ + Kubernetes: kubernetes{ +@@ -125,9 +125,9 @@ func TestClaims(t *testing.T) { + sc: &jwt.Claims{ + Subject: "system:serviceaccount:myns:mysvcacct", + Audience: []string{"1"}, +- IssuedAt: jwt.NumericDate(1514764800), +- NotBefore: jwt.NumericDate(1514764800), +- Expiry: jwt.NumericDate(1514764800 + 100), ++ IssuedAt: jwt.NewNumericDate(time.Unix(1514764800, 0)), ++ NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)), ++ Expiry: jwt.NewNumericDate(time.Unix(1514764800 + 100, 0)), + }, + pc: &privateClaims{ + Kubernetes: kubernetes{ +@@ -147,9 +147,9 @@ func TestClaims(t *testing.T) { + sc: &jwt.Claims{ + Subject: "system:serviceaccount:myns:mysvcacct", + Audience: []string{"1", "2"}, +- IssuedAt: jwt.NumericDate(1514764800), +- NotBefore: jwt.NumericDate(1514764800), +- Expiry: jwt.NumericDate(1514764800 + 100), ++ IssuedAt: jwt.NewNumericDate(time.Unix(1514764800, 0)), ++ NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)), ++ Expiry: jwt.NewNumericDate(time.Unix(1514764800 + 100, 0)), + }, + pc: &privateClaims{ + Kubernetes: kubernetes{ diff --git a/0001-Fixup-gonum.org-v1-gonum-graph-API-calls.patch b/0001-Fixup-gonum.org-v1-gonum-graph-API-calls.patch new file mode 100644 index 0000000..ca56f58 --- /dev/null +++ b/0001-Fixup-gonum.org-v1-gonum-graph-API-calls.patch @@ -0,0 +1,49 @@ +From bba9f5e673a7886926086cac94af9e1e20972a72 Mon Sep 17 00:00:00 2001 +From: Jordan Liggitt +Date: Sat, 6 Apr 2019 11:04:42 -0400 +Subject: [PATCH] Fixup gonum.org/v1/gonum/graph API calls + +--- + pkg/controller/garbagecollector/dump.go | 2 +- + pkg/controller/garbagecollector/dump_test.go | 8 ++++---- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/pkg/controller/garbagecollector/dump.go b/pkg/controller/garbagecollector/dump.go +index a9ea97283fff0..456877f127121 100644 +--- a/pkg/controller/garbagecollector/dump.go ++++ b/pkg/controller/garbagecollector/dump.go +@@ -268,7 +268,7 @@ func (h *debugHTTPHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { + graph = h.controller.dependencyGraphBuilder.uidToNode.ToGonumGraph() + } + +- data, err := dot.Marshal(graph, "full", "", " ", false) ++ data, err := dot.Marshal(graph, "full", "", " ") + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return +diff --git a/pkg/controller/garbagecollector/dump_test.go b/pkg/controller/garbagecollector/dump_test.go +index fae9b533d2945..f3bd43f672d27 100644 +--- a/pkg/controller/garbagecollector/dump_test.go ++++ b/pkg/controller/garbagecollector/dump_test.go +@@ -439,8 +439,8 @@ func TestToGonumGraphObj(t *testing.T) { + func compareGraphs(expected, actual graph.Directed, t *testing.T) { + // sort the edges by from ID, then to ID + // (the slices we get back are from map iteration, where order is not guaranteed) +- expectedNodes := expected.Nodes() +- actualNodes := actual.Nodes() ++ expectedNodes := expected.Nodes().(graph.NodeSlicer).NodeSlice() ++ actualNodes := actual.Nodes().(graph.NodeSlicer).NodeSlice() + sort.Sort(gonumByUID(expectedNodes)) + sort.Sort(gonumByUID(actualNodes)) + +@@ -455,8 +455,8 @@ func compareGraphs(expected, actual graph.Directed, t *testing.T) { + t.Errorf("expected %v, got %v", spew.Sdump(currExpected), spew.Sdump(currActual)) + } + +- expectedFrom := append([]graph.Node{}, expected.From(expectedNodes[i].ID())...) +- actualFrom := append([]graph.Node{}, actual.From(actualNodes[i].ID())...) ++ expectedFrom := append([]graph.Node{}, expected.From(expectedNodes[i].ID()).(graph.NodeSlicer).NodeSlice()...) ++ actualFrom := append([]graph.Node{}, actual.From(actualNodes[i].ID()).(graph.NodeSlicer).NodeSlice()...) + sort.Sort(gonumByUID(expectedFrom)) + sort.Sort(gonumByUID(actualFrom)) + if len(expectedFrom) != len(actualFrom) { diff --git a/0001-Remove-deprecated-api.patch b/0001-Remove-deprecated-api.patch new file mode 100644 index 0000000..b9dbe67 --- /dev/null +++ b/0001-Remove-deprecated-api.patch @@ -0,0 +1,17 @@ +diff -up kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/photon/photon.go.remove_deprecated_api kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/photon/photon.go +--- kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/photon/photon.go.remove_deprecated_api 2019-05-08 15:45:41.000000000 +0200 ++++ kubernetes-1.13.7-beta.0/pkg/cloudprovider/providers/photon/photon.go 2019-05-20 20:38:29.796381001 +0200 +@@ -252,13 +252,6 @@ func getPhotonClient(pc *PCCloud) (*phot + pc.photonClient = photon.NewClient(pc.cfg.Global.CloudTarget, options, pc.logger) + } + +- status, err := pc.photonClient.Status.Get() +- if err != nil { +- klog.Errorf("Photon Cloud Provider: new client creation failed. Error[%v]", err) +- return nil, err +- } +- klog.V(2).Infof("Photon Cloud Provider: Status of the new photon controller client: %v", status) +- + return pc.photonClient, nil + } + diff --git a/0001-fix-go-vet-failures.patch b/0001-fix-go-vet-failures.patch new file mode 100644 index 0000000..30049fa --- /dev/null +++ b/0001-fix-go-vet-failures.patch @@ -0,0 +1,81 @@ +From e29c6e1b383f93a270d125f3226731c41da3dd96 Mon Sep 17 00:00:00 2001 +From: "Lubomir I. Ivanov" +Date: Fri, 1 Mar 2019 18:48:17 +0200 +Subject: [PATCH] go-1.12: fix 'go vet' failures + +--- + pkg/controller/testutil/test_utils.go | 2 +- + pkg/kubelet/container/sync_result_test.go | 6 +++--- + pkg/kubelet/kuberuntime/kuberuntime_manager_test.go | 2 +- + pkg/registry/core/service/allocator/utils_test.go | 2 +- + 4 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/pkg/controller/testutil/test_utils.go b/pkg/controller/testutil/test_utils.go +index be13e4637a996..dd8f11828908a 100644 +--- a/pkg/controller/testutil/test_utils.go ++++ b/pkg/controller/testutil/test_utils.go +@@ -374,7 +374,7 @@ func (f *FakeRecorder) PastEventf(obj runtime.Object, timestamp metav1.Time, eve + + // AnnotatedEventf emits a fake formatted event to the fake recorder + func (f *FakeRecorder) AnnotatedEventf(obj runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) { +- f.Eventf(obj, eventtype, reason, messageFmt, args) ++ f.Eventf(obj, eventtype, reason, messageFmt, args...) + } + + func (f *FakeRecorder) generateEvent(obj runtime.Object, timestamp metav1.Time, eventtype, reason, message string) { +diff --git a/pkg/kubelet/container/sync_result_test.go b/pkg/kubelet/container/sync_result_test.go +index 56f191d3d586b..d39283706e9ff 100644 +--- a/pkg/kubelet/container/sync_result_test.go ++++ b/pkg/kubelet/container/sync_result_test.go +@@ -45,7 +45,7 @@ func TestPodSyncResult(t *testing.T) { + result.AddSyncResult(okResults...) + result.AddSyncResult(errResults...) + if result.Error() == nil { +- t.Errorf("PodSyncResult should be error: %q", result) ++ t.Errorf("PodSyncResult should be error: %v", result) + } + + // If the PodSyncResult is failed, it should be error +@@ -53,7 +53,7 @@ func TestPodSyncResult(t *testing.T) { + result.AddSyncResult(okResults...) + result.Fail(errors.New("error")) + if result.Error() == nil { +- t.Errorf("PodSyncResult should be error: %q", result) ++ t.Errorf("PodSyncResult should be error: %v", result) + } + + // If the PodSyncResult is added an error PodSyncResult, it should be error +@@ -63,6 +63,6 @@ func TestPodSyncResult(t *testing.T) { + result.AddSyncResult(okResults...) + result.AddPodSyncResult(errResult) + if result.Error() == nil { +- t.Errorf("PodSyncResult should be error: %q", result) ++ t.Errorf("PodSyncResult should be error: %v", result) + } + } +diff --git a/pkg/kubelet/kuberuntime/kuberuntime_manager_test.go b/pkg/kubelet/kuberuntime/kuberuntime_manager_test.go +index 42f447765fcc3..4266eae13cca2 100644 +--- a/pkg/kubelet/kuberuntime/kuberuntime_manager_test.go ++++ b/pkg/kubelet/kuberuntime/kuberuntime_manager_test.go +@@ -384,7 +384,7 @@ func TestGetPods(t *testing.T) { + assert.NoError(t, err) + + if !verifyPods(expected, actual) { +- t.Errorf("expected %q, got %q", expected, actual) ++ t.Errorf("expected %#v, got %#v", expected, actual) + } + } + +diff --git a/pkg/registry/core/service/allocator/utils_test.go b/pkg/registry/core/service/allocator/utils_test.go +index 9ec711d83de54..5f87cb18317ef 100644 +--- a/pkg/registry/core/service/allocator/utils_test.go ++++ b/pkg/registry/core/service/allocator/utils_test.go +@@ -46,7 +46,7 @@ func TestCountBits(t *testing.T) { + for _, test := range tests { + actual := countBits(test.n) + if test.expected != actual { +- t.Errorf("%d should have %d bits but recorded as %d", test.n, test.expected, actual) ++ t.Errorf("%s should have %d bits but recorded as %d", test.n, test.expected, actual) + } + } + } diff --git a/golang-k8s-kubernetes.spec b/golang-k8s-kubernetes.spec new file mode 100644 index 0000000..71eaa07 --- /dev/null +++ b/golang-k8s-kubernetes.spec @@ -0,0 +1,1119 @@ +# Generated by go2rpm +%bcond_without check +%bcond_without bootstrap + +# https://github.com/kubernetes/kubernetes +%global goipath k8s.io/kubernetes +%global forgeurl https://github.com/kubernetes/kubernetes +Version: 1.13.7 +%global tag v1.13.7-beta.0 +%global distprefix %{nil} + +%gometa + +%global goipaths0 k8s.io/kubernetes +%global goipathsex0 k8s.io/kubernetes/pkg/volume/glusterfs k8s.io/kubernetes/pkg/volume/portworx k8s.io/kubernetes/pkg/controller/podautoscaler + +%if %{without bootstrap} +%global goipaths1 k8s.io/kubernetes/pkg/volume/glusterfs k8s.io/kubernetes/pkg/volume/portworx k8s.io/kubernetes/pkg/controller/podautoscaler +%endif + +%global common_description %{expand: +Kubernetes is an open source system for managing containerized applications +across multiple hosts; providing basic mechanisms for deployment, maintenance, +and scaling of applications. + +Kubernetes builds upon a decade and a half of experience at Google running +production workloads at scale using a system called Borg, combined with +best-of-breed ideas and practices from the community.} + +%global golicenses LICENSE +%global godocs docs CONTRIBUTING.md code-of-conduct.md\\\ + CHANGELOG-1.13.md CHANGELOG.md README.md SUPPORT.md + +Name: %{goname} +Release: 1.beta.0%{?dist} +Summary: Production-Grade Container Scheduling and Management + +# Upstream license specification: MIT and Apache-2.0 and BSD-3-Clause +License: MIT and ASL 2.0 and BSD +URL: %{gourl} +Source0: %{gosource} +# photon.Client.Status.Get() is deprecated +# https://github.com/vmware/photon-controller-go-sdk/commit/003b6751d69a33214b00bea4226dc98e9cb54826 +Patch0: 0001-Remove-deprecated-api.patch +# Newer azure-sdk-for-go has changed API for GetProperties +Patch1: 0001-Fix-for-newer-azure-sdk-for-go.patch +# Newer gophercloud has changed API for Delete +Patch2: 0001-Fix-for-newer-gophercloud.patch +# Fixup gonum.org/v1/gonum/graph API calls +Patch3: https://github.com/kubernetes/kubernetes/commit/bba9f5e673a7886926086cac94af9e1e20972a72.patch#/0001-Fixup-gonum.org-v1-gonum-graph-API-calls.patch +# Fix to use newer github.com/opencontainers/runc/libcontainer/cgroups +Patch4: 0001-Fix-for-using-with-newer-github.com-opencontainers-r.patch +# To use newer k8s.io/utils +Patch5: https://github.com/kubernetes/kubernetes/commit/0d4b5c98f81a3e04b18610f983eb1b68e5fa11bf.patch#/0001-Bump-k8s.io-utils-to-8e7ff06.patch +# To use newer github.com/containernetworking/cni +Patch6: 0001-Fix-for-using-with-newer-github.com-containernetworking-cni.patch +# To use with newer keyutil +Patch7: 0001-Extract-new-keyutil-package-from-client-go-util-cert.patch +# fix 'go vet' failures +Patch8: https://github.com/kubernetes/kubernetes/commit/e29c6e1b383f93a270d125f3226731c41da3dd96.patch#/0001-fix-go-vet-failures.patch +# Fix for newer github.com/prometheus/client_golang +Patch9: 0001-Fix-for-newer-client_golang.patch +# Fix for newer github.com/square/go-jose +Patch10: 0001-Fix-for-using-with-newer-github.com-square-go-jose.patch + + +BuildRequires: golang(bitbucket.org/bertimus9/systemstat) +BuildRequires: golang(bitbucket.org/ww/goautoneg) +BuildRequires: golang(cloud.google.com/go/compute/metadata) +BuildRequires: golang(github.com/armon/circbuf) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/awserr) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/stscreds) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/request) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/session) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/autoscaling) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/ec2) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/ecr) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/elb) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/elbv2) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/kms) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/sts) +BuildRequires: golang(github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-03-01/compute) +BuildRequires: golang(github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2017-10-01/containerregistry) +BuildRequires: golang(github.com/Azure/azure-sdk-for-go/services/network/mgmt/2017-09-01/network) +BuildRequires: golang(github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2018-07-01/storage) +BuildRequires: golang(github.com/Azure/azure-sdk-for-go/storage) +BuildRequires: golang(github.com/Azure/go-autorest/autorest) +BuildRequires: golang(github.com/Azure/go-autorest/autorest/adal) +BuildRequires: golang(github.com/Azure/go-autorest/autorest/azure) +BuildRequires: golang(github.com/Azure/go-autorest/autorest/to) +BuildRequires: golang(github.com/blang/semver) +BuildRequires: golang(github.com/chai2010/gettext-go/gettext) +BuildRequires: golang(github.com/cloudflare/cfssl/config) +BuildRequires: golang(github.com/cloudflare/cfssl/helpers) +BuildRequires: golang(github.com/cloudflare/cfssl/signer) +BuildRequires: golang(github.com/cloudflare/cfssl/signer/local) +BuildRequires: golang(github.com/clusterhq/flocker-go) +BuildRequires: golang(github.com/thecodeteam/goscaleio) +BuildRequires: golang(github.com/thecodeteam/goscaleio/types/v1) +BuildRequires: golang(github.com/container-storage-interface/spec/lib/go/csi) +BuildRequires: golang(github.com/containernetworking/cni/libcni) +BuildRequires: golang(github.com/containernetworking/cni/pkg/types) +BuildRequires: golang(github.com/containernetworking/cni/pkg/types/020) +BuildRequires: golang(github.com/coreos/go-oidc) +BuildRequires: golang(github.com/coreos/go-semver/semver) +BuildRequires: golang(github.com/coreos/go-systemd/daemon) +BuildRequires: golang(github.com/coreos/go-systemd/util) +BuildRequires: golang(github.com/coreos/pkg/capnslog) +BuildRequires: golang(github.com/cpuguy83/go-md2man/md2man) +BuildRequires: golang(github.com/d2g/dhcp4) +BuildRequires: golang(github.com/d2g/dhcp4client) +BuildRequires: golang(github.com/davecgh/go-spew/spew) +BuildRequires: golang(github.com/daviddengcn/go-colortext) +BuildRequires: golang(github.com/dgrijalva/jwt-go) +BuildRequires: golang(github.com/docker/distribution/reference) +BuildRequires: golang(github.com/docker/docker/api/types) +BuildRequires: golang(github.com/docker/docker/api/types/container) +BuildRequires: golang(github.com/docker/docker/api/types/filters) +BuildRequires: golang(github.com/docker/docker/api/types/image) +BuildRequires: golang(github.com/docker/docker/api/types/strslice) +BuildRequires: golang(github.com/docker/docker/client) +BuildRequires: golang(github.com/docker/docker/daemon/logger/jsonfilelog/jsonlog) +BuildRequires: golang(github.com/docker/docker/pkg/jsonmessage) +BuildRequires: golang(github.com/docker/docker/pkg/stdcopy) +BuildRequires: golang(github.com/docker/docker/pkg/term) +BuildRequires: golang(github.com/docker/go-connections/nat) +BuildRequires: golang(github.com/docker/go-units) +BuildRequires: golang(github.com/docker/libnetwork/ipvs) +BuildRequires: golang(github.com/docker/spdystream) +BuildRequires: golang(github.com/elazarl/go-bindata-assetfs) +BuildRequires: golang(github.com/elazarl/goproxy) +BuildRequires: golang(github.com/emicklei/go-restful) +BuildRequires: golang(github.com/emicklei/go-restful-swagger12) +BuildRequires: golang(github.com/evanphx/json-patch) +BuildRequires: golang(github.com/exponent-io/jsonpath) +BuildRequires: golang(github.com/fatih/camelcase) +BuildRequires: golang(github.com/fsnotify/fsnotify) +BuildRequires: golang(github.com/go-openapi/spec) +BuildRequires: golang(github.com/go-openapi/strfmt) +BuildRequires: golang(github.com/go-openapi/validate) +BuildRequires: golang(github.com/godbus/dbus) +BuildRequires: golang(github.com/gogo/protobuf/gogoproto) +BuildRequires: golang(github.com/gogo/protobuf/proto) +BuildRequires: golang(github.com/gogo/protobuf/sortkeys) +BuildRequires: golang(github.com/gogo/protobuf/vanity/command) +BuildRequires: golang(github.com/golang/groupcache/lru) +BuildRequires: golang(github.com/golang/mock/gomock) +BuildRequires: golang(github.com/golang/protobuf/proto) +BuildRequires: golang(github.com/golang/protobuf/ptypes/wrappers) +BuildRequires: golang(github.com/google/cadvisor/cache/memory) +BuildRequires: golang(github.com/google/cadvisor/client/v2) +BuildRequires: golang(github.com/google/cadvisor/container) +BuildRequires: golang(github.com/google/cadvisor/container/common) +BuildRequires: golang(github.com/google/cadvisor/container/containerd) +BuildRequires: golang(github.com/google/cadvisor/container/docker) +BuildRequires: golang(github.com/google/cadvisor/container/raw) +BuildRequires: golang(github.com/google/cadvisor/events) +BuildRequires: golang(github.com/google/cadvisor/fs) +BuildRequires: golang(github.com/google/cadvisor/info/v1) +BuildRequires: golang(github.com/google/cadvisor/info/v2) +BuildRequires: golang(github.com/google/cadvisor/machine) +BuildRequires: golang(github.com/google/cadvisor/manager) +BuildRequires: golang(github.com/google/cadvisor/metrics) +BuildRequires: golang(github.com/google/cadvisor/storage) +BuildRequires: golang(github.com/google/cadvisor/utils/sysfs) +BuildRequires: golang(github.com/google/gofuzz) +BuildRequires: golang(github.com/googleapis/gnostic/compiler) +BuildRequires: golang(github.com/googleapis/gnostic/OpenAPIv2) +BuildRequires: golang(github.com/gophercloud/gophercloud) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/compute/v2/servers) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/identity/v3/tokens) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/extensions) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/external) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/networks) +BuildRequires: golang(github.com/gophercloud/gophercloud/openstack/networking/v2/ports) +BuildRequires: golang(github.com/gophercloud/gophercloud/pagination) +BuildRequires: golang(github.com/gregjones/httpcache) +BuildRequires: golang(github.com/gregjones/httpcache/diskcache) +BuildRequires: golang(github.com/grpc-ecosystem/go-grpc-prometheus) +BuildRequires: golang(github.com/hashicorp/golang-lru) +# pkg/volume/glusterfs +%if %{without bootstrap} +BuildRequires: golang(github.com/heketi/heketi/client/api/go-client) +BuildRequires: golang(github.com/heketi/heketi/pkg/glusterfs/api) +%endif +BuildRequires: golang(github.com/imdario/mergo) +BuildRequires: golang(github.com/jonboulle/clockwork) +BuildRequires: golang(github.com/json-iterator/go) +BuildRequires: golang(github.com/kardianos/osext) +BuildRequires: golang(github.com/kr/fs) +BuildRequires: golang(github.com/kr/pretty) +# pkg/volume/portworx +%if %{without bootstrap} +BuildRequires: golang(github.com/libopenstorage/openstorage/api) +BuildRequires: golang(github.com/libopenstorage/openstorage/api/client) +BuildRequires: golang(github.com/libopenstorage/openstorage/api/client/volume) +BuildRequires: golang(github.com/libopenstorage/openstorage/api/spec) +BuildRequires: golang(github.com/libopenstorage/openstorage/volume) +%endif +BuildRequires: golang(github.com/MakeNowJust/heredoc) +BuildRequires: golang(github.com/mholt/caddy/caddyfile) +BuildRequires: golang(github.com/miekg/dns) +BuildRequires: golang(github.com/mitchellh/go-wordwrap) +BuildRequires: golang(github.com/mitchellh/mapstructure) +BuildRequires: golang(github.com/modern-go/reflect2) +BuildRequires: golang(github.com/mvdan/xurls) +BuildRequires: golang(github.com/mxk/go-flowrate/flowrate) +BuildRequires: golang(github.com/onsi/ginkgo) +BuildRequires: golang(github.com/onsi/ginkgo/config) +BuildRequires: golang(github.com/onsi/ginkgo/reporters) +BuildRequires: golang(github.com/onsi/gomega) +BuildRequires: golang(github.com/onsi/gomega/gstruct) +BuildRequires: golang(github.com/onsi/gomega/types) +BuildRequires: golang(github.com/opencontainers/go-digest) +BuildRequires: golang(github.com/opencontainers/runc/libcontainer/cgroups) +BuildRequires: golang(github.com/opencontainers/runc/libcontainer/cgroups/fs) +BuildRequires: golang(github.com/opencontainers/runc/libcontainer/cgroups/systemd) +BuildRequires: golang(github.com/opencontainers/runc/libcontainer/configs) +BuildRequires: golang(github.com/opencontainers/runc/libcontainer/utils) +BuildRequires: golang(github.com/opencontainers/selinux/go-selinux) +BuildRequires: golang(github.com/pborman/uuid) +BuildRequires: golang(github.com/peterbourgon/diskv) +BuildRequires: golang(github.com/pkg/errors) +BuildRequires: golang(github.com/pmezard/go-difflib/difflib) +BuildRequires: golang(github.com/prometheus/client_golang/prometheus) +BuildRequires: golang(github.com/prometheus/client_golang/prometheus/promhttp) +BuildRequires: golang(github.com/prometheus/client_model/go) +BuildRequires: golang(github.com/prometheus/common/expfmt) +BuildRequires: golang(github.com/prometheus/common/model) +BuildRequires: golang(github.com/PuerkitoBio/purell) +BuildRequires: golang(github.com/quobyte/api) +BuildRequires: golang(github.com/rancher/go-rancher/client) +BuildRequires: golang(github.com/renstrom/dedent) +BuildRequires: golang(github.com/robfig/cron) +BuildRequires: golang(github.com/rubiojr/go-vhd/vhd) +BuildRequires: golang(gopkg.in/russross/blackfriday.v1) +BuildRequires: golang(github.com/sigma/go-inotify) +BuildRequires: golang(github.com/spf13/afero) +BuildRequires: golang(github.com/spf13/cobra) +BuildRequires: golang(github.com/spf13/cobra/doc) +BuildRequires: golang(github.com/spf13/pflag) +BuildRequires: golang(github.com/spf13/viper) +BuildRequires: golang(github.com/storageos/go-api) +BuildRequires: golang(github.com/storageos/go-api/types) +BuildRequires: golang(github.com/stretchr/testify/assert) +BuildRequires: golang(github.com/stretchr/testify/mock) +BuildRequires: golang(github.com/stretchr/testify/require) +BuildRequires: golang(github.com/thecodeteam/goscaleio) +BuildRequires: golang(github.com/thecodeteam/goscaleio/types/v1) +BuildRequires: golang(github.com/vishvananda/netlink) +BuildRequires: golang(github.com/vmware/govmomi) +BuildRequires: golang(github.com/vmware/govmomi/find) +BuildRequires: golang(github.com/vmware/govmomi/object) +BuildRequires: golang(github.com/vmware/govmomi/pbm) +BuildRequires: golang(github.com/vmware/govmomi/pbm/types) +BuildRequires: golang(github.com/vmware/govmomi/property) +BuildRequires: golang(github.com/vmware/govmomi/session) +BuildRequires: golang(github.com/vmware/govmomi/sts) +BuildRequires: golang(github.com/vmware/govmomi/vapi/rest) +BuildRequires: golang(github.com/vmware/govmomi/vapi/tags) +BuildRequires: golang(github.com/vmware/govmomi/vim25) +BuildRequires: golang(github.com/vmware/govmomi/vim25/mo) +BuildRequires: golang(github.com/vmware/govmomi/vim25/soap) +BuildRequires: golang(github.com/vmware/govmomi/vim25/types) +BuildRequires: golang(github.com/vmware/photon-controller-go-sdk/photon) +BuildRequires: golang(github.com/xanzy/go-cloudstack/cloudstack) +BuildRequires: golang(golang.org/x/crypto/cryptobyte) +BuildRequires: golang(golang.org/x/crypto/nacl/secretbox) +BuildRequires: golang(golang.org/x/crypto/pkcs12) +BuildRequires: golang(golang.org/x/crypto/ssh) +BuildRequires: golang(golang.org/x/crypto/ssh/terminal) +BuildRequires: golang(golang.org/x/net/context) +BuildRequires: golang(golang.org/x/net/html) +BuildRequires: golang(golang.org/x/net/html/atom) +BuildRequires: golang(golang.org/x/net/http2) +BuildRequires: golang(golang.org/x/net/websocket) +BuildRequires: golang(golang.org/x/oauth2) +BuildRequires: golang(golang.org/x/oauth2/google) +BuildRequires: golang(golang.org/x/sys/unix) +BuildRequires: golang(golang.org/x/text/encoding/unicode) +BuildRequires: golang(golang.org/x/text/transform) +BuildRequires: golang(golang.org/x/time/rate) +BuildRequires: golang(golang.org/x/tools/benchmark/parse) +BuildRequires: golang(golang.org/x/tools/container/intsets) +BuildRequires: golang(golang.org/x/tools/go/vcs) +BuildRequires: golang(gonum.org/v1/gonum/graph) +BuildRequires: golang(gonum.org/v1/gonum/graph/encoding) +BuildRequires: golang(gonum.org/v1/gonum/graph/encoding/dot) +BuildRequires: golang(gonum.org/v1/gonum/graph/simple) +BuildRequires: golang(google.golang.org/api/compute/v0.alpha) +BuildRequires: golang(google.golang.org/api/compute/v0.beta) +BuildRequires: golang(google.golang.org/api/compute/v1) +BuildRequires: golang(google.golang.org/api/container/v1) +BuildRequires: golang(google.golang.org/api/googleapi) +BuildRequires: golang(google.golang.org/api/logging/v2beta1) +BuildRequires: golang(google.golang.org/api/monitoring/v3) +BuildRequires: golang(google.golang.org/api/pubsub/v1) +BuildRequires: golang(google.golang.org/api/tpu/v1) +BuildRequires: golang(google.golang.org/grpc) +BuildRequires: golang(google.golang.org/grpc/codes) +BuildRequires: golang(google.golang.org/grpc/status) +BuildRequires: golang(gopkg.in/gcfg.v1) +BuildRequires: golang(gopkg.in/inf.v0) +BuildRequires: golang(gopkg.in/natefinch/lumberjack.v2) +BuildRequires: golang(gopkg.in/square/go-jose.v2) +BuildRequires: golang(gopkg.in/square/go-jose.v2/jwt) +BuildRequires: golang(gopkg.in/yaml.v2) +BuildRequires: golang(go.etcd.io/etcd/client) +BuildRequires: golang(go.etcd.io/etcd/clientv3) +BuildRequires: golang(go.etcd.io/etcd/clientv3/concurrency) +BuildRequires: golang(go.etcd.io/etcd/etcdserver) +BuildRequires: golang(go.etcd.io/etcd/etcdserver/api/etcdhttp) +BuildRequires: golang(go.etcd.io/etcd/etcdserver/api/v2http) +BuildRequires: golang(go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes) +BuildRequires: golang(go.etcd.io/etcd/etcdserver/etcdserverpb) +BuildRequires: golang(go.etcd.io/etcd/etcdserver/membership) +BuildRequires: golang(go.etcd.io/etcd/integration) +BuildRequires: golang(go.etcd.io/etcd/mvcc/backend) +BuildRequires: golang(go.etcd.io/etcd/mvcc/mvccpb) +BuildRequires: golang(go.etcd.io/etcd/pkg/crc) +BuildRequires: golang(go.etcd.io/etcd/pkg/pbutil) +BuildRequires: golang(go.etcd.io/etcd/pkg/testutil) +BuildRequires: golang(go.etcd.io/etcd/pkg/transport) +BuildRequires: golang(go.etcd.io/etcd/pkg/types) +BuildRequires: golang(go.etcd.io/etcd/raft) +BuildRequires: golang(go.etcd.io/etcd/raft/raftpb) +BuildRequires: golang(go.etcd.io/etcd/snap) +BuildRequires: golang(go.etcd.io/etcd/store) +BuildRequires: golang(go.etcd.io/etcd/wal) +BuildRequires: golang(go.etcd.io/etcd/wal/walpb) +BuildRequires: golang(k8s.io/api/admission/v1beta1) +BuildRequires: golang(k8s.io/api/admissionregistration/v1alpha1) +BuildRequires: golang(k8s.io/api/admissionregistration/v1beta1) +BuildRequires: golang(k8s.io/api/apps/v1) +BuildRequires: golang(k8s.io/api/apps/v1beta1) +BuildRequires: golang(k8s.io/api/apps/v1beta2) +BuildRequires: golang(k8s.io/api/auditregistration/v1alpha1) +BuildRequires: golang(k8s.io/api/authentication/v1) +BuildRequires: golang(k8s.io/api/authentication/v1beta1) +BuildRequires: golang(k8s.io/api/authorization/v1) +BuildRequires: golang(k8s.io/api/authorization/v1beta1) +BuildRequires: golang(k8s.io/api/autoscaling/v1) +BuildRequires: golang(k8s.io/api/autoscaling/v2beta1) +BuildRequires: golang(k8s.io/api/autoscaling/v2beta2) +BuildRequires: golang(k8s.io/api/batch/v1) +BuildRequires: golang(k8s.io/api/batch/v1beta1) +BuildRequires: golang(k8s.io/api/batch/v2alpha1) +BuildRequires: golang(k8s.io/api/certificates/v1beta1) +BuildRequires: golang(k8s.io/api/coordination/v1beta1) +BuildRequires: golang(k8s.io/api/core/v1) +BuildRequires: golang(k8s.io/api/events/v1beta1) +BuildRequires: golang(k8s.io/api/extensions/v1beta1) +BuildRequires: golang(k8s.io/api/imagepolicy/v1alpha1) +BuildRequires: golang(k8s.io/api/networking/v1) +BuildRequires: golang(k8s.io/api/policy/v1beta1) +BuildRequires: golang(k8s.io/api/rbac/v1) +BuildRequires: golang(k8s.io/api/rbac/v1alpha1) +BuildRequires: golang(k8s.io/api/rbac/v1beta1) +BuildRequires: golang(k8s.io/api/scheduling/v1alpha1) +BuildRequires: golang(k8s.io/api/scheduling/v1beta1) +BuildRequires: golang(k8s.io/api/settings/v1alpha1) +BuildRequires: golang(k8s.io/api/storage/v1) +BuildRequires: golang(k8s.io/api/storage/v1alpha1) +BuildRequires: golang(k8s.io/api/storage/v1beta1) +# BuildRequires: golang(k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr) +# BuildRequires: golang(k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1) +# BuildRequires: golang(k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned) +# BuildRequires: golang(k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme) +# BuildRequires: golang(k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1) +# BuildRequires: golang(k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake) +# BuildRequires: golang(k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr) +# BuildRequires: golang(k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1) +# BuildRequires: golang(k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces) +# BuildRequires: golang(k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/apis/apiextensions) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/apiserver) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/apiserver/conversion) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/apiserver/validation) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/scheme) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/cmd/server) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/cmd/server/options) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/cmd/server/testing) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/controller/establish) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/controller/finalizer) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/controller/status) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/crdserverscheme) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/features) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/registry/customresource) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition) +BuildRequires: golang(k8s.io/apiextensions-apiserver/test/integration) +BuildRequires: golang(k8s.io/apiextensions-apiserver/test/integration/fixtures) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/apitesting) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/apitesting/fuzzer) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/equality) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/errors) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/meta) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/meta/table) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/meta/testrestmapper) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/resource) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/validation) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/validation/path) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/config) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/config/v1alpha1) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/config/validation) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/meta/fuzzer) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/meta/internalversion) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/meta/v1) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/meta/v1/unstructured) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructuredscheme) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/meta/v1/validation) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/meta/v1beta1) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/testapigroup) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/testapigroup/v1) +BuildRequires: golang(k8s.io/apimachinery/pkg/conversion) +BuildRequires: golang(k8s.io/apimachinery/pkg/conversion/queryparams) +BuildRequires: golang(k8s.io/apimachinery/pkg/fields) +BuildRequires: golang(k8s.io/apimachinery/pkg/labels) +BuildRequires: golang(k8s.io/apimachinery/pkg/runtime) +BuildRequires: golang(k8s.io/apimachinery/pkg/runtime/schema) +BuildRequires: golang(k8s.io/apimachinery/pkg/runtime/serializer) +BuildRequires: golang(k8s.io/apimachinery/pkg/runtime/serializer/json) +BuildRequires: golang(k8s.io/apimachinery/pkg/runtime/serializer/protobuf) +BuildRequires: golang(k8s.io/apimachinery/pkg/runtime/serializer/recognizer) +BuildRequires: golang(k8s.io/apimachinery/pkg/runtime/serializer/streaming) +BuildRequires: golang(k8s.io/apimachinery/pkg/runtime/serializer/versioning) +BuildRequires: golang(k8s.io/apimachinery/pkg/selection) +BuildRequires: golang(k8s.io/apimachinery/pkg/types) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/cache) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/clock) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/diff) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/duration) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/errors) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/framer) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/httpstream) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/httpstream/spdy) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/initialization) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/intstr) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/json) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/jsonmergepatch) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/mergepatch) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/naming) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/net) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/proxy) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/rand) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/remotecommand) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/runtime) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/sets) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/strategicpatch) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/uuid) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/validation) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/validation/field) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/version) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/wait) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/waitgroup) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/yaml) +BuildRequires: golang(k8s.io/apimachinery/pkg/version) +BuildRequires: golang(k8s.io/apimachinery/pkg/watch) +BuildRequires: golang(k8s.io/apimachinery/third_party/forked/golang/json) +BuildRequires: golang(k8s.io/apimachinery/third_party/forked/golang/netutil) +BuildRequires: golang(k8s.io/apimachinery/third_party/forked/golang/reflect) +BuildRequires: golang(k8s.io/apiserver/pkg/admission) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/configuration) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/initializer) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/metrics) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/initialization) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/config) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/errors) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/generic) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/initializer) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/mutating) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/namespace) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/request) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/rules) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/testcerts) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/util) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/validating) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/apiserver) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/apiserver/install) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/apiserver/v1alpha1) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/audit) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/audit/install) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/audit/v1) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/audit/v1alpha1) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/audit/v1beta1) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/audit/validation) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/config) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/config/v1) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/config/v1alpha1) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/config/validation) +# BuildRequires: golang(k8s.io/apiserver/pkg/apis/example) +# BuildRequires: golang(k8s.io/apiserver/pkg/apis/example/v1) +# BuildRequires: golang(k8s.io/apiserver/pkg/apis/example2/v1) +BuildRequires: golang(k8s.io/apiserver/pkg/audit) +BuildRequires: golang(k8s.io/apiserver/pkg/audit/event) +BuildRequires: golang(k8s.io/apiserver/pkg/audit/policy) +BuildRequires: golang(k8s.io/apiserver/pkg/audit/util) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/authenticator) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/authenticatorfactory) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/group) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/request/anonymous) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/request/bearertoken) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/request/headerrequest) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/request/union) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/request/websocket) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/request/x509) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/serviceaccount) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/token/cache) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/token/tokenfile) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/token/union) +BuildRequires: golang(k8s.io/apiserver/pkg/authentication/user) +BuildRequires: golang(k8s.io/apiserver/pkg/authorization/authorizer) +BuildRequires: golang(k8s.io/apiserver/pkg/authorization/authorizerfactory) +BuildRequires: golang(k8s.io/apiserver/pkg/authorization/path) +BuildRequires: golang(k8s.io/apiserver/pkg/authorization/union) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints/discovery) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints/filters) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints/handlers) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints/handlers/negotiation) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints/handlers/responsewriters) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints/metrics) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints/openapi) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints/request) +BuildRequires: golang(k8s.io/apiserver/pkg/features) +BuildRequires: golang(k8s.io/apiserver/pkg/registry/generic) +BuildRequires: golang(k8s.io/apiserver/pkg/registry/generic/registry) +BuildRequires: golang(k8s.io/apiserver/pkg/registry/generic/rest) +BuildRequires: golang(k8s.io/apiserver/pkg/registry/rest) +BuildRequires: golang(k8s.io/apiserver/pkg/registry/rest/resttest) +BuildRequires: golang(k8s.io/apiserver/pkg/server) +BuildRequires: golang(k8s.io/apiserver/pkg/server/filters) +BuildRequires: golang(k8s.io/apiserver/pkg/server/healthz) +BuildRequires: golang(k8s.io/apiserver/pkg/server/httplog) +BuildRequires: golang(k8s.io/apiserver/pkg/server/mux) +BuildRequires: golang(k8s.io/apiserver/pkg/server/options) +BuildRequires: golang(k8s.io/apiserver/pkg/server/options/encryptionconfig) +BuildRequires: golang(k8s.io/apiserver/pkg/server/resourceconfig) +BuildRequires: golang(k8s.io/apiserver/pkg/server/routes) +BuildRequires: golang(k8s.io/apiserver/pkg/server/routes/data/swagger) +BuildRequires: golang(k8s.io/apiserver/pkg/server/storage) +BuildRequires: golang(k8s.io/apiserver/pkg/storage) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/cacher) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/errors) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/etcd) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/etcd/etcdtest) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/etcd/metrics) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/etcd/testing) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/etcd/testing/testingcert) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/etcd/util) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/etcd3) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/etcd3/preflight) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/names) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/storagebackend) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/storagebackend/factory) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/testing) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/value) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/value/encrypt/aes) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/value/encrypt/envelope) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/value/encrypt/envelope/v1beta1) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/value/encrypt/identity) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/value/encrypt/secretbox) +BuildRequires: golang(k8s.io/apiserver/pkg/util/dryrun) +BuildRequires: golang(k8s.io/apiserver/pkg/util/feature) +BuildRequires: golang(k8s.io/apiserver/pkg/util/feature/testing) +BuildRequires: golang(k8s.io/apiserver/pkg/util/flag) +BuildRequires: golang(k8s.io/apiserver/pkg/util/flushwriter) +BuildRequires: golang(k8s.io/apiserver/pkg/util/globalflag) +BuildRequires: golang(k8s.io/apiserver/pkg/util/logs) +BuildRequires: golang(k8s.io/apiserver/pkg/util/openapi) +BuildRequires: golang(k8s.io/apiserver/pkg/util/proxy) +BuildRequires: golang(k8s.io/apiserver/pkg/util/trace) +BuildRequires: golang(k8s.io/apiserver/pkg/util/webhook) +BuildRequires: golang(k8s.io/apiserver/pkg/util/wsstream) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/audit/buffered) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/audit/dynamic) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/audit/dynamic/enforced) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/audit/log) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/audit/truncate) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/audit/webhook) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/authenticator/token/oidc) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/authenticator/token/webhook) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/authorizer/webhook) +BuildRequires: golang(k8s.io/cli-runtime/pkg/genericclioptions) +BuildRequires: golang(k8s.io/cli-runtime/pkg/genericclioptions/printers) +BuildRequires: golang(k8s.io/cli-runtime/pkg/genericclioptions/resource) +BuildRequires: golang(k8s.io/client-go/discovery) +BuildRequires: golang(k8s.io/client-go/discovery/cached) +BuildRequires: golang(k8s.io/client-go/discovery/fake) +BuildRequires: golang(k8s.io/client-go/dynamic) +BuildRequires: golang(k8s.io/client-go/dynamic/dynamiclister) +BuildRequires: golang(k8s.io/client-go/dynamic/fake) +BuildRequires: golang(k8s.io/client-go/informers) +BuildRequires: golang(k8s.io/client-go/informers/admissionregistration) +BuildRequires: golang(k8s.io/client-go/informers/admissionregistration/v1alpha1) +BuildRequires: golang(k8s.io/client-go/informers/admissionregistration/v1beta1) +BuildRequires: golang(k8s.io/client-go/informers/apps) +BuildRequires: golang(k8s.io/client-go/informers/apps/v1) +BuildRequires: golang(k8s.io/client-go/informers/apps/v1beta1) +BuildRequires: golang(k8s.io/client-go/informers/apps/v1beta2) +BuildRequires: golang(k8s.io/client-go/informers/auditregistration) +BuildRequires: golang(k8s.io/client-go/informers/auditregistration/v1alpha1) +BuildRequires: golang(k8s.io/client-go/informers/autoscaling) +BuildRequires: golang(k8s.io/client-go/informers/autoscaling/v1) +BuildRequires: golang(k8s.io/client-go/informers/autoscaling/v2beta1) +BuildRequires: golang(k8s.io/client-go/informers/autoscaling/v2beta2) +BuildRequires: golang(k8s.io/client-go/informers/batch) +BuildRequires: golang(k8s.io/client-go/informers/batch/v1) +BuildRequires: golang(k8s.io/client-go/informers/batch/v1beta1) +BuildRequires: golang(k8s.io/client-go/informers/batch/v2alpha1) +BuildRequires: golang(k8s.io/client-go/informers/certificates) +BuildRequires: golang(k8s.io/client-go/informers/certificates/v1beta1) +BuildRequires: golang(k8s.io/client-go/informers/coordination) +BuildRequires: golang(k8s.io/client-go/informers/coordination/v1beta1) +BuildRequires: golang(k8s.io/client-go/informers/core) +BuildRequires: golang(k8s.io/client-go/informers/core/v1) +BuildRequires: golang(k8s.io/client-go/informers/events) +BuildRequires: golang(k8s.io/client-go/informers/events/v1beta1) +BuildRequires: golang(k8s.io/client-go/informers/extensions) +BuildRequires: golang(k8s.io/client-go/informers/extensions/v1beta1) +BuildRequires: golang(k8s.io/client-go/informers/internalinterfaces) +BuildRequires: golang(k8s.io/client-go/informers/networking) +BuildRequires: golang(k8s.io/client-go/informers/networking/v1) +BuildRequires: golang(k8s.io/client-go/informers/policy) +BuildRequires: golang(k8s.io/client-go/informers/policy/v1beta1) +BuildRequires: golang(k8s.io/client-go/informers/rbac) +BuildRequires: golang(k8s.io/client-go/informers/rbac/v1) +BuildRequires: golang(k8s.io/client-go/informers/rbac/v1alpha1) +BuildRequires: golang(k8s.io/client-go/informers/rbac/v1beta1) +BuildRequires: golang(k8s.io/client-go/informers/scheduling) +BuildRequires: golang(k8s.io/client-go/informers/scheduling/v1alpha1) +BuildRequires: golang(k8s.io/client-go/informers/scheduling/v1beta1) +BuildRequires: golang(k8s.io/client-go/informers/settings) +BuildRequires: golang(k8s.io/client-go/informers/settings/v1alpha1) +BuildRequires: golang(k8s.io/client-go/informers/storage) +BuildRequires: golang(k8s.io/client-go/informers/storage/v1) +BuildRequires: golang(k8s.io/client-go/informers/storage/v1alpha1) +BuildRequires: golang(k8s.io/client-go/informers/storage/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes) +BuildRequires: golang(k8s.io/client-go/kubernetes/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/scheme) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/apps/v1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/apps/v1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/apps/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/apps/v1beta2) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/authentication/v1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/authentication/v1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/authentication/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/authorization/v1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/authorization/v1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/authorization/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/autoscaling/v1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/batch/v1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/batch/v1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/batch/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/batch/v2alpha1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/certificates/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/coordination/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/core/v1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/core/v1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/events/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/events/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/extensions/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/networking/v1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/networking/v1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/policy/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/rbac/v1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/rbac/v1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/rbac/v1alpha1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/rbac/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/scheduling/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/settings/v1alpha1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/storage/v1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/storage/v1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/storage/v1alpha1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/storage/v1beta1) +BuildRequires: golang(k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake) +BuildRequires: golang(k8s.io/client-go/listers/admissionregistration/v1alpha1) +BuildRequires: golang(k8s.io/client-go/listers/admissionregistration/v1beta1) +BuildRequires: golang(k8s.io/client-go/listers/apps/v1) +BuildRequires: golang(k8s.io/client-go/listers/apps/v1beta1) +BuildRequires: golang(k8s.io/client-go/listers/apps/v1beta2) +BuildRequires: golang(k8s.io/client-go/listers/auditregistration/v1alpha1) +BuildRequires: golang(k8s.io/client-go/listers/autoscaling/v1) +BuildRequires: golang(k8s.io/client-go/listers/autoscaling/v2beta1) +BuildRequires: golang(k8s.io/client-go/listers/autoscaling/v2beta2) +BuildRequires: golang(k8s.io/client-go/listers/batch/v1) +BuildRequires: golang(k8s.io/client-go/listers/batch/v1beta1) +BuildRequires: golang(k8s.io/client-go/listers/batch/v2alpha1) +BuildRequires: golang(k8s.io/client-go/listers/certificates/v1beta1) +BuildRequires: golang(k8s.io/client-go/listers/coordination/v1beta1) +BuildRequires: golang(k8s.io/client-go/listers/core/v1) +BuildRequires: golang(k8s.io/client-go/listers/events/v1beta1) +BuildRequires: golang(k8s.io/client-go/listers/extensions/v1beta1) +BuildRequires: golang(k8s.io/client-go/listers/networking/v1) +BuildRequires: golang(k8s.io/client-go/listers/policy/v1beta1) +BuildRequires: golang(k8s.io/client-go/listers/rbac/v1) +BuildRequires: golang(k8s.io/client-go/listers/rbac/v1alpha1) +BuildRequires: golang(k8s.io/client-go/listers/rbac/v1beta1) +BuildRequires: golang(k8s.io/client-go/listers/scheduling/v1alpha1) +BuildRequires: golang(k8s.io/client-go/listers/scheduling/v1beta1) +BuildRequires: golang(k8s.io/client-go/listers/settings/v1alpha1) +BuildRequires: golang(k8s.io/client-go/listers/storage/v1) +BuildRequires: golang(k8s.io/client-go/listers/storage/v1alpha1) +BuildRequires: golang(k8s.io/client-go/listers/storage/v1beta1) +BuildRequires: golang(k8s.io/client-go/pkg/apis/clientauthentication) +BuildRequires: golang(k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1) +BuildRequires: golang(k8s.io/client-go/pkg/apis/clientauthentication/v1beta1) +BuildRequires: golang(k8s.io/client-go/pkg/version) +BuildRequires: golang(k8s.io/client-go/plugin/pkg/client/auth) +BuildRequires: golang(k8s.io/client-go/plugin/pkg/client/auth/azure) +BuildRequires: golang(k8s.io/client-go/plugin/pkg/client/auth/exec) +BuildRequires: golang(k8s.io/client-go/plugin/pkg/client/auth/gcp) +BuildRequires: golang(k8s.io/client-go/plugin/pkg/client/auth/oidc) +BuildRequires: golang(k8s.io/client-go/plugin/pkg/client/auth/openstack) +BuildRequires: golang(k8s.io/client-go/rest) +BuildRequires: golang(k8s.io/client-go/rest/fake) +BuildRequires: golang(k8s.io/client-go/rest/watch) +BuildRequires: golang(k8s.io/client-go/restmapper) +BuildRequires: golang(k8s.io/client-go/scale) +BuildRequires: golang(k8s.io/client-go/scale/scheme) +BuildRequires: golang(k8s.io/client-go/scale/scheme/appsint) +BuildRequires: golang(k8s.io/client-go/scale/scheme/appsv1beta1) +BuildRequires: golang(k8s.io/client-go/scale/scheme/appsv1beta2) +BuildRequires: golang(k8s.io/client-go/scale/scheme/autoscalingv1) +BuildRequires: golang(k8s.io/client-go/scale/scheme/extensionsint) +BuildRequires: golang(k8s.io/client-go/scale/scheme/extensionsv1beta1) +BuildRequires: golang(k8s.io/client-go/testing) +BuildRequires: golang(k8s.io/client-go/third_party/forked/golang/template) +BuildRequires: golang(k8s.io/client-go/tools/auth) +BuildRequires: golang(k8s.io/client-go/tools/cache) +BuildRequires: golang(k8s.io/client-go/tools/clientcmd) +BuildRequires: golang(k8s.io/client-go/tools/clientcmd/api) +BuildRequires: golang(k8s.io/client-go/tools/clientcmd/api/latest) +BuildRequires: golang(k8s.io/client-go/tools/clientcmd/api/v1) +BuildRequires: golang(k8s.io/client-go/tools/leaderelection) +BuildRequires: golang(k8s.io/client-go/tools/leaderelection/resourcelock) +BuildRequires: golang(k8s.io/client-go/tools/metrics) +BuildRequires: golang(k8s.io/client-go/tools/pager) +BuildRequires: golang(k8s.io/client-go/tools/portforward) +BuildRequires: golang(k8s.io/client-go/tools/record) +BuildRequires: golang(k8s.io/client-go/tools/reference) +BuildRequires: golang(k8s.io/client-go/tools/remotecommand) +BuildRequires: golang(k8s.io/client-go/tools/watch) +BuildRequires: golang(k8s.io/client-go/transport) +BuildRequires: golang(k8s.io/client-go/transport/spdy) +BuildRequires: golang(k8s.io/client-go/util/buffer) +BuildRequires: golang(k8s.io/client-go/util/cert) +BuildRequires: golang(k8s.io/client-go/util/certificate) +BuildRequires: golang(k8s.io/client-go/util/certificate/csr) +BuildRequires: golang(k8s.io/client-go/util/connrotation) +BuildRequires: golang(k8s.io/client-go/util/exec) +BuildRequires: golang(k8s.io/client-go/util/flowcontrol) +BuildRequires: golang(k8s.io/client-go/util/homedir) +BuildRequires: golang(k8s.io/client-go/util/integer) +BuildRequires: golang(k8s.io/client-go/util/jsonpath) +BuildRequires: golang(k8s.io/client-go/util/retry) +BuildRequires: golang(k8s.io/client-go/util/testing) +BuildRequires: golang(k8s.io/client-go/util/workqueue) +BuildRequires: golang(k8s.io/cloud-provider) +BuildRequires: golang(k8s.io/cluster-bootstrap/token/api) +BuildRequires: golang(k8s.io/cluster-bootstrap/token/util) +BuildRequires: golang(k8s.io/code-generator/cmd/client-gen/args) +BuildRequires: golang(k8s.io/code-generator/cmd/client-gen/generators) +BuildRequires: golang(k8s.io/code-generator/cmd/client-gen/generators/fake) +BuildRequires: golang(k8s.io/code-generator/cmd/client-gen/generators/scheme) +BuildRequires: golang(k8s.io/code-generator/cmd/client-gen/generators/util) +BuildRequires: golang(k8s.io/code-generator/cmd/client-gen/path) +BuildRequires: golang(k8s.io/code-generator/cmd/client-gen/types) +BuildRequires: golang(k8s.io/code-generator/cmd/conversion-gen/args) +BuildRequires: golang(k8s.io/code-generator/cmd/conversion-gen/generators) +BuildRequires: golang(k8s.io/code-generator/cmd/deepcopy-gen/args) +BuildRequires: golang(k8s.io/code-generator/cmd/defaulter-gen/args) +BuildRequires: golang(k8s.io/code-generator/cmd/go-to-protobuf/protobuf) +BuildRequires: golang(k8s.io/code-generator/cmd/informer-gen/args) +BuildRequires: golang(k8s.io/code-generator/cmd/informer-gen/generators) +BuildRequires: golang(k8s.io/code-generator/cmd/lister-gen/args) +BuildRequires: golang(k8s.io/code-generator/cmd/lister-gen/generators) +BuildRequires: golang(k8s.io/code-generator/cmd/register-gen/args) +BuildRequires: golang(k8s.io/code-generator/cmd/register-gen/generators) +BuildRequires: golang(k8s.io/code-generator/pkg/util) +BuildRequires: golang(k8s.io/code-generator/third_party/forked/golang/reflect) +BuildRequires: golang(k8s.io/csi-api/pkg/apis/csi/v1alpha1) +BuildRequires: golang(k8s.io/csi-api/pkg/client/clientset/versioned) +BuildRequires: golang(k8s.io/csi-api/pkg/client/clientset/versioned/scheme) +BuildRequires: golang(k8s.io/csi-api/pkg/client/clientset/versioned/typed/csi/v1alpha1) +BuildRequires: golang(k8s.io/csi-api/pkg/client/clientset/versioned/typed/csi/v1alpha1/fake) +BuildRequires: golang(k8s.io/csi-api/pkg/client/informers/externalversions) +BuildRequires: golang(k8s.io/csi-api/pkg/client/informers/externalversions/csi) +BuildRequires: golang(k8s.io/csi-api/pkg/client/informers/externalversions/csi/v1alpha1) +BuildRequires: golang(k8s.io/csi-api/pkg/client/informers/externalversions/internalinterfaces) +BuildRequires: golang(k8s.io/csi-api/pkg/client/listers/csi/v1alpha1) +BuildRequires: golang(k8s.io/gengo/args) +# BuildRequires: golang(k8s.io/gengo/examples/deepcopy-gen/generators) +# BuildRequires: golang(k8s.io/gengo/examples/defaulter-gen/generators) +# BuildRequires: golang(k8s.io/gengo/examples/import-boss/generators) +# BuildRequires: golang(k8s.io/gengo/examples/set-gen/generators) +BuildRequires: golang(k8s.io/gengo/generator) +BuildRequires: golang(k8s.io/gengo/namer) +BuildRequires: golang(k8s.io/gengo/parser) +BuildRequires: golang(k8s.io/gengo/types) +# pkg/controller/podautoscaler +%if %{without bootstrap} +BuildRequires: golang(k8s.io/heapster/metrics/api/v1/types) +%endif +BuildRequires: golang(k8s.io/klog) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/apis/apiregistration) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/apis/apiregistration/install) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/apis/apiregistration/v1) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/apis/apiregistration/validation) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/apiserver) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/apiserver/scheme) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1/fake) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/fake) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/scheme) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/fake) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/informers/internalversion) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/cmd/server) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/controllers) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/controllers/autoregister) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/controllers/openapi) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/controllers/status) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/registry/apiservice) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/registry/apiservice/etcd) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/registry/apiservice/rest) +BuildRequires: golang(k8s.io/kube-controller-manager/config/v1alpha1) +BuildRequires: golang(k8s.io/kube-openapi/pkg/aggregator) +BuildRequires: golang(k8s.io/kube-openapi/pkg/builder) +BuildRequires: golang(k8s.io/kube-openapi/pkg/common) +BuildRequires: golang(k8s.io/kube-openapi/pkg/handler) +BuildRequires: golang(k8s.io/kube-openapi/pkg/util) +BuildRequires: golang(k8s.io/kube-openapi/pkg/util/proto) +BuildRequires: golang(k8s.io/kube-openapi/pkg/util/proto/testing) +BuildRequires: golang(k8s.io/kube-openapi/pkg/util/proto/validation) +BuildRequires: golang(k8s.io/kube-proxy/config/v1alpha1) +BuildRequires: golang(k8s.io/kube-scheduler/config/v1alpha1) +BuildRequires: golang(k8s.io/kubelet/config/v1beta1) +BuildRequires: golang(k8s.io/metrics/pkg/apis/custom_metrics) +BuildRequires: golang(k8s.io/metrics/pkg/apis/custom_metrics/v1beta1) +BuildRequires: golang(k8s.io/metrics/pkg/apis/custom_metrics/v1beta2) +BuildRequires: golang(k8s.io/metrics/pkg/apis/external_metrics) +BuildRequires: golang(k8s.io/metrics/pkg/apis/external_metrics/v1beta1) +BuildRequires: golang(k8s.io/metrics/pkg/apis/metrics) +BuildRequires: golang(k8s.io/metrics/pkg/apis/metrics/v1alpha1) +BuildRequires: golang(k8s.io/metrics/pkg/apis/metrics/v1beta1) +BuildRequires: golang(k8s.io/metrics/pkg/client/clientset/versioned) +BuildRequires: golang(k8s.io/metrics/pkg/client/clientset/versioned/scheme) +BuildRequires: golang(k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1alpha1) +BuildRequires: golang(k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1alpha1/fake) +BuildRequires: golang(k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1beta1) +BuildRequires: golang(k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1beta1/fake) +BuildRequires: golang(k8s.io/metrics/pkg/client/custom_metrics) +BuildRequires: golang(k8s.io/metrics/pkg/client/custom_metrics/scheme) +BuildRequires: golang(k8s.io/metrics/pkg/client/external_metrics) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/admission/plugin/banflunder) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/admission/wardleinitializer) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/apis/wardle) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/apis/wardle/install) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/apis/wardle/validation) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/apiserver) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/clientset/internalversion) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/clientset/internalversion/scheme) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/clientset/internalversion/typed/wardle/internalversion) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/clientset/internalversion/typed/wardle/internalversion/fake) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/clientset/versioned) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/clientset/versioned/scheme) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/clientset/versioned/typed/wardle/v1alpha1) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/clientset/versioned/typed/wardle/v1alpha1/fake) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/clientset/versioned/typed/wardle/v1beta1) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/clientset/versioned/typed/wardle/v1beta1/fake) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1beta1) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/informers/internalversion) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/listers/wardle/internalversion) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/listers/wardle/v1alpha1) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/client/listers/wardle/v1beta1) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/cmd/server) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/registry) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/registry/wardle/fischer) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/registry/wardle/flunder) +BuildRequires: golang(k8s.io/sample-cli-plugin/pkg/cmd) +BuildRequires: golang(k8s.io/sample-controller/pkg/apis/samplecontroller) +BuildRequires: golang(k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1) +BuildRequires: golang(k8s.io/sample-controller/pkg/client/clientset/versioned) +BuildRequires: golang(k8s.io/sample-controller/pkg/client/clientset/versioned/scheme) +BuildRequires: golang(k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1) +BuildRequires: golang(k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake) +BuildRequires: golang(k8s.io/sample-controller/pkg/client/informers/externalversions) +BuildRequires: golang(k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces) +BuildRequires: golang(k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller) +BuildRequires: golang(k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1) +BuildRequires: golang(k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1) +BuildRequires: golang(k8s.io/sample-controller/pkg/signals) +BuildRequires: golang(k8s.io/utils/exec) +BuildRequires: golang(k8s.io/utils/exec/testing) +BuildRequires: golang(k8s.io/utils/pointer) +BuildRequires: golang(sigs.k8s.io/yaml) +BuildRequires: golang(vbom.ml/util/sortorder) + +%if %{with check} +# Tests +BuildRequires: golang(github.com/go-openapi/loads) +BuildRequires: golang(github.com/onsi/ginkgo/types) +BuildRequires: golang(github.com/vmware/govmomi/lookup/simulator) +BuildRequires: golang(github.com/vmware/govmomi/simulator) +BuildRequires: golang(github.com/vmware/govmomi/simulator/vpx) +BuildRequires: golang(github.com/vmware/govmomi/sts/simulator) +BuildRequires: golang(github.com/vmware/govmomi/vapi/simulator) +BuildRequires: golang(k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer) +BuildRequires: golang(k8s.io/apimachinery/pkg/api/apitesting/roundtrip) +BuildRequires: golang(k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer) +BuildRequires: golang(k8s.io/apimachinery/pkg/runtime/serializer/testing) +BuildRequires: golang(k8s.io/apimachinery/pkg/runtime/serializer/yaml) +BuildRequires: golang(k8s.io/apimachinery/pkg/util/strategicpatch/testing) +BuildRequires: golang(k8s.io/apiserver/pkg/admission/plugin/webhook/testing) +BuildRequires: golang(k8s.io/apiserver/pkg/apis/audit/fuzzer) +# BuildRequires: golang(k8s.io/apiserver/pkg/apis/example/fuzzer) +# BuildRequires: golang(k8s.io/apiserver/pkg/apis/example/install) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints/openapi/testing) +BuildRequires: golang(k8s.io/apiserver/pkg/endpoints/testing) +BuildRequires: golang(k8s.io/apiserver/pkg/registry/generic/testing) +BuildRequires: golang(k8s.io/apiserver/pkg/storage/tests) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/audit/fake) +BuildRequires: golang(k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest) +BuildRequires: golang(k8s.io/client-go/scale/fake) +BuildRequires: golang(k8s.io/client-go/tools/cache/testing) +BuildRequires: golang(k8s.io/csi-api/pkg/client/clientset/versioned/fake) +BuildRequires: golang(k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake) +BuildRequires: golang(k8s.io/metrics/pkg/client/clientset/versioned/fake) +BuildRequires: golang(k8s.io/metrics/pkg/client/custom_metrics/fake) +BuildRequires: golang(k8s.io/metrics/pkg/client/external_metrics/fake) +BuildRequires: golang(k8s.io/sample-apiserver/pkg/apis/wardle/fuzzer) +BuildRequires: golang(k8s.io/sample-controller/pkg/client/clientset/versioned/fake) +%endif + +%description +%{common_description} + +%gopkg + +%prep +%goprep +rm -rf staging +%autopatch -p1 +find . -name "*.go" -exec sed -i "s|github.com/coreos/etcd|go.etcd.io/etcd|" "{}" +; +find . -name "*.go" -exec sed -i "s|github.com/codedellemc/goscaleio|github.com/thecodeteam/goscaleio|" "{}" +; +find . -name "*.go" -exec sed -i "s|github.com/russross/blackfriday|gopkg.in/russross/blackfriday.v1|" "{}" +; + +# %%build +# for cmd in cmd/* ; do +# %%gobuild -o %%{gobuilddir}/bin/$(basename $cmd) %%{goipath}/$cmd +# done + +%install +%gopkginstall +# install -m 0755 -vd %%{buildroot}%%{_bindir} +# install -m 0755 -vp %%{gobuilddir}/bin/* %%{buildroot}%%{_bindir}/ + +%if %{with check} +%check +# pkg/storage/value/encrypt/envelope: Needs KMS server +%if %{with bootstrap} +%gocheck -t cmd \ + -d pkg/volume/glusterfs \ + -d pkg/volume/portworx \ + -d pkg/controller/podautoscaler \ + -d pkg/storage/value/encrypt/envelope \ + -d pkg/cloudprovider/providers/photon \ + -d pkg/cloudprovider/providers/vsphere \ + -d pkg/controller/resourcequota \ + -d pkg/controller/podautoscaler/metrics \ + -d pkg/kubeapiserver/options \ + -d pkg/kubelet/dockershim/network/cni \ + -d pkg/kubelet/cm/devicemanager \ + -d pkg/kubelet/dockershim/network/kubenet \ + -d pkg/kubelet/network/dns \ + -d pkg/master \ + -d pkg/cloudprovider/providers/aws \ + -d pkg/kubelet/cloudresource \ + -d pkg/kubelet/kuberuntime \ + -d pkg/util/oom \ + -d pkg/volume/csi \ + -d pkg/volume/photon_pd \ + -d test/e2e \ + -d test/e2e_kubeadm \ + -d test/e2e_node \ + -t test/integration +%else +%gocheck -t cmd \ + -d pkg/storage/value/encrypt/envelope \ + -d pkg/cloudprovider/providers/photon \ + -d pkg/cloudprovider/providers/vsphere \ + -d pkg/controller/resourcequota \ + -d pkg/kubeapiserver/options \ + -d pkg/kubelet/dockershim/network/cni \ + -d pkg/kubelet/cm/devicemanager \ + -d pkg/kubelet/dockershim/network/kubenet \ + -d pkg/kubelet/network/dns \ + -d pkg/master \ + -d pkg/cloudprovider/providers/aws \ + -d pkg/kubelet/cloudresource \ + -d pkg/kubelet/kuberuntime \ + -d pkg/util/oom \ + -d pkg/volume/csi \ + -d pkg/volume/photon_pd \ + -d test/e2e_kubeadm \ + -d test/e2e_node \ + -t test/integration +%endif +%endif + +# %%files +# %%license LICENSE +# %%doc docs CONTRIBUTING.md code-of-conduct.md CHANGELOG-1.13.md CHANGELOG.md +# %%doc README.md SUPPORT.md +# %%{_bindir}/* + +%gopkgfiles + +%changelog +* Fri May 10 19:55:52 CEST 2019 Robert-André Mauchin - 1.13.7-1.beta.0 +- Initial package diff --git a/sources b/sources new file mode 100644 index 0000000..97d347e --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (kubernetes-1.13.7-beta.0.tar.gz) = add1b41db59b5ba52d086d784f17a6efffa8e98360b49409ff2ea95f2e835cc4bbc624157a2a6f11b3ac32c7e54d5d44f92490f6364953b7e8aaa8dac43ed791