From c66d4076149f8db0096be8d98bd0d4e9b53bfc77 Mon Sep 17 00:00:00 2001 From: Daniel Safta Date: Tue, 15 Feb 2022 13:49:35 +0000 Subject: [PATCH] Remove kubernetes 1.18, 1.19, 1.20 pkgs The new minimum supported k8s version will be 1.21. This commit cleans the pkg files needed to build the old k8s versions. The pkgs build successfully. Deployed on AIO-SX and AIO-DX, the k8s services were running ok. Story: 2009859 Task: 44498 Change-Id: Ib39e9d1522a49c5788240781c8edee2bdffbc97a Signed-off-by: Daniel Safta --- centos_iso_image.inc | 9 - centos_pkg_dirs | 3 - centos_tarball-dl.lst | 3 - .../kubernetes-1.18.1/centos/Readme.rst | 9 - .../kubernetes-1.18.1/centos/build_srpm.data | 5 - ...ck-to-allow-for-options-already-endi.patch | 44 - ...U-allocations-being-deleted-at-conta.patch | 138 - ...-option-to-disable-isolcpu-awareness.patch | 79 - ...ix_http2_erringroundtripper_handling.patch | 12 - .../centos/files/genmanpages.sh | 84 - ...latform-pods-with-zero-CPU-resources.patch | 106 - .../centos/files/kubeadm.conf | 18 - .../centos/files/kubelet-cgroup-setup.sh | 132 - ...er-disable-CFS-quota-throttling-for-.patch | 111 - ...er-infrastructure-pods-use-system-re.patch | 139 - ...er-introduce-concept-of-isolated-CPU.patch | 526 ---- ...er-keep-normal-containers-off-reserv.patch | 312 --- .../kubernetes-1.18.1/centos/kubernetes.spec | 2261 ---------------- .../centos/kubernetes.spec.orig | 2282 ----------------- .../kubernetes-1.19.13/centos/Readme.rst | 9 - .../kubernetes-1.19.13/centos/build_srpm.data | 5 - ...rt-for-kubernetes-to-ignore-isolcpus.patch | 79 - .../centos/files/genmanpages.sh | 84 - ...latform-pods-with-zero-CPU-resources.patch | 108 - .../centos/files/kubeadm.conf | 18 - .../centos/files/kubelet-cgroup-setup.sh | 132 - ...er-disable-CFS-quota-throttling-for-.patch | 111 - ...er-infrastructure-pods-use-system-re.patch | 139 - ...er-introduce-concept-of-isolated-CPU.patch | 528 ---- ...er-keep-normal-containers-off-reserv.patch | 314 --- .../kubernetes-1.19.13/centos/kubernetes.spec | 2253 ---------------- .../centos/kubernetes.spec.orig | 2282 ----------------- .../kubernetes-1.20.9/centos/Readme.rst | 9 - .../kubernetes-1.20.9/centos/build_srpm.data | 5 - ...rt-for-kubernetes-to-ignore-isolcpus.patch | 79 - .../centos/files/genmanpages.sh | 84 - ...latform-pods-with-zero-CPU-resources.patch | 108 - .../centos/files/kubeadm.conf | 18 - .../centos/files/kubelet-cgroup-setup.sh | 132 - ...er-disable-CFS-quota-throttling-for-.patch | 111 - ...er-infrastructure-pods-use-system-re.patch | 139 - ...er-introduce-concept-of-isolated-CPU.patch | 526 ---- ...er-keep-normal-containers-off-reserv.patch | 313 --- .../kubernetes-1.20.9/centos/kubernetes.spec | 2253 ---------------- .../centos/kubernetes.spec.orig | 2282 ----------------- 45 files changed, 18394 deletions(-) delete mode 100644 kubernetes/kubernetes-1.18.1/centos/Readme.rst delete mode 100644 kubernetes/kubernetes-1.18.1/centos/build_srpm.data delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/0001-Fix-pagesize-check-to-allow-for-options-already-endi.patch delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/Fix-exclusive-CPU-allocations-being-deleted-at-conta.patch delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/add-option-to-disable-isolcpu-awareness.patch delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/fix_http2_erringroundtripper_handling.patch delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/genmanpages.sh delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/kubeadm.conf delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/kubelet-cgroup-setup.sh delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch delete mode 100644 kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch delete mode 100644 kubernetes/kubernetes-1.18.1/centos/kubernetes.spec delete mode 100644 kubernetes/kubernetes-1.18.1/centos/kubernetes.spec.orig delete mode 100644 kubernetes/kubernetes-1.19.13/centos/Readme.rst delete mode 100644 kubernetes/kubernetes-1.19.13/centos/build_srpm.data delete mode 100644 kubernetes/kubernetes-1.19.13/centos/files/enable-support-for-kubernetes-to-ignore-isolcpus.patch delete mode 100644 kubernetes/kubernetes-1.19.13/centos/files/genmanpages.sh delete mode 100644 kubernetes/kubernetes-1.19.13/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch delete mode 100644 kubernetes/kubernetes-1.19.13/centos/files/kubeadm.conf delete mode 100644 kubernetes/kubernetes-1.19.13/centos/files/kubelet-cgroup-setup.sh delete mode 100644 kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch delete mode 100644 kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch delete mode 100644 kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch delete mode 100644 kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch delete mode 100644 kubernetes/kubernetes-1.19.13/centos/kubernetes.spec delete mode 100644 kubernetes/kubernetes-1.19.13/centos/kubernetes.spec.orig delete mode 100644 kubernetes/kubernetes-1.20.9/centos/Readme.rst delete mode 100644 kubernetes/kubernetes-1.20.9/centos/build_srpm.data delete mode 100644 kubernetes/kubernetes-1.20.9/centos/files/enable-support-for-kubernetes-to-ignore-isolcpus.patch delete mode 100644 kubernetes/kubernetes-1.20.9/centos/files/genmanpages.sh delete mode 100644 kubernetes/kubernetes-1.20.9/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch delete mode 100644 kubernetes/kubernetes-1.20.9/centos/files/kubeadm.conf delete mode 100644 kubernetes/kubernetes-1.20.9/centos/files/kubelet-cgroup-setup.sh delete mode 100644 kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch delete mode 100644 kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch delete mode 100644 kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch delete mode 100644 kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch delete mode 100644 kubernetes/kubernetes-1.20.9/centos/kubernetes.spec delete mode 100644 kubernetes/kubernetes-1.20.9/centos/kubernetes.spec.orig diff --git a/centos_iso_image.inc b/centos_iso_image.inc index ae7d9da46..69be6b5b2 100644 --- a/centos_iso_image.inc +++ b/centos_iso_image.inc @@ -156,15 +156,6 @@ memcached # kubernetes kubernetes-unversioned -kubernetes-1.18.1-node -kubernetes-1.18.1-kubeadm -kubernetes-1.18.1-client -kubernetes-1.19.13-node -kubernetes-1.19.13-kubeadm -kubernetes-1.19.13-client -kubernetes-1.20.9-node -kubernetes-1.20.9-kubeadm -kubernetes-1.20.9-client kubernetes-1.21.8-node kubernetes-1.21.8-kubeadm kubernetes-1.21.8-client diff --git a/centos_pkg_dirs b/centos_pkg_dirs index 087ddb840..467516bfd 100644 --- a/centos_pkg_dirs +++ b/centos_pkg_dirs @@ -55,9 +55,6 @@ docker/python-docker kubernetes/containerd kubernetes/cni/plugins kubernetes/cni/bond-cni -kubernetes/kubernetes-1.18.1 -kubernetes/kubernetes-1.19.13 -kubernetes/kubernetes-1.20.9 kubernetes/kubernetes-1.21.8 kubernetes/kubernetes-1.22.5 kubernetes/kubernetes-unversioned diff --git a/centos_tarball-dl.lst b/centos_tarball-dl.lst index 4f9de2a3c..090874211 100644 --- a/centos_tarball-dl.lst +++ b/centos_tarball-dl.lst @@ -40,9 +40,6 @@ kexec-tools-2.0.21.tar.xz#kexec-tools-2.0.21#https://www.kernel.org/pub/linux/ut !kdump-anaconda-addon-003-29-g4c517c5.tar.gz#kexec-tools#https://vault.centos.org/7.6.1810/os/Source/SPackages/kexec-tools-2.0.15-21.el7.src.rpm#https## keycodemapdb-16e5b07.tar.gz#keycodemapdb#https://github.com/CendioOssman/keycodemapdb/tarball/16e5b0787687d8904dad2c026107409eb9bfcb95#http## kubernetes-contrib-v1.18.1.tar.gz#kubernetes-contrib-1.18.1#https://github.com/kubernetes-retired/contrib/tarball/89f6948e24578fed2a90a87871b2263729f90ac3#http## -kubernetes-v1.18.1.tar.gz#kubernetes-1.18.1#https://github.com/kubernetes/kubernetes/archive/7879fc12a63337efff607952a323df90cdc7a335.tar.gz#http## -kubernetes-v1.19.13.tar.gz#kubernetes-1.19.13#https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.19.13.tar.gz#http## -kubernetes-v1.20.9.tar.gz#kubernetes-1.20.9#https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.20.9.tar.gz#http## kubernetes-v1.21.8.tar.gz#kubernetes-1.21.8#https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.21.8.tar.gz#http## kubernetes-v1.22.5.tar.gz#kubernetes-1.22.5#https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.22.5.tar.gz#http## kvm-unit-tests.git-4ea7633.tar.bz2#kvm-unit-tests#https://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git/snapshot/kvm-unit-tests-20171020.tar.gz#http## diff --git a/kubernetes/kubernetes-1.18.1/centos/Readme.rst b/kubernetes/kubernetes-1.18.1/centos/Readme.rst deleted file mode 100644 index 6e819fedf..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/Readme.rst +++ /dev/null @@ -1,9 +0,0 @@ -The spec file used here was from the kubernetes 1.10.0 src rpm. -The orig file is included to help show modifications made to that -spec file, to help understand which changes were needed and to -assist with future upversioning. - -The contrib tarball does not have the same versioning as kubernetes and -there is little activity in that repo. - -The version for the contrib tarball is arbitrary. diff --git a/kubernetes/kubernetes-1.18.1/centos/build_srpm.data b/kubernetes/kubernetes-1.18.1/centos/build_srpm.data deleted file mode 100644 index 8ad23497c..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/build_srpm.data +++ /dev/null @@ -1,5 +0,0 @@ -VERSION=1.18.1 -TAR_NAME=kubernetes -TAR="$TAR_NAME-v$VERSION.tar.gz" -COPY_LIST="${CGCS_BASE}/downloads/$TAR $FILES_BASE/*" -TIS_PATCH_VER=PKG_GITREVCOUNT diff --git a/kubernetes/kubernetes-1.18.1/centos/files/0001-Fix-pagesize-check-to-allow-for-options-already-endi.patch b/kubernetes/kubernetes-1.18.1/centos/files/0001-Fix-pagesize-check-to-allow-for-options-already-endi.patch deleted file mode 100644 index 724a4a05b..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/0001-Fix-pagesize-check-to-allow-for-options-already-endi.patch +++ /dev/null @@ -1,44 +0,0 @@ -From ee648637dde0394a9e487a47a2c6f33f2e238046 Mon Sep 17 00:00:00 2001 -From: Robert Church -Date: Mon, 6 Apr 2020 20:59:53 -0400 -Subject: [PATCH] Fix pagesize check to allow for options already ending in 'i' - -Commit https://github.com/kubernetes/kubernetes/commit/03ecc20 adds a -pagesize mount option quantity check that appends an 'i' to the pagesize -value. - -Based on the current StarlingX configuration the hugepages are mounted -with the following option that already contains an 'i' as a suffix: -pagesize=1Gi. - -This temporary patch updates the logic to avoid appending an additional -'i' at the end of the size string. This extra 'i' is not handled by -ParseQuantity() and results is a pod stuck Terminating as the mount -is not removed from the container. - -Signed-off-by: Robert Church ---- - pkg/volume/emptydir/empty_dir_linux.go | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/pkg/volume/emptydir/empty_dir_linux.go b/pkg/volume/emptydir/empty_dir_linux.go -index 63a25dc4ed0..7343c5e510a 100644 ---- a/pkg/volume/emptydir/empty_dir_linux.go -+++ b/pkg/volume/emptydir/empty_dir_linux.go -@@ -69,7 +69,12 @@ func getPageSize(path string, mounter mount.Interface) (*resource.Quantity, erro - // NOTE: Adding suffix 'i' as result should be comparable with a medium size. - // pagesize mount option is specified without a suffix, - // e.g. pagesize=2M or pagesize=1024M for x86 CPUs -- pageSize, err := resource.ParseQuantity(strings.TrimPrefix(opt, prefix) + "i") -+ opt_val := strings.TrimPrefix(opt, prefix) -+ val := opt_val -+ if !strings.HasSuffix(opt_val, "i") { -+ val = opt_val + "i" -+ } -+ pageSize, err := resource.ParseQuantity(val) - if err != nil { - return nil, fmt.Errorf("error getting page size from '%s' mount option: %v", opt, err) - } --- -2.16.6 - diff --git a/kubernetes/kubernetes-1.18.1/centos/files/Fix-exclusive-CPU-allocations-being-deleted-at-conta.patch b/kubernetes/kubernetes-1.18.1/centos/files/Fix-exclusive-CPU-allocations-being-deleted-at-conta.patch deleted file mode 100644 index 3a6baff76..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/Fix-exclusive-CPU-allocations-being-deleted-at-conta.patch +++ /dev/null @@ -1,138 +0,0 @@ -From c72ad02d7be3edaf17a07bb6b2c40249ba00038e Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Tue, 21 Apr 2020 16:06:35 -0600 -Subject: [PATCH] Fix exclusive CPU allocations being deleted at container - restart - -The expectation is that exclusive CPU allocations happen at pod -creation time. When a container restarts, it should not have its -exclusive CPU allocations removed, and it should not need to -re-allocate CPUs. - -There are a few places in the current code that look for containers -that have exited and call CpuManager.RemoveContainer() to clean up -the container. This will end up deleting any exclusive CPU -allocations for that container, and if the container restarts within -the same pod it will end up using the default cpuset rather than -what should be exclusive CPUs. - -Removing those calls and adding resource cleanup at allocation -time should get rid of the problem. - -Signed-off-by: Chris Friesen ---- - pkg/kubelet/cm/cpumanager/cpu_manager.go | 19 +++++++++---------- - pkg/kubelet/cm/cpumanager/cpu_manager_test.go | 12 ++++++++++++ - pkg/kubelet/cm/internal_container_lifecycle.go | 9 --------- - 3 files changed, 21 insertions(+), 19 deletions(-) - -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index 08d45c77182..c682f813a8a 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -242,6 +242,9 @@ func (m *manager) Start(activePods ActivePodsFunc, sourcesReady config.SourcesRe - } - - func (m *manager) Allocate(p *v1.Pod, c *v1.Container) error { -+ // Garbage collect any stranded resources before allocating CPUs. -+ m.removeStaleState() -+ - m.Lock() - defer m.Unlock() - -@@ -422,18 +425,14 @@ func (m *manager) reconcileState() (success []reconciledContainer, failure []rec - } - - if cstatus.State.Terminated != nil { -- // Since the container is terminated, we know it is safe to -- // remove it without any reconciliation. Removing the container -- // will also remove it from the `containerMap` so that this -- // container will be skipped next time around the loop. -+ // The container is terminated but we can't call m.RemoveContainer() -+ // here because it could remove the allocated cpuset for the container -+ // which may be in the process of being restarted. That would result -+ // in the container losing any exclusively-allocated CPUs that it -+ // was allocated. - _, _, err := m.containerMap.GetContainerRef(containerID) - if err == nil { -- klog.Warningf("[cpumanager] reconcileState: skipping container; already terminated (pod: %s, container id: %s)", pod.Name, containerID) -- err := m.RemoveContainer(containerID) -- if err != nil { -- klog.Errorf("[cpumanager] reconcileState: failed to remove container (pod: %s, container id: %s, error: %v)", pod.Name, containerID, err) -- failure = append(failure, reconciledContainer{pod.Name, container.Name, containerID}) -- } -+ klog.Warningf("[cpumanager] reconcileState: ignoring terminated (pod: %s, container id: %s)", pod.Name, containerID) - } - continue - } -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -index e806c62e80e..e3e0097cafb 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -@@ -41,6 +41,12 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - ) - -+type mockSourcesReady struct{} -+ -+func (s *mockSourcesReady) AddSource(source string) {} -+ -+func (s *mockSourcesReady) AllReady() bool { return false } -+ - type mockState struct { - assignments state.ContainerCPUAssignments - defaultCPUSet cpuset.CPUSet -@@ -277,6 +283,8 @@ func TestCPUManagerAdd(t *testing.T) { - podStatusProvider: mockPodStatusProvider{}, - } - -+ mgr.sourcesReady = &mockSourcesReady{} -+ - pod := makePod("fakePod", "fakeContainer", "2", "2") - container := &pod.Spec.Containers[0] - err := mgr.Allocate(pod, container) -@@ -497,6 +505,8 @@ func TestCPUManagerAddWithInitContainers(t *testing.T) { - podStatusProvider: mockPodStatusProvider{}, - } - -+ mgr.sourcesReady = &mockSourcesReady{} -+ - containers := append( - testCase.pod.Spec.InitContainers, - testCase.pod.Spec.Containers...) -@@ -1038,6 +1048,8 @@ func TestCPUManagerAddWithResvList(t *testing.T) { - podStatusProvider: mockPodStatusProvider{}, - } - -+ mgr.sourcesReady = &mockSourcesReady{} -+ - pod := makePod("fakePod", "fakeContainer", "2", "2") - container := &pod.Spec.Containers[0] - err := mgr.Allocate(pod, container) -diff --git a/pkg/kubelet/cm/internal_container_lifecycle.go b/pkg/kubelet/cm/internal_container_lifecycle.go -index 9e243430269..690718e4e68 100644 ---- a/pkg/kubelet/cm/internal_container_lifecycle.go -+++ b/pkg/kubelet/cm/internal_container_lifecycle.go -@@ -54,19 +54,10 @@ func (i *internalContainerLifecycleImpl) PreStartContainer(pod *v1.Pod, containe - } - - func (i *internalContainerLifecycleImpl) PreStopContainer(containerID string) error { -- if i.cpuManager != nil { -- return i.cpuManager.RemoveContainer(containerID) -- } - return nil - } - - func (i *internalContainerLifecycleImpl) PostStopContainer(containerID string) error { -- if i.cpuManager != nil { -- err := i.cpuManager.RemoveContainer(containerID) -- if err != nil { -- return err -- } -- } - if utilfeature.DefaultFeatureGate.Enabled(kubefeatures.TopologyManager) { - err := i.topologyManager.RemoveContainer(containerID) - if err != nil { --- -2.16.6 - diff --git a/kubernetes/kubernetes-1.18.1/centos/files/add-option-to-disable-isolcpu-awareness.patch b/kubernetes/kubernetes-1.18.1/centos/files/add-option-to-disable-isolcpu-awareness.patch deleted file mode 100644 index 0a8b746ed..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/add-option-to-disable-isolcpu-awareness.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 8b765213a4e6d5cd4eecf361dadfec2851f1dd59 Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Fri, 23 Oct 2020 17:46:10 -0600 -Subject: [PATCH] enable support for kubernetes to ignore isolcpus - -The normal mechanisms for allocating isolated CPUs do not allow -a mix of isolated and exclusive CPUs in the same container. In -order to allow this in *very* limited cases where the pod spec -is known in advance we will add the ability to disable the normal -isolcpus behaviour. - -If the file "/etc/kubernetes/ignore_isolcpus" exists, then kubelet -will basically forget everything it knows about isolcpus and just -treat them like regular CPUs. - -The admin user can then rely on the fact that CPU allocation is -deterministic to ensure that the isolcpus they configure end up being -allocated to the correct pods. ---- - pkg/kubelet/cm/cpumanager/cpu_manager.go | 9 +++++++++ - pkg/kubelet/cm/cpumanager/policy_static.go | 8 ++++++++ - 2 files changed, 17 insertions(+) - -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index c682f813..92992991 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -19,6 +19,7 @@ package cpumanager - import ( - "fmt" - "math" -+ "os" - "sync" - "time" - "strings" -@@ -56,6 +57,14 @@ const cpuManagerStateFileName = "cpu_manager_state" - - // get the system-level isolated CPUs - func getIsolcpus() cpuset.CPUSet { -+ -+ // This is a gross hack to basically turn off awareness of isolcpus to enable -+ // isolated cpus to be allocated to pods the same way as non-isolated CPUs. -+ if _, err := os.Stat("/etc/kubernetes/ignore_isolcpus"); err == nil { -+ klog.Infof("[cpumanager] turning off isolcpus awareness") -+ return cpuset.NewCPUSet() -+ } -+ - dat, err := ioutil.ReadFile("/sys/devices/system/cpu/isolated") - if err != nil { - klog.Errorf("[cpumanager] unable to read sysfs isolcpus subdir") -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index 1913065e..4fb3202f 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -18,6 +18,7 @@ package cpumanager - - import ( - "fmt" -+ "os" - "strconv" - - v1 "k8s.io/api/core/v1" -@@ -510,6 +511,13 @@ func isKubeInfra(pod *v1.Pod) bool { - - // get the isolated CPUs (if any) from the devices associated with a specific container - func (p *staticPolicy) podIsolCPUs(pod *v1.Pod, container *v1.Container) cpuset.CPUSet { -+ -+ // This is a gross hack to basically turn off awareness of isolcpus to enable -+ // isolated cpus to be allocated to pods the same way as non-isolated CPUs. -+ if _, err := os.Stat("/etc/kubernetes/ignore_isolcpus"); err == nil { -+ return cpuset.NewCPUSet() -+ } -+ - // NOTE: This is required for TestStaticPolicyAdd() since makePod() does - // not create UID. We also need a way to properly stub devicemanager. - if len(string(pod.UID)) == 0 { --- -2.16.6 - diff --git a/kubernetes/kubernetes-1.18.1/centos/files/fix_http2_erringroundtripper_handling.patch b/kubernetes/kubernetes-1.18.1/centos/files/fix_http2_erringroundtripper_handling.patch deleted file mode 100644 index 921378c2e..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/fix_http2_erringroundtripper_handling.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go -index aeac7d8..ec18648 100644 ---- a/vendor/golang.org/x/net/http2/transport.go -+++ b/vendor/golang.org/x/net/http2/transport.go -@@ -2404,6 +2404,7 @@ func strSliceContains(ss []string, s string) bool { - - type erringRoundTripper struct{ err error } - -+func (rt erringRoundTripper) IsHTTP2ErringRoundtripper() {} - func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err } - - // gzipReader wraps a response body so it can lazily diff --git a/kubernetes/kubernetes-1.18.1/centos/files/genmanpages.sh b/kubernetes/kubernetes-1.18.1/centos/files/genmanpages.sh deleted file mode 100644 index be2ef8f05..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/genmanpages.sh +++ /dev/null @@ -1,84 +0,0 @@ -MDSFORMANPAGES="kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md" - -# remove comments from man pages -for manpage in ${MDSFORMANPAGES}; do - pos=$(grep -n "<\!-- END MUNGE: UNVERSIONED_WARNING -->" ${manpage} | cut -d':' -f1) - if [ -n ${pos} ]; then - sed -i "1,${pos}{/.*/d}" ${manpage} - fi -done - -# for each man page add NAME and SYNOPSIS section -# kube-apiserver -sed -i -s "s/## kube-apiserver/# NAME\nkube-apiserver \- Provides the API for kubernetes orchestration.\n\n# SYNOPSIS\n**kube-apiserver** [OPTIONS]\n/" kube-apiserver.md - -cat << 'EOF' >> kube-apiserver.md -# EXAMPLES -``` -/usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd_servers=http://127.0.0.1:4001 --insecure_bind_address=127.0.0.1 --insecure_port=8080 --kubelet_port=10250 --service-cluster-ip-range=10.1.1.0/24 --allow_privileged=false -``` -EOF -# kube-controller-manager -sed -i -s "s/## kube-controller-manager/# NAME\nkube-controller-manager \- Enforces kubernetes services.\n\n# SYNOPSIS\n**kube-controller-manager** [OPTIONS]\n/" kube-controller-manager.md - -cat << 'EOF' >> kube-controller-manager.md -# EXAMPLES -``` -/usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=127.0.0.1:8080 -``` -EOF -# kube-proxy -sed -i -s "s/## kube-proxy/# NAME\nkube-proxy \- Provides network proxy services.\n\n# SYNOPSIS\n**kube-proxy** [OPTIONS]\n/" kube-proxy.md - -cat << 'EOF' >> kube-proxy.md -# EXAMPLES -``` -/usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://127.0.0.1:8080 -``` -EOF -# kube-scheduler -sed -i -s "s/## kube-scheduler/# NAME\nkube-scheduler \- Schedules containers on hosts.\n\n# SYNOPSIS\n**kube-scheduler** [OPTIONS]\n/" kube-scheduler.md - -cat << 'EOF' >> kube-scheduler.md -# EXAMPLES -``` -/usr/bin/kube-scheduler --logtostderr=true --v=0 --master=127.0.0.1:8080 -``` -EOF -# kubelet -sed -i -s "s/## kubelet/# NAME\nkubelet \- Processes a container manifest so the containers are launched according to how they are described.\n\n# SYNOPSIS\n**kubelet** [OPTIONS]\n/" kubelet.md - -cat << 'EOF' >> kubelet.md -# EXAMPLES -``` -/usr/bin/kubelet --logtostderr=true --v=0 --api_servers=http://127.0.0.1:8080 --address=127.0.0.1 --port=10250 --hostname_override=127.0.0.1 --allow-privileged=false -``` -EOF - -# for all man-pages -for md in $MDSFORMANPAGES; do - # correct section names - sed -i -s "s/### Synopsis/# DESCRIPTION/" $md - sed -i -s "s/### Options/# OPTIONS/" $md - # add header - sed -i "s/# NAME/% KUBERNETES(1) kubernetes User Manuals\n# NAME/" $md - # modify list of options - # options with no value in "" - sed -i -r 's/(^ )(-[^":][^":]*)(:)(.*)/\*\*\2\*\*\n\t\4\n/' $md - # option with value in "" - sed -i -r 's/(^ )(-[^":][^":]*)("[^"]*")(:)(.*)/\*\*\2\3\*\*\n\t\5\n/' $md - # options in -s, --long - sed -i -r 's/(^ )(-[a-z], -[^":][^":]*)(:)(.*)/\*\*\2\*\*\n\t\4\n/' $md - sed -i -r 's/(^ )(-[a-z], -[^":][^":]*)("[^"]*")(:)(.*)/\*\*\2\3\*\*\n\t\5\n/' $md - # remove ``` - sed -i 's/```//' $md - # remove all lines starting with ###### - sed -i 's/^######.*//' $md - # modify footer - sed -i -r "s/^\[!\[Analytics\].*//" $md - # md does not contain section => taking 1 - name="${md%.md}" - go-md2man -in $md -out man/man1/$name.1 -done - - diff --git a/kubernetes/kubernetes-1.18.1/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch b/kubernetes/kubernetes-1.18.1/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch deleted file mode 100644 index 69b0b1293..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 9ff79a463fd4502dd1800198bc0b367e5861baf3 Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Fri, 28 Aug 2020 21:17:42 -0600 -Subject: [PATCH] kubeadm: create platform pods with zero CPU resources - -We want to specify zero CPU resources when creating the manifests -for the static platform pods, as a workaround for the lack of -separate resource tracking for platform resources. - -We also specify zero CPU resources for the coredns deployment. -manifests.go appears to be the main file for this, not sure if the -others are used by I changed them just in case. ---- - cluster/addons/dns/coredns/coredns.yaml.base | 2 +- - cluster/addons/dns/coredns/coredns.yaml.in | 2 +- - cluster/addons/dns/coredns/coredns.yaml.sed | 2 +- - cmd/kubeadm/app/phases/addons/dns/manifests.go | 2 +- - cmd/kubeadm/app/phases/controlplane/manifests.go | 6 +++--- - 5 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/cluster/addons/dns/coredns/coredns.yaml.base b/cluster/addons/dns/coredns/coredns.yaml.base -index a8f0afb5085..45054a29420 100644 ---- a/cluster/addons/dns/coredns/coredns.yaml.base -+++ b/cluster/addons/dns/coredns/coredns.yaml.base -@@ -124,7 +124,7 @@ spec: - limits: - memory: __PILLAR__DNS__MEMORY__LIMIT__ - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cluster/addons/dns/coredns/coredns.yaml.in b/cluster/addons/dns/coredns/coredns.yaml.in -index ad65d946095..9b2b183faec 100644 ---- a/cluster/addons/dns/coredns/coredns.yaml.in -+++ b/cluster/addons/dns/coredns/coredns.yaml.in -@@ -124,7 +124,7 @@ spec: - limits: - memory: {{ pillar['dns_memory_limit'] }} - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cluster/addons/dns/coredns/coredns.yaml.sed b/cluster/addons/dns/coredns/coredns.yaml.sed -index 3c86e5749a5..6b0c3388bcd 100644 ---- a/cluster/addons/dns/coredns/coredns.yaml.sed -+++ b/cluster/addons/dns/coredns/coredns.yaml.sed -@@ -124,7 +124,7 @@ spec: - limits: - memory: $DNS_MEMORY_LIMIT - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cmd/kubeadm/app/phases/addons/dns/manifests.go b/cmd/kubeadm/app/phases/addons/dns/manifests.go -index 737d9d97cbe..7a3b2d61f37 100644 ---- a/cmd/kubeadm/app/phases/addons/dns/manifests.go -+++ b/cmd/kubeadm/app/phases/addons/dns/manifests.go -@@ -250,7 +250,7 @@ spec: - limits: - memory: 170Mi - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cmd/kubeadm/app/phases/controlplane/manifests.go b/cmd/kubeadm/app/phases/controlplane/manifests.go -index ae9cd77e259..9222805ecfb 100644 ---- a/cmd/kubeadm/app/phases/controlplane/manifests.go -+++ b/cmd/kubeadm/app/phases/controlplane/manifests.go -@@ -57,7 +57,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap - Command: getAPIServerCommand(cfg, endpoint), - VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeAPIServer)), - LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetAPIServerProbeAddress(endpoint), "/healthz", int(endpoint.BindPort), v1.URISchemeHTTPS), -- Resources: staticpodutil.ComponentResources("250m"), -+ Resources: staticpodutil.ComponentResources("0"), - Env: kubeadmutil.GetProxyEnvVars(), - }, mounts.GetVolumes(kubeadmconstants.KubeAPIServer), - map[string]string{kubeadmconstants.KubeAPIServerAdvertiseAddressEndpointAnnotationKey: endpoint.String()}), -@@ -68,7 +68,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap - Command: getControllerManagerCommand(cfg), - VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeControllerManager)), - LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetControllerManagerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeControllerManagerPort, v1.URISchemeHTTPS), -- Resources: staticpodutil.ComponentResources("200m"), -+ Resources: staticpodutil.ComponentResources("0"), - Env: kubeadmutil.GetProxyEnvVars(), - }, mounts.GetVolumes(kubeadmconstants.KubeControllerManager), nil), - kubeadmconstants.KubeScheduler: staticpodutil.ComponentPod(v1.Container{ -@@ -78,7 +78,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap - Command: getSchedulerCommand(cfg), - VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeScheduler)), - LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS), -- Resources: staticpodutil.ComponentResources("100m"), -+ Resources: staticpodutil.ComponentResources("0"), - Env: kubeadmutil.GetProxyEnvVars(), - }, mounts.GetVolumes(kubeadmconstants.KubeScheduler), nil), - } --- -2.24.2 - diff --git a/kubernetes/kubernetes-1.18.1/centos/files/kubeadm.conf b/kubernetes/kubernetes-1.18.1/centos/files/kubeadm.conf deleted file mode 100644 index da0611444..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/kubeadm.conf +++ /dev/null @@ -1,18 +0,0 @@ -# Note: This dropin only works with kubeadm and kubelet v1.11+ -[Service] -Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf" -Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml" -# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically -EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env -# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use -# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file. -EnvironmentFile=-/etc/sysconfig/kubelet -ExecStart= -ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS -ExecStartPre=-/usr/local/sbin/sanitize_kubelet_reserved_cpus.sh /etc/sysconfig/kubelet -ExecStartPre=-/usr/bin/kubelet-cgroup-setup.sh -ExecStartPost=/bin/bash -c 'echo $MAINPID > /var/run/kubelet.pid;' -ExecStopPost=/bin/rm -f /var/run/kubelet.pid -Restart=always -StartLimitInterval=0 -RestartSec=10 diff --git a/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cgroup-setup.sh b/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cgroup-setup.sh deleted file mode 100644 index 385314bfe..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cgroup-setup.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2019 Wind River Systems, Inc. -# -# SPDX-License-Identifier: Apache-2.0 -# -# This script does minimal cgroup setup for kubelet. This creates k8s-infra -# cgroup for a minimal set of resource controllers, and configures cpuset -# attributes to span all online cpus and nodes. This will do nothing if -# the k8s-infra cgroup already exists (i.e., assume already configured). -# NOTE: The creation of directories under /sys/fs/cgroup is volatile, and -# does not persist reboots. The cpuset.mems and cpuset.cpus is later updated -# by puppet kubernetes.pp manifest. -# - -# Define minimal path -PATH=/bin:/usr/bin:/usr/local/bin - -# Log info message to /var/log/daemon.log -function LOG { - logger -p daemon.info "$0($$): $@" -} - -# Log error message to /var/log/daemon.log -function ERROR { - logger -s -p daemon.error "$0($$): ERROR: $@" -} - -# Create minimal cgroup directories and configure cpuset attributes if required -function create_cgroup { - local cg_name=$1 - local cg_nodeset=$2 - local cg_cpuset=$3 - - local CGROUP=/sys/fs/cgroup - local CONTROLLERS_AUTO_DELETED=("pids" "hugetlb") - local CONTROLLERS_PRESERVED=("cpuset" "memory" "cpu,cpuacct" "systemd") - local cnt='' - local CGDIR='' - local RC=0 - - # Ensure that these cgroups are created every time as they are auto deleted - for cnt in ${CONTROLLERS_AUTO_DELETED[@]}; do - CGDIR=${CGROUP}/${cnt}/${cg_name} - if [ -d ${CGDIR} ]; then - LOG "Nothing to do, already configured: ${CGDIR}." - continue - fi - LOG "Creating: ${CGDIR}" - mkdir -p ${CGDIR} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Creating: ${CGDIR}, rc=${RC}" - exit ${RC} - fi - done - - # These cgroups are preserved so if any of these are encountered additional - # cgroup setup is not required - for cnt in ${CONTROLLERS_PRESERVED[@]}; do - CGDIR=${CGROUP}/${cnt}/${cg_name} - if [ -d ${CGDIR} ]; then - LOG "Nothing to do, already configured: ${CGDIR}." - exit ${RC} - fi - LOG "Creating: ${CGDIR}" - mkdir -p ${CGDIR} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Creating: ${CGDIR}, rc=${RC}" - exit ${RC} - fi - done - - # Customize cpuset attributes - LOG "Configuring cgroup: ${cg_name}, nodeset: ${cg_nodeset}, cpuset: ${cg_cpuset}" - CGDIR=${CGROUP}/cpuset/${cg_name} - local CGMEMS=${CGDIR}/cpuset.mems - local CGCPUS=${CGDIR}/cpuset.cpus - local CGTASKS=${CGDIR}/tasks - - # Assign cgroup memory nodeset - LOG "Assign nodeset ${cg_nodeset} to ${CGMEMS}" - /bin/echo ${cg_nodeset} > ${CGMEMS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Unable to write to: ${CGMEMS}, rc=${RC}" - exit ${RC} - fi - - # Assign cgroup cpus - LOG "Assign cpuset ${cg_cpuset} to ${CGCPUS}" - /bin/echo ${cg_cpuset} > ${CGCPUS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Assigning: ${cg_cpuset} to ${CGCPUS}, rc=${RC}" - exit ${RC} - fi - - # Set file ownership - chown root:root ${CGMEMS} ${CGCPUS} ${CGTASKS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Setting owner for: ${CGMEMS}, ${CGCPUS}, ${CGTASKS}, rc=${RC}" - exit ${RC} - fi - - # Set file mode permissions - chmod 644 ${CGMEMS} ${CGCPUS} ${CGTASKS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Setting mode for: ${CGMEMS}, ${CGCPUS}, ${CGTASKS}, rc=${RC}" - exit ${RC} - fi - - return ${RC} -} - -if [ $UID -ne 0 ]; then - ERROR "Require sudo/root." - exit 1 -fi - -# Configure default kubepods cpuset to span all online cpus and nodes. -ONLINE_NODESET=$(/bin/cat /sys/devices/system/node/online) -ONLINE_CPUSET=$(/bin/cat /sys/devices/system/cpu/online) - -# Configure kubelet cgroup to match cgroupRoot. -create_cgroup 'k8s-infra' ${ONLINE_NODESET} ${ONLINE_CPUSET} - -exit $? - diff --git a/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch b/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch deleted file mode 100644 index 4a592aa5b..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 696c016ebaae6c4cfa24fb5a492d20ebde41d7f8 Mon Sep 17 00:00:00 2001 -From: Jim Gauld -Date: Thu, 5 Sep 2019 10:46:58 -0400 -Subject: [PATCH 1/6] kubelet cpumanager disable CFS quota throttling for - Guaranteed pods - -This disables CFS CPU quota to avoid performance degradation due to -Linux kernel CFS quota implementation. Note that 4.18 kernel attempts -to solve the CFS throttling problem, but there are reports that it is -not completely effective. - -This disables CFS quota throttling for Guaranteed pods for both -parent and container cgroups by writing -1 to cgroup cpu.cfs_quota_us. -Disabling has a dramatic latency improvement for HTTP response times. - -Signed-off-by: Jim Gauld ---- - pkg/kubelet/cm/cpumanager/cpu_manager.go | 22 ++++++++++++++++++++++ - pkg/kubelet/cm/helpers_linux.go | 5 +++++ - pkg/kubelet/cm/helpers_linux_test.go | 8 ++++---- - 3 files changed, 31 insertions(+), 4 deletions(-) - -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index 616a620f8ce..c0c440453a9 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -36,6 +36,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/config" - kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" - "k8s.io/kubernetes/pkg/kubelet/status" -+ v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" - ) - - // ActivePodsFunc is a function that returns a list of pods to reconcile. -@@ -230,6 +231,14 @@ func (m *manager) AddContainer(p *v1.Pod, c *v1.Container, containerID string) e - // Get the CPUs assigned to the container during Allocate() - // (or fall back to the default CPUSet if none were assigned). - cpus := m.state.GetCPUSetOrDefault(string(p.UID), c.Name) -+ -+ // Guaranteed PODs should not have CFS quota throttle -+ if m.policy.Name() == string(PolicyStatic) && v1qos.GetPodQOS(p) == v1.PodQOSGuaranteed { -+ err := m.disableContainerCPUQuota(containerID) -+ if err != nil { -+ klog.Errorf("[cpumanager] AddContainer disable CPU Quota error: %v", err) -+ } -+ } - m.Unlock() - - if !cpus.IsEmpty() { -@@ -462,3 +471,16 @@ func (m *manager) updateContainerCPUSet(containerID string, cpus cpuset.CPUSet) - CpusetCpus: cpus.String(), - }) - } -+ -+func (m *manager) disableContainerCPUQuota(containerID string) error { -+ // Disable CFS CPU quota to avoid performance degradation due to -+ // Linux kernel CFS throttle implementation. -+ // NOTE: 4.18 kernel attempts to solve CFS throttling problem, -+ // but there are reports that it is not completely effective. -+ return m.containerRuntime.UpdateContainerResources( -+ containerID, -+ &runtimeapi.LinuxContainerResources{ -+ CpuPeriod: 100000, -+ CpuQuota: -1, -+ }) -+} -diff --git a/pkg/kubelet/cm/helpers_linux.go b/pkg/kubelet/cm/helpers_linux.go -index f6a1d519026..8aa6f87ad49 100644 ---- a/pkg/kubelet/cm/helpers_linux.go -+++ b/pkg/kubelet/cm/helpers_linux.go -@@ -157,6 +157,11 @@ func ResourceConfigForPod(pod *v1.Pod, enforceCPULimits bool, cpuPeriod uint64) - // determine the qos class - qosClass := v1qos.GetPodQOS(pod) - -+ // disable cfs quota for guaranteed pods -+ if qosClass == v1.PodQOSGuaranteed { -+ cpuQuota = int64(-1) -+ } -+ - // build the result - result := &ResourceConfig{} - if qosClass == v1.PodQOSGuaranteed { -diff --git a/pkg/kubelet/cm/helpers_linux_test.go b/pkg/kubelet/cm/helpers_linux_test.go -index 56d765fbc22..0c43afe5875 100644 ---- a/pkg/kubelet/cm/helpers_linux_test.go -+++ b/pkg/kubelet/cm/helpers_linux_test.go -@@ -63,8 +63,8 @@ func TestResourceConfigForPod(t *testing.T) { - burstablePartialShares := MilliCPUToShares(200) - burstableQuota := MilliCPUToQuota(200, int64(defaultQuotaPeriod)) - guaranteedShares := MilliCPUToShares(100) -- guaranteedQuota := MilliCPUToQuota(100, int64(defaultQuotaPeriod)) -- guaranteedTunedQuota := MilliCPUToQuota(100, int64(tunedQuotaPeriod)) -+ guaranteedQuota := int64(-1) -+ guaranteedTunedQuota := int64(-1) - memoryQuantity = resource.MustParse("100Mi") - cpuNoLimit := int64(-1) - guaranteedMemory := memoryQuantity.Value() -@@ -283,8 +283,8 @@ func TestResourceConfigForPodWithCustomCPUCFSQuotaPeriod(t *testing.T) { - burstablePartialShares := MilliCPUToShares(200) - burstableQuota := MilliCPUToQuota(200, int64(defaultQuotaPeriod)) - guaranteedShares := MilliCPUToShares(100) -- guaranteedQuota := MilliCPUToQuota(100, int64(defaultQuotaPeriod)) -- guaranteedTunedQuota := MilliCPUToQuota(100, int64(tunedQuotaPeriod)) -+ guaranteedQuota := int64(-1) -+ guaranteedTunedQuota := int64(-1) - memoryQuantity = resource.MustParse("100Mi") - cpuNoLimit := int64(-1) - guaranteedMemory := memoryQuantity.Value() --- -2.16.6 - diff --git a/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch b/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch deleted file mode 100644 index a6ab5ddf4..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch +++ /dev/null @@ -1,139 +0,0 @@ -From d0e89da9ebcbd9a13051ab5366b6daef2cec9bbe Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Fri, 27 Sep 2019 14:11:54 -0600 -Subject: [PATCH 4/6] kubelet cpumanager infrastructure pods use system - reserved CPUs - -This assigns system infrastructure pods to the "reserved" cpuset -to isolate them from the shared pool of CPUs. - -Infrastructure pods include any pods that belong to the kube-system, -armada, cert-manager, vault, platform-deployment-manager, portieris, -notification or flux-helm namespaces. - -The implementation is a bit simplistic, it is assumed that the -"reserved" cpuset is large enough to handle all infrastructure pods -CPU allocations. - -This also prevents infrastucture pods from using Guaranteed resources. - -Signed-off-by: Chris Friesen ---- - pkg/kubelet/cm/cpumanager/policy_static.go | 45 +++++++++++++++++++++++++ - pkg/kubelet/cm/cpumanager/policy_static_test.go | 19 ++++++++++- - 2 files changed, 63 insertions(+), 1 deletion(-) - -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index e631d5d6a74..e511caf7ab7 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -32,6 +32,11 @@ import ( - // PolicyStatic is the name of the static policy - const PolicyStatic policyName = "static" - -+// Define namespaces used by platform infrastructure pods -+var infraNamespaces = [...]string{ -+ "kube-system", "armada", "cert-manager", "platform-deployment-manager", "portieris", "vault", "notification", "flux-helm", -+} -+ - // staticPolicy is a CPU manager policy that does not change CPU - // assignments for exclusively pinned guaranteed containers after the main - // container process starts. -@@ -205,6 +210,32 @@ func (p *staticPolicy) assignableCPUs(s state.State) cpuset.CPUSet { - } - - func (p *staticPolicy) Allocate(s state.State, pod *v1.Pod, container *v1.Container) error { -+ // Process infra pods before guaranteed pods -+ if isKubeInfra(pod) { -+ // Container belongs in reserved pool. -+ // We don't want to fall through to the p.guaranteedCPUs() clause below so return either nil or error. -+ if _, ok := s.GetCPUSet(string(pod.UID), container.Name); ok { -+ klog.Infof("[cpumanager] static policy: reserved container already present in state, skipping " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s)", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name) -+ return nil -+ } -+ -+ cpuset := p.reserved -+ if cpuset.IsEmpty() { -+ // If this happens then someone messed up. -+ return fmt.Errorf("[cpumanager] static policy: reserved container unable to allocate cpus " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v, reserved:%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset, p.reserved) -+ } -+ s.SetCPUSet(string(pod.UID), container.Name, cpuset) -+ klog.Infof("[cpumanager] static policy: reserved: AddContainer " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset) -+ return nil -+ } -+ -+ - if numCPUs := p.guaranteedCPUs(pod, container); numCPUs != 0 { - klog.Infof("[cpumanager] static policy: Allocate (pod: %s, container: %s)", pod.Name, container.Name) - // container belongs in an exclusively allocated pool -@@ -300,6 +331,10 @@ func (p *staticPolicy) guaranteedCPUs(pod *v1.Pod, container *v1.Container) int - if cpuQuantity.Value()*1000 != cpuQuantity.MilliValue() { - return 0 - } -+ // Infrastructure pods use reserved CPUs even if they're in the Guaranteed QoS class -+ if isKubeInfra(pod) { -+ return 0 -+ } - // Safe downcast to do for all systems with < 2.1 billion CPUs. - // Per the language spec, `int` is guaranteed to be at least 32 bits wide. - // https://golang.org/ref/spec#Numeric_types -@@ -417,3 +452,13 @@ func (p *staticPolicy) generateCPUTopologyHints(availableCPUs cpuset.CPUSet, req - - return hints - } -+ -+// check if a given pod is in a platform infrastructure namespace -+func isKubeInfra(pod *v1.Pod) bool { -+ for _, namespace := range infraNamespaces { -+ if namespace == pod.Namespace { -+ return true -+ } -+ } -+ return false -+} -diff --git a/pkg/kubelet/cm/cpumanager/policy_static_test.go b/pkg/kubelet/cm/cpumanager/policy_static_test.go -index b2982432c13..04947d28055 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static_test.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static_test.go -@@ -747,7 +747,8 @@ func TestStaticPolicyStartWithResvList(t *testing.T) { - } - - func TestStaticPolicyAddWithResvList(t *testing.T) { -- -+ infraPod := makePod("fakePod", "fakeContainer2", "200m", "200m") -+ infraPod.Namespace = "kube-system" - testCases := []staticPolicyTestWithResvList{ - { - description: "GuPodSingleCore, SingleSocketHT, ExpectError", -@@ -789,6 +790,22 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - expCPUAlloc: true, - expCSet: cpuset.NewCPUSet(4, 5), - }, -+ { -+ description: "InfraPod, SingleSocketHT, ExpectAllocReserved", -+ topo: topoSingleSocketHT, -+ numReservedCPUs: 2, -+ reserved: cpuset.NewCPUSet(0, 1), -+ stAssignments: state.ContainerCPUAssignments{ -+ "fakePod": map[string]cpuset.CPUSet{ -+ "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -+ }, -+ }, -+ stDefaultCPUSet: cpuset.NewCPUSet(4, 5), -+ pod: infraPod, -+ expErr: nil, -+ expCPUAlloc: true, -+ expCSet: cpuset.NewCPUSet(0, 1), -+ }, - } - - testExcl := true --- -2.16.6 - diff --git a/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch b/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch deleted file mode 100644 index aea3adc28..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch +++ /dev/null @@ -1,526 +0,0 @@ -From de3b9749f765398d4064c3225caa0a960d27eff3 Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Thu, 9 Apr 2020 12:52:19 -0600 -Subject: [PATCH 5/6] kubelet cpumanager introduce concept of isolated CPUs - -This introduces the concept of "isolated CPUs", which are CPUs that -have been isolated at the kernel level via the "isolcpus" kernel boot -parameter. - -When starting the kubelet process, two separate sets of reserved CPUs -may be specified. With this change CPUs reserved via -'--system-reserved=cpu' will be used for infrastructure pods while the -isolated CPUs should be reserved via '--kube-reserved=cpu' to cause -kubelet to skip over them for "normal" CPU resource tracking. The -kubelet code will double-check that the specified isolated CPUs match -what the kernel exposes in "/sys/devices/system/cpu/isolated". - -A plugin (outside the scope of this commit) will expose the isolated -CPUs to kubelet via the device plugin API. - -If a pod specifies some number of "isolcpus" resources, the device -manager will allocate them. In this code we check whether such -resources have been allocated, and if so we set the container cpuset to -the isolated CPUs. This does mean that it really only makes sense to -specify "isolcpus" resources for best-effort or burstable pods, not for -guaranteed ones since that would throw off the accounting code. In -order to ensure the accounting still works as designed, if "isolcpus" -are specified for guaranteed pods, the affinity will be set to the -non-isolated CPUs. - -Signed-off-by: Chris Friesen -Co-authored-by: Jim Gauld ---- - pkg/kubelet/cm/container_manager_linux.go | 1 + - pkg/kubelet/cm/cpumanager/cpu_manager.go | 30 ++++++++- - pkg/kubelet/cm/cpumanager/cpu_manager_test.go | 14 +++- - pkg/kubelet/cm/cpumanager/policy_static.go | 86 +++++++++++++++++++++++-- - pkg/kubelet/cm/cpumanager/policy_static_test.go | 46 ++++++++++--- - 5 files changed, 158 insertions(+), 19 deletions(-) - -diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go -index 13c7176bdc2..e6ffb7a6194 100644 ---- a/pkg/kubelet/cm/container_manager_linux.go -+++ b/pkg/kubelet/cm/container_manager_linux.go -@@ -325,6 +325,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I - cm.GetNodeAllocatableReservation(), - nodeConfig.KubeletRootDir, - cm.topologyManager, -+ cm.deviceManager, - ) - if err != nil { - klog.Errorf("failed to initialize cpu manager: %v", err) -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index 322a2040a77..08d45c77182 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -21,6 +21,8 @@ import ( - "math" - "sync" - "time" -+ "strings" -+ "io/ioutil" - - cadvisorapi "github.com/google/cadvisor/info/v1" - v1 "k8s.io/api/core/v1" -@@ -34,6 +36,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" - "k8s.io/kubernetes/pkg/kubelet/config" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" - "k8s.io/kubernetes/pkg/kubelet/status" - v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" -@@ -51,6 +54,25 @@ type policyName string - // cpuManagerStateFileName is the file name where cpu manager stores its state - const cpuManagerStateFileName = "cpu_manager_state" - -+// get the system-level isolated CPUs -+func getIsolcpus() cpuset.CPUSet { -+ dat, err := ioutil.ReadFile("/sys/devices/system/cpu/isolated") -+ if err != nil { -+ klog.Errorf("[cpumanager] unable to read sysfs isolcpus subdir") -+ return cpuset.NewCPUSet() -+ } -+ -+ // The isolated cpus string ends in a newline -+ cpustring := strings.TrimSuffix(string(dat), "\n") -+ cset, err := cpuset.Parse(cpustring) -+ if err != nil { -+ klog.Errorf("[cpumanager] unable to parse sysfs isolcpus string to cpuset") -+ return cpuset.NewCPUSet() -+ } -+ -+ return cset -+} -+ - // Manager interface provides methods for Kubelet to manage pod cpus. - type Manager interface { - // Start is called during Kubelet initialization. -@@ -127,7 +149,7 @@ func (s *sourcesReadyStub) AddSource(source string) {} - func (s *sourcesReadyStub) AllReady() bool { return true } - - // NewManager creates new cpu manager based on provided policy --func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo *cadvisorapi.MachineInfo, numaNodeInfo topology.NUMANodeInfo, specificCPUs cpuset.CPUSet, nodeAllocatableReservation v1.ResourceList, stateFileDirectory string, affinity topologymanager.Store) (Manager, error) { -+func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo *cadvisorapi.MachineInfo, numaNodeInfo topology.NUMANodeInfo, specificCPUs cpuset.CPUSet, nodeAllocatableReservation v1.ResourceList, stateFileDirectory string, affinity topologymanager.Store, deviceManager devicemanager.Manager) (Manager, error) { - var topo *topology.CPUTopology - var policy Policy - -@@ -164,7 +186,11 @@ func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo - // NOTE: Set excludeReserved unconditionally to exclude reserved CPUs from default cpuset. - // This variable is primarily to make testing easier. - excludeReserved := true -- policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, affinity, excludeReserved) -+ // isolCPUs is the set of kernel-isolated CPUs. They should be a subset of specificCPUs or -+ // of the CPUs that NewStaticPolicy() will pick if numReservedCPUs is set. It's only in the -+ // argument list here for ease of testing, it's really internal to the policy. -+ isolCPUs := getIsolcpus() -+ policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, isolCPUs, affinity, deviceManager, excludeReserved) - if err != nil { - return nil, fmt.Errorf("new static policy error: %v", err) - } -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -index a4d8f13c853..e806c62e80e 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -@@ -38,6 +38,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology" - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - ) - - type mockState struct { -@@ -207,6 +208,7 @@ func makeMultiContainerPod(initCPUs, appCPUs []struct{ request, limit string }) - } - - func TestCPUManagerAdd(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - testExcl := false - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ -@@ -222,7 +224,8 @@ func TestCPUManagerAdd(t *testing.T) { - }, - 0, - cpuset.NewCPUSet(), -- topologymanager.NewFakeManager(), testExcl) -+ cpuset.NewCPUSet(), -+ topologymanager.NewFakeManager(), testDM, testExcl) - testCases := []struct { - description string - updateErr error -@@ -476,8 +479,9 @@ func TestCPUManagerAddWithInitContainers(t *testing.T) { - } - - testExcl := false -+ testDM, _ := devicemanager.NewManagerStub() - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testExcl) - - state := &mockState{ - assignments: testCase.stAssignments, -@@ -617,7 +621,8 @@ func TestCPUManagerGenerate(t *testing.T) { - } - defer os.RemoveAll(sDir) - -- mgr, err := NewManager(testCase.cpuPolicyName, 5*time.Second, machineInfo, nil, cpuset.NewCPUSet(), testCase.nodeAllocatableReservation, sDir, topologymanager.NewFakeManager()) -+ testDM, err := devicemanager.NewManagerStub() -+ mgr, err := NewManager(testCase.cpuPolicyName, 5*time.Second, machineInfo, nil, cpuset.NewCPUSet(), testCase.nodeAllocatableReservation, sDir, topologymanager.NewFakeManager(), testDM) - if testCase.expectedError != nil { - if !strings.Contains(err.Error(), testCase.expectedError.Error()) { - t.Errorf("Unexpected error message. Have: %s wants %s", err.Error(), testCase.expectedError.Error()) -@@ -972,6 +977,7 @@ func TestReconcileState(t *testing.T) { - // the following tests are with --reserved-cpus configured - func TestCPUManagerAddWithResvList(t *testing.T) { - testExcl := false -+ testDM, _ := devicemanager.NewManagerStub() - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ - NumCPUs: 4, -@@ -986,7 +992,9 @@ func TestCPUManagerAddWithResvList(t *testing.T) { - }, - 1, - cpuset.NewCPUSet(0), -+ cpuset.NewCPUSet(), - topologymanager.NewFakeManager(), -+ testDM, - testExcl, - ) - testCases := []struct { -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index e511caf7ab7..490e7675679 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -18,6 +18,7 @@ package cpumanager - - import ( - "fmt" -+ "strconv" - - v1 "k8s.io/api/core/v1" - "k8s.io/klog" -@@ -27,6 +28,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - ) - - // PolicyStatic is the name of the static policy -@@ -80,6 +82,10 @@ type staticPolicy struct { - topology *topology.CPUTopology - // set of CPUs that is not available for exclusive assignment - reserved cpuset.CPUSet -+ // subset of reserved CPUs with isolcpus attribute -+ isolcpus cpuset.CPUSet -+ // parent containerManager, used to get device list -+ deviceManager devicemanager.Manager - // If true, default CPUSet should exclude reserved CPUs - excludeReserved bool - // topology manager reference to get container Topology affinity -@@ -92,7 +98,7 @@ var _ Policy = &staticPolicy{} - // NewStaticPolicy returns a CPU manager policy that does not change CPU - // assignments for exclusively pinned guaranteed containers after the main - // container process starts. --func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, affinity topologymanager.Store, excludeReserved bool) (Policy, error) { -+func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, isolCPUs cpuset.CPUSet, affinity topologymanager.Store, deviceManager devicemanager.Manager, excludeReserved bool) (Policy, error) { - allCPUs := topology.CPUDetails.CPUs() - var reserved cpuset.CPUSet - if reservedCPUs.Size() > 0 { -@@ -113,9 +119,17 @@ func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reserv - - klog.Infof("[cpumanager] reserved %d CPUs (\"%s\") not available for exclusive assignment", reserved.Size(), reserved) - -+ if !isolCPUs.IsSubsetOf(reserved) { -+ klog.Errorf("[cpumanager] isolCPUs %v is not a subset of reserved %v", isolCPUs, reserved) -+ reserved = reserved.Union(isolCPUs) -+ klog.Warningf("[cpumanager] mismatch isolCPUs %v, force reserved %v", isolCPUs, reserved) -+ } -+ - return &staticPolicy{ - topology: topology, - reserved: reserved, -+ isolcpus: isolCPUs, -+ deviceManager: deviceManager, - excludeReserved: excludeReserved, - affinity: affinity, - }, nil -@@ -151,8 +165,8 @@ func (p *staticPolicy) validateState(s state.State) error { - } else { - s.SetDefaultCPUSet(allCPUs) - } -- klog.Infof("[cpumanager] static policy: CPUSet: allCPUs:%v, reserved:%v, default:%v\n", -- allCPUs, p.reserved, s.GetDefaultCPUSet()) -+ klog.Infof("[cpumanager] static policy: CPUSet: allCPUs:%v, reserved:%v, isolcpus:%v, default:%v\n", -+ allCPUs, p.reserved, p.isolcpus, s.GetDefaultCPUSet()) - return nil - } - -@@ -221,12 +235,13 @@ func (p *staticPolicy) Allocate(s state.State, pod *v1.Pod, container *v1.Contai - return nil - } - -- cpuset := p.reserved -+ // TODO: Is the clone actually needed? -+ cpuset := p.reserved.Clone().Difference(p.isolcpus) - if cpuset.IsEmpty() { - // If this happens then someone messed up. - return fmt.Errorf("[cpumanager] static policy: reserved container unable to allocate cpus " + -- "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v, reserved:%v", -- pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset, p.reserved) -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v, reserved:%v, isolcpus:%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset, p.reserved, p.isolcpus) - } - s.SetCPUSet(string(pod.UID), container.Name, cpuset) - klog.Infof("[cpumanager] static policy: reserved: AddContainer " + -@@ -267,7 +282,37 @@ func (p *staticPolicy) Allocate(s state.State, pod *v1.Pod, container *v1.Contai - } - } - } -+ klog.Infof("[cpumanager] guaranteed: AddContainer " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); numCPUS=%d, cpuset=%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, numCPUs, cpuset) -+ return nil -+ } -+ -+ if isolcpus := p.podIsolCPUs(pod, container); isolcpus.Size() > 0 { -+ // container has requested isolated CPUs -+ if set, ok := s.GetCPUSet(string(pod.UID), container.Name); ok { -+ if set.Equals(isolcpus) { -+ klog.Infof("[cpumanager] isolcpus container already present in state, skipping " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s)", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name) -+ return nil -+ } else { -+ klog.Infof("[cpumanager] isolcpus container state has cpus %v, should be %v" + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s)", -+ isolcpus, set, pod.Namespace, string(pod.UID), pod.Name, container.Name) -+ } -+ } -+ // Note that we do not do anything about init containers here. -+ // It looks like devices are allocated per-pod based on effective requests/limits -+ // and extra devices from initContainers are not freed up when the regular containers start. -+ // TODO: confirm this is still true for 1.18 -+ s.SetCPUSet(string(pod.UID), container.Name, isolcpus) -+ klog.Infof("[cpumanager] isolcpus: AddContainer " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, isolcpus) -+ return nil - } -+ - // container belongs in the shared pool (nothing to do; use default cpuset) - return nil - } -@@ -462,3 +507,32 @@ func isKubeInfra(pod *v1.Pod) bool { - } - return false - } -+ -+// get the isolated CPUs (if any) from the devices associated with a specific container -+func (p *staticPolicy) podIsolCPUs(pod *v1.Pod, container *v1.Container) cpuset.CPUSet { -+ // NOTE: This is required for TestStaticPolicyAdd() since makePod() does -+ // not create UID. We also need a way to properly stub devicemanager. -+ if len(string(pod.UID)) == 0 { -+ return cpuset.NewCPUSet() -+ } -+ devices := p.deviceManager.GetDevices(string(pod.UID), container.Name) -+ for _, dev := range devices { -+ // this resource name needs to match the isolcpus device plugin -+ if dev.ResourceName == "windriver.com/isolcpus" { -+ cpuStrList := dev.DeviceIds -+ if len(cpuStrList) > 0 { -+ cpuSet := cpuset.NewCPUSet() -+ // loop over the list of strings, convert each one to int, add to cpuset -+ for _, cpuStr := range cpuStrList { -+ cpu, err := strconv.Atoi(cpuStr) -+ if err != nil { -+ panic(err) -+ } -+ cpuSet = cpuSet.Union(cpuset.NewCPUSet(cpu)) -+ } -+ return cpuSet -+ } -+ } -+ } -+ return cpuset.NewCPUSet() -+} -diff --git a/pkg/kubelet/cm/cpumanager/policy_static_test.go b/pkg/kubelet/cm/cpumanager/policy_static_test.go -index 04947d28055..999ab3c1af0 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static_test.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static_test.go -@@ -27,6 +27,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - ) - - type staticPolicyTest struct { -@@ -45,8 +46,9 @@ type staticPolicyTest struct { - } - - func TestStaticPolicyName(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - testExcl := false -- policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) -+ policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testExcl) - - policyName := policy.Name() - if policyName != "static" { -@@ -56,6 +58,7 @@ func TestStaticPolicyName(t *testing.T) { - } - - func TestStaticPolicyStart(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - testCases := []staticPolicyTest{ - { - description: "non-corrupted state", -@@ -131,7 +134,7 @@ func TestStaticPolicyStart(t *testing.T) { - } - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) -+ p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testCase.excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: testCase.stAssignments, -@@ -179,6 +182,7 @@ func TestStaticPolicyAdd(t *testing.T) { - largeTopoSock0CPUSet := largeTopoSock0Builder.Result() - largeTopoSock1CPUSet := largeTopoSock1Builder.Result() - -+ testDM, _ := devicemanager.NewManagerStub() - testCases := []staticPolicyTest{ - { - description: "GuPodSingleCore, SingleSocketHT, ExpectError", -@@ -447,7 +451,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testCase.excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -490,6 +494,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - func TestStaticPolicyRemove(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - excludeReserved := false - testCases := []staticPolicyTest{ - { -@@ -549,7 +554,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -571,6 +576,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - func TestTopologyAwareAllocateCPUs(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - excludeReserved := false - testCases := []struct { - description string -@@ -640,7 +646,7 @@ func TestTopologyAwareAllocateCPUs(t *testing.T) { - }, - } - for _, tc := range testCases { -- p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) -+ p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: tc.stAssignments, -@@ -673,6 +679,7 @@ type staticPolicyTestWithResvList struct { - topo *topology.CPUTopology - numReservedCPUs int - reserved cpuset.CPUSet -+ isolcpus cpuset.CPUSet - stAssignments state.ContainerCPUAssignments - stDefaultCPUSet cpuset.CPUSet - pod *v1.Pod -@@ -713,9 +720,10 @@ func TestStaticPolicyStartWithResvList(t *testing.T) { - }, - } - testExcl := false -+ testDM, _ := devicemanager.NewManagerStub() - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) -+ p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testExcl) - if !reflect.DeepEqual(err, testCase.expNewErr) { - t.Errorf("StaticPolicy Start() error (%v). expected error: %v but got: %v", - testCase.description, testCase.expNewErr, err) -@@ -755,6 +763,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 1, - reserved: cpuset.NewCPUSet(0), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{}, - stDefaultCPUSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "8000m", "8000m"), -@@ -767,6 +776,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{}, - stDefaultCPUSet: cpuset.NewCPUSet(2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "1000m", "1000m"), -@@ -779,6 +789,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{ - "fakePod": map[string]cpuset.CPUSet{ - "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -@@ -795,6 +806,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{ - "fakePod": map[string]cpuset.CPUSet{ - "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -@@ -806,12 +818,30 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - expCPUAlloc: true, - expCSet: cpuset.NewCPUSet(0, 1), - }, -+ { -+ description: "InfraPod, SingleSocketHT, Isolcpus, ExpectAllocReserved", -+ topo: topoSingleSocketHT, -+ numReservedCPUs: 2, -+ reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(1), -+ stAssignments: state.ContainerCPUAssignments{ -+ "fakePod": map[string]cpuset.CPUSet{ -+ "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -+ }, -+ }, -+ stDefaultCPUSet: cpuset.NewCPUSet(4, 5), -+ pod: infraPod, -+ expErr: nil, -+ expCPUAlloc: true, -+ expCSet: cpuset.NewCPUSet(0), -+ }, - } - - testExcl := true -+ testDM, _ := devicemanager.NewManagerStub() - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) -- -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, testCase.isolcpus, topologymanager.NewFakeManager(), testDM, testExcl) -+ - st := &mockState{ - assignments: testCase.stAssignments, - defaultCPUSet: testCase.stDefaultCPUSet, --- -2.16.6 - diff --git a/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch b/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch deleted file mode 100644 index f964fb842..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch +++ /dev/null @@ -1,312 +0,0 @@ -From c109ab23f98b00ee5f98000c760985da967d47a9 Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Tue, 1 Oct 2019 00:16:00 -0600 -Subject: [PATCH 3/6] kubelet cpumanager keep normal containers off reserved - CPUs - -When starting the kubelet process, two separate sets of reserved CPUs -may be specified. With this change CPUs reserved via '--system-reserved=cpu' -or '--kube-reserved=cpu' will be ignored by kubernetes itself. A small -tweak to the default CPU affinity ensures that "normal" Kubernetes -pods won't run on the reserved CPUs. - -Signed-off-by: Chris Friesen ---- - pkg/kubelet/cm/cpumanager/cpu_manager.go | 5 +++- - pkg/kubelet/cm/cpumanager/cpu_manager_test.go | 11 +++++--- - pkg/kubelet/cm/cpumanager/policy_static.go | 29 ++++++++++++++++---- - pkg/kubelet/cm/cpumanager/policy_static_test.go | 35 ++++++++++++++++++------- - 4 files changed, 61 insertions(+), 19 deletions(-) - -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index c0c440453a9..322a2040a77 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -161,7 +161,10 @@ func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo - // exclusively allocated. - reservedCPUsFloat := float64(reservedCPUs.MilliValue()) / 1000 - numReservedCPUs := int(math.Ceil(reservedCPUsFloat)) -- policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, affinity) -+ // NOTE: Set excludeReserved unconditionally to exclude reserved CPUs from default cpuset. -+ // This variable is primarily to make testing easier. -+ excludeReserved := true -+ policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, affinity, excludeReserved) - if err != nil { - return nil, fmt.Errorf("new static policy error: %v", err) - } -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -index e9c7852c602..a4d8f13c853 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -@@ -207,6 +207,7 @@ func makeMultiContainerPod(initCPUs, appCPUs []struct{ request, limit string }) - } - - func TestCPUManagerAdd(t *testing.T) { -+ testExcl := false - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ - NumCPUs: 4, -@@ -221,7 +222,7 @@ func TestCPUManagerAdd(t *testing.T) { - }, - 0, - cpuset.NewCPUSet(), -- topologymanager.NewFakeManager()) -+ topologymanager.NewFakeManager(), testExcl) - testCases := []struct { - description string - updateErr error -@@ -474,8 +475,9 @@ func TestCPUManagerAddWithInitContainers(t *testing.T) { - }, - } - -+ testExcl := false - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) - - state := &mockState{ - assignments: testCase.stAssignments, -@@ -969,6 +971,7 @@ func TestReconcileState(t *testing.T) { - // above test cases are without kubelet --reserved-cpus cmd option - // the following tests are with --reserved-cpus configured - func TestCPUManagerAddWithResvList(t *testing.T) { -+ testExcl := false - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ - NumCPUs: 4, -@@ -983,7 +986,9 @@ func TestCPUManagerAddWithResvList(t *testing.T) { - }, - 1, - cpuset.NewCPUSet(0), -- topologymanager.NewFakeManager()) -+ topologymanager.NewFakeManager(), -+ testExcl, -+ ) - testCases := []struct { - description string - updateErr error -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index da68ed808bd..e631d5d6a74 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -75,6 +75,8 @@ type staticPolicy struct { - topology *topology.CPUTopology - // set of CPUs that is not available for exclusive assignment - reserved cpuset.CPUSet -+ // If true, default CPUSet should exclude reserved CPUs -+ excludeReserved bool - // topology manager reference to get container Topology affinity - affinity topologymanager.Store - } -@@ -85,7 +87,7 @@ var _ Policy = &staticPolicy{} - // NewStaticPolicy returns a CPU manager policy that does not change CPU - // assignments for exclusively pinned guaranteed containers after the main - // container process starts. --func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, affinity topologymanager.Store) (Policy, error) { -+func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, affinity topologymanager.Store, excludeReserved bool) (Policy, error) { - allCPUs := topology.CPUDetails.CPUs() - var reserved cpuset.CPUSet - if reservedCPUs.Size() > 0 { -@@ -109,6 +111,7 @@ func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reserv - return &staticPolicy{ - topology: topology, - reserved: reserved, -+ excludeReserved: excludeReserved, - affinity: affinity, - }, nil - } -@@ -136,7 +139,15 @@ func (p *staticPolicy) validateState(s state.State) error { - } - // state is empty initialize - allCPUs := p.topology.CPUDetails.CPUs() -- s.SetDefaultCPUSet(allCPUs) -+ if p.excludeReserved { -+ // Exclude reserved CPUs from the default CPUSet to keep containers off them -+ // unless explicitly affined. -+ s.SetDefaultCPUSet(allCPUs.Difference(p.reserved)) -+ } else { -+ s.SetDefaultCPUSet(allCPUs) -+ } -+ klog.Infof("[cpumanager] static policy: CPUSet: allCPUs:%v, reserved:%v, default:%v\n", -+ allCPUs, p.reserved, s.GetDefaultCPUSet()) - return nil - } - -@@ -144,9 +155,11 @@ func (p *staticPolicy) validateState(s state.State) error { - // 1. Check if the reserved cpuset is not part of default cpuset because: - // - kube/system reserved have changed (increased) - may lead to some containers not being able to start - // - user tampered with file -- if !p.reserved.Intersection(tmpDefaultCPUset).Equals(p.reserved) { -- return fmt.Errorf("not all reserved cpus: \"%s\" are present in defaultCpuSet: \"%s\"", -- p.reserved.String(), tmpDefaultCPUset.String()) -+ if !p.excludeReserved { -+ if !p.reserved.Intersection(tmpDefaultCPUset).Equals(p.reserved) { -+ return fmt.Errorf("not all reserved cpus: \"%s\" are present in defaultCpuSet: \"%s\"", -+ p.reserved.String(), tmpDefaultCPUset.String()) -+ } - } - - // 2. Check if state for static policy is consistent -@@ -175,6 +188,9 @@ func (p *staticPolicy) validateState(s state.State) error { - } - } - totalKnownCPUs = totalKnownCPUs.UnionAll(tmpCPUSets) -+ if p.excludeReserved { -+ totalKnownCPUs = totalKnownCPUs.Union(p.reserved) -+ } - if !totalKnownCPUs.Equals(p.topology.CPUDetails.CPUs()) { - return fmt.Errorf("current set of available CPUs \"%s\" doesn't match with CPUs in state \"%s\"", - p.topology.CPUDetails.CPUs().String(), totalKnownCPUs.String()) -@@ -229,6 +245,9 @@ func (p *staticPolicy) RemoveContainer(s state.State, podUID string, containerNa - klog.Infof("[cpumanager] static policy: RemoveContainer (pod: %s, container: %s)", podUID, containerName) - if toRelease, ok := s.GetCPUSet(podUID, containerName); ok { - s.Delete(podUID, containerName) -+ if p.excludeReserved { -+ toRelease = toRelease.Difference(p.reserved) -+ } - // Mutate the shared pool, adding released cpus. - s.SetDefaultCPUSet(s.GetDefaultCPUSet().Union(toRelease)) - } -diff --git a/pkg/kubelet/cm/cpumanager/policy_static_test.go b/pkg/kubelet/cm/cpumanager/policy_static_test.go -index ea2bcf11333..b2982432c13 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static_test.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static_test.go -@@ -33,6 +33,7 @@ type staticPolicyTest struct { - description string - topo *topology.CPUTopology - numReservedCPUs int -+ excludeReserved bool - podUID string - containerName string - stAssignments state.ContainerCPUAssignments -@@ -44,7 +45,8 @@ type staticPolicyTest struct { - } - - func TestStaticPolicyName(t *testing.T) { -- policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ testExcl := false -+ policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) - - policyName := policy.Name() - if policyName != "static" { -@@ -74,6 +76,15 @@ func TestStaticPolicyStart(t *testing.T) { - stDefaultCPUSet: cpuset.NewCPUSet(), - expCSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), - }, -+ { -+ description: "empty cpuset exclude reserved", -+ topo: topoDualSocketHT, -+ numReservedCPUs: 2, -+ excludeReserved: true, -+ stAssignments: state.ContainerCPUAssignments{}, -+ stDefaultCPUSet: cpuset.NewCPUSet(), -+ expCSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 7, 8, 9, 10, 11), -+ }, - { - description: "reserved cores 0 & 6 are not present in available cpuset", - topo: topoDualSocketHT, -@@ -120,7 +131,7 @@ func TestStaticPolicyStart(t *testing.T) { - } - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: testCase.stAssignments, -@@ -436,7 +447,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -479,6 +490,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - func TestStaticPolicyRemove(t *testing.T) { -+ excludeReserved := false - testCases := []staticPolicyTest{ - { - description: "SingleSocketHT, DeAllocOneContainer", -@@ -537,7 +549,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -559,6 +571,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - func TestTopologyAwareAllocateCPUs(t *testing.T) { -+ excludeReserved := false - testCases := []struct { - description string - topo *topology.CPUTopology -@@ -627,7 +640,7 @@ func TestTopologyAwareAllocateCPUs(t *testing.T) { - }, - } - for _, tc := range testCases { -- p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: tc.stAssignments, -@@ -699,9 +712,10 @@ func TestStaticPolicyStartWithResvList(t *testing.T) { - expNewErr: fmt.Errorf("[cpumanager] unable to reserve the required amount of CPUs (size of 0-1 did not equal 1)"), - }, - } -+ testExcl := false - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager()) -+ p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) - if !reflect.DeepEqual(err, testCase.expNewErr) { - t.Errorf("StaticPolicy Start() error (%v). expected error: %v but got: %v", - testCase.description, testCase.expNewErr, err) -@@ -741,7 +755,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - numReservedCPUs: 1, - reserved: cpuset.NewCPUSet(0), - stAssignments: state.ContainerCPUAssignments{}, -- stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), -+ stDefaultCPUSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "8000m", "8000m"), - expErr: fmt.Errorf("not enough cpus available to satisfy request"), - expCPUAlloc: false, -@@ -753,7 +767,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), - stAssignments: state.ContainerCPUAssignments{}, -- stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), -+ stDefaultCPUSet: cpuset.NewCPUSet(2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "1000m", "1000m"), - expErr: nil, - expCPUAlloc: true, -@@ -769,7 +783,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), - }, - }, -- stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 4, 5), -+ stDefaultCPUSet: cpuset.NewCPUSet(4, 5), - pod: makePod("fakePod", "fakeContainer3", "2000m", "2000m"), - expErr: nil, - expCPUAlloc: true, -@@ -777,8 +791,9 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - }, - } - -+ testExcl := true - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) - - st := &mockState{ - assignments: testCase.stAssignments, --- -2.16.6 - diff --git a/kubernetes/kubernetes-1.18.1/centos/kubernetes.spec b/kubernetes/kubernetes-1.18.1/centos/kubernetes.spec deleted file mode 100644 index 40929d10b..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/kubernetes.spec +++ /dev/null @@ -1,2261 +0,0 @@ -%if 0%{?fedora} -%global with_devel 1 -%global with_bundled 0 -%global with_debug 1 -%else -%global with_devel 0 -%global with_bundled 1 -%global with_debug 0 -%endif - -%if 0%{?with_debug} -# https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12 -%global _dwz_low_mem_die_limit 0 -%else -%global debug_package %{nil} -%endif - -%global provider github -%global provider_tld com -%global project kubernetes -%global repo kubernetes -# https://github.com/kubernetes/kubernetes - -%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} -%global import_path k8s.io/kubernetes -%global commit 1.18.1 - -%global kube_version 1.18.1 -%global kube_git_version v%{kube_version} - -%global go_version 1.13.9 -%global go_path /usr/lib/golang-%{go_version}-%{go_version}/bin - -# Needed otherwise "version_ldflags=$(kube::version_ldflags)" doesn't work -%global _buildshell /bin/bash -%global _checkshell /bin/bash - -# Used to simplify the paths for install and files -%global _stage1 %{_exec_prefix}/local/kubernetes/%{kube_version}/stage1 -%global _stage2 %{_exec_prefix}/local/kubernetes/%{kube_version}/stage2 - -############################################## -Name: kubernetes-%{kube_version} -Version: %{kube_version} -Release: 1%{?_tis_dist}.%{tis_patch_ver} -Summary: Container cluster management -License: ASL 2.0 -URL: https://%{import_path} -ExclusiveArch: x86_64 aarch64 ppc64le s390x -Source0: %{project}-v%{kube_version}.tar.gz -Source4: kubeadm.conf -Source5: kubelet-cgroup-setup.sh - -Source33: genmanpages.sh - -Patch1: 0001-Fix-pagesize-check-to-allow-for-options-already-endi.patch -Patch3: fix_http2_erringroundtripper_handling.patch -Patch4: kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch -Patch5: kubelet-cpumanager-keep-normal-containers-off-reserv.patch -Patch6: kubelet-cpumanager-infrastructure-pods-use-system-re.patch -Patch7: kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch -Patch8: Fix-exclusive-CPU-allocations-being-deleted-at-conta.patch -Patch9: kubeadm-create-platform-pods-with-zero-CPU-resources.patch -Patch10: add-option-to-disable-isolcpu-awareness.patch -Patch11: kubernetes-make-isolcpus-allocation-SMT-aware.patch - -# It obsoletes cadvisor but needs its source code (literally integrated) -Obsoletes: cadvisor - -# kubernetes is decomposed into master and node subpackages -# require both of them for updates -Requires: kubernetes-%{kube_version}-master -Requires: kubernetes-%{kube_version}-node - -%description -%{summary} - -%if 0%{?with_devel} -%package devel -Summary: %{summary} -BuildArch: noarch - -Provides: golang(%{import_path}/cmd/genutils) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubectl/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/normalization) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/install) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/v1) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/conversion-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/deepcopy-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/generator) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/go-to-protobuf/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/import-boss/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/namer) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/parser) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/set-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/types) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/install) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/pkg/federation-controller/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/admission) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/annotations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/endpoints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta/metatypes) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest/resttest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing/compat) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery/registered) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v0) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v2alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/audit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator/bearertoken) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/union) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/handlers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/chaosclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/leaderelection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/record) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/restclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/testing/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/transport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/dynamic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/adapters/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/auth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient/simple) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/azure) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/cloudstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/gce) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/mesos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/openstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/ovirt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/rackspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/vsphere) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/daemon) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/disruption) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework/informers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector/metaonly) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podgc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/route) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/statusupdater) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion/queryparams) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/dns) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fieldpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fields) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/openapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/healthz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/httplog) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/rollout) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/set) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/templates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/editor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/jsonmerge) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/metricsutil) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/client) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cm) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/custommetrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockershim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockertools) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/envvars) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/events) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/eviction) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/images) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/kuberuntime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/leaky) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hairpin) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/kubenet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/mock_network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pleg) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/results) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/qos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/remote) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt/mock_os) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rktshim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/status) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/format) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/ioutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/queue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/sliceutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubemark) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master/ports) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/http) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/tcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/healthcheck) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/userspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/evaluator/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/subjectaccessreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/cachesize) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/componentstatus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/experimental/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rangeallocation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/registrytest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/tokenreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/recognizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/streaming) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/versioning) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontext) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/seccomp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/selection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ssh) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/etcdtest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing/testingcert) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend/factory) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ui) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/async) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/bandwidth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chmod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chown) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/clock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/codeinspector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/configz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crlf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crypto) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/dbus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/diff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/ebtables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/env) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flowcontrol) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flushwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/framer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap/exponentialbackoff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/hash) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/homedir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream/spdy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/integer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/interrupt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/intstr) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/io) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/jsonpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/keymutex) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/limitwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/logs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/maps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/mount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/oom) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/parsers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/procfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/resourcecontainer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rlimit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/slice) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strategicpatch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strings) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/system) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/term) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/threading) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/uuid) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation/field) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wait) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/workqueue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wsstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/verflag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/aws_ebs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_dd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_file) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cephfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cinder) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/downwardapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/empty_dir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/fc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flexvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flocker) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/gce_pd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/git_repo) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/glusterfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/host_path) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/iscsi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/nfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/quobyte) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/rbd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/nestedpendingoperations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/operationexecutor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/volumehelper) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/vsphere_volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/versioned) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/admit) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/alwayspullimages) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/antiaffinity) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/deny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/exec) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/initialresources) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/limitranger) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/autoprovision) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/exists) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/persistentvolume/label) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/securitycontext/scdeny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/storageclass/default) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/allow) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/keystone) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/passwordfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/basicauth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/union) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/x509) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokenfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokentest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/predicates) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities/util) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider/defaults) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/factory) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/schedulercache) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/webhook) = %{version}-%{release} - -%description devel -Libraries for building packages importing k8s.io/kubernetes. -Currently, the devel is not suitable for development. -It is meant only as a buildtime dependency for other projects. - -This package contains library source intended for -building other packages which use %{project}/%{repo}. -%endif - -############################################## -%package unit-test -Summary: %{summary} - for running unit tests - -# below Rs used for testing -Requires: golang-%{go_version} -Requires: etcd >= 2.0.9 -Requires: hostname -Requires: rsync -Requires: NetworkManager - -%description unit-test -%{summary} - for running unit tests - -############################################## -%package master -Summary: Kubernetes services for master host - -# Build with the recommended golang for this Kubernetes version -BuildRequires: golang-%{go_version} -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: kubernetes-%{kube_version}-client - -%description master -Kubernetes services for master host - -############################################## -%package node -Summary: Kubernetes services for node host - -%if 0%{?fedora} >= 27 -Requires: (docker or docker-ce) -Suggests: docker-ce -%else -Requires: docker-ce -%endif -Requires: conntrack-tools - -BuildRequires: golang-%{go_version} -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: socat -Requires: kubernetes-%{kube_version}-client - -%description node -Kubernetes services for node host - -############################################## -%package kubeadm -Summary: Kubernetes tool for standing up clusters -Requires: kubernetes-%{kube_version}-client -Requires: containernetworking-cni - -%description kubeadm -Kubernetes tool for standing up clusters - -############################################## -%package client -Summary: Kubernetes client tools - -BuildRequires: golang-%{go_version} -BuildRequires: go-bindata - -%description client -Kubernetes client tools like kubectl - -############################################## -%package kube-misc -Summary: dummy package -%description kube-misc -Kubernetes dummy package for misc stuff we don't want to -install in production. - -############################################## - -%prep -%setup -q -n %{repo}-%{commit} -%patch1 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 - -#src/k8s.io/kubernetes/pkg/util/certificates -# Patch the code to remove eliptic.P224 support -for dir in vendor/github.com/google/certificate-transparency/go/x509 pkg/util/certificates; do - if [ -d "${dir}" ]; then - pushd ${dir} - sed -i "/^[^=]*$/ s/oidNamedCurveP224/oidNamedCurveP256/g" *.go - sed -i "/^[^=]*$/ s/elliptic\.P224/elliptic.P256/g" *.go - popd - fi -done - -# Move all the code under src/k8s.io/kubernetes directory -mkdir -p src/k8s.io/kubernetes -mv $(ls | grep -v "^src$") src/k8s.io/kubernetes/. - -############### - -%build -export PATH=%{go_path}:$PATH -export PBR_VERSION=%{version} -pushd src/k8s.io/kubernetes/ -export KUBE_GIT_TREE_STATE="clean" -export KUBE_GIT_COMMIT=%{commit} -export KUBE_GIT_VERSION=%{kube_git_version} -export KUBE_EXTRA_GOPATH=$(pwd)/Godeps/_workspace - -# Verify the go version we will build against -go version - -# https://bugzilla.redhat.com/show_bug.cgi?id=1392922#c1 -%ifarch ppc64le -export GOLDFLAGS='-linkmode=external' -%endif - -# uncomment these two lines to build unoptimized binaries for debugging. -# export GOLDFLAGS="" -# export GOGCFLAGS="-N -l" -make WHAT="cmd/kube-proxy cmd/kube-apiserver cmd/kube-controller-manager cmd/kubelet cmd/kubeadm cmd/kube-scheduler cmd/kubectl" - -# convert md to man -./hack/generate-docs.sh || true -pushd docs -pushd admin -cp kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md .. -popd -cp %{SOURCE33} genmanpages.sh -bash genmanpages.sh -popd -popd - -%install -# go_path required for setup_env golang version check -export PATH=%{go_path}:$PATH -export PBR_VERSION=%{version} -pushd src/k8s.io/kubernetes/ -. hack/lib/init.sh -kube::golang::setup_env - -%ifarch ppc64le -output_path="_output/local/go/bin" -%else -output_path="${KUBE_OUTPUT_BINPATH}/$(kube::golang::host_platform)" -%endif - -install -m 755 -d %{buildroot}%{_bindir} -install -m 755 -d %{buildroot}%{_stage1}%{_bindir} -install -m 755 -d %{buildroot}%{_stage2}%{_bindir} - -echo "+++ INSTALLING kube-apiserver" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-apiserver - -echo "+++ INSTALLING kubeadm" -install -p -m 755 -t %{buildroot}%{_stage1}%{_bindir} ${output_path}/kubeadm -install -d -m 0755 %{buildroot}%{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d -install -p -m 0644 -t %{buildroot}%{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d %{SOURCE4} - -echo "+++ INSTALLING kubelet-cgroup-setup.sh" -install -p -m 0700 -t %{buildroot}%{_stage2}%{_bindir} %{SOURCE5} - -echo "+++ INSTALLING kube-apiserver" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-apiserver - -echo "+++ INSTALLING kube-controller-manager" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-controller-manager - -echo "+++ INSTALLING kube-scheduler" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-scheduler - -echo "+++ INSTALLING kube-proxy" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-proxy - -echo "+++ INSTALLING kubelet" -install -p -m 754 -t %{buildroot}%{_stage2}%{_bindir} ${output_path}/kubelet - -echo "+++ INSTALLING kubectl" -install -p -m 754 -t %{buildroot}%{_stage2}%{_bindir} ${output_path}/kubectl - -# install the bash completion -install -d -m 0755 %{buildroot}%{_stage2}%{_datadir}/bash-completion/completions/ -%{buildroot}%{_stage2}%{_bindir}/kubectl completion bash > %{buildroot}%{_stage2}%{_datadir}/bash-completion/completions/kubectl - -# install specific cluster addons for optional use -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons -# Addon: volumesnapshots -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/crd -install -m 0644 -t %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/crd cluster/addons/volumesnapshots/crd/* -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller -install -m 0644 -t %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller cluster/addons/volumesnapshots/volume-snapshot-controller/* - -# install manpages -install -d %{buildroot}%{_mandir}/man1 -install -p -m 644 docs/man/man1/* %{buildroot}%{_mandir}/man1 -rm -Rf %{buildroot}%{_mandir}/man1/cloud-controller-manager.* -# from k8s tarball copied docs/man/man1/*.1 - -# source codes for building projects -%if 0%{?with_devel} -install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ -echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list -# find all *.go but no *_test.go files and generate devel.file-list -for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do - echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list - install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file) - cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file - echo "%%{gopath}/src/%%{import_path}/$file" >> devel.filelist -done -%endif - - -%if 0%{?with_devel} -sort -u -o devel.file-list devel.file-list -%endif - -popd - -%if 0%{?with_devel} -mv src/k8s.io/kubernetes/devel.file-list . -%endif - -mv src/k8s.io/kubernetes/*.md . -mv src/k8s.io/kubernetes/LICENSE . - - -# place files for unit-test rpm -install -d -m 0755 %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -# basically, everything from the root directory is needed -# unit-tests needs source code -# integration tests needs docs and other files -# test-cmd.sh atm needs cluster, examples and other -cp -a src %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -rm -rf %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/_output -cp -a *.md %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/ - -%check -# Fedora, RHEL7 and CentOS are tested via unit-test subpackage -if [ 1 != 1 ]; then -echo "******Testing the commands*****" -hack/test-cmd.sh -echo "******Benchmarking kube********" -hack/benchmark-go.sh - -# In Fedora 20 and RHEL7 the go cover tools isn't available correctly -%if 0%{?fedora} >= 21 -echo "******Testing the go code******" -hack/test-go.sh -echo "******Testing integration******" -hack/test-integration.sh --use_go_build -%endif -fi - -############################################## -%files -# empty as it depends on master and node - -############################################## -%files master -%license LICENSE -%doc *.md -%attr(754, -, root) %caps(cap_net_bind_service=ep) %{_bindir}/kube-apiserver -%{_bindir}/kube-controller-manager -%{_bindir}/kube-scheduler -%dir %{_sysconfdir}/%{name} -%dir %{_sysconfdir}/%{name}/addons -%dir %{_sysconfdir}/%{name}/addons/volumesnapshots -%dir %{_sysconfdir}/%{name}/addons/volumesnapshots/crd -%{_sysconfdir}/%{name}/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml -%{_sysconfdir}/%{name}/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml -%{_sysconfdir}/%{name}/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshots.yaml -%dir %{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller -%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller/volume-snapshot-controller-deployment.yaml -%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller/rbac-volume-snapshot-controller.yaml - -############################################## -%files node -%license LICENSE -%{_stage2}%{_bindir}/kubelet -%{_stage2}%{_bindir}/kubelet-cgroup-setup.sh - -############################################## -%files kubeadm -%license LICENSE -%{_stage1}%{_bindir}/kubeadm -%dir %{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d -%config(noreplace) %{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d/kubeadm.conf - -############################################## -%files client -%license LICENSE -%{_stage2}%{_bindir}/kubectl -%{_stage2}%{_datadir}/bash-completion/completions/kubectl - -############################################## -%files unit-test -%{_sharedstatedir}/kubernetes-unit-test/ - -%if 0%{?with_devel} -%files devel -f devel.file-list -%doc *.md -%dir %{gopath}/src/k8s.io -%endif - -############################################## -%files kube-misc -%{_mandir}/man1/kube-apiserver.1* -%{_mandir}/man1/kube-controller-manager.1* -%{_mandir}/man1/kube-scheduler.1* -%{_mandir}/man1/kube-proxy.1* -%{_bindir}/kube-proxy -%{_mandir}/man1/kubelet.1* -%{_mandir}/man1/kubeadm.1* -%{_mandir}/man1/kubeadm-* -%{_mandir}/man1/kubectl.1* -%{_mandir}/man1/kubectl-* - -############################################## - -%pre master - -%post master -%systemd_post kube-apiserver kube-scheduler kube-controller-manager - -%preun master -%systemd_preun kube-apiserver kube-scheduler kube-controller-manager - -%postun master -%systemd_postun - - -%pre node - -%post node - -%preun node - -%postun node -%systemd_postun - -############################################ -%changelog -* Tue Mar 27 2018 Spyros Trigazis - 1.10.0-1 -- Bump to upstream v1.10.0 - -* Thu Mar 22 2018 Spyros Trigazis - 1.9.6-1 -- Bump to upstream v1.9.6 - -* Tue Mar 20 2018 Jan Chaloupka - 1.9.5-1 -- Bump to upstream v1.9.5 - resolves: #1554420 - -* Sun Feb 11 2018 Spyros Trigazis - 1.9.3-1 -- Bump to upstream v1.9.3 - -* Fri Feb 09 2018 Jan Chaloupka - 1.9.1-5 -- Add --fail-swap-on=false flag to the /etc/kubernetes/kubelet - resolves: #1542476 - -* Thu Feb 08 2018 Igor Gnatenko - 1.9.1-4 -- Escape macro in %%changelog - -* Wed Feb 07 2018 Fedora Release Engineering - 1.9.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Mon Jan 15 2018 Jan Chaloupka - 1.9.1-2 -- If docker is not available, try docker-ce instead (use boolean dependencies) - resolves: #1534508 - -* Fri Jan 12 2018 Spyros Trigazis - 1.9.1-1 -- Update to upstream v1.9.1 - resolves #1533794 - -* Tue Oct 24 2017 Jan Chaloupka - 1.8.1-1 -- Update to upstream v1.8.1 - resolves: #1497135 - -* Mon Oct 02 2017 Jan Chaloupka - 1.8.0-1 -- Update to upstream v1.8.0 - related: #1497625 - -* Mon Oct 02 2017 Jan Chaloupka - 1.7.7-1 -- Update to upstream v1.7.7 - resolves: #1497625 - -* Mon Sep 18 2017 Jan Chaloupka - 1.7.6-1 -- Update to upstream v1.7.6 - resolves: #1492551 - -* Mon Sep 11 2017 Jan Chaloupka - 1.7.5-1 -- Update to upstream v1.7.5 - resolves: #1490316 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.4-1 -- Fix the version - related: #1482874 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.3-2 -- Update to upstream v1.7.4 - resolves: #1482874 - -* Tue Aug 08 2017 Jan Chaloupka - 1.7.3-1 -- Update to upstream v1.7.3 - resolves: #1479685 - -* Thu Aug 03 2017 Fedora Release Engineering - 1.7.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Sun Jul 30 2017 Florian Weimer - 1.7.2-3 -- Rebuild with binutils fix for ppc64le (#1475636) - -* Wed Jul 26 2017 Fedora Release Engineering - 1.7.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.2-1 -- Update to upstream v1.7.2 - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.1-2 -- Sync kubeadm.conf with upstream service configuration (set Restart,StartLimitInterval,RestartSec) - -* Fri Jul 14 2017 Jan Chaloupka - 1.7.1-1 -- Update to upstream v1.7.1 - resolves: #1471767 - -* Sat Jul 08 2017 Jan Chaloupka - 1.6.7-1 -- Update to upstream v1.6.7 - resolves: #1468823 - resolves: #1468752 - -* Fri May 19 2017 Timothy St. Clair - 1.6.4-1 -- Add kubeadm subpackage to enable upstream deployments - -* Thu May 18 2017 Jan Chaloupka - 1.6.3-1 -- Update to upstream v1.6.3 - resolves: #1452101 - -* Fri May 12 2017 Jan Chaloupka - 1.6.2-2 -- Extend archs with s390x - resolves: #1400000 - -* Tue May 02 2017 Jan Chaloupka - 1.6.2-1 -- Update to upstream v1.6.2 - resolves: #1447338 - -* Tue Apr 11 2017 Jan Chaloupka - 1.6.1-1 -- Update to upstream v1.6.1 - related: #1422889 - -* Fri Mar 31 2017 Jan Chaloupka - 1.5.6-1 -- Update to upstream v1.5.6 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.5-4 -- Update to upstream v1.5.5 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.4-3 -- re-enable debug-info - related: #1422889 - -* Thu Mar 09 2017 Jan Chaloupka - 1.5.4-2 -- Bump to upstream 7243c69eb523aa4377bce883e7c0dd76b84709a1 - related: #1422889 - -* Thu Feb 16 2017 Jan Chaloupka - 1.5.3-1 -- Update to upstream v1.5.3 - resolves: #1422889 - -* Fri Feb 10 2017 Fedora Release Engineering - 1.5.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Jan 18 2017 Jan Chaloupka - 1.5.2-2 -- fix rootScopeNaming generate selfLink - resolves: #1413997 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.2-1 -- Bump version as well - related: #1412996 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.1-2 -- Bump to upstream 1.5.2 - resolves: #1412996 - -* Thu Jan 05 2017 Jan Chaloupka - 1.5.1-1 -- Bump to upstream 1.5.1 - resolves: #1410186 - -* Wed Jan 04 2017 Jan Chaloupka - 1.4.7-2 -- Generate the md files before they are converted to man pages - resolves: #1409943 - -* Mon Dec 12 2016 Jan Chaloupka - 1.4.7-1 -- Bump to upstream v1.4.7 - resolves: #1403823 - New conntrack-tools dependency of kube-proxy - Build kubernetes on ppc64le with linkmode=external - resolves: #1392922 - -* Mon Nov 14 2016 jchaloup - 1.4.5-3 -- Patch unit-test subpackage to run tests over k8s distro binaries - -* Wed Nov 09 2016 jchaloup - 1.4.5-2 -- Add missing if devel around generated devel.file-list - related: #1390074 - -* Tue Nov 08 2016 jchaloup - 1.4.5-1 -- Bump to upstream v1.4.5 (flip back to upstream based Kubernetes) - related: #1390074 - -* Mon Oct 31 2016 jchaloup - 1.4.0-0.1.beta3.git52492b4 -- Update to origin v1.4.0-alpha.0 (ppc64le and arm unbuildable with the current golang version) - resolves: #1390074 - -* Mon Oct 24 2016 jchaloup - 1.3.0-0.4.git52492b4 -- Update to origin v1.3.1 - resolves: #1388092 - -* Thu Sep 08 2016 jchaloup - 1.3.0-0.3.rc1.git507d3a7 -- Update to origin v1.3.0-rc1 - resolves: #1374361 - -* Thu Aug 11 2016 Dennis Gilmore -1.3.0-0.2.git4a3f9c5 -- enable armv7hl and aarch64 - -* Tue Aug 09 2016 jchaloup - 1.3.0-0.1.git4a3f9c5 -- Update to origin v1.3.0-alpha.3 - resolves: #1365601 - -* Thu Jul 21 2016 Fedora Release Engineering - 1.2.0-0.27.git4a3f9c5 -- https://fedoraproject.org/wiki/Changes/golang1.7 - -* Sun Jul 17 2016 jchaloup - 1.2.0-0.26.git4a3f9c5 -- Update to origin v1.2.1 - resolves: #1357261 - -* Wed Jul 13 2016 jchaloup - 1.2.0-0.25.git4a3f9c5 -- Enable CPU and Memory accounting on a node - -* Wed Jun 29 2016 jchaloup - 1.2.0-0.24.git4a3f9c5 -- Be more verbose about devel subpackage - resolves: #1269449 - -* Tue Jun 28 2016 jchaloup - 1.2.0-0.23.git4a3f9c5 -- Own /run/kubernetes directory - resolves: #1264699 - -* Sat May 28 2016 jchaloup - 1.2.0-0.22.git4a3f9c5 -- Bump to origin v1.2.0 - resolves: #1340643 - -* Wed May 04 2016 jchaloup - 1.2.0-0.21.git4a3f9c5 -- Extend uni-test subpackage to run other tests - -* Mon Apr 25 2016 jchaloup - 1.2.0-0.20.git4a3f9c5 -- Update support for ppc64le to use go compiler - related: #1306214 - -* Thu Apr 21 2016 jchaloup - 1.2.0-0.19.git4a3f9c5 -- Fix support for ppc64le - related: #1306214 - -* Tue Apr 19 2016 jchaloup - 1.2.0-0.18.git4a3f9c5 -- Bump to origin v1.1.6 - resolves: #1328357 - -* Mon Apr 11 2016 jchaloup - 1.2.0-0.17.alpha6.git4a3f9c5 -- Don't disable extensions/v1beta1 by default to conform with upstream documentation - -* Wed Mar 30 2016 jchaloup - 1.2.0-0.16.alpha6.git4a3f9c5 - Update to origin's v1.1.5 - Build on ppc64le as well - resolves: #1306214 - -* Tue Mar 08 2016 jchaloup - 1.2.0-0.15.alpha6.gitf0cd09a -- hyperkube.server: don't parse args for any command - -* Fri Mar 04 2016 jchaloup - 1.2.0-0.14.alpha6.gitf0cd09a -- Disable extensions/v1beta1 implicitly - -* Tue Mar 01 2016 jchaloup - 1.2.0-0.13.alpha6.gitf0cd09a -- Hyperkube checks flags of individual commands/servers even if it does not define their flags. - Thus resulting in 'uknown shorthand flag' error - -* Mon Feb 29 2016 jchaloup - 1.2.0-0.12.alpha6.gitf0cd09a -- Disable v1beta3 -- hyperkube-kubectl-dont shift os.Args - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.11.alpha6.gitf0cd09a -- add kube- prefix to controller-manager, proxy and scheduler - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.10.alpha6.gitf0cd09a -- Hardlink kube-controller-manager, kuber-scheduler, kubectl, kubelet and kube-proxy into hyperkube -- Keep kube-apiserver binary as it is (it has different permission and capabilities) - -* Thu Feb 25 2016 jchaloup - 1.2.0-0.9.alpha6.gitf0cd09a -- Fix Content-Type of docker client response - resolves: #1311861 - -* Mon Feb 22 2016 Fedora Release Engineering - 1.2.0-0.8.alpha6.gitf0cd09a -- https://fedoraproject.org/wiki/Changes/golang1.6 - -* Mon Feb 22 2016 jchaloup - 1.2.0-0.7.alpha6.git4c8e6f4 -- Bump to origin 1.1.3 - kube-version-change command replaced with kubectl convert (check out docs/admin/cluster-management.md) - related: 1295066 - -* Thu Feb 04 2016 Fedora Release Engineering - 1.2.0-0.6.alpha1.git4c8e6f4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 21 2016 jchaloup - 1.2.0-0.5.alpha1.git4c8e6f4 -- Bump to upstream e1d9873c1d5711b83fd3dd7eefe83a88ceb92c08 - related: #1291860 - -* Thu Jan 07 2016 jchaloup - 1.2.0-0.4.alpha1.git4c8e6f4 -- Move definition of all version, git and commit macros at one place - resolves: #1291860 - -* Fri Jan 01 2016 jchaloup - 1.2.0-0.3.alpha1.git4c8e6f4 -- Bump to upstream bf56e235826baded1772fb340266b8419c3e8f30 - Rebase to origin's "v1.1.0.1 - Security Update to v1.1" release - resolves: #1295066 - -* Thu Nov 26 2015 jchaloup - 1.2.0-0.2.alpha1.git4c8e6f4 -- Bump to origin upstream a41c9ff38d52fd508481c3c2bac13d52871fde02 -- Build kubernetes from origin's Godeps using hack/build-go.sh - origin's Godeps = kubernetes upstream + additional patches - -* Tue Oct 20 2015 jchaloup - 1.2.0-0.1.alpha1.git4c8e6f4 -- Bump to upstream 403de3874fba420fd096f2329b45fe2f5ae97e46 - related: #1211266 - -* Wed Oct 14 2015 jchaloup - 1.1.0-0.41.alpha1.gite9a6ef1 -- Bump to origin upstream e9a6ef1cd4c29d45730289a497d18b19d7ba450d - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.40.alpha1.git5f38cb0 -- Add missing short option for --server of kubectl -- Update unit-test-subpackage (only test-cmd.sh atm) - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.39.alpha1.git5f38cb0 -- Add normalization of flags - related: #1211266 - -* Fri Oct 02 2015 jchaloup - 1.1.0-0.38.alpha1.git5f38cb0 -- Restore unit-test subpackage (not yet tested) - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.37.alpha1.git5f38cb0 -- Do not unset default cluster, otherwise k8s ends with error when no cluster set - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.36.alpha0.git5f38cb0 -- Bump to o4n 5f38cb0e98c9e854cafba9c7f98dafd51e955ad8 - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.35.alpha1.git2695cdc -- Update git version of k8s and o4n, add macros - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.34.alpha1.git2695cdc -- Built k8s from o4n tarball -- Bump to upstream 2695cdcd29a8f11ef60278758e11f4817daf3c7c - related: #1211266 - -* Tue Sep 22 2015 jchaloup - 1.1.0-0.33.alpha1.git09cf38e -- Bump to upstream 09cf38e9a80327e2d41654db277d00f19e2c84d0 - related: #1211266 - -* Thu Sep 17 2015 jchaloup - 1.1.0-0.32.alpha1.git400e685 -- Bump to upstream 400e6856b082ecf4b295568acda68d630fc000f1 - related: #1211266 - -* Wed Sep 16 2015 jchaloup - 1.1.0-0.31.gitd549fc4 -- Bump to upstream d549fc400ac3e5901bd089b40168e1e6fb17341d - related: #1211266 - -* Tue Sep 15 2015 jchaloup - 1.1.0-0.30.gitc9570e3 -- Bump to upstream c9570e34d03c6700d83f796c0125d17c5064e57d - related: #1211266 - -* Mon Sep 14 2015 jchaloup - 1.1.0-0.29.git86b4e77 -- Bump to upstream 86b4e777e1947c1bc00e422306a3ca74cbd54dbe - related: #1211266 - -* Thu Sep 10 2015 jchaloup - 1.1.0-0.28.gitf867ba3 -- Bump to upstream f867ba3ba13e3dad422efd21c74f52b9762de37e - related: #1211266 - -* Wed Sep 09 2015 jchaloup - 1.1.0-0.27.git0f4fa4e -- Bump to upstream 0f4fa4ed25ae9a9d1824fe55aeefb4d4ebfecdfd - related: #1211266 - -* Tue Sep 08 2015 jchaloup - 1.1.0-0.26.git196f58b -- Bump to upstream 196f58b9cb25a2222c7f9aacd624737910b03acb - related: #1211266 - -* Mon Sep 07 2015 jchaloup - 1.1.0-0.25.git96e0ed5 -- Bump to upstream 96e0ed5749608d4cc32f61b3674deb04c8fa90ad - related: #1211266 - -* Sat Sep 05 2015 jchaloup - 1.1.0-0.24.git2e2def3 -- Bump to upstream 2e2def36a904fe9a197da5fc70e433e2e884442f - related: #1211266 - -* Fri Sep 04 2015 jchaloup - 1.1.0-0.23.gite724a52 -- Bump to upstream e724a5210adf717f62a72162621ace1e08730c75 - related: #1211266 - -* Thu Sep 03 2015 jchaloup - 1.1.0-0.22.gitb6f2f39 -- Bump to upstream b6f2f396baec5105ff928cf61903c2c368259b21 - related: #1211266 - -* Wed Sep 02 2015 jchaloup - 1.1.0-0.21.gitb4a3698 -- Bump to upstream b4a3698faed81410468eccf9f328ca6df3d0cca3 - related: #1211266 - -* Tue Sep 01 2015 jchaloup - 1.1.0-0.20.git2f9652c -- Bump to upstream 2f9652c7f1d4b8f333c0b5c8c1270db83b913436 - related: #1211266 - -* Mon Aug 31 2015 jchaloup - 1.1.0-0.19.git66a644b -- Bump to upstream 66a644b275ede9ddb98eb3f76e8d1840cafc2147 - related: #1211266 - -* Thu Aug 27 2015 jchaloup - 1.1.0-0.18.gitab73849 -- Bump to upstream ab7384943748312f5e9294f42d42ed3983c7c96c - related: #1211266 - -* Wed Aug 26 2015 jchaloup - 1.1.0-0.17.git00e3442 -- Bump to upstream 00e34429e0242323ed34347cf0ab65b3d62b21f7 - related: #1211266 - -* Tue Aug 25 2015 jchaloup - 1.1.0-0.16.gita945785 -- Bump to upstream a945785409d5b68f3a2721d2209300edb5abf1ce - related: #1211266 - -* Mon Aug 24 2015 jchaloup - 1.1.0-0.15.git5fe7029 -- Bump to upstream 5fe7029e688e1e5873a0b95a622edda5b5156d2b - related: #1211266 - -* Fri Aug 21 2015 jchaloup - 1.1.0-0.14.gitb6f18c7 -- Bump to upstream b6f18c7ce08714c8d4f6019463879a164a41750e - related: #1211266 - -* Thu Aug 20 2015 jchaloup - 1.1.0-0.13.git44fa48e -- Bump to upstream 44fa48e5af44d3e988fa943d96a2de732d8cc666 - related: #1211266 - -* Wed Aug 19 2015 jchaloup - 1.1.0-0.12.gitb5a4a54 -- Bump to upstream b5a4a548df0cffb99bdcc3b9b9e48d4025d0541c - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.11.git919c7e9 -- Bump to upstream 919c7e94e23d2dcd5bdd96896e0a7990f9ae3338 - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.10.git280b66c -- Bump to upstream 280b66c9012c21e253acd4e730f8684c39ca08ec - related: #1211266 - -* Mon Aug 17 2015 jchaloup - 1.1.0-0.9.git081d9c6 -- Bump to upstream 081d9c64d25c20ec16035036536511811118173d - related: #1211266 - -* Fri Aug 14 2015 jchaloup - 1.1.0-0.8.git8dcbeba -- Bump to upstream 8dcbebae5ef6a7191d9dfb65c68833c6852a21ad - related: #1211266 - -* Thu Aug 13 2015 jchaloup - 1.1.0-0.7.git968cbbe -- Bump to upstream 968cbbee5d4964bd916ba379904c469abb53d623 - related: #1211266 - -* Wed Aug 12 2015 jchaloup - 1.1.0-0.6.gitc91950f -- Bump to upstream c91950f01cb14ad47486dfcd2fdfb4be3ee7f36b - related: #1211266 - -* Tue Aug 11 2015 jchaloup - 1.1.0-0.5.gite44c8e6 -- Bump to upstream e44c8e6661c931f7fd434911b0d3bca140e1df3a - related: #1211266 - -* Mon Aug 10 2015 jchaloup - 1.1.0-0.4.git2bfa9a1 -- Bump to upstream 2bfa9a1f98147cfdc2e9f4cf50e2c430518d91eb - related: #1243827 - -* Thu Aug 06 2015 jchaloup - 1.1.0-0.3.git4c42e13 -- Bump to upstream 4c42e1302d3b351f3cb6074d32aa420bbd45e07d -- Change import path prefix to k8s.io/kubernetes - related: #1243827 - -* Wed Aug 05 2015 jchaloup - 1.1.0-0.2.git159ba48 -- Bump to upstream 159ba489329e9f6ce422541e13f97e1166090ec8 - related: #1243827 - -* Sat Aug 01 2015 jchaloup - 1.1.0-0.1.git6129d3d -- Bump to upstream 6129d3d4eb80714286650818081a64ce2699afed - related: #1243827 - -* Fri Jul 31 2015 jchaloup - 1.0.0-0.18.gitff058a1 -- Bump to upstream ff058a1afeb63474f7a35805941f3b07c27aae0f - related: #1243827 - -* Thu Jul 30 2015 jchaloup - 1.0.0-0.17.git769230e -- Bump to upstream 769230e735993bb0bf924279a40593c147c9a6ab - related: #1243827 - -* Wed Jul 29 2015 jchaloup - 1.0.0-0.16.gitdde7222 -- Bump to upstream dde72229dc9cbbdacfb2e44b22d9d5b357027020 - related: #1243827 - -* Tue Jul 28 2015 jchaloup - 1.0.0-0.15.gitc5bffaa -- Bump to upstream c5bffaaf3166513da6259c44a5d1ba8e86bea5ce - related: #1243827 - -* Sat Jul 25 2015 jchaloup - 1.0.0-0.14.git5bd82ff -- Bump to upstream 5bd82ffe6da8f4e72e71b362635e558bfc412106 - related: #1243827 - -* Fri Jul 24 2015 jchaloup - 1.0.0-0.13.git291acd1 -- Bump to upstream 291acd1a09ac836ec7524b060a19a6498d9878dd - related: #1243827 - -* Thu Jul 23 2015 jchaloup - 1.0.0-0.12.gitfbed349 -- Bump to upstream fbed3492bfa09e59b1c423fdd7c1ecad333a06ef - related: #1243827 - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.11.gitfbc85e9 -- Add runtime dependency of kubernetes-node on socat (so kubectl port-forward works on AH) - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.10.gitfbc85e9 -- Update the build script for go1.5 as well -- Bump to upstream fbc85e9838f25547be94fbffeeb92a756d908ca0 - related: #1243827 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.9.git2d88675 -- Bump to upstream 2d88675f2203d316d4bac312c7ccad12991b56c2 -- Change KUBE_ETCD_SERVERS to listen on 2379 ports instead of 4001 - resolves: #1243827 -- Add kubernetes-client to provide kubectl command - resolves: #1241469 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.8.gitb2dafda -- Fix dependency and tests for go-1.5 -- with_debug off as the builds ends with error "ELFRESERVE too small: ..." - -* Sat Jul 18 2015 Eric Paris - 1.0.0-0.7.gitb2dafda -- Update apiserver binary gid - -* Fri Jul 17 2015 jchaloup - 1.0.0-0.6.gitb2dafda -- Bump to upstream b2dafdaef5aceafad503ab56254b60f80da9e980 - related: #1211266 - -* Thu Jul 16 2015 jchaloup - 1.0.0-0.5.git596a8a4 -- Bump to upstream 596a8a40d12498b5335140f50753980bfaea4f6b - related: #1211266 - -* Wed Jul 15 2015 jchaloup - 1.0.0-0.4.git6ba532b -- Bump to upstream 6ba532b218cb5f5ea3f0e8dce5395182f388536c - related: #1211266 - -* Tue Jul 14 2015 jchaloup - 1.0.0-0.3.gitc616182 -- Bump to upstream c6161824db3784e6156131307a5e94647e5557fd - related: #1211266 - -* Mon Jul 13 2015 jchaloup - 1.0.0-0.2.git2c27b1f -- Bump to upstream 2c27b1fa64f4e70f04575d1b217494f49332390e - related: #1211266 - -* Sat Jul 11 2015 jchaloup - 1.0.0-0.1.git1b37059 -- Bump to upstream 1b370599ccf271741e657335c4943cb8c7dba28b - related: #1211266 - -* Fri Jul 10 2015 jchaloup - 0.21.1-0.2.gitccc4cfc -- Bump to upstream ccc4cfc7e11e0f127ac1cea045017dd799be3c63 - related: #1211266 - -* Thu Jul 09 2015 jchaloup - 0.21.1-0.1.git41f8907 -- Update generating of man pages from md (add genmanpages.sh) -- Bump to upstream 41f89075396329cd46c58495c7d3f7e13adcaa96 - related: #1211266 - -* Wed Jul 08 2015 jchaloup - 0.20.2-0.5.git77be29e -- Bump to upstream 77be29e3da71f0a136b6aa4048b2f0575c2598e4 - related: #1211266 - -* Tue Jul 07 2015 jchaloup - 0.20.2-0.4.git639a7da -- Bump to upstream 639a7dac50a331414cc6c47083323388da0d8756 - related: #1211266 - -* Mon Jul 06 2015 jchaloup - 0.20.2-0.3.gitbb6f2f7 -- Bump to upstream bb6f2f7ad90596d624d84cc691eec0f518e90cc8 - related: #1211266 - -* Fri Jul 03 2015 jchaloup - 0.20.2-0.2.git974377b -- Bump to upstream 974377b3064ac59b6e5694bfa568d67128026171 - related: #1211266 - -* Thu Jul 02 2015 jchaloup - 0.20.2-0.1.gitef41ceb -- Bump to upstream ef41ceb3e477ceada84c5522f429f02ab0f5948e - related: #1211266 - -* Tue Jun 30 2015 jchaloup - 0.20.0-0.3.git835eded -- Bump to upstream 835eded2943dfcf13a89518715e4be842a6a3ac0 -- Generate missing man pages - related: #1211266 - -* Mon Jun 29 2015 jchaloup - 0.20.0-0.2.git1c0b765 -- Bump to upstream 1c0b765df6dabfe9bd0e20489ed3bd18e6b3bda8 - Comment out missing man pages - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.20.0-0.1.git8ebd896 -- Bump to upstream 8ebd896351513d446d56bc5785c070d2909226a3 - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.19.3-0.6.git712f303 -- Bump to upstream 712f303350b35e70a573f3cb19193c8ec7ee7544 - related: #1211266 - -* Thu Jun 25 2015 jchaloup - 0.19.3-0.5.git2803b86 -- Bump to upstream 2803b86a42bf187afa816a7ce14fec754cc2af51 - related: #1211266 - -* Wed Jun 24 2015 Eric Paris - 0.19.3-0.4.git5b4dc4e -- Set CAP_NET_BIND_SERVICE on the kube-apiserver so it can use 443 - -* Wed Jun 24 2015 jchaloup - 0.19.3-0.3.git5b4dc4e -- Bump to upstream 5b4dc4edaa14e1ab4e3baa19df0388fa54dab344 - pkg/cloudprovider/* packages does not conform to golang language specification - related: #1211266 - -* Tue Jun 23 2015 jchaloup - 0.19.3-0.2.gita2ce3ea -- Bump to upstream a2ce3ea5293553b1fe0db3cbc6d53bdafe061d79 - related: #1211266 - -* Mon Jun 22 2015 jchaloup - 0.19.1-0.1.gitff0546d -- Bump to upstream ff0546da4fc23598de59db9f747c535545036463 - related: #1211266 - -* Fri Jun 19 2015 jchaloup - 0.19.0-0.7.gitb2e9fed -- Bump to upstream b2e9fed3490274509506285bdba309c50afb5c39 - related: #1211266 - -* Thu Jun 18 2015 jchaloup - 0.19.0-0.6.gitf660940 -- Bump to upstream f660940dceb3fe6ffb1b14ba495a47d91b5cd910 - related: #1211266 - -* Wed Jun 17 2015 jchaloup - 0.19.0-0.5.git43889c6 -- Bump to upstream 43889c612c4d396dcd8fbf3fbd217e106eaf5bce - related: #1211266 - -* Tue Jun 16 2015 jchaloup - 0.19.0-0.4.gita8269e3 -- Bump to upstream a8269e38c9e2bf81ba18cd6420e2309745d5b0b9 - related: #1211266 - -* Sun Jun 14 2015 jchaloup - 0.19.0-0.3.git5e5c1d1 -- Bump to upstream 5e5c1d10976f2f26d356ca60ef7d0d715c9f00a2 - related: #1211266 - -* Fri Jun 12 2015 jchaloup - 0.19.0-0.2.git0ca96c3 -- Bump to upstream 0ca96c3ac8b47114169f3b716ae4521ed8c7657c - related: #1211266 - -* Thu Jun 11 2015 jchaloup - 0.19.0-0.1.git5a02fc0 -- Bump to upstream 5a02fc07d8a943132b9e68fe7169778253318487 - related: #1211266 - -* Wed Jun 10 2015 jchaloup - 0.18.2-0.3.git0dfb681 -- Bump to upstream 0dfb681ba5d5dba535895ace9d650667904b5df7 - related: #1211266 - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.2.gitb68e08f -- golang-cover is not needed - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.1.gitb68e08f -- Bump to upstream b68e08f55f5ae566c4ea3905d0993a8735d6d34f - related: #1211266 - -* Sat Jun 06 2015 jchaloup - 0.18.1-0.3.git0f1c4c2 -- Bump to upstream 0f1c4c25c344f70c3592040b2ef092ccdce0244f - related: #1211266 - -* Fri Jun 05 2015 jchaloup - 0.18.1-0.2.git7309e1f -- Bump to upstream 7309e1f707ea5dd08c51f803037d7d22c20e2b92 - related: #1211266 - -* Thu Jun 04 2015 jchaloup - 0.18.1-0.1.gita161edb -- Bump to upstream a161edb3960c01ff6e14813858c2eeb85910009b - related: #1211266 - -* Wed Jun 03 2015 jchaloup - 0.18.0-0.3.gitb5a91bd -- Bump to upstream b5a91bda103ed2459f933959241a2b57331747ba -- Don't run %%check section (kept only for local run). Tests are now handled via CI. - related: #1211266 - -* Tue Jun 02 2015 jchaloup - 0.18.0-0.2.git5520386 -- Bump to upstream 5520386b180d3ddc4fa7b7dfe6f52642cc0c25f3 - related: #1211266 - -* Mon Jun 01 2015 jchaloup - 0.18.0-0.1.git0bb78fe -- Bump to upstream 0bb78fe6c53ce38198cc3805c78308cdd4805ac8 - related: #1211266 - -* Fri May 29 2015 jchaloup - 0.17.1-6 -- Bump to upstream ed4898d98c46869e9cbdb44186dfdeda9ff80cc2 - related: #1211266 - -* Thu May 28 2015 jchaloup - 0.17.1-5 -- Bump to upstream 6fa2777e26559fc008eacac83eb165d25bd9a7de - related: #1211266 - -* Tue May 26 2015 jchaloup - 0.17.1-4 -- Bump to upstream 01fcb58673001e56c69e128ab57e0c3f701aeea5 - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-3 -- Decompose package into master and node subpackage. - Thanks to Avesh for testing and patience. - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-2 -- Bump to upstream cf7b0bdc2a41d38613ac7f8eeea91cae23553fa2 - related: #1211266 - -* Fri May 22 2015 jchaloup - 0.17.1-1 -- Bump to upstream d9d12fd3f7036c92606fc3ba9046b365212fcd70 - related: #1211266 - -* Wed May 20 2015 jchaloup - 0.17.0-12 -- Bump to upstream a76bdd97100c66a46e2b49288540dcec58a954c4 - related: #1211266 - -* Tue May 19 2015 jchaloup - 0.17.0-11 -- Bump to upstream 10339d72b66a31592f73797a9983e7c207481b22 - related: #1211266 - -* Mon May 18 2015 jchaloup - 0.17.0-10 -- Bump to upstream efb42b302d871f7217394205d84e5ae82335d786 - related: #1211266 - -* Sat May 16 2015 jchaloup - 0.17.0-9 -- Bump to upstream d51e131726b925e7088b90915e99042459b628e0 - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-8 -- Bump to upstream 1ee33ac481a14db7b90e3bbac8cec4ceea822bfb - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-7 -- Bump to upstream d3c6fb0d6a13c0177dcd67556d72963c959234ea - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-6 -- Bump to upstream f57f31783089f41c0bdca8cb87a1001ca94e1a45 - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-5 -- Bump to upstream c90d381d0d5cf8ab7b8412106f5a6991d7e13c7d - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-4 -- Bump to upstream 5010b2dde0f9b9eb820fe047e3b34bc9fa6324de -- Add debug info - related: #1211266 - -* Wed May 13 2015 jchaloup - 0.17.0-3 -- Bump to upstream ec19d41b63f5fe7b2c939e7738a41c0fbe65d796 - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-2 -- Provide /usr/bin/kube-version-change binary - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-1 -- Bump to upstream 962f10ee580eea30e5f4ea725c4e9e3743408a58 - related: #1211266 - -* Mon May 11 2015 jchaloup - 0.16.2-7 -- Bump to upstream 63182318c5876b94ac9b264d1224813b2b2ab541 - related: #1211266 - -* Fri May 08 2015 jchaloup - 0.16.2-6 -- Bump to upstream d136728df7e2694df9e082902f6239c11b0f2b00 -- Add NetworkManager as dependency for /etc/resolv.conf - related: #1211266 - -* Thu May 07 2015 jchaloup - 0.16.2-5 -- Bump to upstream ca0f678b9a0a6dc795ac7a595350d0dbe9d0ac3b - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-4 -- Add docs to kubernetes-unit-test - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-3 -- Bump to upstream 3a24c0e898cb3060d7905af6df275a3be562451d - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-2 -- Add api and README.md to kubernetes-unit-test - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-1 -- Bump to upstream 72048a824ca16c3921354197953fabecede5af47 - related: #1211266 - -* Mon May 04 2015 jchaloup - 0.16.1-2 -- Bump to upstream 1dcd80cdf3f00409d55cea1ef0e7faef0ae1d656 - related: #1211266 - -* Sun May 03 2015 jchaloup - 0.16.1-1 -- Bump to upstream 86751e8c90a3c0e852afb78d26cb6ba8cdbc37ba - related: #1211266 - -* Fri May 01 2015 jchaloup - 0.16.0-2 -- Bump to upstream 72708d74b9801989ddbdc8403fc5ba4aafb7c1ef - related: #1211266 - -* Wed Apr 29 2015 jchaloup - 0.16.0-1 -- Bump to upstream 7dcce2eeb7f28643d599c8b6a244523670d17c93 - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-10 -- Add unit-test subpackage - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-9 -- Bump to upstream 99fc906f78cd2bcb08536c262867fa6803f816d5 - related: #1211266 - -* Mon Apr 27 2015 jchaloup - 0.15.0-8 -- Bump to upstream 051dd96c542799dfab39184d2a7c8bacf9e88d85 - related: #1211266 - -* Fri Apr 24 2015 jchaloup - 0.15.0-7 -- Bump to upstream 9f753c2592481a226d72cea91648db8fb97f0da8 - related: #1211266 - -* Thu Apr 23 2015 jchaloup - 0.15.0-6 -- Bump to upstream cf824ae5e07965ba0b4b15ee88e08e2679f36978 - related: #1211266 - -* Tue Apr 21 2015 jchaloup - 0.15.0-5 -- Bump to upstream 21788d8e6606038a0a465c97f5240b4e66970fbb - related: #1211266 - -* Mon Apr 20 2015 jchaloup - 0.15.0-4 -- Bump to upstream eb1ea269954da2ce557f3305fa88d42e3ade7975 - related: #1211266 - -* Fri Apr 17 2015 jchaloup - 0.15.0-3 -- Obsolete cadvisor as it is integrated in kubelet - related: #1211266 - -* Wed Apr 15 2015 jchaloup - 0.15.0-0.2.git0ea87e4 -- Bump to upstream 0ea87e486407298dc1e3126c47f4076b9022fb09 - related: #1211266 - -* Tue Apr 14 2015 jchaloup - 0.15.0-0.1.gitd02139d -- Bump to upstream d02139d2b454ecc5730cc535d415c1963a7fb2aa - related: #1211266 - -* Sun Apr 12 2015 jchaloup - 0.14.2-0.2.gitd577db9 -- Bump to upstream d577db99873cbf04b8e17b78f17ec8f3a27eca30 - -* Wed Apr 08 2015 jchaloup - 0.14.2-0.1.git2719194 -- Bump to upstream 2719194154ffd38fd1613699a9dd10a00909957e - Use etcd-2.0.8 and higher - -* Tue Apr 07 2015 jchaloup - 0.14.1-0.2.gitd2f4734 -- Bump to upstream d2f473465738e6b6f7935aa704319577f5e890ba - -* Thu Apr 02 2015 jchaloup - 0.14.1-0.1.gita94ffc8 -- Bump to upstream a94ffc8625beb5e2a39edb01edc839cb8e59c444 - -* Wed Apr 01 2015 jchaloup - 0.14.0-0.2.git8168344 -- Bump to upstream 81683441b96537d4b51d146e39929b7003401cd5 - -* Tue Mar 31 2015 jchaloup - 0.14.0-0.1.git9ed8761 -- Bump to upstream 9ed87612d07f75143ac96ad90ff1ff68f13a2c67 -- Remove [B]R from devel branch until the package has stable API - -* Mon Mar 30 2015 jchaloup - 0.13.2-0.6.git8a7a127 -- Bump to upstream 8a7a127352263439e22253a58628d37a93fdaeb2 - -* Fri Mar 27 2015 jchaloup - 0.13.2-0.5.git8d94c43 -- Bump to upstream 8d94c43e705824f23791b66ad5de4ea095d5bb32 - resolves: #1205362 - -* Wed Mar 25 2015 jchaloup - 0.13.2-0.4.git455fe82 -- Bump to upstream 455fe8235be8fd9ba0ce21bf4f50a69d42e18693 - -* Mon Mar 23 2015 jchaloup - 0.13.2-0.3.gitef75888 -- Remove runtime dependency on etcd - resolves: #1202923 - -* Sun Mar 22 2015 jchaloup - 0.13.2-0.2.gitef75888 -- Bump to upstream ef758881d108bb53a128126c503689104d17f477 - -* Fri Mar 20 2015 jchaloup - 0.13.2-0.1.gita8f2cee -- Bump to upstream a8f2cee8c5418676ee33a311fad57d6821d3d29a - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.9.git53b25a7 -- Bump to upstream 53b25a7890e31bdec6f2a95b32200d6cc27ae2ca - fix kube-proxy.service and kubelet - resolves: #1200919 #1200924 - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.8.git39dceb1 -- Bump to upstream 39dceb13a511a83963a766a439cb386d10764310 - -* Thu Mar 12 2015 Eric Paris - 0.12.0-0.7.gita3fd0a9 -- Move from /etc/tmpfiles.d to %%{_tmpfilesdir} - resolves: #1200969 - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.6.gita3fd0a9 -- Place contrib/init/systemd/tmpfiles.d/kubernetes.conf to /etc/tmpfiles.d/kubernetes.conf - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.5.gita3fd0a9 -- Bump to upstream a3fd0a9fd516bb6033f32196ae97aaecf8c096b1 - -* Tue Mar 10 2015 jchaloup - 0.12.0-0.4.gita4d871a -- Bump to upstream a4d871a10086436557f804930812f2566c9d4d39 - -* Fri Mar 06 2015 jchaloup - 0.12.0-0.3.git2700871 -- Bump to upstream 2700871b049d5498167671cea6de8317099ad406 - -* Thu Mar 05 2015 jchaloup - 0.12.0-0.2.git8b627f5 -- Bump to upstream 8b627f516fd3e4f62da90d401ceb3d38de6f8077 - -* Tue Mar 03 2015 jchaloup - 0.12.0-0.1.gitecca426 -- Bump to upstream ecca42643b91a7117de8cd385b64e6bafecefd65 - -* Mon Mar 02 2015 jchaloup - 0.11.0-0.5.git6c5b390 -- Bump to upstream 6c5b390160856cd8334043344ef6e08568b0a5c9 - -* Sat Feb 28 2015 jchaloup - 0.11.0-0.4.git0fec31a -- Bump to upstream 0fec31a11edff14715a1efb27f77262a7c3770f4 - -* Fri Feb 27 2015 jchaloup - 0.11.0-0.3.git08402d7 -- Bump to upstream 08402d798c8f207a2e093de5a670c5e8e673e2de - -* Wed Feb 25 2015 jchaloup - 0.11.0-0.2.git86434b4 -- Bump to upstream 86434b4038ab87ac40219562ad420c3cc58c7c6b - -* Tue Feb 24 2015 jchaloup - 0.11.0-0.1.git754a2a8 -- Bump to upstream 754a2a8305c812121c3845d8293efdd819b6a704 - turn off integration tests until "FAILED: unexpected endpoints: - timed out waiting for the condition" problem is resolved - Adding back devel subpackage ([B]R list outdated) - -* Fri Feb 20 2015 jchaloup - 0.10.1-0.3.git4c87805 -- Bump to upstream 4c87805870b1b22e463c4bd711238ef68c77f0af - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.2.git6f84bda -- Bump to upstream 6f84bdaba853872dbac69c84d3ab4b6964e85d8c - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.1.git7d6130e -- Bump to upstream 7d6130edcdfabd7dd2e6a06fdc8fe5e333f07f5c - -* Sat Feb 07 2015 jchaloup - 0.9.1-0.7.gitc9c98ab -- Bump to upstream c9c98ab19eaa6f0b2ea17152c9a455338853f4d0 - Since some dependencies are broken, we can not build Kubernetes from Fedora deps. - Switching to vendored source codes until Go draft is resolved - -* Wed Feb 04 2015 jchaloup - 0.9.1-0.6.git7f5ed54 -- Bump to upstream 7f5ed541f794348ae6279414cf70523a4d5133cc - -* Tue Feb 03 2015 jchaloup - 0.9.1-0.5.git2ac6bbb -- Bump to upstream 2ac6bbb7eba7e69eac71bd9acd192cda97e67641 - -* Mon Feb 02 2015 jchaloup - 0.9.1-0.4.gite335e2d -- Bump to upstream e335e2d3e26a9a58d3b189ccf41ceb3770d1bfa9 - -* Fri Jan 30 2015 jchaloup - 0.9.1-0.3.git55793ac -- Bump to upstream 55793ac2066745f7243c666316499e1a8cf074f0 - -* Thu Jan 29 2015 jchaloup - 0.9.1-0.2.gitca6de16 -- Bump to upstream ca6de16df7762d4fc9b4ad44baa78d22e3f30742 - -* Tue Jan 27 2015 jchaloup - 0.9.1-0.1.git3623a01 -- Bump to upstream 3623a01bf0e90de6345147eef62894057fe04b29 -- update tests for etcd-2.0 - -* Thu Jan 22 2015 jchaloup - 0.8.2-571.gitb2f287c -+- Bump to upstream b2f287c259d856f4c08052a51cd7772c563aff77 - -* Thu Jan 22 2015 Eric Paris - 0.8.2-570.gitb2f287c -- patch kubelet service file to use docker.service not docker.socket - -* Wed Jan 21 2015 jchaloup - 0.8.2-0.1.git5b04640 -- Bump to upstream 5b046406a957a1e7eda7c0c86dd7a89e9c94fc5f - -* Sun Jan 18 2015 jchaloup - 0.8.0-126.0.git68298f0 -- Add some missing dependencies -- Add devel subpackage - -* Fri Jan 09 2015 Eric Paris - 0.8.0-125.0.git68298f0 -- Bump to upstream 68298f08a4980f95dfbf7b9f58bfec1808fb2670 - -* Tue Dec 16 2014 Eric Paris - 0.7.0-18.0.git52e165a -- Bump to upstream 52e165a4fd720d1703ebc31bd6660e01334227b8 - -* Mon Dec 15 2014 Eric Paris - 0.6-297.0.git5ef34bf -- Bump to upstream 5ef34bf52311901b997119cc49eff944c610081b - -* Wed Dec 03 2014 Eric Paris -- Replace patch to use old googlecode/go.net/ with BuildRequires on golang.org/x/net/ - -* Tue Dec 02 2014 Eric Paris - 0.6-4.0.git993ef88 -- Bump to upstream 993ef88eec9012b221f79abe8f2932ee97997d28 - -* Mon Dec 01 2014 Eric Paris - 0.5-235.0.git6aabd98 -- Bump to upstream 6aabd9804fb75764b70e9172774002d4febcae34 - -* Wed Nov 26 2014 Eric Paris - 0.5-210.0.gitff1e9f4 -- Bump to upstream ff1e9f4c191342c24974c030e82aceaff8ea9c24 - -* Tue Nov 25 2014 Eric Paris - 0.5-174.0.git64e07f7 -- Bump to upstream 64e07f7fe03d8692c685b09770c45f364967a119 - -* Mon Nov 24 2014 Eric Paris - 0.5-125.0.git162e498 -- Bump to upstream 162e4983b947d2f6f858ca7607869d70627f5dff - -* Fri Nov 21 2014 Eric Paris - 0.5-105.0.git3f74a1e -- Bump to upstream 3f74a1e9f56b3c3502762930c0c551ccab0557ea - -* Thu Nov 20 2014 Eric Paris - 0.5-65.0.gitc6158b8 -- Bump to upstream c6158b8aa9c40fbf1732650a8611429536466b21 -- include go-restful build requirement - -* Tue Nov 18 2014 Eric Paris - 0.5-14.0.gitdf0981b -- Bump to upstream df0981bc01c5782ad30fc45cb6f510f365737fc1 - -* Tue Nov 11 2014 Eric Paris - 0.4-680.0.git30fcf24 -- Bump to upstream 30fcf241312f6d0767c7d9305b4c462f1655f790 - -* Mon Nov 10 2014 Eric Paris - 0.4-633.0.git6c70227 -- Bump to upstream 6c70227a2eccc23966d32ea6d558ee05df46e400 - -* Fri Nov 07 2014 Eric Paris - 0.4-595.0.gitb695650 -- Bump to upstream b6956506fa2682afa93770a58ea8c7ba4b4caec1 - -* Thu Nov 06 2014 Eric Paris - 0.4-567.0.git3b1ef73 -- Bump to upstream 3b1ef739d1fb32a822a22216fb965e22cdd28e7f - -* Thu Nov 06 2014 Eric Paris - 0.4-561.0.git06633bf -- Bump to upstream 06633bf4cdc1ebd4fc848f85025e14a794b017b4 -- Make spec file more RHEL/CentOS friendly - -* Tue Nov 04 2014 Eric Paris - 0.4-0.0.git4452163 -- rebase to v0.4 -- include man pages - -* Tue Oct 14 2014 jchaloup - 0.3-0.3.git98ac8e1 -- create /var/lib/kubelet -- Use bash completions from upstream -- Bump to upstream 98ac8e178fcf1627399d659889bcb5fe25abdca4 -- all by Eric Paris - -* Mon Sep 29 2014 Jan Chaloupka - 0.3-0.2.git88fdb65 -- replace * with coresponding files -- remove dependency on gcc - -* Wed Sep 24 2014 Eric Paris - 0.1-0.4.git6ebe69a -- prefer autosetup instead of setup (revert setup change in 0-0.3.git) -https://fedoraproject.org/wiki/Autosetup_packaging_draft -- revert version number to 0.1 - -* Mon Sep 08 2014 Lokesh Mandvekar - 0-0.3.git6ebe69a -- gopath defined in golang package already -- package owns /etc/kubernetes -- bash dependency implicit -- keep buildroot/$RPM_BUILD_ROOT macros consistent -- replace with macros wherever possible -- set version, release and source tarball prep as per -https://fedoraproject.org/wiki/Packaging:SourceURL#Github - -* Mon Sep 08 2014 Eric Paris -- make services restart automatically on error - -* Sat Sep 06 2014 Eric Paris -- update to upstream -- redo build to use project scripts -- use project scripts in %%check -- rework deletion of third_party packages to easily detect changes -- run apiserver and controller-manager as non-root - -* Mon Aug 11 2014 Adam Miller -- update to upstream -- decouple the rest of third_party - -* Thu Aug 7 2014 Eric Paris -- update to head -- update package to include config files - -* Wed Jul 16 2014 Colin Walters -- Initial package diff --git a/kubernetes/kubernetes-1.18.1/centos/kubernetes.spec.orig b/kubernetes/kubernetes-1.18.1/centos/kubernetes.spec.orig deleted file mode 100644 index fd43ef4cd..000000000 --- a/kubernetes/kubernetes-1.18.1/centos/kubernetes.spec.orig +++ /dev/null @@ -1,2282 +0,0 @@ -%if 0%{?fedora} -%global with_devel 1 -%global with_bundled 0 -%global with_debug 1 -%else -%global with_devel 0 -%global with_bundled 1 -%global with_debug 0 -%endif - -%if 0%{?with_debug} -# https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12 -%global _dwz_low_mem_die_limit 0 -%else -%global debug_package %{nil} -%endif - -%global provider github -%global provider_tld com -%global project kubernetes -%global repo kubernetes -# https://github.com/kubernetes/kubernetes - -%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} -%global import_path k8s.io/kubernetes -%global commit fc32d2f3698e36b93322a3465f63a14e9f0eaead -%global shortcommit %(c=%{commit}; echo ${c:0:7}) - -%global con_provider github -%global con_provider_tld com -%global con_project kubernetes -%global con_repo contrib -# https://github.com/kubernetes/contrib -%global con_provider_prefix %{con_provider}.%{con_provider_tld}/%{con_project}/%{con_repo} -%global con_commit 5b445f1c53aa8d6457523526340077935f62e691 -%global con_shortcommit %(c=%{con_commit}; echo ${c:0:7}) - -%global kube_version 1.10.0 -%global kube_git_version v%{kube_version} - -# Needed otherwise "version_ldflags=$(kube::version_ldflags)" doesn't work -%global _buildshell /bin/bash -%global _checkshell /bin/bash - -############################################## -Name: kubernetes -Version: %{kube_version} -Release: 1%{?dist} -Summary: Container cluster management -License: ASL 2.0 -URL: https://%{import_path} -ExclusiveArch: x86_64 aarch64 ppc64le s390x -Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz -Source1: https://%{con_provider_prefix}/archive/%{con_commit}/%{con_repo}-%{con_shortcommit}.tar.gz -Source3: kubernetes-accounting.conf -Source4: kubeadm.conf - -Source33: genmanpages.sh - -Patch3: build-with-debug-info.patch -#Patch4: make-test-cmd-run-over-hyperkube-based-kubectl.patch -#Patch5: make-e2e_node-run-over-distro-bins.patch - -# ppc64le -Patch16: fix-support-for-ppc64le.patch - -Patch20: use_go_build-is-not-fully-propagated-so-make-it-fixe.patch - -# It obsoletes cadvisor but needs its source code (literally integrated) -Obsoletes: cadvisor - -# kubernetes is decomposed into master and node subpackages -# require both of them for updates -Requires: kubernetes-master = %{version}-%{release} -Requires: kubernetes-node = %{version}-%{release} - -%description -%{summary} - -%if 0%{?with_devel} -%package devel -Summary: %{summary} -BuildArch: noarch - -Provides: golang(%{import_path}/cmd/genutils) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubectl/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/normalization) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/install) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/v1) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/conversion-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/deepcopy-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/generator) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/go-to-protobuf/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/import-boss/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/namer) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/parser) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/set-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/types) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/install) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/pkg/federation-controller/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/admission) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/annotations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/endpoints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta/metatypes) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest/resttest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing/compat) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery/registered) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v0) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v2alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/audit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator/bearertoken) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/union) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/handlers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/chaosclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/leaderelection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/record) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/restclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/testing/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/transport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/dynamic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/adapters/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/auth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient/simple) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/azure) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/cloudstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/gce) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/mesos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/openstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/ovirt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/rackspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/vsphere) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/daemon) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/disruption) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework/informers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector/metaonly) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podgc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/route) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/statusupdater) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion/queryparams) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/dns) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fieldpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fields) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/openapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/healthz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/httplog) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/hyperkube) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/rollout) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/set) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/templates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/editor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/jsonmerge) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/metricsutil) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/client) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cm) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/custommetrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockershim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockertools) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/envvars) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/events) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/eviction) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/images) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/kuberuntime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/leaky) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hairpin) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/kubenet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/mock_network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pleg) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/results) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/qos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/remote) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt/mock_os) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rktshim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/status) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/format) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/ioutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/queue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/sliceutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubemark) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master/ports) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/http) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/tcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/healthcheck) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/userspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/evaluator/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/subjectaccessreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/cachesize) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/componentstatus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/experimental/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rangeallocation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/registrytest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/tokenreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/recognizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/streaming) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/versioning) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontext) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/seccomp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/selection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ssh) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/etcdtest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing/testingcert) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend/factory) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ui) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/async) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/bandwidth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chmod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chown) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/clock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/codeinspector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/configz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crlf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crypto) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/dbus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/diff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/ebtables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/env) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flowcontrol) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flushwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/framer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap/exponentialbackoff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/hash) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/homedir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream/spdy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/integer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/interrupt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/intstr) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/io) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/jsonpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/keymutex) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/limitwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/logs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/maps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/mount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/oom) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/parsers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/procfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/resourcecontainer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rlimit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/slice) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strategicpatch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strings) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/system) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/term) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/threading) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/uuid) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation/field) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wait) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/workqueue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wsstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/verflag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/aws_ebs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_dd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_file) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cephfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cinder) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/downwardapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/empty_dir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/fc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flexvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flocker) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/gce_pd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/git_repo) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/glusterfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/host_path) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/iscsi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/nfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/quobyte) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/rbd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/nestedpendingoperations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/operationexecutor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/volumehelper) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/vsphere_volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/versioned) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/admit) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/alwayspullimages) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/antiaffinity) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/deny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/exec) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/initialresources) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/limitranger) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/autoprovision) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/exists) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/persistentvolume/label) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/securitycontext/scdeny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/storageclass/default) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/allow) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/keystone) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/passwordfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/basicauth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/union) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/x509) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokenfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokentest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/predicates) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities/util) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider/defaults) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/factory) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/schedulercache) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/webhook) = %{version}-%{release} - -%description devel -Libraries for building packages importing k8s.io/kubernetes. -Currently, the devel is not suitable for development. -It is meant only as a buildtime dependency for other projects. - -This package contains library source intended for -building other packages which use %{project}/%{repo}. -%endif - -############################################## -%package unit-test -Summary: %{summary} - for running unit tests - -# below Rs used for testing -Requires: golang >= 1.2-7 -Requires: etcd >= 2.0.9 -Requires: hostname -Requires: rsync -Requires: NetworkManager - -%description unit-test -%{summary} - for running unit tests - -############################################## -%package master -Summary: Kubernetes services for master host - -BuildRequires: golang >= 1.2-7 -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: kubernetes-client = %{version}-%{release} - -# if node is installed with node, version and release must be the same -Conflicts: kubernetes-node < %{version}-%{release} -Conflicts: kubernetes-node > %{version}-%{release} - -%description master -Kubernetes services for master host - -############################################## -%package node -Summary: Kubernetes services for node host - -%if 0%{?fedora} >= 27 -Requires: (docker or docker-ce) -Suggests: docker -%else -Requires: docker -%endif -Requires: conntrack-tools - -BuildRequires: golang >= 1.2-7 -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: socat -Requires: kubernetes-client = %{version}-%{release} - -# if master is installed with node, version and release must be the same -Conflicts: kubernetes-master < %{version}-%{release} -Conflicts: kubernetes-master > %{version}-%{release} - -%description node -Kubernetes services for node host - -############################################## -%package kubeadm -Summary: Kubernetes tool for standing up clusters -Requires: kubernetes-node = %{version}-%{release} -Requires: containernetworking-cni - -%description kubeadm -Kubernetes tool for standing up clusters - -############################################## -%package client -Summary: Kubernetes client tools - -BuildRequires: golang >= 1.2-7 -BuildRequires: go-bindata - -%description client -Kubernetes client tools like kubectl - -############################################## - -%prep -%setup -q -n %{con_repo}-%{con_commit} -T -b 1 -%setup -q -n %{repo}-%{commit} - -%if 0%{?with_debug} -%patch3 -p1 -%endif - -%patch20 -p1 - -# copy contrib folder -mkdir contrib -cp -r ../%{con_repo}-%{con_commit}/init contrib/. - -#src/k8s.io/kubernetes/pkg/util/certificates -# Patch the code to remove eliptic.P224 support -for dir in vendor/github.com/google/certificate-transparency/go/x509 pkg/util/certificates; do - if [ -d "${dir}" ]; then - pushd ${dir} - sed -i "/^[^=]*$/ s/oidNamedCurveP224/oidNamedCurveP256/g" *.go - sed -i "/^[^=]*$/ s/elliptic\.P224/elliptic.P256/g" *.go - popd - fi -done - -# Move all the code under src/k8s.io/kubernetes directory -mkdir -p src/k8s.io/kubernetes -mv $(ls | grep -v "^src$") src/k8s.io/kubernetes/. - -# Patch tests to be run over distro bins -#patch4 -p1 -#patch5 -p1 - -%ifarch ppc64le -%patch16 -p1 -%endif - -############### - -%build -pushd src/k8s.io/kubernetes/ -export KUBE_GIT_TREE_STATE="clean" -export KUBE_GIT_COMMIT=%{commit} -export KUBE_GIT_VERSION=%{kube_git_version} -export KUBE_EXTRA_GOPATH=$(pwd)/Godeps/_workspace - -# https://bugzilla.redhat.com/show_bug.cgi?id=1392922#c1 -%ifarch ppc64le -export GOLDFLAGS='-linkmode=external' -%endif -make WHAT="--use_go_build cmd/hyperkube cmd/kube-apiserver cmd/kubeadm" - -# convert md to man -./hack/generate-docs.sh || true -pushd docs -pushd admin -cp kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md .. -popd -cp %{SOURCE33} genmanpages.sh -bash genmanpages.sh -popd -popd - -%install -pushd src/k8s.io/kubernetes/ -. hack/lib/init.sh -kube::golang::setup_env - -%ifarch ppc64le -output_path="_output/local/go/bin" -%else -output_path="${KUBE_OUTPUT_BINPATH}/$(kube::golang::host_platform)" -%endif - -install -m 755 -d %{buildroot}%{_bindir} - -echo "+++ INSTALLING hyperkube" -install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/hyperkube - -echo "+++ INSTALLING kube-apiserver" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-apiserver - -echo "+++ INSTALLING kubeadm" -install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kubeadm -install -d -m 0755 %{buildroot}/%{_sysconfdir}/systemd/system/kubelet.service.d -install -p -m 0644 -t %{buildroot}/%{_sysconfdir}/systemd/system/kubelet.service.d %{SOURCE4} - -binaries=(kube-controller-manager kube-scheduler kube-proxy kubelet kubectl) -for bin in "${binaries[@]}"; do - echo "+++ HARDLINKING ${bin} to hyperkube" - ln %{buildroot}%{_bindir}/hyperkube %{buildroot}%{_bindir}/${bin} -done - -# install the bash completion -install -d -m 0755 %{buildroot}%{_datadir}/bash-completion/completions/ -%{buildroot}%{_bindir}/kubectl completion bash > %{buildroot}%{_datadir}/bash-completion/completions/kubectl - -# install config files -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name} -install -m 644 -t %{buildroot}%{_sysconfdir}/%{name} contrib/init/systemd/environ/* - -# install service files -install -d -m 0755 %{buildroot}%{_unitdir} -install -m 0644 -t %{buildroot}%{_unitdir} contrib/init/systemd/*.service - -# install manpages -install -d %{buildroot}%{_mandir}/man1 -install -p -m 644 docs/man/man1/* %{buildroot}%{_mandir}/man1 -rm %{buildroot}%{_mandir}/man1/cloud-controller-manager.* -# from k8s tarball copied docs/man/man1/*.1 - -# install the place the kubelet defaults to put volumes -install -d %{buildroot}%{_sharedstatedir}/kubelet - -# place contrib/init/systemd/tmpfiles.d/kubernetes.conf to /usr/lib/tmpfiles.d/kubernetes.conf -install -d -m 0755 %{buildroot}%{_tmpfilesdir} -install -p -m 0644 -t %{buildroot}/%{_tmpfilesdir} contrib/init/systemd/tmpfiles.d/kubernetes.conf -mkdir -p %{buildroot}/run -install -d -m 0755 %{buildroot}/run/%{name}/ - -# enable CPU and Memory accounting -install -d -m 0755 %{buildroot}/%{_sysconfdir}/systemd/system.conf.d -install -p -m 0644 -t %{buildroot}/%{_sysconfdir}/systemd/system.conf.d %{SOURCE3} - -# source codes for building projects -%if 0%{?with_devel} -install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ -echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list -# find all *.go but no *_test.go files and generate devel.file-list -for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do - echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list - install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file) - cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file - echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list -done -%endif - -%if 0%{?with_devel} -sort -u -o devel.file-list devel.file-list -%endif - -popd - -%if 0%{?with_devel} -mv src/k8s.io/kubernetes/devel.file-list . -%endif - -mv src/k8s.io/kubernetes/*.md . -mv src/k8s.io/kubernetes/LICENSE . - - -# place files for unit-test rpm -install -d -m 0755 %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -# basically, everything from the root directory is needed -# unit-tests needs source code -# integration tests needs docs and other files -# test-cmd.sh atm needs cluster, examples and other -cp -a src %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -rm -rf %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/_output -cp -a *.md %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/ - -%check -# Fedora, RHEL7 and CentOS are tested via unit-test subpackage -if [ 1 != 1 ]; then -echo "******Testing the commands*****" -hack/test-cmd.sh -echo "******Benchmarking kube********" -hack/benchmark-go.sh - -# In Fedora 20 and RHEL7 the go cover tools isn't available correctly -%if 0%{?fedora} >= 21 -echo "******Testing the go code******" -hack/test-go.sh -echo "******Testing integration******" -hack/test-integration.sh --use_go_build -%endif -fi - -############################################## -%files -# empty as it depends on master and node - -############################################## -%files master -%license LICENSE -%doc *.md -%{_mandir}/man1/kube-apiserver.1* -%{_mandir}/man1/kube-controller-manager.1* -%{_mandir}/man1/kube-scheduler.1* -%attr(754, -, kube) %caps(cap_net_bind_service=ep) %{_bindir}/kube-apiserver -%{_bindir}/kube-controller-manager -%{_bindir}/kube-scheduler -%{_bindir}/hyperkube -%{_unitdir}/kube-apiserver.service -%{_unitdir}/kube-controller-manager.service -%{_unitdir}/kube-scheduler.service -%dir %{_sysconfdir}/%{name} -%config(noreplace) %{_sysconfdir}/%{name}/apiserver -%config(noreplace) %{_sysconfdir}/%{name}/scheduler -%config(noreplace) %{_sysconfdir}/%{name}/config -%config(noreplace) %{_sysconfdir}/%{name}/controller-manager -%{_tmpfilesdir}/kubernetes.conf -%verify(not size mtime md5) %attr(755, kube,kube) %dir /run/%{name} - -############################################## -%files node -%license LICENSE -%doc *.md -%{_mandir}/man1/kubelet.1* -%{_mandir}/man1/kube-proxy.1* -%{_bindir}/kubelet -%{_bindir}/kube-proxy -%{_bindir}/hyperkube -%{_unitdir}/kube-proxy.service -%{_unitdir}/kubelet.service -%dir %{_sharedstatedir}/kubelet -%dir %{_sysconfdir}/%{name} -%config(noreplace) %{_sysconfdir}/%{name}/config -%config(noreplace) %{_sysconfdir}/%{name}/kubelet -%config(noreplace) %{_sysconfdir}/%{name}/proxy -%config(noreplace) %{_sysconfdir}/systemd/system.conf.d/kubernetes-accounting.conf -%{_tmpfilesdir}/kubernetes.conf -%verify(not size mtime md5) %attr(755, kube,kube) %dir /run/%{name} - -############################################## -%files kubeadm -%license LICENSE -%doc *.md -%{_mandir}/man1/kubeadm.1* -%{_mandir}/man1/kubeadm-* -%{_bindir}/kubeadm -%dir %{_sysconfdir}/systemd/system/kubelet.service.d -%config(noreplace) %{_sysconfdir}/systemd/system/kubelet.service.d/kubeadm.conf - -############################################## -%files client -%license LICENSE -%doc *.md -%{_mandir}/man1/kubectl.1* -%{_mandir}/man1/kubectl-* -%{_bindir}/kubectl -%{_bindir}/hyperkube -%{_datadir}/bash-completion/completions/kubectl - -############################################## -%files unit-test -%{_sharedstatedir}/kubernetes-unit-test/ - -%if 0%{?with_devel} -%files devel -f devel.file-list -%doc *.md -%dir %{gopath}/src/k8s.io -%endif - -############################################## - -%pre master -getent group kube >/dev/null || groupadd -r kube -getent passwd kube >/dev/null || useradd -r -g kube -d / -s /sbin/nologin \ - -c "Kubernetes user" kube - -%post master -%systemd_post kube-apiserver kube-scheduler kube-controller-manager - -%preun master -%systemd_preun kube-apiserver kube-scheduler kube-controller-manager - -%postun master -%systemd_postun - - -%pre node -getent group kube >/dev/null || groupadd -r kube -getent passwd kube >/dev/null || useradd -r -g kube -d / -s /sbin/nologin \ - -c "Kubernetes user" kube - -%post node -%systemd_post kubelet kube-proxy -# If accounting is not currently enabled systemd reexec -if [[ `systemctl show docker kubelet | grep -q -e CPUAccounting=no -e MemoryAccounting=no; echo $?` -eq 0 ]]; then - systemctl daemon-reexec -fi - -%preun node -%systemd_preun kubelet kube-proxy - -%postun node -%systemd_postun - -############################################ -%changelog -* Tue Mar 27 2018 Spyros Trigazis - 1.10.0-1 -- Bump to upstream v1.10.0 - -* Thu Mar 22 2018 Spyros Trigazis - 1.9.6-1 -- Bump to upstream v1.9.6 - -* Tue Mar 20 2018 Jan Chaloupka - 1.9.5-1 -- Bump to upstream v1.9.5 - resolves: #1554420 - -* Sun Feb 11 2018 Spyros Trigazis - 1.9.3-1 -- Bump to upstream v1.9.3 - -* Fri Feb 09 2018 Jan Chaloupka - 1.9.1-5 -- Add --fail-swap-on=false flag to the /etc/kubernetes/kubelet - resolves: #1542476 - -* Thu Feb 08 2018 Igor Gnatenko - 1.9.1-4 -- Escape macro in %%changelog - -* Wed Feb 07 2018 Fedora Release Engineering - 1.9.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Mon Jan 15 2018 Jan Chaloupka - 1.9.1-2 -- If docker is not available, try docker-ce instead (use boolean dependencies) - resolves: #1534508 - -* Fri Jan 12 2018 Spyros Trigazis - 1.9.1-1 -- Update to upstream v1.9.1 - resolves #1533794 - -* Tue Oct 24 2017 Jan Chaloupka - 1.8.1-1 -- Update to upstream v1.8.1 - resolves: #1497135 - -* Mon Oct 02 2017 Jan Chaloupka - 1.8.0-1 -- Update to upstream v1.8.0 - related: #1497625 - -* Mon Oct 02 2017 Jan Chaloupka - 1.7.7-1 -- Update to upstream v1.7.7 - resolves: #1497625 - -* Mon Sep 18 2017 Jan Chaloupka - 1.7.6-1 -- Update to upstream v1.7.6 - resolves: #1492551 - -* Mon Sep 11 2017 Jan Chaloupka - 1.7.5-1 -- Update to upstream v1.7.5 - resolves: #1490316 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.4-1 -- Fix the version - related: #1482874 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.3-2 -- Update to upstream v1.7.4 - resolves: #1482874 - -* Tue Aug 08 2017 Jan Chaloupka - 1.7.3-1 -- Update to upstream v1.7.3 - resolves: #1479685 - -* Thu Aug 03 2017 Fedora Release Engineering - 1.7.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Sun Jul 30 2017 Florian Weimer - 1.7.2-3 -- Rebuild with binutils fix for ppc64le (#1475636) - -* Wed Jul 26 2017 Fedora Release Engineering - 1.7.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.2-1 -- Update to upstream v1.7.2 - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.1-2 -- Sync kubeadm.conf with upstream service configuration (set Restart,StartLimitInterval,RestartSec) - -* Fri Jul 14 2017 Jan Chaloupka - 1.7.1-1 -- Update to upstream v1.7.1 - resolves: #1471767 - -* Sat Jul 08 2017 Jan Chaloupka - 1.6.7-1 -- Update to upstream v1.6.7 - resolves: #1468823 - resolves: #1468752 - -* Fri May 19 2017 Timothy St. Clair - 1.6.4-1 -- Add kubeadm subpackage to enable upstream deployments - -* Thu May 18 2017 Jan Chaloupka - 1.6.3-1 -- Update to upstream v1.6.3 - resolves: #1452101 - -* Fri May 12 2017 Jan Chaloupka - 1.6.2-2 -- Extend archs with s390x - resolves: #1400000 - -* Tue May 02 2017 Jan Chaloupka - 1.6.2-1 -- Update to upstream v1.6.2 - resolves: #1447338 - -* Tue Apr 11 2017 Jan Chaloupka - 1.6.1-1 -- Update to upstream v1.6.1 - related: #1422889 - -* Fri Mar 31 2017 Jan Chaloupka - 1.5.6-1 -- Update to upstream v1.5.6 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.5-4 -- Update to upstream v1.5.5 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.4-3 -- re-enable debug-info - related: #1422889 - -* Thu Mar 09 2017 Jan Chaloupka - 1.5.4-2 -- Bump to upstream 7243c69eb523aa4377bce883e7c0dd76b84709a1 - related: #1422889 - -* Thu Feb 16 2017 Jan Chaloupka - 1.5.3-1 -- Update to upstream v1.5.3 - resolves: #1422889 - -* Fri Feb 10 2017 Fedora Release Engineering - 1.5.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Jan 18 2017 Jan Chaloupka - 1.5.2-2 -- fix rootScopeNaming generate selfLink - resolves: #1413997 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.2-1 -- Bump version as well - related: #1412996 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.1-2 -- Bump to upstream 1.5.2 - resolves: #1412996 - -* Thu Jan 05 2017 Jan Chaloupka - 1.5.1-1 -- Bump to upstream 1.5.1 - resolves: #1410186 - -* Wed Jan 04 2017 Jan Chaloupka - 1.4.7-2 -- Generate the md files before they are converted to man pages - resolves: #1409943 - -* Mon Dec 12 2016 Jan Chaloupka - 1.4.7-1 -- Bump to upstream v1.4.7 - resolves: #1403823 - New conntrack-tools dependency of kube-proxy - Build kubernetes on ppc64le with linkmode=external - resolves: #1392922 - -* Mon Nov 14 2016 jchaloup - 1.4.5-3 -- Patch unit-test subpackage to run tests over k8s distro binaries - -* Wed Nov 09 2016 jchaloup - 1.4.5-2 -- Add missing if devel around generated devel.file-list - related: #1390074 - -* Tue Nov 08 2016 jchaloup - 1.4.5-1 -- Bump to upstream v1.4.5 (flip back to upstream based Kubernetes) - related: #1390074 - -* Mon Oct 31 2016 jchaloup - 1.4.0-0.1.beta3.git52492b4 -- Update to origin v1.4.0-alpha.0 (ppc64le and arm unbuildable with the current golang version) - resolves: #1390074 - -* Mon Oct 24 2016 jchaloup - 1.3.0-0.4.git52492b4 -- Update to origin v1.3.1 - resolves: #1388092 - -* Thu Sep 08 2016 jchaloup - 1.3.0-0.3.rc1.git507d3a7 -- Update to origin v1.3.0-rc1 - resolves: #1374361 - -* Thu Aug 11 2016 Dennis Gilmore -1.3.0-0.2.git4a3f9c5 -- enable armv7hl and aarch64 - -* Tue Aug 09 2016 jchaloup - 1.3.0-0.1.git4a3f9c5 -- Update to origin v1.3.0-alpha.3 - resolves: #1365601 - -* Thu Jul 21 2016 Fedora Release Engineering - 1.2.0-0.27.git4a3f9c5 -- https://fedoraproject.org/wiki/Changes/golang1.7 - -* Sun Jul 17 2016 jchaloup - 1.2.0-0.26.git4a3f9c5 -- Update to origin v1.2.1 - resolves: #1357261 - -* Wed Jul 13 2016 jchaloup - 1.2.0-0.25.git4a3f9c5 -- Enable CPU and Memory accounting on a node - -* Wed Jun 29 2016 jchaloup - 1.2.0-0.24.git4a3f9c5 -- Be more verbose about devel subpackage - resolves: #1269449 - -* Tue Jun 28 2016 jchaloup - 1.2.0-0.23.git4a3f9c5 -- Own /run/kubernetes directory - resolves: #1264699 - -* Sat May 28 2016 jchaloup - 1.2.0-0.22.git4a3f9c5 -- Bump to origin v1.2.0 - resolves: #1340643 - -* Wed May 04 2016 jchaloup - 1.2.0-0.21.git4a3f9c5 -- Extend uni-test subpackage to run other tests - -* Mon Apr 25 2016 jchaloup - 1.2.0-0.20.git4a3f9c5 -- Update support for ppc64le to use go compiler - related: #1306214 - -* Thu Apr 21 2016 jchaloup - 1.2.0-0.19.git4a3f9c5 -- Fix support for ppc64le - related: #1306214 - -* Tue Apr 19 2016 jchaloup - 1.2.0-0.18.git4a3f9c5 -- Bump to origin v1.1.6 - resolves: #1328357 - -* Mon Apr 11 2016 jchaloup - 1.2.0-0.17.alpha6.git4a3f9c5 -- Don't disable extensions/v1beta1 by default to conform with upstream documentation - -* Wed Mar 30 2016 jchaloup - 1.2.0-0.16.alpha6.git4a3f9c5 - Update to origin's v1.1.5 - Build on ppc64le as well - resolves: #1306214 - -* Tue Mar 08 2016 jchaloup - 1.2.0-0.15.alpha6.gitf0cd09a -- hyperkube.server: don't parse args for any command - -* Fri Mar 04 2016 jchaloup - 1.2.0-0.14.alpha6.gitf0cd09a -- Disable extensions/v1beta1 implicitly - -* Tue Mar 01 2016 jchaloup - 1.2.0-0.13.alpha6.gitf0cd09a -- Hyperkube checks flags of individual commands/servers even if it does not define their flags. - Thus resulting in 'uknown shorthand flag' error - -* Mon Feb 29 2016 jchaloup - 1.2.0-0.12.alpha6.gitf0cd09a -- Disable v1beta3 -- hyperkube-kubectl-dont shift os.Args - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.11.alpha6.gitf0cd09a -- add kube- prefix to controller-manager, proxy and scheduler - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.10.alpha6.gitf0cd09a -- Hardlink kube-controller-manager, kuber-scheduler, kubectl, kubelet and kube-proxy into hyperkube -- Keep kube-apiserver binary as it is (it has different permission and capabilities) - -* Thu Feb 25 2016 jchaloup - 1.2.0-0.9.alpha6.gitf0cd09a -- Fix Content-Type of docker client response - resolves: #1311861 - -* Mon Feb 22 2016 Fedora Release Engineering - 1.2.0-0.8.alpha6.gitf0cd09a -- https://fedoraproject.org/wiki/Changes/golang1.6 - -* Mon Feb 22 2016 jchaloup - 1.2.0-0.7.alpha6.git4c8e6f4 -- Bump to origin 1.1.3 - kube-version-change command replaced with kubectl convert (check out docs/admin/cluster-management.md) - related: 1295066 - -* Thu Feb 04 2016 Fedora Release Engineering - 1.2.0-0.6.alpha1.git4c8e6f4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 21 2016 jchaloup - 1.2.0-0.5.alpha1.git4c8e6f4 -- Bump to upstream e1d9873c1d5711b83fd3dd7eefe83a88ceb92c08 - related: #1291860 - -* Thu Jan 07 2016 jchaloup - 1.2.0-0.4.alpha1.git4c8e6f4 -- Move definition of all version, git and commit macros at one place - resolves: #1291860 - -* Fri Jan 01 2016 jchaloup - 1.2.0-0.3.alpha1.git4c8e6f4 -- Bump to upstream bf56e235826baded1772fb340266b8419c3e8f30 - Rebase to origin's "v1.1.0.1 - Security Update to v1.1" release - resolves: #1295066 - -* Thu Nov 26 2015 jchaloup - 1.2.0-0.2.alpha1.git4c8e6f4 -- Bump to origin upstream a41c9ff38d52fd508481c3c2bac13d52871fde02 -- Build kubernetes from origin's Godeps using hack/build-go.sh - origin's Godeps = kubernetes upstream + additional patches - -* Tue Oct 20 2015 jchaloup - 1.2.0-0.1.alpha1.git4c8e6f4 -- Bump to upstream 403de3874fba420fd096f2329b45fe2f5ae97e46 - related: #1211266 - -* Wed Oct 14 2015 jchaloup - 1.1.0-0.41.alpha1.gite9a6ef1 -- Bump to origin upstream e9a6ef1cd4c29d45730289a497d18b19d7ba450d - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.40.alpha1.git5f38cb0 -- Add missing short option for --server of kubectl -- Update unit-test-subpackage (only test-cmd.sh atm) - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.39.alpha1.git5f38cb0 -- Add normalization of flags - related: #1211266 - -* Fri Oct 02 2015 jchaloup - 1.1.0-0.38.alpha1.git5f38cb0 -- Restore unit-test subpackage (not yet tested) - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.37.alpha1.git5f38cb0 -- Do not unset default cluster, otherwise k8s ends with error when no cluster set - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.36.alpha0.git5f38cb0 -- Bump to o4n 5f38cb0e98c9e854cafba9c7f98dafd51e955ad8 - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.35.alpha1.git2695cdc -- Update git version of k8s and o4n, add macros - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.34.alpha1.git2695cdc -- Built k8s from o4n tarball -- Bump to upstream 2695cdcd29a8f11ef60278758e11f4817daf3c7c - related: #1211266 - -* Tue Sep 22 2015 jchaloup - 1.1.0-0.33.alpha1.git09cf38e -- Bump to upstream 09cf38e9a80327e2d41654db277d00f19e2c84d0 - related: #1211266 - -* Thu Sep 17 2015 jchaloup - 1.1.0-0.32.alpha1.git400e685 -- Bump to upstream 400e6856b082ecf4b295568acda68d630fc000f1 - related: #1211266 - -* Wed Sep 16 2015 jchaloup - 1.1.0-0.31.gitd549fc4 -- Bump to upstream d549fc400ac3e5901bd089b40168e1e6fb17341d - related: #1211266 - -* Tue Sep 15 2015 jchaloup - 1.1.0-0.30.gitc9570e3 -- Bump to upstream c9570e34d03c6700d83f796c0125d17c5064e57d - related: #1211266 - -* Mon Sep 14 2015 jchaloup - 1.1.0-0.29.git86b4e77 -- Bump to upstream 86b4e777e1947c1bc00e422306a3ca74cbd54dbe - related: #1211266 - -* Thu Sep 10 2015 jchaloup - 1.1.0-0.28.gitf867ba3 -- Bump to upstream f867ba3ba13e3dad422efd21c74f52b9762de37e - related: #1211266 - -* Wed Sep 09 2015 jchaloup - 1.1.0-0.27.git0f4fa4e -- Bump to upstream 0f4fa4ed25ae9a9d1824fe55aeefb4d4ebfecdfd - related: #1211266 - -* Tue Sep 08 2015 jchaloup - 1.1.0-0.26.git196f58b -- Bump to upstream 196f58b9cb25a2222c7f9aacd624737910b03acb - related: #1211266 - -* Mon Sep 07 2015 jchaloup - 1.1.0-0.25.git96e0ed5 -- Bump to upstream 96e0ed5749608d4cc32f61b3674deb04c8fa90ad - related: #1211266 - -* Sat Sep 05 2015 jchaloup - 1.1.0-0.24.git2e2def3 -- Bump to upstream 2e2def36a904fe9a197da5fc70e433e2e884442f - related: #1211266 - -* Fri Sep 04 2015 jchaloup - 1.1.0-0.23.gite724a52 -- Bump to upstream e724a5210adf717f62a72162621ace1e08730c75 - related: #1211266 - -* Thu Sep 03 2015 jchaloup - 1.1.0-0.22.gitb6f2f39 -- Bump to upstream b6f2f396baec5105ff928cf61903c2c368259b21 - related: #1211266 - -* Wed Sep 02 2015 jchaloup - 1.1.0-0.21.gitb4a3698 -- Bump to upstream b4a3698faed81410468eccf9f328ca6df3d0cca3 - related: #1211266 - -* Tue Sep 01 2015 jchaloup - 1.1.0-0.20.git2f9652c -- Bump to upstream 2f9652c7f1d4b8f333c0b5c8c1270db83b913436 - related: #1211266 - -* Mon Aug 31 2015 jchaloup - 1.1.0-0.19.git66a644b -- Bump to upstream 66a644b275ede9ddb98eb3f76e8d1840cafc2147 - related: #1211266 - -* Thu Aug 27 2015 jchaloup - 1.1.0-0.18.gitab73849 -- Bump to upstream ab7384943748312f5e9294f42d42ed3983c7c96c - related: #1211266 - -* Wed Aug 26 2015 jchaloup - 1.1.0-0.17.git00e3442 -- Bump to upstream 00e34429e0242323ed34347cf0ab65b3d62b21f7 - related: #1211266 - -* Tue Aug 25 2015 jchaloup - 1.1.0-0.16.gita945785 -- Bump to upstream a945785409d5b68f3a2721d2209300edb5abf1ce - related: #1211266 - -* Mon Aug 24 2015 jchaloup - 1.1.0-0.15.git5fe7029 -- Bump to upstream 5fe7029e688e1e5873a0b95a622edda5b5156d2b - related: #1211266 - -* Fri Aug 21 2015 jchaloup - 1.1.0-0.14.gitb6f18c7 -- Bump to upstream b6f18c7ce08714c8d4f6019463879a164a41750e - related: #1211266 - -* Thu Aug 20 2015 jchaloup - 1.1.0-0.13.git44fa48e -- Bump to upstream 44fa48e5af44d3e988fa943d96a2de732d8cc666 - related: #1211266 - -* Wed Aug 19 2015 jchaloup - 1.1.0-0.12.gitb5a4a54 -- Bump to upstream b5a4a548df0cffb99bdcc3b9b9e48d4025d0541c - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.11.git919c7e9 -- Bump to upstream 919c7e94e23d2dcd5bdd96896e0a7990f9ae3338 - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.10.git280b66c -- Bump to upstream 280b66c9012c21e253acd4e730f8684c39ca08ec - related: #1211266 - -* Mon Aug 17 2015 jchaloup - 1.1.0-0.9.git081d9c6 -- Bump to upstream 081d9c64d25c20ec16035036536511811118173d - related: #1211266 - -* Fri Aug 14 2015 jchaloup - 1.1.0-0.8.git8dcbeba -- Bump to upstream 8dcbebae5ef6a7191d9dfb65c68833c6852a21ad - related: #1211266 - -* Thu Aug 13 2015 jchaloup - 1.1.0-0.7.git968cbbe -- Bump to upstream 968cbbee5d4964bd916ba379904c469abb53d623 - related: #1211266 - -* Wed Aug 12 2015 jchaloup - 1.1.0-0.6.gitc91950f -- Bump to upstream c91950f01cb14ad47486dfcd2fdfb4be3ee7f36b - related: #1211266 - -* Tue Aug 11 2015 jchaloup - 1.1.0-0.5.gite44c8e6 -- Bump to upstream e44c8e6661c931f7fd434911b0d3bca140e1df3a - related: #1211266 - -* Mon Aug 10 2015 jchaloup - 1.1.0-0.4.git2bfa9a1 -- Bump to upstream 2bfa9a1f98147cfdc2e9f4cf50e2c430518d91eb - related: #1243827 - -* Thu Aug 06 2015 jchaloup - 1.1.0-0.3.git4c42e13 -- Bump to upstream 4c42e1302d3b351f3cb6074d32aa420bbd45e07d -- Change import path prefix to k8s.io/kubernetes - related: #1243827 - -* Wed Aug 05 2015 jchaloup - 1.1.0-0.2.git159ba48 -- Bump to upstream 159ba489329e9f6ce422541e13f97e1166090ec8 - related: #1243827 - -* Sat Aug 01 2015 jchaloup - 1.1.0-0.1.git6129d3d -- Bump to upstream 6129d3d4eb80714286650818081a64ce2699afed - related: #1243827 - -* Fri Jul 31 2015 jchaloup - 1.0.0-0.18.gitff058a1 -- Bump to upstream ff058a1afeb63474f7a35805941f3b07c27aae0f - related: #1243827 - -* Thu Jul 30 2015 jchaloup - 1.0.0-0.17.git769230e -- Bump to upstream 769230e735993bb0bf924279a40593c147c9a6ab - related: #1243827 - -* Wed Jul 29 2015 jchaloup - 1.0.0-0.16.gitdde7222 -- Bump to upstream dde72229dc9cbbdacfb2e44b22d9d5b357027020 - related: #1243827 - -* Tue Jul 28 2015 jchaloup - 1.0.0-0.15.gitc5bffaa -- Bump to upstream c5bffaaf3166513da6259c44a5d1ba8e86bea5ce - related: #1243827 - -* Sat Jul 25 2015 jchaloup - 1.0.0-0.14.git5bd82ff -- Bump to upstream 5bd82ffe6da8f4e72e71b362635e558bfc412106 - related: #1243827 - -* Fri Jul 24 2015 jchaloup - 1.0.0-0.13.git291acd1 -- Bump to upstream 291acd1a09ac836ec7524b060a19a6498d9878dd - related: #1243827 - -* Thu Jul 23 2015 jchaloup - 1.0.0-0.12.gitfbed349 -- Bump to upstream fbed3492bfa09e59b1c423fdd7c1ecad333a06ef - related: #1243827 - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.11.gitfbc85e9 -- Add runtime dependency of kubernetes-node on socat (so kubectl port-forward works on AH) - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.10.gitfbc85e9 -- Update the build script for go1.5 as well -- Bump to upstream fbc85e9838f25547be94fbffeeb92a756d908ca0 - related: #1243827 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.9.git2d88675 -- Bump to upstream 2d88675f2203d316d4bac312c7ccad12991b56c2 -- Change KUBE_ETCD_SERVERS to listen on 2379 ports instead of 4001 - resolves: #1243827 -- Add kubernetes-client to provide kubectl command - resolves: #1241469 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.8.gitb2dafda -- Fix dependency and tests for go-1.5 -- with_debug off as the builds ends with error "ELFRESERVE too small: ..." - -* Sat Jul 18 2015 Eric Paris - 1.0.0-0.7.gitb2dafda -- Update apiserver binary gid - -* Fri Jul 17 2015 jchaloup - 1.0.0-0.6.gitb2dafda -- Bump to upstream b2dafdaef5aceafad503ab56254b60f80da9e980 - related: #1211266 - -* Thu Jul 16 2015 jchaloup - 1.0.0-0.5.git596a8a4 -- Bump to upstream 596a8a40d12498b5335140f50753980bfaea4f6b - related: #1211266 - -* Wed Jul 15 2015 jchaloup - 1.0.0-0.4.git6ba532b -- Bump to upstream 6ba532b218cb5f5ea3f0e8dce5395182f388536c - related: #1211266 - -* Tue Jul 14 2015 jchaloup - 1.0.0-0.3.gitc616182 -- Bump to upstream c6161824db3784e6156131307a5e94647e5557fd - related: #1211266 - -* Mon Jul 13 2015 jchaloup - 1.0.0-0.2.git2c27b1f -- Bump to upstream 2c27b1fa64f4e70f04575d1b217494f49332390e - related: #1211266 - -* Sat Jul 11 2015 jchaloup - 1.0.0-0.1.git1b37059 -- Bump to upstream 1b370599ccf271741e657335c4943cb8c7dba28b - related: #1211266 - -* Fri Jul 10 2015 jchaloup - 0.21.1-0.2.gitccc4cfc -- Bump to upstream ccc4cfc7e11e0f127ac1cea045017dd799be3c63 - related: #1211266 - -* Thu Jul 09 2015 jchaloup - 0.21.1-0.1.git41f8907 -- Update generating of man pages from md (add genmanpages.sh) -- Bump to upstream 41f89075396329cd46c58495c7d3f7e13adcaa96 - related: #1211266 - -* Wed Jul 08 2015 jchaloup - 0.20.2-0.5.git77be29e -- Bump to upstream 77be29e3da71f0a136b6aa4048b2f0575c2598e4 - related: #1211266 - -* Tue Jul 07 2015 jchaloup - 0.20.2-0.4.git639a7da -- Bump to upstream 639a7dac50a331414cc6c47083323388da0d8756 - related: #1211266 - -* Mon Jul 06 2015 jchaloup - 0.20.2-0.3.gitbb6f2f7 -- Bump to upstream bb6f2f7ad90596d624d84cc691eec0f518e90cc8 - related: #1211266 - -* Fri Jul 03 2015 jchaloup - 0.20.2-0.2.git974377b -- Bump to upstream 974377b3064ac59b6e5694bfa568d67128026171 - related: #1211266 - -* Thu Jul 02 2015 jchaloup - 0.20.2-0.1.gitef41ceb -- Bump to upstream ef41ceb3e477ceada84c5522f429f02ab0f5948e - related: #1211266 - -* Tue Jun 30 2015 jchaloup - 0.20.0-0.3.git835eded -- Bump to upstream 835eded2943dfcf13a89518715e4be842a6a3ac0 -- Generate missing man pages - related: #1211266 - -* Mon Jun 29 2015 jchaloup - 0.20.0-0.2.git1c0b765 -- Bump to upstream 1c0b765df6dabfe9bd0e20489ed3bd18e6b3bda8 - Comment out missing man pages - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.20.0-0.1.git8ebd896 -- Bump to upstream 8ebd896351513d446d56bc5785c070d2909226a3 - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.19.3-0.6.git712f303 -- Bump to upstream 712f303350b35e70a573f3cb19193c8ec7ee7544 - related: #1211266 - -* Thu Jun 25 2015 jchaloup - 0.19.3-0.5.git2803b86 -- Bump to upstream 2803b86a42bf187afa816a7ce14fec754cc2af51 - related: #1211266 - -* Wed Jun 24 2015 Eric Paris - 0.19.3-0.4.git5b4dc4e -- Set CAP_NET_BIND_SERVICE on the kube-apiserver so it can use 443 - -* Wed Jun 24 2015 jchaloup - 0.19.3-0.3.git5b4dc4e -- Bump to upstream 5b4dc4edaa14e1ab4e3baa19df0388fa54dab344 - pkg/cloudprovider/* packages does not conform to golang language specification - related: #1211266 - -* Tue Jun 23 2015 jchaloup - 0.19.3-0.2.gita2ce3ea -- Bump to upstream a2ce3ea5293553b1fe0db3cbc6d53bdafe061d79 - related: #1211266 - -* Mon Jun 22 2015 jchaloup - 0.19.1-0.1.gitff0546d -- Bump to upstream ff0546da4fc23598de59db9f747c535545036463 - related: #1211266 - -* Fri Jun 19 2015 jchaloup - 0.19.0-0.7.gitb2e9fed -- Bump to upstream b2e9fed3490274509506285bdba309c50afb5c39 - related: #1211266 - -* Thu Jun 18 2015 jchaloup - 0.19.0-0.6.gitf660940 -- Bump to upstream f660940dceb3fe6ffb1b14ba495a47d91b5cd910 - related: #1211266 - -* Wed Jun 17 2015 jchaloup - 0.19.0-0.5.git43889c6 -- Bump to upstream 43889c612c4d396dcd8fbf3fbd217e106eaf5bce - related: #1211266 - -* Tue Jun 16 2015 jchaloup - 0.19.0-0.4.gita8269e3 -- Bump to upstream a8269e38c9e2bf81ba18cd6420e2309745d5b0b9 - related: #1211266 - -* Sun Jun 14 2015 jchaloup - 0.19.0-0.3.git5e5c1d1 -- Bump to upstream 5e5c1d10976f2f26d356ca60ef7d0d715c9f00a2 - related: #1211266 - -* Fri Jun 12 2015 jchaloup - 0.19.0-0.2.git0ca96c3 -- Bump to upstream 0ca96c3ac8b47114169f3b716ae4521ed8c7657c - related: #1211266 - -* Thu Jun 11 2015 jchaloup - 0.19.0-0.1.git5a02fc0 -- Bump to upstream 5a02fc07d8a943132b9e68fe7169778253318487 - related: #1211266 - -* Wed Jun 10 2015 jchaloup - 0.18.2-0.3.git0dfb681 -- Bump to upstream 0dfb681ba5d5dba535895ace9d650667904b5df7 - related: #1211266 - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.2.gitb68e08f -- golang-cover is not needed - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.1.gitb68e08f -- Bump to upstream b68e08f55f5ae566c4ea3905d0993a8735d6d34f - related: #1211266 - -* Sat Jun 06 2015 jchaloup - 0.18.1-0.3.git0f1c4c2 -- Bump to upstream 0f1c4c25c344f70c3592040b2ef092ccdce0244f - related: #1211266 - -* Fri Jun 05 2015 jchaloup - 0.18.1-0.2.git7309e1f -- Bump to upstream 7309e1f707ea5dd08c51f803037d7d22c20e2b92 - related: #1211266 - -* Thu Jun 04 2015 jchaloup - 0.18.1-0.1.gita161edb -- Bump to upstream a161edb3960c01ff6e14813858c2eeb85910009b - related: #1211266 - -* Wed Jun 03 2015 jchaloup - 0.18.0-0.3.gitb5a91bd -- Bump to upstream b5a91bda103ed2459f933959241a2b57331747ba -- Don't run %%check section (kept only for local run). Tests are now handled via CI. - related: #1211266 - -* Tue Jun 02 2015 jchaloup - 0.18.0-0.2.git5520386 -- Bump to upstream 5520386b180d3ddc4fa7b7dfe6f52642cc0c25f3 - related: #1211266 - -* Mon Jun 01 2015 jchaloup - 0.18.0-0.1.git0bb78fe -- Bump to upstream 0bb78fe6c53ce38198cc3805c78308cdd4805ac8 - related: #1211266 - -* Fri May 29 2015 jchaloup - 0.17.1-6 -- Bump to upstream ed4898d98c46869e9cbdb44186dfdeda9ff80cc2 - related: #1211266 - -* Thu May 28 2015 jchaloup - 0.17.1-5 -- Bump to upstream 6fa2777e26559fc008eacac83eb165d25bd9a7de - related: #1211266 - -* Tue May 26 2015 jchaloup - 0.17.1-4 -- Bump to upstream 01fcb58673001e56c69e128ab57e0c3f701aeea5 - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-3 -- Decompose package into master and node subpackage. - Thanks to Avesh for testing and patience. - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-2 -- Bump to upstream cf7b0bdc2a41d38613ac7f8eeea91cae23553fa2 - related: #1211266 - -* Fri May 22 2015 jchaloup - 0.17.1-1 -- Bump to upstream d9d12fd3f7036c92606fc3ba9046b365212fcd70 - related: #1211266 - -* Wed May 20 2015 jchaloup - 0.17.0-12 -- Bump to upstream a76bdd97100c66a46e2b49288540dcec58a954c4 - related: #1211266 - -* Tue May 19 2015 jchaloup - 0.17.0-11 -- Bump to upstream 10339d72b66a31592f73797a9983e7c207481b22 - related: #1211266 - -* Mon May 18 2015 jchaloup - 0.17.0-10 -- Bump to upstream efb42b302d871f7217394205d84e5ae82335d786 - related: #1211266 - -* Sat May 16 2015 jchaloup - 0.17.0-9 -- Bump to upstream d51e131726b925e7088b90915e99042459b628e0 - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-8 -- Bump to upstream 1ee33ac481a14db7b90e3bbac8cec4ceea822bfb - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-7 -- Bump to upstream d3c6fb0d6a13c0177dcd67556d72963c959234ea - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-6 -- Bump to upstream f57f31783089f41c0bdca8cb87a1001ca94e1a45 - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-5 -- Bump to upstream c90d381d0d5cf8ab7b8412106f5a6991d7e13c7d - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-4 -- Bump to upstream 5010b2dde0f9b9eb820fe047e3b34bc9fa6324de -- Add debug info - related: #1211266 - -* Wed May 13 2015 jchaloup - 0.17.0-3 -- Bump to upstream ec19d41b63f5fe7b2c939e7738a41c0fbe65d796 - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-2 -- Provide /usr/bin/kube-version-change binary - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-1 -- Bump to upstream 962f10ee580eea30e5f4ea725c4e9e3743408a58 - related: #1211266 - -* Mon May 11 2015 jchaloup - 0.16.2-7 -- Bump to upstream 63182318c5876b94ac9b264d1224813b2b2ab541 - related: #1211266 - -* Fri May 08 2015 jchaloup - 0.16.2-6 -- Bump to upstream d136728df7e2694df9e082902f6239c11b0f2b00 -- Add NetworkManager as dependency for /etc/resolv.conf - related: #1211266 - -* Thu May 07 2015 jchaloup - 0.16.2-5 -- Bump to upstream ca0f678b9a0a6dc795ac7a595350d0dbe9d0ac3b - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-4 -- Add docs to kubernetes-unit-test - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-3 -- Bump to upstream 3a24c0e898cb3060d7905af6df275a3be562451d - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-2 -- Add api and README.md to kubernetes-unit-test - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-1 -- Bump to upstream 72048a824ca16c3921354197953fabecede5af47 - related: #1211266 - -* Mon May 04 2015 jchaloup - 0.16.1-2 -- Bump to upstream 1dcd80cdf3f00409d55cea1ef0e7faef0ae1d656 - related: #1211266 - -* Sun May 03 2015 jchaloup - 0.16.1-1 -- Bump to upstream 86751e8c90a3c0e852afb78d26cb6ba8cdbc37ba - related: #1211266 - -* Fri May 01 2015 jchaloup - 0.16.0-2 -- Bump to upstream 72708d74b9801989ddbdc8403fc5ba4aafb7c1ef - related: #1211266 - -* Wed Apr 29 2015 jchaloup - 0.16.0-1 -- Bump to upstream 7dcce2eeb7f28643d599c8b6a244523670d17c93 - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-10 -- Add unit-test subpackage - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-9 -- Bump to upstream 99fc906f78cd2bcb08536c262867fa6803f816d5 - related: #1211266 - -* Mon Apr 27 2015 jchaloup - 0.15.0-8 -- Bump to upstream 051dd96c542799dfab39184d2a7c8bacf9e88d85 - related: #1211266 - -* Fri Apr 24 2015 jchaloup - 0.15.0-7 -- Bump to upstream 9f753c2592481a226d72cea91648db8fb97f0da8 - related: #1211266 - -* Thu Apr 23 2015 jchaloup - 0.15.0-6 -- Bump to upstream cf824ae5e07965ba0b4b15ee88e08e2679f36978 - related: #1211266 - -* Tue Apr 21 2015 jchaloup - 0.15.0-5 -- Bump to upstream 21788d8e6606038a0a465c97f5240b4e66970fbb - related: #1211266 - -* Mon Apr 20 2015 jchaloup - 0.15.0-4 -- Bump to upstream eb1ea269954da2ce557f3305fa88d42e3ade7975 - related: #1211266 - -* Fri Apr 17 2015 jchaloup - 0.15.0-3 -- Obsolete cadvisor as it is integrated in kubelet - related: #1211266 - -* Wed Apr 15 2015 jchaloup - 0.15.0-0.2.git0ea87e4 -- Bump to upstream 0ea87e486407298dc1e3126c47f4076b9022fb09 - related: #1211266 - -* Tue Apr 14 2015 jchaloup - 0.15.0-0.1.gitd02139d -- Bump to upstream d02139d2b454ecc5730cc535d415c1963a7fb2aa - related: #1211266 - -* Sun Apr 12 2015 jchaloup - 0.14.2-0.2.gitd577db9 -- Bump to upstream d577db99873cbf04b8e17b78f17ec8f3a27eca30 - -* Wed Apr 08 2015 jchaloup - 0.14.2-0.1.git2719194 -- Bump to upstream 2719194154ffd38fd1613699a9dd10a00909957e - Use etcd-2.0.8 and higher - -* Tue Apr 07 2015 jchaloup - 0.14.1-0.2.gitd2f4734 -- Bump to upstream d2f473465738e6b6f7935aa704319577f5e890ba - -* Thu Apr 02 2015 jchaloup - 0.14.1-0.1.gita94ffc8 -- Bump to upstream a94ffc8625beb5e2a39edb01edc839cb8e59c444 - -* Wed Apr 01 2015 jchaloup - 0.14.0-0.2.git8168344 -- Bump to upstream 81683441b96537d4b51d146e39929b7003401cd5 - -* Tue Mar 31 2015 jchaloup - 0.14.0-0.1.git9ed8761 -- Bump to upstream 9ed87612d07f75143ac96ad90ff1ff68f13a2c67 -- Remove [B]R from devel branch until the package has stable API - -* Mon Mar 30 2015 jchaloup - 0.13.2-0.6.git8a7a127 -- Bump to upstream 8a7a127352263439e22253a58628d37a93fdaeb2 - -* Fri Mar 27 2015 jchaloup - 0.13.2-0.5.git8d94c43 -- Bump to upstream 8d94c43e705824f23791b66ad5de4ea095d5bb32 - resolves: #1205362 - -* Wed Mar 25 2015 jchaloup - 0.13.2-0.4.git455fe82 -- Bump to upstream 455fe8235be8fd9ba0ce21bf4f50a69d42e18693 - -* Mon Mar 23 2015 jchaloup - 0.13.2-0.3.gitef75888 -- Remove runtime dependency on etcd - resolves: #1202923 - -* Sun Mar 22 2015 jchaloup - 0.13.2-0.2.gitef75888 -- Bump to upstream ef758881d108bb53a128126c503689104d17f477 - -* Fri Mar 20 2015 jchaloup - 0.13.2-0.1.gita8f2cee -- Bump to upstream a8f2cee8c5418676ee33a311fad57d6821d3d29a - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.9.git53b25a7 -- Bump to upstream 53b25a7890e31bdec6f2a95b32200d6cc27ae2ca - fix kube-proxy.service and kubelet - resolves: #1200919 #1200924 - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.8.git39dceb1 -- Bump to upstream 39dceb13a511a83963a766a439cb386d10764310 - -* Thu Mar 12 2015 Eric Paris - 0.12.0-0.7.gita3fd0a9 -- Move from /etc/tmpfiles.d to %%{_tmpfilesdir} - resolves: #1200969 - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.6.gita3fd0a9 -- Place contrib/init/systemd/tmpfiles.d/kubernetes.conf to /etc/tmpfiles.d/kubernetes.conf - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.5.gita3fd0a9 -- Bump to upstream a3fd0a9fd516bb6033f32196ae97aaecf8c096b1 - -* Tue Mar 10 2015 jchaloup - 0.12.0-0.4.gita4d871a -- Bump to upstream a4d871a10086436557f804930812f2566c9d4d39 - -* Fri Mar 06 2015 jchaloup - 0.12.0-0.3.git2700871 -- Bump to upstream 2700871b049d5498167671cea6de8317099ad406 - -* Thu Mar 05 2015 jchaloup - 0.12.0-0.2.git8b627f5 -- Bump to upstream 8b627f516fd3e4f62da90d401ceb3d38de6f8077 - -* Tue Mar 03 2015 jchaloup - 0.12.0-0.1.gitecca426 -- Bump to upstream ecca42643b91a7117de8cd385b64e6bafecefd65 - -* Mon Mar 02 2015 jchaloup - 0.11.0-0.5.git6c5b390 -- Bump to upstream 6c5b390160856cd8334043344ef6e08568b0a5c9 - -* Sat Feb 28 2015 jchaloup - 0.11.0-0.4.git0fec31a -- Bump to upstream 0fec31a11edff14715a1efb27f77262a7c3770f4 - -* Fri Feb 27 2015 jchaloup - 0.11.0-0.3.git08402d7 -- Bump to upstream 08402d798c8f207a2e093de5a670c5e8e673e2de - -* Wed Feb 25 2015 jchaloup - 0.11.0-0.2.git86434b4 -- Bump to upstream 86434b4038ab87ac40219562ad420c3cc58c7c6b - -* Tue Feb 24 2015 jchaloup - 0.11.0-0.1.git754a2a8 -- Bump to upstream 754a2a8305c812121c3845d8293efdd819b6a704 - turn off integration tests until "FAILED: unexpected endpoints: - timed out waiting for the condition" problem is resolved - Adding back devel subpackage ([B]R list outdated) - -* Fri Feb 20 2015 jchaloup - 0.10.1-0.3.git4c87805 -- Bump to upstream 4c87805870b1b22e463c4bd711238ef68c77f0af - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.2.git6f84bda -- Bump to upstream 6f84bdaba853872dbac69c84d3ab4b6964e85d8c - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.1.git7d6130e -- Bump to upstream 7d6130edcdfabd7dd2e6a06fdc8fe5e333f07f5c - -* Sat Feb 07 2015 jchaloup - 0.9.1-0.7.gitc9c98ab -- Bump to upstream c9c98ab19eaa6f0b2ea17152c9a455338853f4d0 - Since some dependencies are broken, we can not build Kubernetes from Fedora deps. - Switching to vendored source codes until Go draft is resolved - -* Wed Feb 04 2015 jchaloup - 0.9.1-0.6.git7f5ed54 -- Bump to upstream 7f5ed541f794348ae6279414cf70523a4d5133cc - -* Tue Feb 03 2015 jchaloup - 0.9.1-0.5.git2ac6bbb -- Bump to upstream 2ac6bbb7eba7e69eac71bd9acd192cda97e67641 - -* Mon Feb 02 2015 jchaloup - 0.9.1-0.4.gite335e2d -- Bump to upstream e335e2d3e26a9a58d3b189ccf41ceb3770d1bfa9 - -* Fri Jan 30 2015 jchaloup - 0.9.1-0.3.git55793ac -- Bump to upstream 55793ac2066745f7243c666316499e1a8cf074f0 - -* Thu Jan 29 2015 jchaloup - 0.9.1-0.2.gitca6de16 -- Bump to upstream ca6de16df7762d4fc9b4ad44baa78d22e3f30742 - -* Tue Jan 27 2015 jchaloup - 0.9.1-0.1.git3623a01 -- Bump to upstream 3623a01bf0e90de6345147eef62894057fe04b29 -- update tests for etcd-2.0 - -* Thu Jan 22 2015 jchaloup - 0.8.2-571.gitb2f287c -+- Bump to upstream b2f287c259d856f4c08052a51cd7772c563aff77 - -* Thu Jan 22 2015 Eric Paris - 0.8.2-570.gitb2f287c -- patch kubelet service file to use docker.service not docker.socket - -* Wed Jan 21 2015 jchaloup - 0.8.2-0.1.git5b04640 -- Bump to upstream 5b046406a957a1e7eda7c0c86dd7a89e9c94fc5f - -* Sun Jan 18 2015 jchaloup - 0.8.0-126.0.git68298f0 -- Add some missing dependencies -- Add devel subpackage - -* Fri Jan 09 2015 Eric Paris - 0.8.0-125.0.git68298f0 -- Bump to upstream 68298f08a4980f95dfbf7b9f58bfec1808fb2670 - -* Tue Dec 16 2014 Eric Paris - 0.7.0-18.0.git52e165a -- Bump to upstream 52e165a4fd720d1703ebc31bd6660e01334227b8 - -* Mon Dec 15 2014 Eric Paris - 0.6-297.0.git5ef34bf -- Bump to upstream 5ef34bf52311901b997119cc49eff944c610081b - -* Wed Dec 03 2014 Eric Paris -- Replace patch to use old googlecode/go.net/ with BuildRequires on golang.org/x/net/ - -* Tue Dec 02 2014 Eric Paris - 0.6-4.0.git993ef88 -- Bump to upstream 993ef88eec9012b221f79abe8f2932ee97997d28 - -* Mon Dec 01 2014 Eric Paris - 0.5-235.0.git6aabd98 -- Bump to upstream 6aabd9804fb75764b70e9172774002d4febcae34 - -* Wed Nov 26 2014 Eric Paris - 0.5-210.0.gitff1e9f4 -- Bump to upstream ff1e9f4c191342c24974c030e82aceaff8ea9c24 - -* Tue Nov 25 2014 Eric Paris - 0.5-174.0.git64e07f7 -- Bump to upstream 64e07f7fe03d8692c685b09770c45f364967a119 - -* Mon Nov 24 2014 Eric Paris - 0.5-125.0.git162e498 -- Bump to upstream 162e4983b947d2f6f858ca7607869d70627f5dff - -* Fri Nov 21 2014 Eric Paris - 0.5-105.0.git3f74a1e -- Bump to upstream 3f74a1e9f56b3c3502762930c0c551ccab0557ea - -* Thu Nov 20 2014 Eric Paris - 0.5-65.0.gitc6158b8 -- Bump to upstream c6158b8aa9c40fbf1732650a8611429536466b21 -- include go-restful build requirement - -* Tue Nov 18 2014 Eric Paris - 0.5-14.0.gitdf0981b -- Bump to upstream df0981bc01c5782ad30fc45cb6f510f365737fc1 - -* Tue Nov 11 2014 Eric Paris - 0.4-680.0.git30fcf24 -- Bump to upstream 30fcf241312f6d0767c7d9305b4c462f1655f790 - -* Mon Nov 10 2014 Eric Paris - 0.4-633.0.git6c70227 -- Bump to upstream 6c70227a2eccc23966d32ea6d558ee05df46e400 - -* Fri Nov 07 2014 Eric Paris - 0.4-595.0.gitb695650 -- Bump to upstream b6956506fa2682afa93770a58ea8c7ba4b4caec1 - -* Thu Nov 06 2014 Eric Paris - 0.4-567.0.git3b1ef73 -- Bump to upstream 3b1ef739d1fb32a822a22216fb965e22cdd28e7f - -* Thu Nov 06 2014 Eric Paris - 0.4-561.0.git06633bf -- Bump to upstream 06633bf4cdc1ebd4fc848f85025e14a794b017b4 -- Make spec file more RHEL/CentOS friendly - -* Tue Nov 04 2014 Eric Paris - 0.4-0.0.git4452163 -- rebase to v0.4 -- include man pages - -* Tue Oct 14 2014 jchaloup - 0.3-0.3.git98ac8e1 -- create /var/lib/kubelet -- Use bash completions from upstream -- Bump to upstream 98ac8e178fcf1627399d659889bcb5fe25abdca4 -- all by Eric Paris - -* Mon Sep 29 2014 Jan Chaloupka - 0.3-0.2.git88fdb65 -- replace * with coresponding files -- remove dependency on gcc - -* Wed Sep 24 2014 Eric Paris - 0.1-0.4.git6ebe69a -- prefer autosetup instead of setup (revert setup change in 0-0.3.git) -https://fedoraproject.org/wiki/Autosetup_packaging_draft -- revert version number to 0.1 - -* Mon Sep 08 2014 Lokesh Mandvekar - 0-0.3.git6ebe69a -- gopath defined in golang package already -- package owns /etc/kubernetes -- bash dependency implicit -- keep buildroot/$RPM_BUILD_ROOT macros consistent -- replace with macros wherever possible -- set version, release and source tarball prep as per -https://fedoraproject.org/wiki/Packaging:SourceURL#Github - -* Mon Sep 08 2014 Eric Paris -- make services restart automatically on error - -* Sat Sep 06 2014 Eric Paris -- update to upstream -- redo build to use project scripts -- use project scripts in %%check -- rework deletion of third_party packages to easily detect changes -- run apiserver and controller-manager as non-root - -* Mon Aug 11 2014 Adam Miller -- update to upstream -- decouple the rest of third_party - -* Thu Aug 7 2014 Eric Paris -- update to head -- update package to include config files - -* Wed Jul 16 2014 Colin Walters -- Initial package diff --git a/kubernetes/kubernetes-1.19.13/centos/Readme.rst b/kubernetes/kubernetes-1.19.13/centos/Readme.rst deleted file mode 100644 index 6e819fedf..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/Readme.rst +++ /dev/null @@ -1,9 +0,0 @@ -The spec file used here was from the kubernetes 1.10.0 src rpm. -The orig file is included to help show modifications made to that -spec file, to help understand which changes were needed and to -assist with future upversioning. - -The contrib tarball does not have the same versioning as kubernetes and -there is little activity in that repo. - -The version for the contrib tarball is arbitrary. diff --git a/kubernetes/kubernetes-1.19.13/centos/build_srpm.data b/kubernetes/kubernetes-1.19.13/centos/build_srpm.data deleted file mode 100644 index 7555c9297..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/build_srpm.data +++ /dev/null @@ -1,5 +0,0 @@ -VERSION=1.19.13 -TAR_NAME=kubernetes -TAR="$TAR_NAME-v$VERSION.tar.gz" -COPY_LIST="${CGCS_BASE}/downloads/$TAR $FILES_BASE/*" -TIS_PATCH_VER=PKG_GITREVCOUNT diff --git a/kubernetes/kubernetes-1.19.13/centos/files/enable-support-for-kubernetes-to-ignore-isolcpus.patch b/kubernetes/kubernetes-1.19.13/centos/files/enable-support-for-kubernetes-to-ignore-isolcpus.patch deleted file mode 100644 index 300cf9e3e..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/files/enable-support-for-kubernetes-to-ignore-isolcpus.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 81de324764a81969d3a8d7648730fcd54d58cb6e Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Fri, 23 Oct 2020 17:46:10 -0600 -Subject: [PATCH 6/6] enable support for kubernetes to ignore isolcpus - -The normal mechanisms for allocating isolated CPUs do not allow -a mix of isolated and exclusive CPUs in the same container. In -order to allow this in *very* limited cases where the pod spec -is known in advance we will add the ability to disable the normal -isolcpus behaviour. - -If the file "/etc/kubernetes/ignore_isolcpus" exists, then kubelet -will basically forget everything it knows about isolcpus and just -treat them like regular CPUs. - -The admin user can then rely on the fact that CPU allocation is -deterministic to ensure that the isolcpus they configure end up being -allocated to the correct pods. ---- - pkg/kubelet/cm/cpumanager/cpu_manager.go | 9 +++++++++ - pkg/kubelet/cm/cpumanager/policy_static.go | 8 ++++++++ - 2 files changed, 17 insertions(+) - -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index 5e13a6d90c7..bebd0e4fa01 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -19,6 +19,7 @@ package cpumanager - import ( - "fmt" - "math" -+ "os" - "sync" - "time" - "strings" -@@ -56,6 +57,14 @@ const cpuManagerStateFileName = "cpu_manager_state" - - // get the system-level isolated CPUs - func getIsolcpus() cpuset.CPUSet { -+ -+ // This is a gross hack to basically turn off awareness of isolcpus to enable -+ // isolated cpus to be allocated to pods the same way as non-isolated CPUs. -+ if _, err := os.Stat("/etc/kubernetes/ignore_isolcpus"); err == nil { -+ klog.Infof("[cpumanager] turning off isolcpus awareness") -+ return cpuset.NewCPUSet() -+ } -+ - dat, err := ioutil.ReadFile("/sys/devices/system/cpu/isolated") - if err != nil { - klog.Errorf("[cpumanager] unable to read sysfs isolcpus subdir") -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index 78bb297eb07..1ed4bee5943 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -18,6 +18,7 @@ package cpumanager - - import ( - "fmt" -+ "os" - "strconv" - - v1 "k8s.io/api/core/v1" -@@ -529,6 +530,13 @@ func isKubeInfra(pod *v1.Pod) bool { - - // get the isolated CPUs (if any) from the devices associated with a specific container - func (p *staticPolicy) podIsolCPUs(pod *v1.Pod, container *v1.Container) cpuset.CPUSet { -+ -+ // This is a gross hack to basically turn off awareness of isolcpus to enable -+ // isolated cpus to be allocated to pods the same way as non-isolated CPUs. -+ if _, err := os.Stat("/etc/kubernetes/ignore_isolcpus"); err == nil { -+ return cpuset.NewCPUSet() -+ } -+ - // NOTE: This is required for TestStaticPolicyAdd() since makePod() does - // not create UID. We also need a way to properly stub devicemanager. - if len(string(pod.UID)) == 0 { --- -2.24.2 - diff --git a/kubernetes/kubernetes-1.19.13/centos/files/genmanpages.sh b/kubernetes/kubernetes-1.19.13/centos/files/genmanpages.sh deleted file mode 100644 index be2ef8f05..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/files/genmanpages.sh +++ /dev/null @@ -1,84 +0,0 @@ -MDSFORMANPAGES="kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md" - -# remove comments from man pages -for manpage in ${MDSFORMANPAGES}; do - pos=$(grep -n "<\!-- END MUNGE: UNVERSIONED_WARNING -->" ${manpage} | cut -d':' -f1) - if [ -n ${pos} ]; then - sed -i "1,${pos}{/.*/d}" ${manpage} - fi -done - -# for each man page add NAME and SYNOPSIS section -# kube-apiserver -sed -i -s "s/## kube-apiserver/# NAME\nkube-apiserver \- Provides the API for kubernetes orchestration.\n\n# SYNOPSIS\n**kube-apiserver** [OPTIONS]\n/" kube-apiserver.md - -cat << 'EOF' >> kube-apiserver.md -# EXAMPLES -``` -/usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd_servers=http://127.0.0.1:4001 --insecure_bind_address=127.0.0.1 --insecure_port=8080 --kubelet_port=10250 --service-cluster-ip-range=10.1.1.0/24 --allow_privileged=false -``` -EOF -# kube-controller-manager -sed -i -s "s/## kube-controller-manager/# NAME\nkube-controller-manager \- Enforces kubernetes services.\n\n# SYNOPSIS\n**kube-controller-manager** [OPTIONS]\n/" kube-controller-manager.md - -cat << 'EOF' >> kube-controller-manager.md -# EXAMPLES -``` -/usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=127.0.0.1:8080 -``` -EOF -# kube-proxy -sed -i -s "s/## kube-proxy/# NAME\nkube-proxy \- Provides network proxy services.\n\n# SYNOPSIS\n**kube-proxy** [OPTIONS]\n/" kube-proxy.md - -cat << 'EOF' >> kube-proxy.md -# EXAMPLES -``` -/usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://127.0.0.1:8080 -``` -EOF -# kube-scheduler -sed -i -s "s/## kube-scheduler/# NAME\nkube-scheduler \- Schedules containers on hosts.\n\n# SYNOPSIS\n**kube-scheduler** [OPTIONS]\n/" kube-scheduler.md - -cat << 'EOF' >> kube-scheduler.md -# EXAMPLES -``` -/usr/bin/kube-scheduler --logtostderr=true --v=0 --master=127.0.0.1:8080 -``` -EOF -# kubelet -sed -i -s "s/## kubelet/# NAME\nkubelet \- Processes a container manifest so the containers are launched according to how they are described.\n\n# SYNOPSIS\n**kubelet** [OPTIONS]\n/" kubelet.md - -cat << 'EOF' >> kubelet.md -# EXAMPLES -``` -/usr/bin/kubelet --logtostderr=true --v=0 --api_servers=http://127.0.0.1:8080 --address=127.0.0.1 --port=10250 --hostname_override=127.0.0.1 --allow-privileged=false -``` -EOF - -# for all man-pages -for md in $MDSFORMANPAGES; do - # correct section names - sed -i -s "s/### Synopsis/# DESCRIPTION/" $md - sed -i -s "s/### Options/# OPTIONS/" $md - # add header - sed -i "s/# NAME/% KUBERNETES(1) kubernetes User Manuals\n# NAME/" $md - # modify list of options - # options with no value in "" - sed -i -r 's/(^ )(-[^":][^":]*)(:)(.*)/\*\*\2\*\*\n\t\4\n/' $md - # option with value in "" - sed -i -r 's/(^ )(-[^":][^":]*)("[^"]*")(:)(.*)/\*\*\2\3\*\*\n\t\5\n/' $md - # options in -s, --long - sed -i -r 's/(^ )(-[a-z], -[^":][^":]*)(:)(.*)/\*\*\2\*\*\n\t\4\n/' $md - sed -i -r 's/(^ )(-[a-z], -[^":][^":]*)("[^"]*")(:)(.*)/\*\*\2\3\*\*\n\t\5\n/' $md - # remove ``` - sed -i 's/```//' $md - # remove all lines starting with ###### - sed -i 's/^######.*//' $md - # modify footer - sed -i -r "s/^\[!\[Analytics\].*//" $md - # md does not contain section => taking 1 - name="${md%.md}" - go-md2man -in $md -out man/man1/$name.1 -done - - diff --git a/kubernetes/kubernetes-1.19.13/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch b/kubernetes/kubernetes-1.19.13/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch deleted file mode 100644 index 30fa16d83..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 327b473fd46e0d95a10564ed8b186c6f30549ac7 Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Mon, 30 Aug 2021 16:53:49 -0600 -Subject: [PATCH 5/6] kubeadm: create platform pods with zero CPU resources - -We want to specify zero CPU resources when creating the manifests -for the static platform pods, as a workaround for the lack of -separate resource tracking for platform resources. - -We also specify zero CPU resources for the coredns deployment. -manifests.go appears to be the main file for this, not sure if the -others are used but I changed them just in case. - -Signed-off-by: Chris Friesen ---- - cluster/addons/dns/coredns/coredns.yaml.base | 2 +- - cluster/addons/dns/coredns/coredns.yaml.in | 2 +- - cluster/addons/dns/coredns/coredns.yaml.sed | 2 +- - cmd/kubeadm/app/phases/addons/dns/manifests.go | 2 +- - cmd/kubeadm/app/phases/controlplane/manifests.go | 6 +++--- - 5 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/cluster/addons/dns/coredns/coredns.yaml.base b/cluster/addons/dns/coredns/coredns.yaml.base -index 23ddd0c06a8..634f894f061 100644 ---- a/cluster/addons/dns/coredns/coredns.yaml.base -+++ b/cluster/addons/dns/coredns/coredns.yaml.base -@@ -137,7 +137,7 @@ spec: - limits: - memory: __PILLAR__DNS__MEMORY__LIMIT__ - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cluster/addons/dns/coredns/coredns.yaml.in b/cluster/addons/dns/coredns/coredns.yaml.in -index 55e6f33bd44..15e3d9b601c 100644 ---- a/cluster/addons/dns/coredns/coredns.yaml.in -+++ b/cluster/addons/dns/coredns/coredns.yaml.in -@@ -137,7 +137,7 @@ spec: - limits: - memory: {{ pillar['dns_memory_limit'] }} - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cluster/addons/dns/coredns/coredns.yaml.sed b/cluster/addons/dns/coredns/coredns.yaml.sed -index aad2a143635..81288fb05b2 100644 ---- a/cluster/addons/dns/coredns/coredns.yaml.sed -+++ b/cluster/addons/dns/coredns/coredns.yaml.sed -@@ -137,7 +137,7 @@ spec: - limits: - memory: $DNS_MEMORY_LIMIT - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cmd/kubeadm/app/phases/addons/dns/manifests.go b/cmd/kubeadm/app/phases/addons/dns/manifests.go -index cfc13edd9a3..d5c4c192b92 100644 ---- a/cmd/kubeadm/app/phases/addons/dns/manifests.go -+++ b/cmd/kubeadm/app/phases/addons/dns/manifests.go -@@ -250,7 +250,7 @@ spec: - limits: - memory: 170Mi - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cmd/kubeadm/app/phases/controlplane/manifests.go b/cmd/kubeadm/app/phases/controlplane/manifests.go -index 6e2037c20ef..160a85ddd9b 100644 ---- a/cmd/kubeadm/app/phases/controlplane/manifests.go -+++ b/cmd/kubeadm/app/phases/controlplane/manifests.go -@@ -60,7 +60,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap - LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetAPIServerProbeAddress(endpoint), "/livez", int(endpoint.BindPort), v1.URISchemeHTTPS), - ReadinessProbe: staticpodutil.ReadinessProbe(staticpodutil.GetAPIServerProbeAddress(endpoint), "/readyz", int(endpoint.BindPort), v1.URISchemeHTTPS), - StartupProbe: staticpodutil.StartupProbe(staticpodutil.GetAPIServerProbeAddress(endpoint), "/livez", int(endpoint.BindPort), v1.URISchemeHTTPS, cfg.APIServer.TimeoutForControlPlane), -- Resources: staticpodutil.ComponentResources("250m"), -+ Resources: staticpodutil.ComponentResources("0"), - Env: kubeadmutil.GetProxyEnvVars(), - }, mounts.GetVolumes(kubeadmconstants.KubeAPIServer), - map[string]string{kubeadmconstants.KubeAPIServerAdvertiseAddressEndpointAnnotationKey: endpoint.String()}), -@@ -72,7 +72,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap - VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeControllerManager)), - LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetControllerManagerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeControllerManagerPort, v1.URISchemeHTTPS), - StartupProbe: staticpodutil.StartupProbe(staticpodutil.GetControllerManagerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeControllerManagerPort, v1.URISchemeHTTPS, cfg.APIServer.TimeoutForControlPlane), -- Resources: staticpodutil.ComponentResources("200m"), -+ Resources: staticpodutil.ComponentResources("0"), - Env: kubeadmutil.GetProxyEnvVars(), - }, mounts.GetVolumes(kubeadmconstants.KubeControllerManager), nil), - kubeadmconstants.KubeScheduler: staticpodutil.ComponentPod(v1.Container{ -@@ -83,7 +83,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap - VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeScheduler)), - LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS), - StartupProbe: staticpodutil.StartupProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS, cfg.APIServer.TimeoutForControlPlane), -- Resources: staticpodutil.ComponentResources("100m"), -+ Resources: staticpodutil.ComponentResources("0"), - Env: kubeadmutil.GetProxyEnvVars(), - }, mounts.GetVolumes(kubeadmconstants.KubeScheduler), nil), - } --- -2.24.2 - diff --git a/kubernetes/kubernetes-1.19.13/centos/files/kubeadm.conf b/kubernetes/kubernetes-1.19.13/centos/files/kubeadm.conf deleted file mode 100644 index da0611444..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/files/kubeadm.conf +++ /dev/null @@ -1,18 +0,0 @@ -# Note: This dropin only works with kubeadm and kubelet v1.11+ -[Service] -Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf" -Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml" -# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically -EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env -# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use -# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file. -EnvironmentFile=-/etc/sysconfig/kubelet -ExecStart= -ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS -ExecStartPre=-/usr/local/sbin/sanitize_kubelet_reserved_cpus.sh /etc/sysconfig/kubelet -ExecStartPre=-/usr/bin/kubelet-cgroup-setup.sh -ExecStartPost=/bin/bash -c 'echo $MAINPID > /var/run/kubelet.pid;' -ExecStopPost=/bin/rm -f /var/run/kubelet.pid -Restart=always -StartLimitInterval=0 -RestartSec=10 diff --git a/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cgroup-setup.sh b/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cgroup-setup.sh deleted file mode 100644 index 385314bfe..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cgroup-setup.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2019 Wind River Systems, Inc. -# -# SPDX-License-Identifier: Apache-2.0 -# -# This script does minimal cgroup setup for kubelet. This creates k8s-infra -# cgroup for a minimal set of resource controllers, and configures cpuset -# attributes to span all online cpus and nodes. This will do nothing if -# the k8s-infra cgroup already exists (i.e., assume already configured). -# NOTE: The creation of directories under /sys/fs/cgroup is volatile, and -# does not persist reboots. The cpuset.mems and cpuset.cpus is later updated -# by puppet kubernetes.pp manifest. -# - -# Define minimal path -PATH=/bin:/usr/bin:/usr/local/bin - -# Log info message to /var/log/daemon.log -function LOG { - logger -p daemon.info "$0($$): $@" -} - -# Log error message to /var/log/daemon.log -function ERROR { - logger -s -p daemon.error "$0($$): ERROR: $@" -} - -# Create minimal cgroup directories and configure cpuset attributes if required -function create_cgroup { - local cg_name=$1 - local cg_nodeset=$2 - local cg_cpuset=$3 - - local CGROUP=/sys/fs/cgroup - local CONTROLLERS_AUTO_DELETED=("pids" "hugetlb") - local CONTROLLERS_PRESERVED=("cpuset" "memory" "cpu,cpuacct" "systemd") - local cnt='' - local CGDIR='' - local RC=0 - - # Ensure that these cgroups are created every time as they are auto deleted - for cnt in ${CONTROLLERS_AUTO_DELETED[@]}; do - CGDIR=${CGROUP}/${cnt}/${cg_name} - if [ -d ${CGDIR} ]; then - LOG "Nothing to do, already configured: ${CGDIR}." - continue - fi - LOG "Creating: ${CGDIR}" - mkdir -p ${CGDIR} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Creating: ${CGDIR}, rc=${RC}" - exit ${RC} - fi - done - - # These cgroups are preserved so if any of these are encountered additional - # cgroup setup is not required - for cnt in ${CONTROLLERS_PRESERVED[@]}; do - CGDIR=${CGROUP}/${cnt}/${cg_name} - if [ -d ${CGDIR} ]; then - LOG "Nothing to do, already configured: ${CGDIR}." - exit ${RC} - fi - LOG "Creating: ${CGDIR}" - mkdir -p ${CGDIR} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Creating: ${CGDIR}, rc=${RC}" - exit ${RC} - fi - done - - # Customize cpuset attributes - LOG "Configuring cgroup: ${cg_name}, nodeset: ${cg_nodeset}, cpuset: ${cg_cpuset}" - CGDIR=${CGROUP}/cpuset/${cg_name} - local CGMEMS=${CGDIR}/cpuset.mems - local CGCPUS=${CGDIR}/cpuset.cpus - local CGTASKS=${CGDIR}/tasks - - # Assign cgroup memory nodeset - LOG "Assign nodeset ${cg_nodeset} to ${CGMEMS}" - /bin/echo ${cg_nodeset} > ${CGMEMS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Unable to write to: ${CGMEMS}, rc=${RC}" - exit ${RC} - fi - - # Assign cgroup cpus - LOG "Assign cpuset ${cg_cpuset} to ${CGCPUS}" - /bin/echo ${cg_cpuset} > ${CGCPUS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Assigning: ${cg_cpuset} to ${CGCPUS}, rc=${RC}" - exit ${RC} - fi - - # Set file ownership - chown root:root ${CGMEMS} ${CGCPUS} ${CGTASKS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Setting owner for: ${CGMEMS}, ${CGCPUS}, ${CGTASKS}, rc=${RC}" - exit ${RC} - fi - - # Set file mode permissions - chmod 644 ${CGMEMS} ${CGCPUS} ${CGTASKS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Setting mode for: ${CGMEMS}, ${CGCPUS}, ${CGTASKS}, rc=${RC}" - exit ${RC} - fi - - return ${RC} -} - -if [ $UID -ne 0 ]; then - ERROR "Require sudo/root." - exit 1 -fi - -# Configure default kubepods cpuset to span all online cpus and nodes. -ONLINE_NODESET=$(/bin/cat /sys/devices/system/node/online) -ONLINE_CPUSET=$(/bin/cat /sys/devices/system/cpu/online) - -# Configure kubelet cgroup to match cgroupRoot. -create_cgroup 'k8s-infra' ${ONLINE_NODESET} ${ONLINE_CPUSET} - -exit $? - diff --git a/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch b/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch deleted file mode 100644 index 513083f99..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 7bae7fe0f023b4c6a49910bf583af7ccc4af9391 Mon Sep 17 00:00:00 2001 -From: Jim Gauld -Date: Thu, 5 Sep 2019 10:46:58 -0400 -Subject: [PATCH 1/6] kubelet cpumanager disable CFS quota throttling for - Guaranteed pods - -This disables CFS CPU quota to avoid performance degradation due to -Linux kernel CFS quota implementation. Note that 4.18 kernel attempts -to solve the CFS throttling problem, but there are reports that it is -not completely effective. - -This disables CFS quota throttling for Guaranteed pods for both -parent and container cgroups by writing -1 to cgroup cpu.cfs_quota_us. -Disabling has a dramatic latency improvement for HTTP response times. - -Signed-off-by: Jim Gauld ---- - pkg/kubelet/cm/cpumanager/cpu_manager.go | 22 ++++++++++++++++++++++ - pkg/kubelet/cm/helpers_linux.go | 5 +++++ - pkg/kubelet/cm/helpers_linux_test.go | 8 ++++---- - 3 files changed, 31 insertions(+), 4 deletions(-) - -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index 07ff3d9c860..fc3a247e70b 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -36,6 +36,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/config" - kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" - "k8s.io/kubernetes/pkg/kubelet/status" -+ v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" - ) - - // ActivePodsFunc is a function that returns a list of pods to reconcile. -@@ -233,6 +234,14 @@ func (m *manager) AddContainer(p *v1.Pod, c *v1.Container, containerID string) e - // Get the CPUs assigned to the container during Allocate() - // (or fall back to the default CPUSet if none were assigned). - cpus := m.state.GetCPUSetOrDefault(string(p.UID), c.Name) -+ -+ // Guaranteed PODs should not have CFS quota throttle -+ if m.policy.Name() == string(PolicyStatic) && v1qos.GetPodQOS(p) == v1.PodQOSGuaranteed { -+ err := m.disableContainerCPUQuota(containerID) -+ if err != nil { -+ klog.Errorf("[cpumanager] AddContainer disable CPU Quota error: %v", err) -+ } -+ } - m.Unlock() - - if !cpus.IsEmpty() { -@@ -464,3 +473,16 @@ func (m *manager) updateContainerCPUSet(containerID string, cpus cpuset.CPUSet) - CpusetCpus: cpus.String(), - }) - } -+ -+func (m *manager) disableContainerCPUQuota(containerID string) error { -+ // Disable CFS CPU quota to avoid performance degradation due to -+ // Linux kernel CFS throttle implementation. -+ // NOTE: 4.18 kernel attempts to solve CFS throttling problem, -+ // but there are reports that it is not completely effective. -+ return m.containerRuntime.UpdateContainerResources( -+ containerID, -+ &runtimeapi.LinuxContainerResources{ -+ CpuPeriod: 100000, -+ CpuQuota: -1, -+ }) -+} -diff --git a/pkg/kubelet/cm/helpers_linux.go b/pkg/kubelet/cm/helpers_linux.go -index 9b115ab5380..d3185e1e958 100644 ---- a/pkg/kubelet/cm/helpers_linux.go -+++ b/pkg/kubelet/cm/helpers_linux.go -@@ -166,6 +166,11 @@ func ResourceConfigForPod(pod *v1.Pod, enforceCPULimits bool, cpuPeriod uint64) - // determine the qos class - qosClass := v1qos.GetPodQOS(pod) - -+ // disable cfs quota for guaranteed pods -+ if qosClass == v1.PodQOSGuaranteed { -+ cpuQuota = int64(-1) -+ } -+ - // build the result - result := &ResourceConfig{} - if qosClass == v1.PodQOSGuaranteed { -diff --git a/pkg/kubelet/cm/helpers_linux_test.go b/pkg/kubelet/cm/helpers_linux_test.go -index 56d765fbc22..0c43afe5875 100644 ---- a/pkg/kubelet/cm/helpers_linux_test.go -+++ b/pkg/kubelet/cm/helpers_linux_test.go -@@ -63,8 +63,8 @@ func TestResourceConfigForPod(t *testing.T) { - burstablePartialShares := MilliCPUToShares(200) - burstableQuota := MilliCPUToQuota(200, int64(defaultQuotaPeriod)) - guaranteedShares := MilliCPUToShares(100) -- guaranteedQuota := MilliCPUToQuota(100, int64(defaultQuotaPeriod)) -- guaranteedTunedQuota := MilliCPUToQuota(100, int64(tunedQuotaPeriod)) -+ guaranteedQuota := int64(-1) -+ guaranteedTunedQuota := int64(-1) - memoryQuantity = resource.MustParse("100Mi") - cpuNoLimit := int64(-1) - guaranteedMemory := memoryQuantity.Value() -@@ -283,8 +283,8 @@ func TestResourceConfigForPodWithCustomCPUCFSQuotaPeriod(t *testing.T) { - burstablePartialShares := MilliCPUToShares(200) - burstableQuota := MilliCPUToQuota(200, int64(defaultQuotaPeriod)) - guaranteedShares := MilliCPUToShares(100) -- guaranteedQuota := MilliCPUToQuota(100, int64(defaultQuotaPeriod)) -- guaranteedTunedQuota := MilliCPUToQuota(100, int64(tunedQuotaPeriod)) -+ guaranteedQuota := int64(-1) -+ guaranteedTunedQuota := int64(-1) - memoryQuantity = resource.MustParse("100Mi") - cpuNoLimit := int64(-1) - guaranteedMemory := memoryQuantity.Value() --- -2.24.2 - diff --git a/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch b/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch deleted file mode 100644 index 300958843..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch +++ /dev/null @@ -1,139 +0,0 @@ -From 6f6bbe74fcff0bef6e27a3da4da3f9cdddf45fe6 Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Fri, 27 Sep 2019 14:11:54 -0600 -Subject: [PATCH 3/6] kubelet cpumanager infrastructure pods use system - reserved CPUs - -This assigns system infrastructure pods to the "reserved" cpuset -to isolate them from the shared pool of CPUs. - -Infrastructure pods include any pods that belong to the kube-system, -armada, cert-manager, vault, platform-deployment-manager, portieris, -notification or flux-helm namespaces. - -The implementation is a bit simplistic, it is assumed that the -"reserved" cpuset is large enough to handle all infrastructure pods -CPU allocations. - -This also prevents infrastucture pods from using Guaranteed resources. - -Signed-off-by: Chris Friesen ---- - pkg/kubelet/cm/cpumanager/policy_static.go | 45 +++++++++++++++++++ - .../cm/cpumanager/policy_static_test.go | 19 +++++++- - 2 files changed, 63 insertions(+), 1 deletion(-) - -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index 4dc0e499fc4..ee960519127 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -32,6 +32,11 @@ import ( - // PolicyStatic is the name of the static policy - const PolicyStatic policyName = "static" - -+// Define namespaces used by platform infrastructure pods -+var infraNamespaces = [...]string{ -+ "kube-system", "armada", "cert-manager", "platform-deployment-manager", "portieris", "vault", "notification", "flux-helm", -+} -+ - // staticPolicy is a CPU manager policy that does not change CPU - // assignments for exclusively pinned guaranteed containers after the main - // container process starts. -@@ -232,6 +237,32 @@ func (p *staticPolicy) updateCPUsToReuse(pod *v1.Pod, container *v1.Container, c - } - - func (p *staticPolicy) Allocate(s state.State, pod *v1.Pod, container *v1.Container) error { -+ // Process infra pods before guaranteed pods -+ if isKubeInfra(pod) { -+ // Container belongs in reserved pool. -+ // We don't want to fall through to the p.guaranteedCPUs() clause below so return either nil or error. -+ if _, ok := s.GetCPUSet(string(pod.UID), container.Name); ok { -+ klog.Infof("[cpumanager] static policy: reserved container already present in state, skipping " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s)", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name) -+ return nil -+ } -+ -+ cpuset := p.reserved -+ if cpuset.IsEmpty() { -+ // If this happens then someone messed up. -+ return fmt.Errorf("[cpumanager] static policy: reserved container unable to allocate cpus " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v, reserved:%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset, p.reserved) -+ } -+ s.SetCPUSet(string(pod.UID), container.Name, cpuset) -+ klog.Infof("[cpumanager] static policy: reserved: AddContainer " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset) -+ return nil -+ } -+ -+ - if numCPUs := p.guaranteedCPUs(pod, container); numCPUs != 0 { - klog.Infof("[cpumanager] static policy: Allocate (pod: %s, container: %s)", pod.Name, container.Name) - // container belongs in an exclusively allocated pool -@@ -321,6 +352,10 @@ func (p *staticPolicy) guaranteedCPUs(pod *v1.Pod, container *v1.Container) int - if cpuQuantity.Value()*1000 != cpuQuantity.MilliValue() { - return 0 - } -+ // Infrastructure pods use reserved CPUs even if they're in the Guaranteed QoS class -+ if isKubeInfra(pod) { -+ return 0 -+ } - // Safe downcast to do for all systems with < 2.1 billion CPUs. - // Per the language spec, `int` is guaranteed to be at least 32 bits wide. - // https://golang.org/ref/spec#Numeric_types -@@ -438,3 +473,13 @@ func (p *staticPolicy) generateCPUTopologyHints(availableCPUs cpuset.CPUSet, reu - - return hints - } -+ -+// check if a given pod is in a platform infrastructure namespace -+func isKubeInfra(pod *v1.Pod) bool { -+ for _, namespace := range infraNamespaces { -+ if namespace == pod.Namespace { -+ return true -+ } -+ } -+ return false -+} -diff --git a/pkg/kubelet/cm/cpumanager/policy_static_test.go b/pkg/kubelet/cm/cpumanager/policy_static_test.go -index 9c7e4f146ff..5cfd9a8e24e 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static_test.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static_test.go -@@ -747,7 +747,8 @@ func TestStaticPolicyStartWithResvList(t *testing.T) { - } - - func TestStaticPolicyAddWithResvList(t *testing.T) { -- -+ infraPod := makePod("fakePod", "fakeContainer2", "200m", "200m") -+ infraPod.Namespace = "kube-system" - testCases := []staticPolicyTestWithResvList{ - { - description: "GuPodSingleCore, SingleSocketHT, ExpectError", -@@ -789,6 +790,22 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - expCPUAlloc: true, - expCSet: cpuset.NewCPUSet(4, 5), - }, -+ { -+ description: "InfraPod, SingleSocketHT, ExpectAllocReserved", -+ topo: topoSingleSocketHT, -+ numReservedCPUs: 2, -+ reserved: cpuset.NewCPUSet(0, 1), -+ stAssignments: state.ContainerCPUAssignments{ -+ "fakePod": map[string]cpuset.CPUSet{ -+ "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -+ }, -+ }, -+ stDefaultCPUSet: cpuset.NewCPUSet(4, 5), -+ pod: infraPod, -+ expErr: nil, -+ expCPUAlloc: true, -+ expCSet: cpuset.NewCPUSet(0, 1), -+ }, - } - - testExcl := true --- -2.24.2 - diff --git a/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch b/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch deleted file mode 100644 index 4589726dc..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch +++ /dev/null @@ -1,528 +0,0 @@ -From 6224d7abbb0b0946b901d1f6923f73415dc545d5 Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Mon, 30 Aug 2021 16:44:36 -0600 -Subject: [PATCH 4/6] kubelet cpumanager introduce concept of isolated CPUs - -This introduces the concept of "isolated CPUs", which are CPUs that -have been isolated at the kernel level via the "isolcpus" kernel boot -parameter. - -When starting the kubelet process, two separate sets of reserved CPUs -may be specified. With this change CPUs reserved via -'--system-reserved=cpu' will be used for infrastructure pods while the -isolated CPUs should be reserved via '--kube-reserved=cpu' to cause -kubelet to skip over them for "normal" CPU resource tracking. The -kubelet code will double-check that the specified isolated CPUs match -what the kernel exposes in "/sys/devices/system/cpu/isolated". - -A plugin (outside the scope of this commit) will expose the isolated -CPUs to kubelet via the device plugin API. - -If a pod specifies some number of "isolcpus" resources, the device -manager will allocate them. In this code we check whether such -resources have been allocated, and if so we set the container cpuset to -the isolated CPUs. This does mean that it really only makes sense to -specify "isolcpus" resources for best-effort or burstable pods, not for -guaranteed ones since that would throw off the accounting code. In -order to ensure the accounting still works as designed, if "isolcpus" -are specified for guaranteed pods, the affinity will be set to the -non-isolated CPUs. - -Signed-off-by: Chris Friesen -Co-authored-by: Jim Gauld ---- - pkg/kubelet/cm/container_manager_linux.go | 1 + - pkg/kubelet/cm/cpumanager/cpu_manager.go | 31 ++++++- - pkg/kubelet/cm/cpumanager/cpu_manager_test.go | 13 ++- - pkg/kubelet/cm/cpumanager/policy_static.go | 86 +++++++++++++++++-- - .../cm/cpumanager/policy_static_test.go | 46 ++++++++-- - 5 files changed, 157 insertions(+), 20 deletions(-) - -diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go -index 72d960879e8..56df7f8b0bf 100644 ---- a/pkg/kubelet/cm/container_manager_linux.go -+++ b/pkg/kubelet/cm/container_manager_linux.go -@@ -326,6 +326,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I - cm.GetNodeAllocatableReservation(), - nodeConfig.KubeletRootDir, - cm.topologyManager, -+ cm.deviceManager, - ) - if err != nil { - klog.Errorf("failed to initialize cpu manager: %v", err) -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index 281f31a6a0e..5e13a6d90c7 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -21,6 +21,8 @@ import ( - "math" - "sync" - "time" -+ "strings" -+ "io/ioutil" - - cadvisorapi "github.com/google/cadvisor/info/v1" - v1 "k8s.io/api/core/v1" -@@ -34,6 +36,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" - "k8s.io/kubernetes/pkg/kubelet/config" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" - "k8s.io/kubernetes/pkg/kubelet/status" - v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" -@@ -51,6 +54,25 @@ type policyName string - // cpuManagerStateFileName is the file name where cpu manager stores its state - const cpuManagerStateFileName = "cpu_manager_state" - -+// get the system-level isolated CPUs -+func getIsolcpus() cpuset.CPUSet { -+ dat, err := ioutil.ReadFile("/sys/devices/system/cpu/isolated") -+ if err != nil { -+ klog.Errorf("[cpumanager] unable to read sysfs isolcpus subdir") -+ return cpuset.NewCPUSet() -+ } -+ -+ // The isolated cpus string ends in a newline -+ cpustring := strings.TrimSuffix(string(dat), "\n") -+ cset, err := cpuset.Parse(cpustring) -+ if err != nil { -+ klog.Errorf("[cpumanager] unable to parse sysfs isolcpus string to cpuset") -+ return cpuset.NewCPUSet() -+ } -+ -+ return cset -+} -+ - // Manager interface provides methods for Kubelet to manage pod cpus. - type Manager interface { - // Start is called during Kubelet initialization. -@@ -127,7 +149,7 @@ func (s *sourcesReadyStub) AddSource(source string) {} - func (s *sourcesReadyStub) AllReady() bool { return true } - - // NewManager creates new cpu manager based on provided policy --func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo *cadvisorapi.MachineInfo, specificCPUs cpuset.CPUSet, nodeAllocatableReservation v1.ResourceList, stateFileDirectory string, affinity topologymanager.Store) (Manager, error) { -+func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo *cadvisorapi.MachineInfo, specificCPUs cpuset.CPUSet, nodeAllocatableReservation v1.ResourceList, stateFileDirectory string, affinity topologymanager.Store, deviceManager devicemanager.Manager) (Manager, error) { - var topo *topology.CPUTopology - var policy Policy - -@@ -164,8 +186,11 @@ func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo - // NOTE: Set excludeReserved unconditionally to exclude reserved CPUs from default cpuset. - // This variable is primarily to make testing easier. - excludeReserved := true -- policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, affinity, excludeReserved) -- -+ // isolCPUs is the set of kernel-isolated CPUs. They should be a subset of specificCPUs or -+ // of the CPUs that NewStaticPolicy() will pick if numReservedCPUs is set. It's only in the -+ // argument list here for ease of testing, it's really internal to the policy. -+ isolCPUs := getIsolcpus() -+ policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, isolCPUs, affinity, deviceManager, excludeReserved) - if err != nil { - return nil, fmt.Errorf("new static policy error: %v", err) - } -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -index e9fc823130b..f56045e5215 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -@@ -38,6 +38,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology" - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - ) - - type mockState struct { -@@ -207,6 +208,7 @@ func makeMultiContainerPod(initCPUs, appCPUs []struct{ request, limit string }) - } - - func TestCPUManagerAdd(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - testExcl := false - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ -@@ -222,7 +224,9 @@ func TestCPUManagerAdd(t *testing.T) { - }, - 0, - cpuset.NewCPUSet(), -+ cpuset.NewCPUSet(), - topologymanager.NewFakeManager(), -+ testDM, - testExcl) - testCases := []struct { - description string -@@ -478,8 +482,9 @@ func TestCPUManagerAddWithInitContainers(t *testing.T) { - }, - } - testExcl := false -+ testDM, _ := devicemanager.NewManagerStub() - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testExcl) - - state := &mockState{ - assignments: testCase.stAssignments, -@@ -631,7 +636,8 @@ func TestCPUManagerGenerate(t *testing.T) { - } - defer os.RemoveAll(sDir) - -- mgr, err := NewManager(testCase.cpuPolicyName, 5*time.Second, machineInfo, cpuset.NewCPUSet(), testCase.nodeAllocatableReservation, sDir, topologymanager.NewFakeManager()) -+ testDM, err := devicemanager.NewManagerStub() -+ mgr, err := NewManager(testCase.cpuPolicyName, 5*time.Second, machineInfo, cpuset.NewCPUSet(), testCase.nodeAllocatableReservation, sDir, topologymanager.NewFakeManager(), testDM) - if testCase.expectedError != nil { - if !strings.Contains(err.Error(), testCase.expectedError.Error()) { - t.Errorf("Unexpected error message. Have: %s wants %s", err.Error(), testCase.expectedError.Error()) -@@ -986,6 +992,7 @@ func TestReconcileState(t *testing.T) { - // the following tests are with --reserved-cpus configured - func TestCPUManagerAddWithResvList(t *testing.T) { - testExcl := false -+ testDM, _ := devicemanager.NewManagerStub() - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ - NumCPUs: 4, -@@ -1000,7 +1007,9 @@ func TestCPUManagerAddWithResvList(t *testing.T) { - }, - 1, - cpuset.NewCPUSet(0), -+ cpuset.NewCPUSet(), - topologymanager.NewFakeManager(), -+ testDM, - testExcl) - testCases := []struct { - description string -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index ee960519127..78bb297eb07 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -18,6 +18,7 @@ package cpumanager - - import ( - "fmt" -+ "strconv" - - v1 "k8s.io/api/core/v1" - "k8s.io/klog/v2" -@@ -27,6 +28,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - ) - - // PolicyStatic is the name of the static policy -@@ -80,6 +82,10 @@ type staticPolicy struct { - topology *topology.CPUTopology - // set of CPUs that is not available for exclusive assignment - reserved cpuset.CPUSet -+ // subset of reserved CPUs with isolcpus attribute -+ isolcpus cpuset.CPUSet -+ // parent containerManager, used to get device list -+ deviceManager devicemanager.Manager - // If true, default CPUSet should exclude reserved CPUs - excludeReserved bool - // topology manager reference to get container Topology affinity -@@ -94,7 +100,7 @@ var _ Policy = &staticPolicy{} - // NewStaticPolicy returns a CPU manager policy that does not change CPU - // assignments for exclusively pinned guaranteed containers after the main - // container process starts. --func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, affinity topologymanager.Store, excludeReserved bool) (Policy, error) { -+func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, isolCPUs cpuset.CPUSet, affinity topologymanager.Store, deviceManager devicemanager.Manager, excludeReserved bool) (Policy, error) { - allCPUs := topology.CPUDetails.CPUs() - var reserved cpuset.CPUSet - if reservedCPUs.Size() > 0 { -@@ -114,10 +120,17 @@ func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reserv - } - - klog.Infof("[cpumanager] reserved %d CPUs (\"%s\") not available for exclusive assignment", reserved.Size(), reserved) -- -+ if !isolCPUs.IsSubsetOf(reserved) { -+ klog.Errorf("[cpumanager] isolCPUs %v is not a subset of reserved %v", isolCPUs, reserved) -+ reserved = reserved.Union(isolCPUs) -+ klog.Warningf("[cpumanager] mismatch isolCPUs %v, force reserved %v", isolCPUs, reserved) -+ } -+ - return &staticPolicy{ - topology: topology, - reserved: reserved, -+ isolcpus: isolCPUs, -+ deviceManager: deviceManager, - excludeReserved: excludeReserved, - affinity: affinity, - cpusToReuse: make(map[string]cpuset.CPUSet), -@@ -154,8 +167,8 @@ func (p *staticPolicy) validateState(s state.State) error { - } else { - s.SetDefaultCPUSet(allCPUs) - } -- klog.Infof("[cpumanager] static policy: CPUSet: allCPUs:%v, reserved:%v, default:%v\n", -- allCPUs, p.reserved, s.GetDefaultCPUSet()) -+ klog.Infof("[cpumanager] static policy: CPUSet: allCPUs:%v, reserved:%v, isolcpus:%v, default:%v\n", -+ allCPUs, p.reserved, p.isolcpus, s.GetDefaultCPUSet()) - return nil - } - -@@ -248,12 +261,13 @@ func (p *staticPolicy) Allocate(s state.State, pod *v1.Pod, container *v1.Contai - return nil - } - -- cpuset := p.reserved -+ // TODO: Is the clone actually needed? -+ cpuset := p.reserved.Clone().Difference(p.isolcpus) - if cpuset.IsEmpty() { - // If this happens then someone messed up. - return fmt.Errorf("[cpumanager] static policy: reserved container unable to allocate cpus " + -- "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v, reserved:%v", -- pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset, p.reserved) -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v, reserved:%v, isolcpus:%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset, p.reserved, p.isolcpus) - } - s.SetCPUSet(string(pod.UID), container.Name, cpuset) - klog.Infof("[cpumanager] static policy: reserved: AddContainer " + -@@ -285,8 +299,37 @@ func (p *staticPolicy) Allocate(s state.State, pod *v1.Pod, container *v1.Contai - } - s.SetCPUSet(string(pod.UID), container.Name, cpuset) - p.updateCPUsToReuse(pod, container, cpuset) -+ klog.Infof("[cpumanager] guaranteed: AddContainer " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); numCPUS=%d, cpuset=%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, numCPUs, cpuset) -+ return nil -+ } - -+ if isolcpus := p.podIsolCPUs(pod, container); isolcpus.Size() > 0 { -+ // container has requested isolated CPUs -+ if set, ok := s.GetCPUSet(string(pod.UID), container.Name); ok { -+ if set.Equals(isolcpus) { -+ klog.Infof("[cpumanager] isolcpus container already present in state, skipping " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s)", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name) -+ return nil -+ } else { -+ klog.Infof("[cpumanager] isolcpus container state has cpus %v, should be %v" + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s)", -+ isolcpus, set, pod.Namespace, string(pod.UID), pod.Name, container.Name) -+ } -+ } -+ // Note that we do not do anything about init containers here. -+ // It looks like devices are allocated per-pod based on effective requests/limits -+ // and extra devices from initContainers are not freed up when the regular containers start. -+ // TODO: confirm this is still true for 1.19 -+ s.SetCPUSet(string(pod.UID), container.Name, isolcpus) -+ klog.Infof("[cpumanager] isolcpus: AddContainer " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, isolcpus) -+ return nil - } -+ - // container belongs in the shared pool (nothing to do; use default cpuset) - return nil - } -@@ -483,3 +526,32 @@ func isKubeInfra(pod *v1.Pod) bool { - } - return false - } -+ -+// get the isolated CPUs (if any) from the devices associated with a specific container -+func (p *staticPolicy) podIsolCPUs(pod *v1.Pod, container *v1.Container) cpuset.CPUSet { -+ // NOTE: This is required for TestStaticPolicyAdd() since makePod() does -+ // not create UID. We also need a way to properly stub devicemanager. -+ if len(string(pod.UID)) == 0 { -+ return cpuset.NewCPUSet() -+ } -+ devices := p.deviceManager.GetDevices(string(pod.UID), container.Name) -+ for _, dev := range devices { -+ // this resource name needs to match the isolcpus device plugin -+ if dev.ResourceName == "windriver.com/isolcpus" { -+ cpuStrList := dev.DeviceIds -+ if len(cpuStrList) > 0 { -+ cpuSet := cpuset.NewCPUSet() -+ // loop over the list of strings, convert each one to int, add to cpuset -+ for _, cpuStr := range cpuStrList { -+ cpu, err := strconv.Atoi(cpuStr) -+ if err != nil { -+ panic(err) -+ } -+ cpuSet = cpuSet.Union(cpuset.NewCPUSet(cpu)) -+ } -+ return cpuSet -+ } -+ } -+ } -+ return cpuset.NewCPUSet() -+} -diff --git a/pkg/kubelet/cm/cpumanager/policy_static_test.go b/pkg/kubelet/cm/cpumanager/policy_static_test.go -index 5cfd9a8e24e..e3d02d6b819 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static_test.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static_test.go -@@ -27,6 +27,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - ) - - type staticPolicyTest struct { -@@ -45,8 +46,9 @@ type staticPolicyTest struct { - } - - func TestStaticPolicyName(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - testExcl := false -- policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) -+ policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testExcl) - - policyName := policy.Name() - if policyName != "static" { -@@ -56,6 +58,7 @@ func TestStaticPolicyName(t *testing.T) { - } - - func TestStaticPolicyStart(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - testCases := []staticPolicyTest{ - { - description: "non-corrupted state", -@@ -131,7 +134,7 @@ func TestStaticPolicyStart(t *testing.T) { - } - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) -+ p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testCase.excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: testCase.stAssignments, -@@ -179,6 +182,7 @@ func TestStaticPolicyAdd(t *testing.T) { - largeTopoSock0CPUSet := largeTopoSock0Builder.Result() - largeTopoSock1CPUSet := largeTopoSock1Builder.Result() - -+ testDM, _ := devicemanager.NewManagerStub() - testCases := []staticPolicyTest{ - { - description: "GuPodSingleCore, SingleSocketHT, ExpectError", -@@ -447,7 +451,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testCase.excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -490,6 +494,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - func TestStaticPolicyRemove(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - excludeReserved := false - testCases := []staticPolicyTest{ - { -@@ -549,7 +554,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -571,6 +576,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - func TestTopologyAwareAllocateCPUs(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - excludeReserved := false - testCases := []struct { - description string -@@ -640,7 +646,7 @@ func TestTopologyAwareAllocateCPUs(t *testing.T) { - }, - } - for _, tc := range testCases { -- p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) -+ p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: tc.stAssignments, -@@ -673,6 +679,7 @@ type staticPolicyTestWithResvList struct { - topo *topology.CPUTopology - numReservedCPUs int - reserved cpuset.CPUSet -+ isolcpus cpuset.CPUSet - stAssignments state.ContainerCPUAssignments - stDefaultCPUSet cpuset.CPUSet - pod *v1.Pod -@@ -713,9 +720,10 @@ func TestStaticPolicyStartWithResvList(t *testing.T) { - }, - } - testExcl := false -+ testDM, _ := devicemanager.NewManagerStub() - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) -+ p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testExcl) - if !reflect.DeepEqual(err, testCase.expNewErr) { - t.Errorf("StaticPolicy Start() error (%v). expected error: %v but got: %v", - testCase.description, testCase.expNewErr, err) -@@ -755,6 +763,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 1, - reserved: cpuset.NewCPUSet(0), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{}, - stDefaultCPUSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "8000m", "8000m"), -@@ -767,6 +776,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{}, - stDefaultCPUSet: cpuset.NewCPUSet(2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "1000m", "1000m"), -@@ -779,6 +789,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{ - "fakePod": map[string]cpuset.CPUSet{ - "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -@@ -795,6 +806,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{ - "fakePod": map[string]cpuset.CPUSet{ - "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -@@ -806,12 +818,30 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - expCPUAlloc: true, - expCSet: cpuset.NewCPUSet(0, 1), - }, -+ { -+ description: "InfraPod, SingleSocketHT, Isolcpus, ExpectAllocReserved", -+ topo: topoSingleSocketHT, -+ numReservedCPUs: 2, -+ reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(1), -+ stAssignments: state.ContainerCPUAssignments{ -+ "fakePod": map[string]cpuset.CPUSet{ -+ "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -+ }, -+ }, -+ stDefaultCPUSet: cpuset.NewCPUSet(4, 5), -+ pod: infraPod, -+ expErr: nil, -+ expCPUAlloc: true, -+ expCSet: cpuset.NewCPUSet(0), -+ }, - } - - testExcl := true -+ testDM, _ := devicemanager.NewManagerStub() - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) -- -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, testCase.isolcpus, topologymanager.NewFakeManager(), testDM, testExcl) -+ - st := &mockState{ - assignments: testCase.stAssignments, - defaultCPUSet: testCase.stDefaultCPUSet, --- -2.24.2 - diff --git a/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch b/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch deleted file mode 100644 index 1ef5a074d..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch +++ /dev/null @@ -1,314 +0,0 @@ -From e4625434ce9cec55428ee8600c4a347e75cf8584 Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Mon, 30 Aug 2021 15:45:57 -0600 -Subject: [PATCH 2/6] kubelet cpumanager keep normal containers off reserved - CPUs - -When starting the kubelet process, two separate sets of reserved CPUs -may be specified. With this change CPUs reserved via '--system-reserved=cpu' -or '--kube-reserved=cpu' will be ignored by kubernetes itself. A small -tweak to the default CPU affinity ensures that "normal" Kubernetes -pods won't run on the reserved CPUs. - -Signed-off-by: Chris Friesen ---- - pkg/kubelet/cm/cpumanager/cpu_manager.go | 6 +++- - pkg/kubelet/cm/cpumanager/cpu_manager_test.go | 12 ++++--- - pkg/kubelet/cm/cpumanager/policy_static.go | 29 ++++++++++++--- - .../cm/cpumanager/policy_static_test.go | 35 +++++++++++++------ - 4 files changed, 62 insertions(+), 20 deletions(-) - -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index fc3a247e70b..281f31a6a0e 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -161,7 +161,11 @@ func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo - // exclusively allocated. - reservedCPUsFloat := float64(reservedCPUs.MilliValue()) / 1000 - numReservedCPUs := int(math.Ceil(reservedCPUsFloat)) -- policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, affinity) -+ // NOTE: Set excludeReserved unconditionally to exclude reserved CPUs from default cpuset. -+ // This variable is primarily to make testing easier. -+ excludeReserved := true -+ policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, affinity, excludeReserved) -+ - if err != nil { - return nil, fmt.Errorf("new static policy error: %v", err) - } -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -index dc0d756f07c..e9fc823130b 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -@@ -207,6 +207,7 @@ func makeMultiContainerPod(initCPUs, appCPUs []struct{ request, limit string }) - } - - func TestCPUManagerAdd(t *testing.T) { -+ testExcl := false - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ - NumCPUs: 4, -@@ -221,7 +222,8 @@ func TestCPUManagerAdd(t *testing.T) { - }, - 0, - cpuset.NewCPUSet(), -- topologymanager.NewFakeManager()) -+ topologymanager.NewFakeManager(), -+ testExcl) - testCases := []struct { - description string - updateErr error -@@ -475,9 +477,9 @@ func TestCPUManagerAddWithInitContainers(t *testing.T) { - cpuset.NewCPUSet(1, 5)}, - }, - } -- -+ testExcl := false - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) - - state := &mockState{ - assignments: testCase.stAssignments, -@@ -983,6 +985,7 @@ func TestReconcileState(t *testing.T) { - // above test cases are without kubelet --reserved-cpus cmd option - // the following tests are with --reserved-cpus configured - func TestCPUManagerAddWithResvList(t *testing.T) { -+ testExcl := false - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ - NumCPUs: 4, -@@ -997,7 +1000,8 @@ func TestCPUManagerAddWithResvList(t *testing.T) { - }, - 1, - cpuset.NewCPUSet(0), -- topologymanager.NewFakeManager()) -+ topologymanager.NewFakeManager(), -+ testExcl) - testCases := []struct { - description string - updateErr error -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index dd4dccbc36e..4dc0e499fc4 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -75,6 +75,8 @@ type staticPolicy struct { - topology *topology.CPUTopology - // set of CPUs that is not available for exclusive assignment - reserved cpuset.CPUSet -+ // If true, default CPUSet should exclude reserved CPUs -+ excludeReserved bool - // topology manager reference to get container Topology affinity - affinity topologymanager.Store - // set of CPUs to reuse across allocations in a pod -@@ -87,7 +89,7 @@ var _ Policy = &staticPolicy{} - // NewStaticPolicy returns a CPU manager policy that does not change CPU - // assignments for exclusively pinned guaranteed containers after the main - // container process starts. --func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, affinity topologymanager.Store) (Policy, error) { -+func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, affinity topologymanager.Store, excludeReserved bool) (Policy, error) { - allCPUs := topology.CPUDetails.CPUs() - var reserved cpuset.CPUSet - if reservedCPUs.Size() > 0 { -@@ -111,6 +113,7 @@ func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reserv - return &staticPolicy{ - topology: topology, - reserved: reserved, -+ excludeReserved: excludeReserved, - affinity: affinity, - cpusToReuse: make(map[string]cpuset.CPUSet), - }, nil -@@ -139,7 +142,15 @@ func (p *staticPolicy) validateState(s state.State) error { - } - // state is empty initialize - allCPUs := p.topology.CPUDetails.CPUs() -- s.SetDefaultCPUSet(allCPUs) -+ if p.excludeReserved { -+ // Exclude reserved CPUs from the default CPUSet to keep containers off them -+ // unless explicitly affined. -+ s.SetDefaultCPUSet(allCPUs.Difference(p.reserved)) -+ } else { -+ s.SetDefaultCPUSet(allCPUs) -+ } -+ klog.Infof("[cpumanager] static policy: CPUSet: allCPUs:%v, reserved:%v, default:%v\n", -+ allCPUs, p.reserved, s.GetDefaultCPUSet()) - return nil - } - -@@ -147,9 +158,11 @@ func (p *staticPolicy) validateState(s state.State) error { - // 1. Check if the reserved cpuset is not part of default cpuset because: - // - kube/system reserved have changed (increased) - may lead to some containers not being able to start - // - user tampered with file -- if !p.reserved.Intersection(tmpDefaultCPUset).Equals(p.reserved) { -- return fmt.Errorf("not all reserved cpus: \"%s\" are present in defaultCpuSet: \"%s\"", -- p.reserved.String(), tmpDefaultCPUset.String()) -+ if !p.excludeReserved { -+ if !p.reserved.Intersection(tmpDefaultCPUset).Equals(p.reserved) { -+ return fmt.Errorf("not all reserved cpus: \"%s\" are present in defaultCpuSet: \"%s\"", -+ p.reserved.String(), tmpDefaultCPUset.String()) -+ } - } - - // 2. Check if state for static policy is consistent -@@ -178,6 +191,9 @@ func (p *staticPolicy) validateState(s state.State) error { - } - } - totalKnownCPUs = totalKnownCPUs.UnionAll(tmpCPUSets) -+ if p.excludeReserved { -+ totalKnownCPUs = totalKnownCPUs.Union(p.reserved) -+ } - if !totalKnownCPUs.Equals(p.topology.CPUDetails.CPUs()) { - return fmt.Errorf("current set of available CPUs \"%s\" doesn't match with CPUs in state \"%s\"", - p.topology.CPUDetails.CPUs().String(), totalKnownCPUs.String()) -@@ -248,6 +264,9 @@ func (p *staticPolicy) RemoveContainer(s state.State, podUID string, containerNa - klog.Infof("[cpumanager] static policy: RemoveContainer (pod: %s, container: %s)", podUID, containerName) - if toRelease, ok := s.GetCPUSet(podUID, containerName); ok { - s.Delete(podUID, containerName) -+ if p.excludeReserved { -+ toRelease = toRelease.Difference(p.reserved) -+ } - // Mutate the shared pool, adding released cpus. - s.SetDefaultCPUSet(s.GetDefaultCPUSet().Union(toRelease)) - } -diff --git a/pkg/kubelet/cm/cpumanager/policy_static_test.go b/pkg/kubelet/cm/cpumanager/policy_static_test.go -index b4b46c68c17..9c7e4f146ff 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static_test.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static_test.go -@@ -33,6 +33,7 @@ type staticPolicyTest struct { - description string - topo *topology.CPUTopology - numReservedCPUs int -+ excludeReserved bool - podUID string - containerName string - stAssignments state.ContainerCPUAssignments -@@ -44,7 +45,8 @@ type staticPolicyTest struct { - } - - func TestStaticPolicyName(t *testing.T) { -- policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ testExcl := false -+ policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) - - policyName := policy.Name() - if policyName != "static" { -@@ -74,6 +76,15 @@ func TestStaticPolicyStart(t *testing.T) { - stDefaultCPUSet: cpuset.NewCPUSet(), - expCSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), - }, -+ { -+ description: "empty cpuset exclude reserved", -+ topo: topoDualSocketHT, -+ numReservedCPUs: 2, -+ excludeReserved: true, -+ stAssignments: state.ContainerCPUAssignments{}, -+ stDefaultCPUSet: cpuset.NewCPUSet(), -+ expCSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 7, 8, 9, 10, 11), -+ }, - { - description: "reserved cores 0 & 6 are not present in available cpuset", - topo: topoDualSocketHT, -@@ -120,7 +131,7 @@ func TestStaticPolicyStart(t *testing.T) { - } - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: testCase.stAssignments, -@@ -436,7 +447,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -479,6 +490,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - func TestStaticPolicyRemove(t *testing.T) { -+ excludeReserved := false - testCases := []staticPolicyTest{ - { - description: "SingleSocketHT, DeAllocOneContainer", -@@ -537,7 +549,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -559,6 +571,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - func TestTopologyAwareAllocateCPUs(t *testing.T) { -+ excludeReserved := false - testCases := []struct { - description string - topo *topology.CPUTopology -@@ -627,7 +640,7 @@ func TestTopologyAwareAllocateCPUs(t *testing.T) { - }, - } - for _, tc := range testCases { -- p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: tc.stAssignments, -@@ -699,9 +712,10 @@ func TestStaticPolicyStartWithResvList(t *testing.T) { - expNewErr: fmt.Errorf("[cpumanager] unable to reserve the required amount of CPUs (size of 0-1 did not equal 1)"), - }, - } -+ testExcl := false - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager()) -+ p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) - if !reflect.DeepEqual(err, testCase.expNewErr) { - t.Errorf("StaticPolicy Start() error (%v). expected error: %v but got: %v", - testCase.description, testCase.expNewErr, err) -@@ -741,7 +755,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - numReservedCPUs: 1, - reserved: cpuset.NewCPUSet(0), - stAssignments: state.ContainerCPUAssignments{}, -- stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), -+ stDefaultCPUSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "8000m", "8000m"), - expErr: fmt.Errorf("not enough cpus available to satisfy request"), - expCPUAlloc: false, -@@ -753,7 +767,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), - stAssignments: state.ContainerCPUAssignments{}, -- stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), -+ stDefaultCPUSet: cpuset.NewCPUSet(2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "1000m", "1000m"), - expErr: nil, - expCPUAlloc: true, -@@ -769,7 +783,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), - }, - }, -- stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 4, 5), -+ stDefaultCPUSet: cpuset.NewCPUSet(4, 5), - pod: makePod("fakePod", "fakeContainer3", "2000m", "2000m"), - expErr: nil, - expCPUAlloc: true, -@@ -777,8 +791,9 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - }, - } - -+ testExcl := true - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) - - st := &mockState{ - assignments: testCase.stAssignments, --- -2.24.2 - diff --git a/kubernetes/kubernetes-1.19.13/centos/kubernetes.spec b/kubernetes/kubernetes-1.19.13/centos/kubernetes.spec deleted file mode 100644 index 3d86ef386..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/kubernetes.spec +++ /dev/null @@ -1,2253 +0,0 @@ -%if 0%{?fedora} -%global with_devel 1 -%global with_bundled 0 -%global with_debug 1 -%else -%global with_devel 0 -%global with_bundled 1 -%global with_debug 0 -%endif - -%if 0%{?with_debug} -# https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12 -%global _dwz_low_mem_die_limit 0 -%else -%global debug_package %{nil} -%endif - -%global provider github -%global provider_tld com -%global project kubernetes -%global repo kubernetes -# https://github.com/kubernetes/kubernetes - -%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} -%global import_path k8s.io/kubernetes -%global commit 1.19.13 - -%global kube_version 1.19.13 -%global kube_git_version v%{kube_version} - -%global go_version 1.15.14 -%global go_path /usr/lib/golang-%{go_version}-%{go_version}/bin - -# Needed otherwise "version_ldflags=$(kube::version_ldflags)" doesn't work -%global _buildshell /bin/bash -%global _checkshell /bin/bash - -# Used to simplify the paths for install and files -%global _stage1 %{_exec_prefix}/local/kubernetes/%{kube_version}/stage1 -%global _stage2 %{_exec_prefix}/local/kubernetes/%{kube_version}/stage2 - -############################################## -Name: kubernetes-%{kube_version} -Version: %{kube_version} -Release: 1%{?_tis_dist}.%{tis_patch_ver} -Summary: Container cluster management -License: ASL 2.0 -URL: https://%{import_path} -ExclusiveArch: x86_64 aarch64 ppc64le s390x -Source0: %{project}-v%{kube_version}.tar.gz -Source4: kubeadm.conf -Source5: kubelet-cgroup-setup.sh - -Source33: genmanpages.sh - -Patch1: kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch -Patch2: kubelet-cpumanager-keep-normal-containers-off-reserv.patch -Patch3: kubelet-cpumanager-infrastructure-pods-use-system-re.patch -Patch4: kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch -Patch5: kubeadm-create-platform-pods-with-zero-CPU-resources.patch -Patch6: enable-support-for-kubernetes-to-ignore-isolcpus.patch - -# It obsoletes cadvisor but needs its source code (literally integrated) -Obsoletes: cadvisor - -# kubernetes is decomposed into master and node subpackages -# require both of them for updates -Requires: kubernetes-%{kube_version}-master -Requires: kubernetes-%{kube_version}-node - -%description -%{summary} - -%if 0%{?with_devel} -%package devel -Summary: %{summary} -BuildArch: noarch - -Provides: golang(%{import_path}/cmd/genutils) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubectl/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/normalization) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/install) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/v1) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/conversion-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/deepcopy-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/generator) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/go-to-protobuf/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/import-boss/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/namer) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/parser) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/set-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/types) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/install) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/pkg/federation-controller/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/admission) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/annotations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/endpoints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta/metatypes) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest/resttest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing/compat) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery/registered) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v0) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v2alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/audit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator/bearertoken) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/union) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/handlers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/chaosclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/leaderelection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/record) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/restclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/testing/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/transport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/dynamic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/adapters/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/auth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient/simple) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/azure) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/cloudstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/gce) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/mesos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/openstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/ovirt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/rackspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/vsphere) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/daemon) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/disruption) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework/informers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector/metaonly) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podgc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/route) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/statusupdater) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion/queryparams) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/dns) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fieldpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fields) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/openapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/healthz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/httplog) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/rollout) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/set) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/templates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/editor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/jsonmerge) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/metricsutil) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/client) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cm) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/custommetrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockershim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockertools) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/envvars) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/events) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/eviction) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/images) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/kuberuntime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/leaky) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hairpin) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/kubenet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/mock_network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pleg) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/results) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/qos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/remote) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt/mock_os) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rktshim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/status) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/format) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/ioutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/queue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/sliceutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubemark) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master/ports) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/http) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/tcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/healthcheck) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/userspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/evaluator/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/subjectaccessreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/cachesize) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/componentstatus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/experimental/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rangeallocation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/registrytest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/tokenreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/recognizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/streaming) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/versioning) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontext) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/seccomp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/selection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ssh) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/etcdtest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing/testingcert) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend/factory) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ui) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/async) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/bandwidth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chmod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chown) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/clock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/codeinspector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/configz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crlf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crypto) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/dbus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/diff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/ebtables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/env) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flowcontrol) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flushwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/framer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap/exponentialbackoff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/hash) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/homedir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream/spdy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/integer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/interrupt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/intstr) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/io) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/jsonpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/keymutex) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/limitwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/logs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/maps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/mount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/oom) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/parsers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/procfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/resourcecontainer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rlimit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/slice) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strategicpatch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strings) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/system) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/term) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/threading) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/uuid) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation/field) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wait) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/workqueue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wsstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/verflag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/aws_ebs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_dd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_file) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cephfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cinder) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/downwardapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/empty_dir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/fc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flexvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flocker) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/gce_pd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/git_repo) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/glusterfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/host_path) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/iscsi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/nfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/quobyte) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/rbd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/nestedpendingoperations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/operationexecutor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/volumehelper) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/vsphere_volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/versioned) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/admit) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/alwayspullimages) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/antiaffinity) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/deny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/exec) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/initialresources) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/limitranger) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/autoprovision) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/exists) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/persistentvolume/label) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/securitycontext/scdeny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/storageclass/default) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/allow) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/keystone) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/passwordfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/basicauth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/union) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/x509) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokenfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokentest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/predicates) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities/util) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider/defaults) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/factory) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/schedulercache) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/webhook) = %{version}-%{release} - -%description devel -Libraries for building packages importing k8s.io/kubernetes. -Currently, the devel is not suitable for development. -It is meant only as a buildtime dependency for other projects. - -This package contains library source intended for -building other packages which use %{project}/%{repo}. -%endif - -############################################## -%package unit-test -Summary: %{summary} - for running unit tests - -# below Rs used for testing -Requires: golang-%{go_version} -Requires: etcd >= 2.0.9 -Requires: hostname -Requires: rsync -Requires: NetworkManager - -%description unit-test -%{summary} - for running unit tests - -############################################## -%package master -Summary: Kubernetes services for master host - -# Build with the recommended golang for this Kubernetes version -BuildRequires: golang-%{go_version} -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: kubernetes-%{kube_version}-client - -%description master -Kubernetes services for master host - -############################################## -%package node -Summary: Kubernetes services for node host - -%if 0%{?fedora} >= 27 -Requires: (docker or docker-ce) -Suggests: docker-ce -%else -Requires: docker-ce -%endif -Requires: conntrack-tools - -BuildRequires: golang-%{go_version} -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: socat -Requires: kubernetes-%{kube_version}-client - -%description node -Kubernetes services for node host - -############################################## -%package kubeadm -Summary: Kubernetes tool for standing up clusters -Requires: kubernetes-%{kube_version}-client -Requires: containernetworking-cni - -%description kubeadm -Kubernetes tool for standing up clusters - -############################################## -%package client -Summary: Kubernetes client tools - -BuildRequires: golang-%{go_version} -BuildRequires: go-bindata - -%description client -Kubernetes client tools like kubectl - -############################################## -%package kube-misc -Summary: dummy package -%description kube-misc -Kubernetes dummy package for misc stuff we don't want to -install in production. - -############################################## - -%prep -%setup -q -n %{repo}-%{commit} -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 - -#src/k8s.io/kubernetes/pkg/util/certificates -# Patch the code to remove eliptic.P224 support -for dir in vendor/github.com/google/certificate-transparency/go/x509 pkg/util/certificates; do - if [ -d "${dir}" ]; then - pushd ${dir} - sed -i "/^[^=]*$/ s/oidNamedCurveP224/oidNamedCurveP256/g" *.go - sed -i "/^[^=]*$/ s/elliptic\.P224/elliptic.P256/g" *.go - popd - fi -done - -# Move all the code under src/k8s.io/kubernetes directory -mkdir -p src/k8s.io/kubernetes -mv $(ls | grep -v "^src$") src/k8s.io/kubernetes/. - -############### - -%build -export PATH=%{go_path}:$PATH -export PBR_VERSION=%{version} -pushd src/k8s.io/kubernetes/ -export KUBE_GIT_TREE_STATE="clean" -export KUBE_GIT_COMMIT=%{commit} -export KUBE_GIT_VERSION=%{kube_git_version} -export KUBE_EXTRA_GOPATH=$(pwd)/Godeps/_workspace - -# Verify the go version we will build against -go version - -# https://bugzilla.redhat.com/show_bug.cgi?id=1392922#c1 -%ifarch ppc64le -export GOLDFLAGS='-linkmode=external' -%endif - -# uncomment these two lines to build unoptimized binaries for debugging. -# export GOLDFLAGS="" -# export GOGCFLAGS="-N -l" -make WHAT="cmd/kube-proxy cmd/kube-apiserver cmd/kube-controller-manager cmd/kubelet cmd/kubeadm cmd/kube-scheduler cmd/kubectl" - -# convert md to man -./hack/generate-docs.sh || true -pushd docs -pushd admin -cp kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md .. -popd -cp %{SOURCE33} genmanpages.sh -bash genmanpages.sh -popd -popd - -%install -# go_path required for setup_env golang version check -export PATH=%{go_path}:$PATH -export PBR_VERSION=%{version} -pushd src/k8s.io/kubernetes/ -. hack/lib/init.sh -kube::golang::setup_env - -%ifarch ppc64le -output_path="_output/local/go/bin" -%else -output_path="${KUBE_OUTPUT_BINPATH}/$(kube::golang::host_platform)" -%endif - -install -m 755 -d %{buildroot}%{_bindir} -install -m 755 -d %{buildroot}%{_stage1}%{_bindir} -install -m 755 -d %{buildroot}%{_stage2}%{_bindir} - -echo "+++ INSTALLING kube-apiserver" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-apiserver - -echo "+++ INSTALLING kubeadm" -install -p -m 755 -t %{buildroot}%{_stage1}%{_bindir} ${output_path}/kubeadm -install -d -m 0755 %{buildroot}%{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d -install -p -m 0644 -t %{buildroot}%{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d %{SOURCE4} - -echo "+++ INSTALLING kubelet-cgroup-setup.sh" -install -p -m 0700 -t %{buildroot}%{_stage2}%{_bindir} %{SOURCE5} - -echo "+++ INSTALLING kube-apiserver" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-apiserver - -echo "+++ INSTALLING kube-controller-manager" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-controller-manager - -echo "+++ INSTALLING kube-scheduler" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-scheduler - -echo "+++ INSTALLING kube-proxy" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-proxy - -echo "+++ INSTALLING kubelet" -install -p -m 754 -t %{buildroot}%{_stage2}%{_bindir} ${output_path}/kubelet - -echo "+++ INSTALLING kubectl" -install -p -m 754 -t %{buildroot}%{_stage2}%{_bindir} ${output_path}/kubectl - -# install the bash completion -install -d -m 0755 %{buildroot}%{_stage2}%{_datadir}/bash-completion/completions/ -%{buildroot}%{_stage2}%{_bindir}/kubectl completion bash > %{buildroot}%{_stage2}%{_datadir}/bash-completion/completions/kubectl - -# install specific cluster addons for optional use -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons -# Addon: volumesnapshots -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/crd -install -m 0644 -t %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/crd cluster/addons/volumesnapshots/crd/* -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller -install -m 0644 -t %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller cluster/addons/volumesnapshots/volume-snapshot-controller/* - -# install manpages -install -d %{buildroot}%{_mandir}/man1 -install -p -m 644 docs/man/man1/* %{buildroot}%{_mandir}/man1 -rm -Rf %{buildroot}%{_mandir}/man1/cloud-controller-manager.* -# from k8s tarball copied docs/man/man1/*.1 - -# source codes for building projects -%if 0%{?with_devel} -install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ -echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list -# find all *.go but no *_test.go files and generate devel.file-list -for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do - echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list - install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file) - cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file - echo "%%{gopath}/src/%%{import_path}/$file" >> devel.filelist -done -%endif - - -%if 0%{?with_devel} -sort -u -o devel.file-list devel.file-list -%endif - -popd - -%if 0%{?with_devel} -mv src/k8s.io/kubernetes/devel.file-list . -%endif - -mv src/k8s.io/kubernetes/*.md . -mv src/k8s.io/kubernetes/LICENSE . - - -# place files for unit-test rpm -install -d -m 0755 %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -# basically, everything from the root directory is needed -# unit-tests needs source code -# integration tests needs docs and other files -# test-cmd.sh atm needs cluster, examples and other -cp -a src %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -rm -rf %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/_output -cp -a *.md %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/ - -%check -# Fedora, RHEL7 and CentOS are tested via unit-test subpackage -if [ 1 != 1 ]; then -echo "******Testing the commands*****" -hack/test-cmd.sh -echo "******Benchmarking kube********" -hack/benchmark-go.sh - -# In Fedora 20 and RHEL7 the go cover tools isn't available correctly -%if 0%{?fedora} >= 21 -echo "******Testing the go code******" -hack/test-go.sh -echo "******Testing integration******" -hack/test-integration.sh --use_go_build -%endif -fi - -############################################## -%files -# empty as it depends on master and node - -############################################## -%files master -%license LICENSE -%doc *.md -%attr(754, -, root) %caps(cap_net_bind_service=ep) %{_bindir}/kube-apiserver -%{_bindir}/kube-controller-manager -%{_bindir}/kube-scheduler -%dir %{_sysconfdir}/%{name} -%dir %{_sysconfdir}/%{name}/addons -%dir %{_sysconfdir}/%{name}/addons/volumesnapshots -%dir %{_sysconfdir}/%{name}/addons/volumesnapshots/crd -%{_sysconfdir}/%{name}/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml -%{_sysconfdir}/%{name}/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml -%{_sysconfdir}/%{name}/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshots.yaml -%dir %{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller -%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller/volume-snapshot-controller-deployment.yaml -%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller/rbac-volume-snapshot-controller.yaml - -############################################## -%files node -%license LICENSE -%{_stage2}%{_bindir}/kubelet -%{_stage2}%{_bindir}/kubelet-cgroup-setup.sh - -############################################## -%files kubeadm -%license LICENSE -%{_stage1}%{_bindir}/kubeadm -%dir %{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d -%config(noreplace) %{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d/kubeadm.conf - -############################################## -%files client -%license LICENSE -%{_stage2}%{_bindir}/kubectl -%{_stage2}%{_datadir}/bash-completion/completions/kubectl - -############################################## -%files unit-test -%{_sharedstatedir}/kubernetes-unit-test/ - -%if 0%{?with_devel} -%files devel -f devel.file-list -%doc *.md -%dir %{gopath}/src/k8s.io -%endif - -############################################## -%files kube-misc -%{_mandir}/man1/kube-apiserver.1* -%{_mandir}/man1/kube-controller-manager.1* -%{_mandir}/man1/kube-scheduler.1* -%{_mandir}/man1/kube-proxy.1* -%{_bindir}/kube-proxy -%{_mandir}/man1/kubelet.1* -%{_mandir}/man1/kubeadm.1* -%{_mandir}/man1/kubeadm-* -%{_mandir}/man1/kubectl.1* -%{_mandir}/man1/kubectl-* - -############################################## - -%pre master - -%post master -%systemd_post kube-apiserver kube-scheduler kube-controller-manager - -%preun master -%systemd_preun kube-apiserver kube-scheduler kube-controller-manager - -%postun master -%systemd_postun - - -%pre node - -%post node - -%preun node - -%postun node -%systemd_postun - -############################################ -%changelog -* Tue Mar 27 2018 Spyros Trigazis - 1.10.0-1 -- Bump to upstream v1.10.0 - -* Thu Mar 22 2018 Spyros Trigazis - 1.9.6-1 -- Bump to upstream v1.9.6 - -* Tue Mar 20 2018 Jan Chaloupka - 1.9.5-1 -- Bump to upstream v1.9.5 - resolves: #1554420 - -* Sun Feb 11 2018 Spyros Trigazis - 1.9.3-1 -- Bump to upstream v1.9.3 - -* Fri Feb 09 2018 Jan Chaloupka - 1.9.1-5 -- Add --fail-swap-on=false flag to the /etc/kubernetes/kubelet - resolves: #1542476 - -* Thu Feb 08 2018 Igor Gnatenko - 1.9.1-4 -- Escape macro in %%changelog - -* Wed Feb 07 2018 Fedora Release Engineering - 1.9.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Mon Jan 15 2018 Jan Chaloupka - 1.9.1-2 -- If docker is not available, try docker-ce instead (use boolean dependencies) - resolves: #1534508 - -* Fri Jan 12 2018 Spyros Trigazis - 1.9.1-1 -- Update to upstream v1.9.1 - resolves #1533794 - -* Tue Oct 24 2017 Jan Chaloupka - 1.8.1-1 -- Update to upstream v1.8.1 - resolves: #1497135 - -* Mon Oct 02 2017 Jan Chaloupka - 1.8.0-1 -- Update to upstream v1.8.0 - related: #1497625 - -* Mon Oct 02 2017 Jan Chaloupka - 1.7.7-1 -- Update to upstream v1.7.7 - resolves: #1497625 - -* Mon Sep 18 2017 Jan Chaloupka - 1.7.6-1 -- Update to upstream v1.7.6 - resolves: #1492551 - -* Mon Sep 11 2017 Jan Chaloupka - 1.7.5-1 -- Update to upstream v1.7.5 - resolves: #1490316 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.4-1 -- Fix the version - related: #1482874 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.3-2 -- Update to upstream v1.7.4 - resolves: #1482874 - -* Tue Aug 08 2017 Jan Chaloupka - 1.7.3-1 -- Update to upstream v1.7.3 - resolves: #1479685 - -* Thu Aug 03 2017 Fedora Release Engineering - 1.7.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Sun Jul 30 2017 Florian Weimer - 1.7.2-3 -- Rebuild with binutils fix for ppc64le (#1475636) - -* Wed Jul 26 2017 Fedora Release Engineering - 1.7.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.2-1 -- Update to upstream v1.7.2 - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.1-2 -- Sync kubeadm.conf with upstream service configuration (set Restart,StartLimitInterval,RestartSec) - -* Fri Jul 14 2017 Jan Chaloupka - 1.7.1-1 -- Update to upstream v1.7.1 - resolves: #1471767 - -* Sat Jul 08 2017 Jan Chaloupka - 1.6.7-1 -- Update to upstream v1.6.7 - resolves: #1468823 - resolves: #1468752 - -* Fri May 19 2017 Timothy St. Clair - 1.6.4-1 -- Add kubeadm subpackage to enable upstream deployments - -* Thu May 18 2017 Jan Chaloupka - 1.6.3-1 -- Update to upstream v1.6.3 - resolves: #1452101 - -* Fri May 12 2017 Jan Chaloupka - 1.6.2-2 -- Extend archs with s390x - resolves: #1400000 - -* Tue May 02 2017 Jan Chaloupka - 1.6.2-1 -- Update to upstream v1.6.2 - resolves: #1447338 - -* Tue Apr 11 2017 Jan Chaloupka - 1.6.1-1 -- Update to upstream v1.6.1 - related: #1422889 - -* Fri Mar 31 2017 Jan Chaloupka - 1.5.6-1 -- Update to upstream v1.5.6 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.5-4 -- Update to upstream v1.5.5 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.4-3 -- re-enable debug-info - related: #1422889 - -* Thu Mar 09 2017 Jan Chaloupka - 1.5.4-2 -- Bump to upstream 7243c69eb523aa4377bce883e7c0dd76b84709a1 - related: #1422889 - -* Thu Feb 16 2017 Jan Chaloupka - 1.5.3-1 -- Update to upstream v1.5.3 - resolves: #1422889 - -* Fri Feb 10 2017 Fedora Release Engineering - 1.5.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Jan 18 2017 Jan Chaloupka - 1.5.2-2 -- fix rootScopeNaming generate selfLink - resolves: #1413997 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.2-1 -- Bump version as well - related: #1412996 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.1-2 -- Bump to upstream 1.5.2 - resolves: #1412996 - -* Thu Jan 05 2017 Jan Chaloupka - 1.5.1-1 -- Bump to upstream 1.5.1 - resolves: #1410186 - -* Wed Jan 04 2017 Jan Chaloupka - 1.4.7-2 -- Generate the md files before they are converted to man pages - resolves: #1409943 - -* Mon Dec 12 2016 Jan Chaloupka - 1.4.7-1 -- Bump to upstream v1.4.7 - resolves: #1403823 - New conntrack-tools dependency of kube-proxy - Build kubernetes on ppc64le with linkmode=external - resolves: #1392922 - -* Mon Nov 14 2016 jchaloup - 1.4.5-3 -- Patch unit-test subpackage to run tests over k8s distro binaries - -* Wed Nov 09 2016 jchaloup - 1.4.5-2 -- Add missing if devel around generated devel.file-list - related: #1390074 - -* Tue Nov 08 2016 jchaloup - 1.4.5-1 -- Bump to upstream v1.4.5 (flip back to upstream based Kubernetes) - related: #1390074 - -* Mon Oct 31 2016 jchaloup - 1.4.0-0.1.beta3.git52492b4 -- Update to origin v1.4.0-alpha.0 (ppc64le and arm unbuildable with the current golang version) - resolves: #1390074 - -* Mon Oct 24 2016 jchaloup - 1.3.0-0.4.git52492b4 -- Update to origin v1.3.1 - resolves: #1388092 - -* Thu Sep 08 2016 jchaloup - 1.3.0-0.3.rc1.git507d3a7 -- Update to origin v1.3.0-rc1 - resolves: #1374361 - -* Thu Aug 11 2016 Dennis Gilmore -1.3.0-0.2.git4a3f9c5 -- enable armv7hl and aarch64 - -* Tue Aug 09 2016 jchaloup - 1.3.0-0.1.git4a3f9c5 -- Update to origin v1.3.0-alpha.3 - resolves: #1365601 - -* Thu Jul 21 2016 Fedora Release Engineering - 1.2.0-0.27.git4a3f9c5 -- https://fedoraproject.org/wiki/Changes/golang1.7 - -* Sun Jul 17 2016 jchaloup - 1.2.0-0.26.git4a3f9c5 -- Update to origin v1.2.1 - resolves: #1357261 - -* Wed Jul 13 2016 jchaloup - 1.2.0-0.25.git4a3f9c5 -- Enable CPU and Memory accounting on a node - -* Wed Jun 29 2016 jchaloup - 1.2.0-0.24.git4a3f9c5 -- Be more verbose about devel subpackage - resolves: #1269449 - -* Tue Jun 28 2016 jchaloup - 1.2.0-0.23.git4a3f9c5 -- Own /run/kubernetes directory - resolves: #1264699 - -* Sat May 28 2016 jchaloup - 1.2.0-0.22.git4a3f9c5 -- Bump to origin v1.2.0 - resolves: #1340643 - -* Wed May 04 2016 jchaloup - 1.2.0-0.21.git4a3f9c5 -- Extend uni-test subpackage to run other tests - -* Mon Apr 25 2016 jchaloup - 1.2.0-0.20.git4a3f9c5 -- Update support for ppc64le to use go compiler - related: #1306214 - -* Thu Apr 21 2016 jchaloup - 1.2.0-0.19.git4a3f9c5 -- Fix support for ppc64le - related: #1306214 - -* Tue Apr 19 2016 jchaloup - 1.2.0-0.18.git4a3f9c5 -- Bump to origin v1.1.6 - resolves: #1328357 - -* Mon Apr 11 2016 jchaloup - 1.2.0-0.17.alpha6.git4a3f9c5 -- Don't disable extensions/v1beta1 by default to conform with upstream documentation - -* Wed Mar 30 2016 jchaloup - 1.2.0-0.16.alpha6.git4a3f9c5 - Update to origin's v1.1.5 - Build on ppc64le as well - resolves: #1306214 - -* Tue Mar 08 2016 jchaloup - 1.2.0-0.15.alpha6.gitf0cd09a -- hyperkube.server: don't parse args for any command - -* Fri Mar 04 2016 jchaloup - 1.2.0-0.14.alpha6.gitf0cd09a -- Disable extensions/v1beta1 implicitly - -* Tue Mar 01 2016 jchaloup - 1.2.0-0.13.alpha6.gitf0cd09a -- Hyperkube checks flags of individual commands/servers even if it does not define their flags. - Thus resulting in 'uknown shorthand flag' error - -* Mon Feb 29 2016 jchaloup - 1.2.0-0.12.alpha6.gitf0cd09a -- Disable v1beta3 -- hyperkube-kubectl-dont shift os.Args - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.11.alpha6.gitf0cd09a -- add kube- prefix to controller-manager, proxy and scheduler - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.10.alpha6.gitf0cd09a -- Hardlink kube-controller-manager, kuber-scheduler, kubectl, kubelet and kube-proxy into hyperkube -- Keep kube-apiserver binary as it is (it has different permission and capabilities) - -* Thu Feb 25 2016 jchaloup - 1.2.0-0.9.alpha6.gitf0cd09a -- Fix Content-Type of docker client response - resolves: #1311861 - -* Mon Feb 22 2016 Fedora Release Engineering - 1.2.0-0.8.alpha6.gitf0cd09a -- https://fedoraproject.org/wiki/Changes/golang1.6 - -* Mon Feb 22 2016 jchaloup - 1.2.0-0.7.alpha6.git4c8e6f4 -- Bump to origin 1.1.3 - kube-version-change command replaced with kubectl convert (check out docs/admin/cluster-management.md) - related: 1295066 - -* Thu Feb 04 2016 Fedora Release Engineering - 1.2.0-0.6.alpha1.git4c8e6f4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 21 2016 jchaloup - 1.2.0-0.5.alpha1.git4c8e6f4 -- Bump to upstream e1d9873c1d5711b83fd3dd7eefe83a88ceb92c08 - related: #1291860 - -* Thu Jan 07 2016 jchaloup - 1.2.0-0.4.alpha1.git4c8e6f4 -- Move definition of all version, git and commit macros at one place - resolves: #1291860 - -* Fri Jan 01 2016 jchaloup - 1.2.0-0.3.alpha1.git4c8e6f4 -- Bump to upstream bf56e235826baded1772fb340266b8419c3e8f30 - Rebase to origin's "v1.1.0.1 - Security Update to v1.1" release - resolves: #1295066 - -* Thu Nov 26 2015 jchaloup - 1.2.0-0.2.alpha1.git4c8e6f4 -- Bump to origin upstream a41c9ff38d52fd508481c3c2bac13d52871fde02 -- Build kubernetes from origin's Godeps using hack/build-go.sh - origin's Godeps = kubernetes upstream + additional patches - -* Tue Oct 20 2015 jchaloup - 1.2.0-0.1.alpha1.git4c8e6f4 -- Bump to upstream 403de3874fba420fd096f2329b45fe2f5ae97e46 - related: #1211266 - -* Wed Oct 14 2015 jchaloup - 1.1.0-0.41.alpha1.gite9a6ef1 -- Bump to origin upstream e9a6ef1cd4c29d45730289a497d18b19d7ba450d - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.40.alpha1.git5f38cb0 -- Add missing short option for --server of kubectl -- Update unit-test-subpackage (only test-cmd.sh atm) - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.39.alpha1.git5f38cb0 -- Add normalization of flags - related: #1211266 - -* Fri Oct 02 2015 jchaloup - 1.1.0-0.38.alpha1.git5f38cb0 -- Restore unit-test subpackage (not yet tested) - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.37.alpha1.git5f38cb0 -- Do not unset default cluster, otherwise k8s ends with error when no cluster set - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.36.alpha0.git5f38cb0 -- Bump to o4n 5f38cb0e98c9e854cafba9c7f98dafd51e955ad8 - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.35.alpha1.git2695cdc -- Update git version of k8s and o4n, add macros - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.34.alpha1.git2695cdc -- Built k8s from o4n tarball -- Bump to upstream 2695cdcd29a8f11ef60278758e11f4817daf3c7c - related: #1211266 - -* Tue Sep 22 2015 jchaloup - 1.1.0-0.33.alpha1.git09cf38e -- Bump to upstream 09cf38e9a80327e2d41654db277d00f19e2c84d0 - related: #1211266 - -* Thu Sep 17 2015 jchaloup - 1.1.0-0.32.alpha1.git400e685 -- Bump to upstream 400e6856b082ecf4b295568acda68d630fc000f1 - related: #1211266 - -* Wed Sep 16 2015 jchaloup - 1.1.0-0.31.gitd549fc4 -- Bump to upstream d549fc400ac3e5901bd089b40168e1e6fb17341d - related: #1211266 - -* Tue Sep 15 2015 jchaloup - 1.1.0-0.30.gitc9570e3 -- Bump to upstream c9570e34d03c6700d83f796c0125d17c5064e57d - related: #1211266 - -* Mon Sep 14 2015 jchaloup - 1.1.0-0.29.git86b4e77 -- Bump to upstream 86b4e777e1947c1bc00e422306a3ca74cbd54dbe - related: #1211266 - -* Thu Sep 10 2015 jchaloup - 1.1.0-0.28.gitf867ba3 -- Bump to upstream f867ba3ba13e3dad422efd21c74f52b9762de37e - related: #1211266 - -* Wed Sep 09 2015 jchaloup - 1.1.0-0.27.git0f4fa4e -- Bump to upstream 0f4fa4ed25ae9a9d1824fe55aeefb4d4ebfecdfd - related: #1211266 - -* Tue Sep 08 2015 jchaloup - 1.1.0-0.26.git196f58b -- Bump to upstream 196f58b9cb25a2222c7f9aacd624737910b03acb - related: #1211266 - -* Mon Sep 07 2015 jchaloup - 1.1.0-0.25.git96e0ed5 -- Bump to upstream 96e0ed5749608d4cc32f61b3674deb04c8fa90ad - related: #1211266 - -* Sat Sep 05 2015 jchaloup - 1.1.0-0.24.git2e2def3 -- Bump to upstream 2e2def36a904fe9a197da5fc70e433e2e884442f - related: #1211266 - -* Fri Sep 04 2015 jchaloup - 1.1.0-0.23.gite724a52 -- Bump to upstream e724a5210adf717f62a72162621ace1e08730c75 - related: #1211266 - -* Thu Sep 03 2015 jchaloup - 1.1.0-0.22.gitb6f2f39 -- Bump to upstream b6f2f396baec5105ff928cf61903c2c368259b21 - related: #1211266 - -* Wed Sep 02 2015 jchaloup - 1.1.0-0.21.gitb4a3698 -- Bump to upstream b4a3698faed81410468eccf9f328ca6df3d0cca3 - related: #1211266 - -* Tue Sep 01 2015 jchaloup - 1.1.0-0.20.git2f9652c -- Bump to upstream 2f9652c7f1d4b8f333c0b5c8c1270db83b913436 - related: #1211266 - -* Mon Aug 31 2015 jchaloup - 1.1.0-0.19.git66a644b -- Bump to upstream 66a644b275ede9ddb98eb3f76e8d1840cafc2147 - related: #1211266 - -* Thu Aug 27 2015 jchaloup - 1.1.0-0.18.gitab73849 -- Bump to upstream ab7384943748312f5e9294f42d42ed3983c7c96c - related: #1211266 - -* Wed Aug 26 2015 jchaloup - 1.1.0-0.17.git00e3442 -- Bump to upstream 00e34429e0242323ed34347cf0ab65b3d62b21f7 - related: #1211266 - -* Tue Aug 25 2015 jchaloup - 1.1.0-0.16.gita945785 -- Bump to upstream a945785409d5b68f3a2721d2209300edb5abf1ce - related: #1211266 - -* Mon Aug 24 2015 jchaloup - 1.1.0-0.15.git5fe7029 -- Bump to upstream 5fe7029e688e1e5873a0b95a622edda5b5156d2b - related: #1211266 - -* Fri Aug 21 2015 jchaloup - 1.1.0-0.14.gitb6f18c7 -- Bump to upstream b6f18c7ce08714c8d4f6019463879a164a41750e - related: #1211266 - -* Thu Aug 20 2015 jchaloup - 1.1.0-0.13.git44fa48e -- Bump to upstream 44fa48e5af44d3e988fa943d96a2de732d8cc666 - related: #1211266 - -* Wed Aug 19 2015 jchaloup - 1.1.0-0.12.gitb5a4a54 -- Bump to upstream b5a4a548df0cffb99bdcc3b9b9e48d4025d0541c - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.11.git919c7e9 -- Bump to upstream 919c7e94e23d2dcd5bdd96896e0a7990f9ae3338 - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.10.git280b66c -- Bump to upstream 280b66c9012c21e253acd4e730f8684c39ca08ec - related: #1211266 - -* Mon Aug 17 2015 jchaloup - 1.1.0-0.9.git081d9c6 -- Bump to upstream 081d9c64d25c20ec16035036536511811118173d - related: #1211266 - -* Fri Aug 14 2015 jchaloup - 1.1.0-0.8.git8dcbeba -- Bump to upstream 8dcbebae5ef6a7191d9dfb65c68833c6852a21ad - related: #1211266 - -* Thu Aug 13 2015 jchaloup - 1.1.0-0.7.git968cbbe -- Bump to upstream 968cbbee5d4964bd916ba379904c469abb53d623 - related: #1211266 - -* Wed Aug 12 2015 jchaloup - 1.1.0-0.6.gitc91950f -- Bump to upstream c91950f01cb14ad47486dfcd2fdfb4be3ee7f36b - related: #1211266 - -* Tue Aug 11 2015 jchaloup - 1.1.0-0.5.gite44c8e6 -- Bump to upstream e44c8e6661c931f7fd434911b0d3bca140e1df3a - related: #1211266 - -* Mon Aug 10 2015 jchaloup - 1.1.0-0.4.git2bfa9a1 -- Bump to upstream 2bfa9a1f98147cfdc2e9f4cf50e2c430518d91eb - related: #1243827 - -* Thu Aug 06 2015 jchaloup - 1.1.0-0.3.git4c42e13 -- Bump to upstream 4c42e1302d3b351f3cb6074d32aa420bbd45e07d -- Change import path prefix to k8s.io/kubernetes - related: #1243827 - -* Wed Aug 05 2015 jchaloup - 1.1.0-0.2.git159ba48 -- Bump to upstream 159ba489329e9f6ce422541e13f97e1166090ec8 - related: #1243827 - -* Sat Aug 01 2015 jchaloup - 1.1.0-0.1.git6129d3d -- Bump to upstream 6129d3d4eb80714286650818081a64ce2699afed - related: #1243827 - -* Fri Jul 31 2015 jchaloup - 1.0.0-0.18.gitff058a1 -- Bump to upstream ff058a1afeb63474f7a35805941f3b07c27aae0f - related: #1243827 - -* Thu Jul 30 2015 jchaloup - 1.0.0-0.17.git769230e -- Bump to upstream 769230e735993bb0bf924279a40593c147c9a6ab - related: #1243827 - -* Wed Jul 29 2015 jchaloup - 1.0.0-0.16.gitdde7222 -- Bump to upstream dde72229dc9cbbdacfb2e44b22d9d5b357027020 - related: #1243827 - -* Tue Jul 28 2015 jchaloup - 1.0.0-0.15.gitc5bffaa -- Bump to upstream c5bffaaf3166513da6259c44a5d1ba8e86bea5ce - related: #1243827 - -* Sat Jul 25 2015 jchaloup - 1.0.0-0.14.git5bd82ff -- Bump to upstream 5bd82ffe6da8f4e72e71b362635e558bfc412106 - related: #1243827 - -* Fri Jul 24 2015 jchaloup - 1.0.0-0.13.git291acd1 -- Bump to upstream 291acd1a09ac836ec7524b060a19a6498d9878dd - related: #1243827 - -* Thu Jul 23 2015 jchaloup - 1.0.0-0.12.gitfbed349 -- Bump to upstream fbed3492bfa09e59b1c423fdd7c1ecad333a06ef - related: #1243827 - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.11.gitfbc85e9 -- Add runtime dependency of kubernetes-node on socat (so kubectl port-forward works on AH) - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.10.gitfbc85e9 -- Update the build script for go1.5 as well -- Bump to upstream fbc85e9838f25547be94fbffeeb92a756d908ca0 - related: #1243827 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.9.git2d88675 -- Bump to upstream 2d88675f2203d316d4bac312c7ccad12991b56c2 -- Change KUBE_ETCD_SERVERS to listen on 2379 ports instead of 4001 - resolves: #1243827 -- Add kubernetes-client to provide kubectl command - resolves: #1241469 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.8.gitb2dafda -- Fix dependency and tests for go-1.5 -- with_debug off as the builds ends with error "ELFRESERVE too small: ..." - -* Sat Jul 18 2015 Eric Paris - 1.0.0-0.7.gitb2dafda -- Update apiserver binary gid - -* Fri Jul 17 2015 jchaloup - 1.0.0-0.6.gitb2dafda -- Bump to upstream b2dafdaef5aceafad503ab56254b60f80da9e980 - related: #1211266 - -* Thu Jul 16 2015 jchaloup - 1.0.0-0.5.git596a8a4 -- Bump to upstream 596a8a40d12498b5335140f50753980bfaea4f6b - related: #1211266 - -* Wed Jul 15 2015 jchaloup - 1.0.0-0.4.git6ba532b -- Bump to upstream 6ba532b218cb5f5ea3f0e8dce5395182f388536c - related: #1211266 - -* Tue Jul 14 2015 jchaloup - 1.0.0-0.3.gitc616182 -- Bump to upstream c6161824db3784e6156131307a5e94647e5557fd - related: #1211266 - -* Mon Jul 13 2015 jchaloup - 1.0.0-0.2.git2c27b1f -- Bump to upstream 2c27b1fa64f4e70f04575d1b217494f49332390e - related: #1211266 - -* Sat Jul 11 2015 jchaloup - 1.0.0-0.1.git1b37059 -- Bump to upstream 1b370599ccf271741e657335c4943cb8c7dba28b - related: #1211266 - -* Fri Jul 10 2015 jchaloup - 0.21.1-0.2.gitccc4cfc -- Bump to upstream ccc4cfc7e11e0f127ac1cea045017dd799be3c63 - related: #1211266 - -* Thu Jul 09 2015 jchaloup - 0.21.1-0.1.git41f8907 -- Update generating of man pages from md (add genmanpages.sh) -- Bump to upstream 41f89075396329cd46c58495c7d3f7e13adcaa96 - related: #1211266 - -* Wed Jul 08 2015 jchaloup - 0.20.2-0.5.git77be29e -- Bump to upstream 77be29e3da71f0a136b6aa4048b2f0575c2598e4 - related: #1211266 - -* Tue Jul 07 2015 jchaloup - 0.20.2-0.4.git639a7da -- Bump to upstream 639a7dac50a331414cc6c47083323388da0d8756 - related: #1211266 - -* Mon Jul 06 2015 jchaloup - 0.20.2-0.3.gitbb6f2f7 -- Bump to upstream bb6f2f7ad90596d624d84cc691eec0f518e90cc8 - related: #1211266 - -* Fri Jul 03 2015 jchaloup - 0.20.2-0.2.git974377b -- Bump to upstream 974377b3064ac59b6e5694bfa568d67128026171 - related: #1211266 - -* Thu Jul 02 2015 jchaloup - 0.20.2-0.1.gitef41ceb -- Bump to upstream ef41ceb3e477ceada84c5522f429f02ab0f5948e - related: #1211266 - -* Tue Jun 30 2015 jchaloup - 0.20.0-0.3.git835eded -- Bump to upstream 835eded2943dfcf13a89518715e4be842a6a3ac0 -- Generate missing man pages - related: #1211266 - -* Mon Jun 29 2015 jchaloup - 0.20.0-0.2.git1c0b765 -- Bump to upstream 1c0b765df6dabfe9bd0e20489ed3bd18e6b3bda8 - Comment out missing man pages - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.20.0-0.1.git8ebd896 -- Bump to upstream 8ebd896351513d446d56bc5785c070d2909226a3 - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.19.3-0.6.git712f303 -- Bump to upstream 712f303350b35e70a573f3cb19193c8ec7ee7544 - related: #1211266 - -* Thu Jun 25 2015 jchaloup - 0.19.3-0.5.git2803b86 -- Bump to upstream 2803b86a42bf187afa816a7ce14fec754cc2af51 - related: #1211266 - -* Wed Jun 24 2015 Eric Paris - 0.19.3-0.4.git5b4dc4e -- Set CAP_NET_BIND_SERVICE on the kube-apiserver so it can use 443 - -* Wed Jun 24 2015 jchaloup - 0.19.3-0.3.git5b4dc4e -- Bump to upstream 5b4dc4edaa14e1ab4e3baa19df0388fa54dab344 - pkg/cloudprovider/* packages does not conform to golang language specification - related: #1211266 - -* Tue Jun 23 2015 jchaloup - 0.19.3-0.2.gita2ce3ea -- Bump to upstream a2ce3ea5293553b1fe0db3cbc6d53bdafe061d79 - related: #1211266 - -* Mon Jun 22 2015 jchaloup - 0.19.1-0.1.gitff0546d -- Bump to upstream ff0546da4fc23598de59db9f747c535545036463 - related: #1211266 - -* Fri Jun 19 2015 jchaloup - 0.19.0-0.7.gitb2e9fed -- Bump to upstream b2e9fed3490274509506285bdba309c50afb5c39 - related: #1211266 - -* Thu Jun 18 2015 jchaloup - 0.19.0-0.6.gitf660940 -- Bump to upstream f660940dceb3fe6ffb1b14ba495a47d91b5cd910 - related: #1211266 - -* Wed Jun 17 2015 jchaloup - 0.19.0-0.5.git43889c6 -- Bump to upstream 43889c612c4d396dcd8fbf3fbd217e106eaf5bce - related: #1211266 - -* Tue Jun 16 2015 jchaloup - 0.19.0-0.4.gita8269e3 -- Bump to upstream a8269e38c9e2bf81ba18cd6420e2309745d5b0b9 - related: #1211266 - -* Sun Jun 14 2015 jchaloup - 0.19.0-0.3.git5e5c1d1 -- Bump to upstream 5e5c1d10976f2f26d356ca60ef7d0d715c9f00a2 - related: #1211266 - -* Fri Jun 12 2015 jchaloup - 0.19.0-0.2.git0ca96c3 -- Bump to upstream 0ca96c3ac8b47114169f3b716ae4521ed8c7657c - related: #1211266 - -* Thu Jun 11 2015 jchaloup - 0.19.0-0.1.git5a02fc0 -- Bump to upstream 5a02fc07d8a943132b9e68fe7169778253318487 - related: #1211266 - -* Wed Jun 10 2015 jchaloup - 0.18.2-0.3.git0dfb681 -- Bump to upstream 0dfb681ba5d5dba535895ace9d650667904b5df7 - related: #1211266 - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.2.gitb68e08f -- golang-cover is not needed - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.1.gitb68e08f -- Bump to upstream b68e08f55f5ae566c4ea3905d0993a8735d6d34f - related: #1211266 - -* Sat Jun 06 2015 jchaloup - 0.18.1-0.3.git0f1c4c2 -- Bump to upstream 0f1c4c25c344f70c3592040b2ef092ccdce0244f - related: #1211266 - -* Fri Jun 05 2015 jchaloup - 0.18.1-0.2.git7309e1f -- Bump to upstream 7309e1f707ea5dd08c51f803037d7d22c20e2b92 - related: #1211266 - -* Thu Jun 04 2015 jchaloup - 0.18.1-0.1.gita161edb -- Bump to upstream a161edb3960c01ff6e14813858c2eeb85910009b - related: #1211266 - -* Wed Jun 03 2015 jchaloup - 0.18.0-0.3.gitb5a91bd -- Bump to upstream b5a91bda103ed2459f933959241a2b57331747ba -- Don't run %%check section (kept only for local run). Tests are now handled via CI. - related: #1211266 - -* Tue Jun 02 2015 jchaloup - 0.18.0-0.2.git5520386 -- Bump to upstream 5520386b180d3ddc4fa7b7dfe6f52642cc0c25f3 - related: #1211266 - -* Mon Jun 01 2015 jchaloup - 0.18.0-0.1.git0bb78fe -- Bump to upstream 0bb78fe6c53ce38198cc3805c78308cdd4805ac8 - related: #1211266 - -* Fri May 29 2015 jchaloup - 0.17.1-6 -- Bump to upstream ed4898d98c46869e9cbdb44186dfdeda9ff80cc2 - related: #1211266 - -* Thu May 28 2015 jchaloup - 0.17.1-5 -- Bump to upstream 6fa2777e26559fc008eacac83eb165d25bd9a7de - related: #1211266 - -* Tue May 26 2015 jchaloup - 0.17.1-4 -- Bump to upstream 01fcb58673001e56c69e128ab57e0c3f701aeea5 - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-3 -- Decompose package into master and node subpackage. - Thanks to Avesh for testing and patience. - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-2 -- Bump to upstream cf7b0bdc2a41d38613ac7f8eeea91cae23553fa2 - related: #1211266 - -* Fri May 22 2015 jchaloup - 0.17.1-1 -- Bump to upstream d9d12fd3f7036c92606fc3ba9046b365212fcd70 - related: #1211266 - -* Wed May 20 2015 jchaloup - 0.17.0-12 -- Bump to upstream a76bdd97100c66a46e2b49288540dcec58a954c4 - related: #1211266 - -* Tue May 19 2015 jchaloup - 0.17.0-11 -- Bump to upstream 10339d72b66a31592f73797a9983e7c207481b22 - related: #1211266 - -* Mon May 18 2015 jchaloup - 0.17.0-10 -- Bump to upstream efb42b302d871f7217394205d84e5ae82335d786 - related: #1211266 - -* Sat May 16 2015 jchaloup - 0.17.0-9 -- Bump to upstream d51e131726b925e7088b90915e99042459b628e0 - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-8 -- Bump to upstream 1ee33ac481a14db7b90e3bbac8cec4ceea822bfb - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-7 -- Bump to upstream d3c6fb0d6a13c0177dcd67556d72963c959234ea - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-6 -- Bump to upstream f57f31783089f41c0bdca8cb87a1001ca94e1a45 - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-5 -- Bump to upstream c90d381d0d5cf8ab7b8412106f5a6991d7e13c7d - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-4 -- Bump to upstream 5010b2dde0f9b9eb820fe047e3b34bc9fa6324de -- Add debug info - related: #1211266 - -* Wed May 13 2015 jchaloup - 0.17.0-3 -- Bump to upstream ec19d41b63f5fe7b2c939e7738a41c0fbe65d796 - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-2 -- Provide /usr/bin/kube-version-change binary - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-1 -- Bump to upstream 962f10ee580eea30e5f4ea725c4e9e3743408a58 - related: #1211266 - -* Mon May 11 2015 jchaloup - 0.16.2-7 -- Bump to upstream 63182318c5876b94ac9b264d1224813b2b2ab541 - related: #1211266 - -* Fri May 08 2015 jchaloup - 0.16.2-6 -- Bump to upstream d136728df7e2694df9e082902f6239c11b0f2b00 -- Add NetworkManager as dependency for /etc/resolv.conf - related: #1211266 - -* Thu May 07 2015 jchaloup - 0.16.2-5 -- Bump to upstream ca0f678b9a0a6dc795ac7a595350d0dbe9d0ac3b - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-4 -- Add docs to kubernetes-unit-test - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-3 -- Bump to upstream 3a24c0e898cb3060d7905af6df275a3be562451d - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-2 -- Add api and README.md to kubernetes-unit-test - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-1 -- Bump to upstream 72048a824ca16c3921354197953fabecede5af47 - related: #1211266 - -* Mon May 04 2015 jchaloup - 0.16.1-2 -- Bump to upstream 1dcd80cdf3f00409d55cea1ef0e7faef0ae1d656 - related: #1211266 - -* Sun May 03 2015 jchaloup - 0.16.1-1 -- Bump to upstream 86751e8c90a3c0e852afb78d26cb6ba8cdbc37ba - related: #1211266 - -* Fri May 01 2015 jchaloup - 0.16.0-2 -- Bump to upstream 72708d74b9801989ddbdc8403fc5ba4aafb7c1ef - related: #1211266 - -* Wed Apr 29 2015 jchaloup - 0.16.0-1 -- Bump to upstream 7dcce2eeb7f28643d599c8b6a244523670d17c93 - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-10 -- Add unit-test subpackage - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-9 -- Bump to upstream 99fc906f78cd2bcb08536c262867fa6803f816d5 - related: #1211266 - -* Mon Apr 27 2015 jchaloup - 0.15.0-8 -- Bump to upstream 051dd96c542799dfab39184d2a7c8bacf9e88d85 - related: #1211266 - -* Fri Apr 24 2015 jchaloup - 0.15.0-7 -- Bump to upstream 9f753c2592481a226d72cea91648db8fb97f0da8 - related: #1211266 - -* Thu Apr 23 2015 jchaloup - 0.15.0-6 -- Bump to upstream cf824ae5e07965ba0b4b15ee88e08e2679f36978 - related: #1211266 - -* Tue Apr 21 2015 jchaloup - 0.15.0-5 -- Bump to upstream 21788d8e6606038a0a465c97f5240b4e66970fbb - related: #1211266 - -* Mon Apr 20 2015 jchaloup - 0.15.0-4 -- Bump to upstream eb1ea269954da2ce557f3305fa88d42e3ade7975 - related: #1211266 - -* Fri Apr 17 2015 jchaloup - 0.15.0-3 -- Obsolete cadvisor as it is integrated in kubelet - related: #1211266 - -* Wed Apr 15 2015 jchaloup - 0.15.0-0.2.git0ea87e4 -- Bump to upstream 0ea87e486407298dc1e3126c47f4076b9022fb09 - related: #1211266 - -* Tue Apr 14 2015 jchaloup - 0.15.0-0.1.gitd02139d -- Bump to upstream d02139d2b454ecc5730cc535d415c1963a7fb2aa - related: #1211266 - -* Sun Apr 12 2015 jchaloup - 0.14.2-0.2.gitd577db9 -- Bump to upstream d577db99873cbf04b8e17b78f17ec8f3a27eca30 - -* Wed Apr 08 2015 jchaloup - 0.14.2-0.1.git2719194 -- Bump to upstream 2719194154ffd38fd1613699a9dd10a00909957e - Use etcd-2.0.8 and higher - -* Tue Apr 07 2015 jchaloup - 0.14.1-0.2.gitd2f4734 -- Bump to upstream d2f473465738e6b6f7935aa704319577f5e890ba - -* Thu Apr 02 2015 jchaloup - 0.14.1-0.1.gita94ffc8 -- Bump to upstream a94ffc8625beb5e2a39edb01edc839cb8e59c444 - -* Wed Apr 01 2015 jchaloup - 0.14.0-0.2.git8168344 -- Bump to upstream 81683441b96537d4b51d146e39929b7003401cd5 - -* Tue Mar 31 2015 jchaloup - 0.14.0-0.1.git9ed8761 -- Bump to upstream 9ed87612d07f75143ac96ad90ff1ff68f13a2c67 -- Remove [B]R from devel branch until the package has stable API - -* Mon Mar 30 2015 jchaloup - 0.13.2-0.6.git8a7a127 -- Bump to upstream 8a7a127352263439e22253a58628d37a93fdaeb2 - -* Fri Mar 27 2015 jchaloup - 0.13.2-0.5.git8d94c43 -- Bump to upstream 8d94c43e705824f23791b66ad5de4ea095d5bb32 - resolves: #1205362 - -* Wed Mar 25 2015 jchaloup - 0.13.2-0.4.git455fe82 -- Bump to upstream 455fe8235be8fd9ba0ce21bf4f50a69d42e18693 - -* Mon Mar 23 2015 jchaloup - 0.13.2-0.3.gitef75888 -- Remove runtime dependency on etcd - resolves: #1202923 - -* Sun Mar 22 2015 jchaloup - 0.13.2-0.2.gitef75888 -- Bump to upstream ef758881d108bb53a128126c503689104d17f477 - -* Fri Mar 20 2015 jchaloup - 0.13.2-0.1.gita8f2cee -- Bump to upstream a8f2cee8c5418676ee33a311fad57d6821d3d29a - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.9.git53b25a7 -- Bump to upstream 53b25a7890e31bdec6f2a95b32200d6cc27ae2ca - fix kube-proxy.service and kubelet - resolves: #1200919 #1200924 - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.8.git39dceb1 -- Bump to upstream 39dceb13a511a83963a766a439cb386d10764310 - -* Thu Mar 12 2015 Eric Paris - 0.12.0-0.7.gita3fd0a9 -- Move from /etc/tmpfiles.d to %%{_tmpfilesdir} - resolves: #1200969 - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.6.gita3fd0a9 -- Place contrib/init/systemd/tmpfiles.d/kubernetes.conf to /etc/tmpfiles.d/kubernetes.conf - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.5.gita3fd0a9 -- Bump to upstream a3fd0a9fd516bb6033f32196ae97aaecf8c096b1 - -* Tue Mar 10 2015 jchaloup - 0.12.0-0.4.gita4d871a -- Bump to upstream a4d871a10086436557f804930812f2566c9d4d39 - -* Fri Mar 06 2015 jchaloup - 0.12.0-0.3.git2700871 -- Bump to upstream 2700871b049d5498167671cea6de8317099ad406 - -* Thu Mar 05 2015 jchaloup - 0.12.0-0.2.git8b627f5 -- Bump to upstream 8b627f516fd3e4f62da90d401ceb3d38de6f8077 - -* Tue Mar 03 2015 jchaloup - 0.12.0-0.1.gitecca426 -- Bump to upstream ecca42643b91a7117de8cd385b64e6bafecefd65 - -* Mon Mar 02 2015 jchaloup - 0.11.0-0.5.git6c5b390 -- Bump to upstream 6c5b390160856cd8334043344ef6e08568b0a5c9 - -* Sat Feb 28 2015 jchaloup - 0.11.0-0.4.git0fec31a -- Bump to upstream 0fec31a11edff14715a1efb27f77262a7c3770f4 - -* Fri Feb 27 2015 jchaloup - 0.11.0-0.3.git08402d7 -- Bump to upstream 08402d798c8f207a2e093de5a670c5e8e673e2de - -* Wed Feb 25 2015 jchaloup - 0.11.0-0.2.git86434b4 -- Bump to upstream 86434b4038ab87ac40219562ad420c3cc58c7c6b - -* Tue Feb 24 2015 jchaloup - 0.11.0-0.1.git754a2a8 -- Bump to upstream 754a2a8305c812121c3845d8293efdd819b6a704 - turn off integration tests until "FAILED: unexpected endpoints: - timed out waiting for the condition" problem is resolved - Adding back devel subpackage ([B]R list outdated) - -* Fri Feb 20 2015 jchaloup - 0.10.1-0.3.git4c87805 -- Bump to upstream 4c87805870b1b22e463c4bd711238ef68c77f0af - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.2.git6f84bda -- Bump to upstream 6f84bdaba853872dbac69c84d3ab4b6964e85d8c - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.1.git7d6130e -- Bump to upstream 7d6130edcdfabd7dd2e6a06fdc8fe5e333f07f5c - -* Sat Feb 07 2015 jchaloup - 0.9.1-0.7.gitc9c98ab -- Bump to upstream c9c98ab19eaa6f0b2ea17152c9a455338853f4d0 - Since some dependencies are broken, we can not build Kubernetes from Fedora deps. - Switching to vendored source codes until Go draft is resolved - -* Wed Feb 04 2015 jchaloup - 0.9.1-0.6.git7f5ed54 -- Bump to upstream 7f5ed541f794348ae6279414cf70523a4d5133cc - -* Tue Feb 03 2015 jchaloup - 0.9.1-0.5.git2ac6bbb -- Bump to upstream 2ac6bbb7eba7e69eac71bd9acd192cda97e67641 - -* Mon Feb 02 2015 jchaloup - 0.9.1-0.4.gite335e2d -- Bump to upstream e335e2d3e26a9a58d3b189ccf41ceb3770d1bfa9 - -* Fri Jan 30 2015 jchaloup - 0.9.1-0.3.git55793ac -- Bump to upstream 55793ac2066745f7243c666316499e1a8cf074f0 - -* Thu Jan 29 2015 jchaloup - 0.9.1-0.2.gitca6de16 -- Bump to upstream ca6de16df7762d4fc9b4ad44baa78d22e3f30742 - -* Tue Jan 27 2015 jchaloup - 0.9.1-0.1.git3623a01 -- Bump to upstream 3623a01bf0e90de6345147eef62894057fe04b29 -- update tests for etcd-2.0 - -* Thu Jan 22 2015 jchaloup - 0.8.2-571.gitb2f287c -+- Bump to upstream b2f287c259d856f4c08052a51cd7772c563aff77 - -* Thu Jan 22 2015 Eric Paris - 0.8.2-570.gitb2f287c -- patch kubelet service file to use docker.service not docker.socket - -* Wed Jan 21 2015 jchaloup - 0.8.2-0.1.git5b04640 -- Bump to upstream 5b046406a957a1e7eda7c0c86dd7a89e9c94fc5f - -* Sun Jan 18 2015 jchaloup - 0.8.0-126.0.git68298f0 -- Add some missing dependencies -- Add devel subpackage - -* Fri Jan 09 2015 Eric Paris - 0.8.0-125.0.git68298f0 -- Bump to upstream 68298f08a4980f95dfbf7b9f58bfec1808fb2670 - -* Tue Dec 16 2014 Eric Paris - 0.7.0-18.0.git52e165a -- Bump to upstream 52e165a4fd720d1703ebc31bd6660e01334227b8 - -* Mon Dec 15 2014 Eric Paris - 0.6-297.0.git5ef34bf -- Bump to upstream 5ef34bf52311901b997119cc49eff944c610081b - -* Wed Dec 03 2014 Eric Paris -- Replace patch to use old googlecode/go.net/ with BuildRequires on golang.org/x/net/ - -* Tue Dec 02 2014 Eric Paris - 0.6-4.0.git993ef88 -- Bump to upstream 993ef88eec9012b221f79abe8f2932ee97997d28 - -* Mon Dec 01 2014 Eric Paris - 0.5-235.0.git6aabd98 -- Bump to upstream 6aabd9804fb75764b70e9172774002d4febcae34 - -* Wed Nov 26 2014 Eric Paris - 0.5-210.0.gitff1e9f4 -- Bump to upstream ff1e9f4c191342c24974c030e82aceaff8ea9c24 - -* Tue Nov 25 2014 Eric Paris - 0.5-174.0.git64e07f7 -- Bump to upstream 64e07f7fe03d8692c685b09770c45f364967a119 - -* Mon Nov 24 2014 Eric Paris - 0.5-125.0.git162e498 -- Bump to upstream 162e4983b947d2f6f858ca7607869d70627f5dff - -* Fri Nov 21 2014 Eric Paris - 0.5-105.0.git3f74a1e -- Bump to upstream 3f74a1e9f56b3c3502762930c0c551ccab0557ea - -* Thu Nov 20 2014 Eric Paris - 0.5-65.0.gitc6158b8 -- Bump to upstream c6158b8aa9c40fbf1732650a8611429536466b21 -- include go-restful build requirement - -* Tue Nov 18 2014 Eric Paris - 0.5-14.0.gitdf0981b -- Bump to upstream df0981bc01c5782ad30fc45cb6f510f365737fc1 - -* Tue Nov 11 2014 Eric Paris - 0.4-680.0.git30fcf24 -- Bump to upstream 30fcf241312f6d0767c7d9305b4c462f1655f790 - -* Mon Nov 10 2014 Eric Paris - 0.4-633.0.git6c70227 -- Bump to upstream 6c70227a2eccc23966d32ea6d558ee05df46e400 - -* Fri Nov 07 2014 Eric Paris - 0.4-595.0.gitb695650 -- Bump to upstream b6956506fa2682afa93770a58ea8c7ba4b4caec1 - -* Thu Nov 06 2014 Eric Paris - 0.4-567.0.git3b1ef73 -- Bump to upstream 3b1ef739d1fb32a822a22216fb965e22cdd28e7f - -* Thu Nov 06 2014 Eric Paris - 0.4-561.0.git06633bf -- Bump to upstream 06633bf4cdc1ebd4fc848f85025e14a794b017b4 -- Make spec file more RHEL/CentOS friendly - -* Tue Nov 04 2014 Eric Paris - 0.4-0.0.git4452163 -- rebase to v0.4 -- include man pages - -* Tue Oct 14 2014 jchaloup - 0.3-0.3.git98ac8e1 -- create /var/lib/kubelet -- Use bash completions from upstream -- Bump to upstream 98ac8e178fcf1627399d659889bcb5fe25abdca4 -- all by Eric Paris - -* Mon Sep 29 2014 Jan Chaloupka - 0.3-0.2.git88fdb65 -- replace * with coresponding files -- remove dependency on gcc - -* Wed Sep 24 2014 Eric Paris - 0.1-0.4.git6ebe69a -- prefer autosetup instead of setup (revert setup change in 0-0.3.git) -https://fedoraproject.org/wiki/Autosetup_packaging_draft -- revert version number to 0.1 - -* Mon Sep 08 2014 Lokesh Mandvekar - 0-0.3.git6ebe69a -- gopath defined in golang package already -- package owns /etc/kubernetes -- bash dependency implicit -- keep buildroot/$RPM_BUILD_ROOT macros consistent -- replace with macros wherever possible -- set version, release and source tarball prep as per -https://fedoraproject.org/wiki/Packaging:SourceURL#Github - -* Mon Sep 08 2014 Eric Paris -- make services restart automatically on error - -* Sat Sep 06 2014 Eric Paris -- update to upstream -- redo build to use project scripts -- use project scripts in %%check -- rework deletion of third_party packages to easily detect changes -- run apiserver and controller-manager as non-root - -* Mon Aug 11 2014 Adam Miller -- update to upstream -- decouple the rest of third_party - -* Thu Aug 7 2014 Eric Paris -- update to head -- update package to include config files - -* Wed Jul 16 2014 Colin Walters -- Initial package diff --git a/kubernetes/kubernetes-1.19.13/centos/kubernetes.spec.orig b/kubernetes/kubernetes-1.19.13/centos/kubernetes.spec.orig deleted file mode 100644 index fd43ef4cd..000000000 --- a/kubernetes/kubernetes-1.19.13/centos/kubernetes.spec.orig +++ /dev/null @@ -1,2282 +0,0 @@ -%if 0%{?fedora} -%global with_devel 1 -%global with_bundled 0 -%global with_debug 1 -%else -%global with_devel 0 -%global with_bundled 1 -%global with_debug 0 -%endif - -%if 0%{?with_debug} -# https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12 -%global _dwz_low_mem_die_limit 0 -%else -%global debug_package %{nil} -%endif - -%global provider github -%global provider_tld com -%global project kubernetes -%global repo kubernetes -# https://github.com/kubernetes/kubernetes - -%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} -%global import_path k8s.io/kubernetes -%global commit fc32d2f3698e36b93322a3465f63a14e9f0eaead -%global shortcommit %(c=%{commit}; echo ${c:0:7}) - -%global con_provider github -%global con_provider_tld com -%global con_project kubernetes -%global con_repo contrib -# https://github.com/kubernetes/contrib -%global con_provider_prefix %{con_provider}.%{con_provider_tld}/%{con_project}/%{con_repo} -%global con_commit 5b445f1c53aa8d6457523526340077935f62e691 -%global con_shortcommit %(c=%{con_commit}; echo ${c:0:7}) - -%global kube_version 1.10.0 -%global kube_git_version v%{kube_version} - -# Needed otherwise "version_ldflags=$(kube::version_ldflags)" doesn't work -%global _buildshell /bin/bash -%global _checkshell /bin/bash - -############################################## -Name: kubernetes -Version: %{kube_version} -Release: 1%{?dist} -Summary: Container cluster management -License: ASL 2.0 -URL: https://%{import_path} -ExclusiveArch: x86_64 aarch64 ppc64le s390x -Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz -Source1: https://%{con_provider_prefix}/archive/%{con_commit}/%{con_repo}-%{con_shortcommit}.tar.gz -Source3: kubernetes-accounting.conf -Source4: kubeadm.conf - -Source33: genmanpages.sh - -Patch3: build-with-debug-info.patch -#Patch4: make-test-cmd-run-over-hyperkube-based-kubectl.patch -#Patch5: make-e2e_node-run-over-distro-bins.patch - -# ppc64le -Patch16: fix-support-for-ppc64le.patch - -Patch20: use_go_build-is-not-fully-propagated-so-make-it-fixe.patch - -# It obsoletes cadvisor but needs its source code (literally integrated) -Obsoletes: cadvisor - -# kubernetes is decomposed into master and node subpackages -# require both of them for updates -Requires: kubernetes-master = %{version}-%{release} -Requires: kubernetes-node = %{version}-%{release} - -%description -%{summary} - -%if 0%{?with_devel} -%package devel -Summary: %{summary} -BuildArch: noarch - -Provides: golang(%{import_path}/cmd/genutils) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubectl/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/normalization) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/install) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/v1) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/conversion-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/deepcopy-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/generator) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/go-to-protobuf/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/import-boss/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/namer) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/parser) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/set-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/types) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/install) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/pkg/federation-controller/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/admission) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/annotations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/endpoints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta/metatypes) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest/resttest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing/compat) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery/registered) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v0) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v2alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/audit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator/bearertoken) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/union) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/handlers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/chaosclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/leaderelection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/record) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/restclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/testing/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/transport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/dynamic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/adapters/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/auth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient/simple) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/azure) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/cloudstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/gce) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/mesos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/openstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/ovirt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/rackspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/vsphere) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/daemon) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/disruption) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework/informers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector/metaonly) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podgc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/route) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/statusupdater) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion/queryparams) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/dns) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fieldpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fields) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/openapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/healthz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/httplog) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/hyperkube) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/rollout) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/set) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/templates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/editor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/jsonmerge) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/metricsutil) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/client) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cm) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/custommetrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockershim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockertools) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/envvars) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/events) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/eviction) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/images) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/kuberuntime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/leaky) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hairpin) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/kubenet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/mock_network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pleg) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/results) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/qos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/remote) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt/mock_os) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rktshim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/status) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/format) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/ioutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/queue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/sliceutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubemark) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master/ports) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/http) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/tcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/healthcheck) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/userspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/evaluator/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/subjectaccessreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/cachesize) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/componentstatus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/experimental/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rangeallocation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/registrytest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/tokenreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/recognizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/streaming) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/versioning) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontext) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/seccomp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/selection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ssh) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/etcdtest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing/testingcert) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend/factory) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ui) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/async) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/bandwidth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chmod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chown) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/clock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/codeinspector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/configz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crlf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crypto) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/dbus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/diff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/ebtables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/env) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flowcontrol) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flushwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/framer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap/exponentialbackoff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/hash) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/homedir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream/spdy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/integer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/interrupt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/intstr) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/io) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/jsonpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/keymutex) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/limitwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/logs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/maps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/mount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/oom) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/parsers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/procfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/resourcecontainer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rlimit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/slice) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strategicpatch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strings) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/system) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/term) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/threading) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/uuid) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation/field) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wait) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/workqueue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wsstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/verflag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/aws_ebs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_dd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_file) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cephfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cinder) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/downwardapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/empty_dir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/fc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flexvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flocker) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/gce_pd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/git_repo) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/glusterfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/host_path) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/iscsi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/nfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/quobyte) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/rbd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/nestedpendingoperations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/operationexecutor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/volumehelper) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/vsphere_volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/versioned) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/admit) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/alwayspullimages) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/antiaffinity) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/deny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/exec) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/initialresources) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/limitranger) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/autoprovision) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/exists) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/persistentvolume/label) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/securitycontext/scdeny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/storageclass/default) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/allow) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/keystone) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/passwordfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/basicauth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/union) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/x509) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokenfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokentest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/predicates) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities/util) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider/defaults) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/factory) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/schedulercache) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/webhook) = %{version}-%{release} - -%description devel -Libraries for building packages importing k8s.io/kubernetes. -Currently, the devel is not suitable for development. -It is meant only as a buildtime dependency for other projects. - -This package contains library source intended for -building other packages which use %{project}/%{repo}. -%endif - -############################################## -%package unit-test -Summary: %{summary} - for running unit tests - -# below Rs used for testing -Requires: golang >= 1.2-7 -Requires: etcd >= 2.0.9 -Requires: hostname -Requires: rsync -Requires: NetworkManager - -%description unit-test -%{summary} - for running unit tests - -############################################## -%package master -Summary: Kubernetes services for master host - -BuildRequires: golang >= 1.2-7 -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: kubernetes-client = %{version}-%{release} - -# if node is installed with node, version and release must be the same -Conflicts: kubernetes-node < %{version}-%{release} -Conflicts: kubernetes-node > %{version}-%{release} - -%description master -Kubernetes services for master host - -############################################## -%package node -Summary: Kubernetes services for node host - -%if 0%{?fedora} >= 27 -Requires: (docker or docker-ce) -Suggests: docker -%else -Requires: docker -%endif -Requires: conntrack-tools - -BuildRequires: golang >= 1.2-7 -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: socat -Requires: kubernetes-client = %{version}-%{release} - -# if master is installed with node, version and release must be the same -Conflicts: kubernetes-master < %{version}-%{release} -Conflicts: kubernetes-master > %{version}-%{release} - -%description node -Kubernetes services for node host - -############################################## -%package kubeadm -Summary: Kubernetes tool for standing up clusters -Requires: kubernetes-node = %{version}-%{release} -Requires: containernetworking-cni - -%description kubeadm -Kubernetes tool for standing up clusters - -############################################## -%package client -Summary: Kubernetes client tools - -BuildRequires: golang >= 1.2-7 -BuildRequires: go-bindata - -%description client -Kubernetes client tools like kubectl - -############################################## - -%prep -%setup -q -n %{con_repo}-%{con_commit} -T -b 1 -%setup -q -n %{repo}-%{commit} - -%if 0%{?with_debug} -%patch3 -p1 -%endif - -%patch20 -p1 - -# copy contrib folder -mkdir contrib -cp -r ../%{con_repo}-%{con_commit}/init contrib/. - -#src/k8s.io/kubernetes/pkg/util/certificates -# Patch the code to remove eliptic.P224 support -for dir in vendor/github.com/google/certificate-transparency/go/x509 pkg/util/certificates; do - if [ -d "${dir}" ]; then - pushd ${dir} - sed -i "/^[^=]*$/ s/oidNamedCurveP224/oidNamedCurveP256/g" *.go - sed -i "/^[^=]*$/ s/elliptic\.P224/elliptic.P256/g" *.go - popd - fi -done - -# Move all the code under src/k8s.io/kubernetes directory -mkdir -p src/k8s.io/kubernetes -mv $(ls | grep -v "^src$") src/k8s.io/kubernetes/. - -# Patch tests to be run over distro bins -#patch4 -p1 -#patch5 -p1 - -%ifarch ppc64le -%patch16 -p1 -%endif - -############### - -%build -pushd src/k8s.io/kubernetes/ -export KUBE_GIT_TREE_STATE="clean" -export KUBE_GIT_COMMIT=%{commit} -export KUBE_GIT_VERSION=%{kube_git_version} -export KUBE_EXTRA_GOPATH=$(pwd)/Godeps/_workspace - -# https://bugzilla.redhat.com/show_bug.cgi?id=1392922#c1 -%ifarch ppc64le -export GOLDFLAGS='-linkmode=external' -%endif -make WHAT="--use_go_build cmd/hyperkube cmd/kube-apiserver cmd/kubeadm" - -# convert md to man -./hack/generate-docs.sh || true -pushd docs -pushd admin -cp kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md .. -popd -cp %{SOURCE33} genmanpages.sh -bash genmanpages.sh -popd -popd - -%install -pushd src/k8s.io/kubernetes/ -. hack/lib/init.sh -kube::golang::setup_env - -%ifarch ppc64le -output_path="_output/local/go/bin" -%else -output_path="${KUBE_OUTPUT_BINPATH}/$(kube::golang::host_platform)" -%endif - -install -m 755 -d %{buildroot}%{_bindir} - -echo "+++ INSTALLING hyperkube" -install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/hyperkube - -echo "+++ INSTALLING kube-apiserver" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-apiserver - -echo "+++ INSTALLING kubeadm" -install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kubeadm -install -d -m 0755 %{buildroot}/%{_sysconfdir}/systemd/system/kubelet.service.d -install -p -m 0644 -t %{buildroot}/%{_sysconfdir}/systemd/system/kubelet.service.d %{SOURCE4} - -binaries=(kube-controller-manager kube-scheduler kube-proxy kubelet kubectl) -for bin in "${binaries[@]}"; do - echo "+++ HARDLINKING ${bin} to hyperkube" - ln %{buildroot}%{_bindir}/hyperkube %{buildroot}%{_bindir}/${bin} -done - -# install the bash completion -install -d -m 0755 %{buildroot}%{_datadir}/bash-completion/completions/ -%{buildroot}%{_bindir}/kubectl completion bash > %{buildroot}%{_datadir}/bash-completion/completions/kubectl - -# install config files -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name} -install -m 644 -t %{buildroot}%{_sysconfdir}/%{name} contrib/init/systemd/environ/* - -# install service files -install -d -m 0755 %{buildroot}%{_unitdir} -install -m 0644 -t %{buildroot}%{_unitdir} contrib/init/systemd/*.service - -# install manpages -install -d %{buildroot}%{_mandir}/man1 -install -p -m 644 docs/man/man1/* %{buildroot}%{_mandir}/man1 -rm %{buildroot}%{_mandir}/man1/cloud-controller-manager.* -# from k8s tarball copied docs/man/man1/*.1 - -# install the place the kubelet defaults to put volumes -install -d %{buildroot}%{_sharedstatedir}/kubelet - -# place contrib/init/systemd/tmpfiles.d/kubernetes.conf to /usr/lib/tmpfiles.d/kubernetes.conf -install -d -m 0755 %{buildroot}%{_tmpfilesdir} -install -p -m 0644 -t %{buildroot}/%{_tmpfilesdir} contrib/init/systemd/tmpfiles.d/kubernetes.conf -mkdir -p %{buildroot}/run -install -d -m 0755 %{buildroot}/run/%{name}/ - -# enable CPU and Memory accounting -install -d -m 0755 %{buildroot}/%{_sysconfdir}/systemd/system.conf.d -install -p -m 0644 -t %{buildroot}/%{_sysconfdir}/systemd/system.conf.d %{SOURCE3} - -# source codes for building projects -%if 0%{?with_devel} -install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ -echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list -# find all *.go but no *_test.go files and generate devel.file-list -for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do - echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list - install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file) - cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file - echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list -done -%endif - -%if 0%{?with_devel} -sort -u -o devel.file-list devel.file-list -%endif - -popd - -%if 0%{?with_devel} -mv src/k8s.io/kubernetes/devel.file-list . -%endif - -mv src/k8s.io/kubernetes/*.md . -mv src/k8s.io/kubernetes/LICENSE . - - -# place files for unit-test rpm -install -d -m 0755 %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -# basically, everything from the root directory is needed -# unit-tests needs source code -# integration tests needs docs and other files -# test-cmd.sh atm needs cluster, examples and other -cp -a src %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -rm -rf %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/_output -cp -a *.md %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/ - -%check -# Fedora, RHEL7 and CentOS are tested via unit-test subpackage -if [ 1 != 1 ]; then -echo "******Testing the commands*****" -hack/test-cmd.sh -echo "******Benchmarking kube********" -hack/benchmark-go.sh - -# In Fedora 20 and RHEL7 the go cover tools isn't available correctly -%if 0%{?fedora} >= 21 -echo "******Testing the go code******" -hack/test-go.sh -echo "******Testing integration******" -hack/test-integration.sh --use_go_build -%endif -fi - -############################################## -%files -# empty as it depends on master and node - -############################################## -%files master -%license LICENSE -%doc *.md -%{_mandir}/man1/kube-apiserver.1* -%{_mandir}/man1/kube-controller-manager.1* -%{_mandir}/man1/kube-scheduler.1* -%attr(754, -, kube) %caps(cap_net_bind_service=ep) %{_bindir}/kube-apiserver -%{_bindir}/kube-controller-manager -%{_bindir}/kube-scheduler -%{_bindir}/hyperkube -%{_unitdir}/kube-apiserver.service -%{_unitdir}/kube-controller-manager.service -%{_unitdir}/kube-scheduler.service -%dir %{_sysconfdir}/%{name} -%config(noreplace) %{_sysconfdir}/%{name}/apiserver -%config(noreplace) %{_sysconfdir}/%{name}/scheduler -%config(noreplace) %{_sysconfdir}/%{name}/config -%config(noreplace) %{_sysconfdir}/%{name}/controller-manager -%{_tmpfilesdir}/kubernetes.conf -%verify(not size mtime md5) %attr(755, kube,kube) %dir /run/%{name} - -############################################## -%files node -%license LICENSE -%doc *.md -%{_mandir}/man1/kubelet.1* -%{_mandir}/man1/kube-proxy.1* -%{_bindir}/kubelet -%{_bindir}/kube-proxy -%{_bindir}/hyperkube -%{_unitdir}/kube-proxy.service -%{_unitdir}/kubelet.service -%dir %{_sharedstatedir}/kubelet -%dir %{_sysconfdir}/%{name} -%config(noreplace) %{_sysconfdir}/%{name}/config -%config(noreplace) %{_sysconfdir}/%{name}/kubelet -%config(noreplace) %{_sysconfdir}/%{name}/proxy -%config(noreplace) %{_sysconfdir}/systemd/system.conf.d/kubernetes-accounting.conf -%{_tmpfilesdir}/kubernetes.conf -%verify(not size mtime md5) %attr(755, kube,kube) %dir /run/%{name} - -############################################## -%files kubeadm -%license LICENSE -%doc *.md -%{_mandir}/man1/kubeadm.1* -%{_mandir}/man1/kubeadm-* -%{_bindir}/kubeadm -%dir %{_sysconfdir}/systemd/system/kubelet.service.d -%config(noreplace) %{_sysconfdir}/systemd/system/kubelet.service.d/kubeadm.conf - -############################################## -%files client -%license LICENSE -%doc *.md -%{_mandir}/man1/kubectl.1* -%{_mandir}/man1/kubectl-* -%{_bindir}/kubectl -%{_bindir}/hyperkube -%{_datadir}/bash-completion/completions/kubectl - -############################################## -%files unit-test -%{_sharedstatedir}/kubernetes-unit-test/ - -%if 0%{?with_devel} -%files devel -f devel.file-list -%doc *.md -%dir %{gopath}/src/k8s.io -%endif - -############################################## - -%pre master -getent group kube >/dev/null || groupadd -r kube -getent passwd kube >/dev/null || useradd -r -g kube -d / -s /sbin/nologin \ - -c "Kubernetes user" kube - -%post master -%systemd_post kube-apiserver kube-scheduler kube-controller-manager - -%preun master -%systemd_preun kube-apiserver kube-scheduler kube-controller-manager - -%postun master -%systemd_postun - - -%pre node -getent group kube >/dev/null || groupadd -r kube -getent passwd kube >/dev/null || useradd -r -g kube -d / -s /sbin/nologin \ - -c "Kubernetes user" kube - -%post node -%systemd_post kubelet kube-proxy -# If accounting is not currently enabled systemd reexec -if [[ `systemctl show docker kubelet | grep -q -e CPUAccounting=no -e MemoryAccounting=no; echo $?` -eq 0 ]]; then - systemctl daemon-reexec -fi - -%preun node -%systemd_preun kubelet kube-proxy - -%postun node -%systemd_postun - -############################################ -%changelog -* Tue Mar 27 2018 Spyros Trigazis - 1.10.0-1 -- Bump to upstream v1.10.0 - -* Thu Mar 22 2018 Spyros Trigazis - 1.9.6-1 -- Bump to upstream v1.9.6 - -* Tue Mar 20 2018 Jan Chaloupka - 1.9.5-1 -- Bump to upstream v1.9.5 - resolves: #1554420 - -* Sun Feb 11 2018 Spyros Trigazis - 1.9.3-1 -- Bump to upstream v1.9.3 - -* Fri Feb 09 2018 Jan Chaloupka - 1.9.1-5 -- Add --fail-swap-on=false flag to the /etc/kubernetes/kubelet - resolves: #1542476 - -* Thu Feb 08 2018 Igor Gnatenko - 1.9.1-4 -- Escape macro in %%changelog - -* Wed Feb 07 2018 Fedora Release Engineering - 1.9.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Mon Jan 15 2018 Jan Chaloupka - 1.9.1-2 -- If docker is not available, try docker-ce instead (use boolean dependencies) - resolves: #1534508 - -* Fri Jan 12 2018 Spyros Trigazis - 1.9.1-1 -- Update to upstream v1.9.1 - resolves #1533794 - -* Tue Oct 24 2017 Jan Chaloupka - 1.8.1-1 -- Update to upstream v1.8.1 - resolves: #1497135 - -* Mon Oct 02 2017 Jan Chaloupka - 1.8.0-1 -- Update to upstream v1.8.0 - related: #1497625 - -* Mon Oct 02 2017 Jan Chaloupka - 1.7.7-1 -- Update to upstream v1.7.7 - resolves: #1497625 - -* Mon Sep 18 2017 Jan Chaloupka - 1.7.6-1 -- Update to upstream v1.7.6 - resolves: #1492551 - -* Mon Sep 11 2017 Jan Chaloupka - 1.7.5-1 -- Update to upstream v1.7.5 - resolves: #1490316 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.4-1 -- Fix the version - related: #1482874 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.3-2 -- Update to upstream v1.7.4 - resolves: #1482874 - -* Tue Aug 08 2017 Jan Chaloupka - 1.7.3-1 -- Update to upstream v1.7.3 - resolves: #1479685 - -* Thu Aug 03 2017 Fedora Release Engineering - 1.7.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Sun Jul 30 2017 Florian Weimer - 1.7.2-3 -- Rebuild with binutils fix for ppc64le (#1475636) - -* Wed Jul 26 2017 Fedora Release Engineering - 1.7.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.2-1 -- Update to upstream v1.7.2 - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.1-2 -- Sync kubeadm.conf with upstream service configuration (set Restart,StartLimitInterval,RestartSec) - -* Fri Jul 14 2017 Jan Chaloupka - 1.7.1-1 -- Update to upstream v1.7.1 - resolves: #1471767 - -* Sat Jul 08 2017 Jan Chaloupka - 1.6.7-1 -- Update to upstream v1.6.7 - resolves: #1468823 - resolves: #1468752 - -* Fri May 19 2017 Timothy St. Clair - 1.6.4-1 -- Add kubeadm subpackage to enable upstream deployments - -* Thu May 18 2017 Jan Chaloupka - 1.6.3-1 -- Update to upstream v1.6.3 - resolves: #1452101 - -* Fri May 12 2017 Jan Chaloupka - 1.6.2-2 -- Extend archs with s390x - resolves: #1400000 - -* Tue May 02 2017 Jan Chaloupka - 1.6.2-1 -- Update to upstream v1.6.2 - resolves: #1447338 - -* Tue Apr 11 2017 Jan Chaloupka - 1.6.1-1 -- Update to upstream v1.6.1 - related: #1422889 - -* Fri Mar 31 2017 Jan Chaloupka - 1.5.6-1 -- Update to upstream v1.5.6 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.5-4 -- Update to upstream v1.5.5 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.4-3 -- re-enable debug-info - related: #1422889 - -* Thu Mar 09 2017 Jan Chaloupka - 1.5.4-2 -- Bump to upstream 7243c69eb523aa4377bce883e7c0dd76b84709a1 - related: #1422889 - -* Thu Feb 16 2017 Jan Chaloupka - 1.5.3-1 -- Update to upstream v1.5.3 - resolves: #1422889 - -* Fri Feb 10 2017 Fedora Release Engineering - 1.5.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Jan 18 2017 Jan Chaloupka - 1.5.2-2 -- fix rootScopeNaming generate selfLink - resolves: #1413997 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.2-1 -- Bump version as well - related: #1412996 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.1-2 -- Bump to upstream 1.5.2 - resolves: #1412996 - -* Thu Jan 05 2017 Jan Chaloupka - 1.5.1-1 -- Bump to upstream 1.5.1 - resolves: #1410186 - -* Wed Jan 04 2017 Jan Chaloupka - 1.4.7-2 -- Generate the md files before they are converted to man pages - resolves: #1409943 - -* Mon Dec 12 2016 Jan Chaloupka - 1.4.7-1 -- Bump to upstream v1.4.7 - resolves: #1403823 - New conntrack-tools dependency of kube-proxy - Build kubernetes on ppc64le with linkmode=external - resolves: #1392922 - -* Mon Nov 14 2016 jchaloup - 1.4.5-3 -- Patch unit-test subpackage to run tests over k8s distro binaries - -* Wed Nov 09 2016 jchaloup - 1.4.5-2 -- Add missing if devel around generated devel.file-list - related: #1390074 - -* Tue Nov 08 2016 jchaloup - 1.4.5-1 -- Bump to upstream v1.4.5 (flip back to upstream based Kubernetes) - related: #1390074 - -* Mon Oct 31 2016 jchaloup - 1.4.0-0.1.beta3.git52492b4 -- Update to origin v1.4.0-alpha.0 (ppc64le and arm unbuildable with the current golang version) - resolves: #1390074 - -* Mon Oct 24 2016 jchaloup - 1.3.0-0.4.git52492b4 -- Update to origin v1.3.1 - resolves: #1388092 - -* Thu Sep 08 2016 jchaloup - 1.3.0-0.3.rc1.git507d3a7 -- Update to origin v1.3.0-rc1 - resolves: #1374361 - -* Thu Aug 11 2016 Dennis Gilmore -1.3.0-0.2.git4a3f9c5 -- enable armv7hl and aarch64 - -* Tue Aug 09 2016 jchaloup - 1.3.0-0.1.git4a3f9c5 -- Update to origin v1.3.0-alpha.3 - resolves: #1365601 - -* Thu Jul 21 2016 Fedora Release Engineering - 1.2.0-0.27.git4a3f9c5 -- https://fedoraproject.org/wiki/Changes/golang1.7 - -* Sun Jul 17 2016 jchaloup - 1.2.0-0.26.git4a3f9c5 -- Update to origin v1.2.1 - resolves: #1357261 - -* Wed Jul 13 2016 jchaloup - 1.2.0-0.25.git4a3f9c5 -- Enable CPU and Memory accounting on a node - -* Wed Jun 29 2016 jchaloup - 1.2.0-0.24.git4a3f9c5 -- Be more verbose about devel subpackage - resolves: #1269449 - -* Tue Jun 28 2016 jchaloup - 1.2.0-0.23.git4a3f9c5 -- Own /run/kubernetes directory - resolves: #1264699 - -* Sat May 28 2016 jchaloup - 1.2.0-0.22.git4a3f9c5 -- Bump to origin v1.2.0 - resolves: #1340643 - -* Wed May 04 2016 jchaloup - 1.2.0-0.21.git4a3f9c5 -- Extend uni-test subpackage to run other tests - -* Mon Apr 25 2016 jchaloup - 1.2.0-0.20.git4a3f9c5 -- Update support for ppc64le to use go compiler - related: #1306214 - -* Thu Apr 21 2016 jchaloup - 1.2.0-0.19.git4a3f9c5 -- Fix support for ppc64le - related: #1306214 - -* Tue Apr 19 2016 jchaloup - 1.2.0-0.18.git4a3f9c5 -- Bump to origin v1.1.6 - resolves: #1328357 - -* Mon Apr 11 2016 jchaloup - 1.2.0-0.17.alpha6.git4a3f9c5 -- Don't disable extensions/v1beta1 by default to conform with upstream documentation - -* Wed Mar 30 2016 jchaloup - 1.2.0-0.16.alpha6.git4a3f9c5 - Update to origin's v1.1.5 - Build on ppc64le as well - resolves: #1306214 - -* Tue Mar 08 2016 jchaloup - 1.2.0-0.15.alpha6.gitf0cd09a -- hyperkube.server: don't parse args for any command - -* Fri Mar 04 2016 jchaloup - 1.2.0-0.14.alpha6.gitf0cd09a -- Disable extensions/v1beta1 implicitly - -* Tue Mar 01 2016 jchaloup - 1.2.0-0.13.alpha6.gitf0cd09a -- Hyperkube checks flags of individual commands/servers even if it does not define their flags. - Thus resulting in 'uknown shorthand flag' error - -* Mon Feb 29 2016 jchaloup - 1.2.0-0.12.alpha6.gitf0cd09a -- Disable v1beta3 -- hyperkube-kubectl-dont shift os.Args - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.11.alpha6.gitf0cd09a -- add kube- prefix to controller-manager, proxy and scheduler - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.10.alpha6.gitf0cd09a -- Hardlink kube-controller-manager, kuber-scheduler, kubectl, kubelet and kube-proxy into hyperkube -- Keep kube-apiserver binary as it is (it has different permission and capabilities) - -* Thu Feb 25 2016 jchaloup - 1.2.0-0.9.alpha6.gitf0cd09a -- Fix Content-Type of docker client response - resolves: #1311861 - -* Mon Feb 22 2016 Fedora Release Engineering - 1.2.0-0.8.alpha6.gitf0cd09a -- https://fedoraproject.org/wiki/Changes/golang1.6 - -* Mon Feb 22 2016 jchaloup - 1.2.0-0.7.alpha6.git4c8e6f4 -- Bump to origin 1.1.3 - kube-version-change command replaced with kubectl convert (check out docs/admin/cluster-management.md) - related: 1295066 - -* Thu Feb 04 2016 Fedora Release Engineering - 1.2.0-0.6.alpha1.git4c8e6f4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 21 2016 jchaloup - 1.2.0-0.5.alpha1.git4c8e6f4 -- Bump to upstream e1d9873c1d5711b83fd3dd7eefe83a88ceb92c08 - related: #1291860 - -* Thu Jan 07 2016 jchaloup - 1.2.0-0.4.alpha1.git4c8e6f4 -- Move definition of all version, git and commit macros at one place - resolves: #1291860 - -* Fri Jan 01 2016 jchaloup - 1.2.0-0.3.alpha1.git4c8e6f4 -- Bump to upstream bf56e235826baded1772fb340266b8419c3e8f30 - Rebase to origin's "v1.1.0.1 - Security Update to v1.1" release - resolves: #1295066 - -* Thu Nov 26 2015 jchaloup - 1.2.0-0.2.alpha1.git4c8e6f4 -- Bump to origin upstream a41c9ff38d52fd508481c3c2bac13d52871fde02 -- Build kubernetes from origin's Godeps using hack/build-go.sh - origin's Godeps = kubernetes upstream + additional patches - -* Tue Oct 20 2015 jchaloup - 1.2.0-0.1.alpha1.git4c8e6f4 -- Bump to upstream 403de3874fba420fd096f2329b45fe2f5ae97e46 - related: #1211266 - -* Wed Oct 14 2015 jchaloup - 1.1.0-0.41.alpha1.gite9a6ef1 -- Bump to origin upstream e9a6ef1cd4c29d45730289a497d18b19d7ba450d - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.40.alpha1.git5f38cb0 -- Add missing short option for --server of kubectl -- Update unit-test-subpackage (only test-cmd.sh atm) - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.39.alpha1.git5f38cb0 -- Add normalization of flags - related: #1211266 - -* Fri Oct 02 2015 jchaloup - 1.1.0-0.38.alpha1.git5f38cb0 -- Restore unit-test subpackage (not yet tested) - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.37.alpha1.git5f38cb0 -- Do not unset default cluster, otherwise k8s ends with error when no cluster set - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.36.alpha0.git5f38cb0 -- Bump to o4n 5f38cb0e98c9e854cafba9c7f98dafd51e955ad8 - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.35.alpha1.git2695cdc -- Update git version of k8s and o4n, add macros - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.34.alpha1.git2695cdc -- Built k8s from o4n tarball -- Bump to upstream 2695cdcd29a8f11ef60278758e11f4817daf3c7c - related: #1211266 - -* Tue Sep 22 2015 jchaloup - 1.1.0-0.33.alpha1.git09cf38e -- Bump to upstream 09cf38e9a80327e2d41654db277d00f19e2c84d0 - related: #1211266 - -* Thu Sep 17 2015 jchaloup - 1.1.0-0.32.alpha1.git400e685 -- Bump to upstream 400e6856b082ecf4b295568acda68d630fc000f1 - related: #1211266 - -* Wed Sep 16 2015 jchaloup - 1.1.0-0.31.gitd549fc4 -- Bump to upstream d549fc400ac3e5901bd089b40168e1e6fb17341d - related: #1211266 - -* Tue Sep 15 2015 jchaloup - 1.1.0-0.30.gitc9570e3 -- Bump to upstream c9570e34d03c6700d83f796c0125d17c5064e57d - related: #1211266 - -* Mon Sep 14 2015 jchaloup - 1.1.0-0.29.git86b4e77 -- Bump to upstream 86b4e777e1947c1bc00e422306a3ca74cbd54dbe - related: #1211266 - -* Thu Sep 10 2015 jchaloup - 1.1.0-0.28.gitf867ba3 -- Bump to upstream f867ba3ba13e3dad422efd21c74f52b9762de37e - related: #1211266 - -* Wed Sep 09 2015 jchaloup - 1.1.0-0.27.git0f4fa4e -- Bump to upstream 0f4fa4ed25ae9a9d1824fe55aeefb4d4ebfecdfd - related: #1211266 - -* Tue Sep 08 2015 jchaloup - 1.1.0-0.26.git196f58b -- Bump to upstream 196f58b9cb25a2222c7f9aacd624737910b03acb - related: #1211266 - -* Mon Sep 07 2015 jchaloup - 1.1.0-0.25.git96e0ed5 -- Bump to upstream 96e0ed5749608d4cc32f61b3674deb04c8fa90ad - related: #1211266 - -* Sat Sep 05 2015 jchaloup - 1.1.0-0.24.git2e2def3 -- Bump to upstream 2e2def36a904fe9a197da5fc70e433e2e884442f - related: #1211266 - -* Fri Sep 04 2015 jchaloup - 1.1.0-0.23.gite724a52 -- Bump to upstream e724a5210adf717f62a72162621ace1e08730c75 - related: #1211266 - -* Thu Sep 03 2015 jchaloup - 1.1.0-0.22.gitb6f2f39 -- Bump to upstream b6f2f396baec5105ff928cf61903c2c368259b21 - related: #1211266 - -* Wed Sep 02 2015 jchaloup - 1.1.0-0.21.gitb4a3698 -- Bump to upstream b4a3698faed81410468eccf9f328ca6df3d0cca3 - related: #1211266 - -* Tue Sep 01 2015 jchaloup - 1.1.0-0.20.git2f9652c -- Bump to upstream 2f9652c7f1d4b8f333c0b5c8c1270db83b913436 - related: #1211266 - -* Mon Aug 31 2015 jchaloup - 1.1.0-0.19.git66a644b -- Bump to upstream 66a644b275ede9ddb98eb3f76e8d1840cafc2147 - related: #1211266 - -* Thu Aug 27 2015 jchaloup - 1.1.0-0.18.gitab73849 -- Bump to upstream ab7384943748312f5e9294f42d42ed3983c7c96c - related: #1211266 - -* Wed Aug 26 2015 jchaloup - 1.1.0-0.17.git00e3442 -- Bump to upstream 00e34429e0242323ed34347cf0ab65b3d62b21f7 - related: #1211266 - -* Tue Aug 25 2015 jchaloup - 1.1.0-0.16.gita945785 -- Bump to upstream a945785409d5b68f3a2721d2209300edb5abf1ce - related: #1211266 - -* Mon Aug 24 2015 jchaloup - 1.1.0-0.15.git5fe7029 -- Bump to upstream 5fe7029e688e1e5873a0b95a622edda5b5156d2b - related: #1211266 - -* Fri Aug 21 2015 jchaloup - 1.1.0-0.14.gitb6f18c7 -- Bump to upstream b6f18c7ce08714c8d4f6019463879a164a41750e - related: #1211266 - -* Thu Aug 20 2015 jchaloup - 1.1.0-0.13.git44fa48e -- Bump to upstream 44fa48e5af44d3e988fa943d96a2de732d8cc666 - related: #1211266 - -* Wed Aug 19 2015 jchaloup - 1.1.0-0.12.gitb5a4a54 -- Bump to upstream b5a4a548df0cffb99bdcc3b9b9e48d4025d0541c - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.11.git919c7e9 -- Bump to upstream 919c7e94e23d2dcd5bdd96896e0a7990f9ae3338 - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.10.git280b66c -- Bump to upstream 280b66c9012c21e253acd4e730f8684c39ca08ec - related: #1211266 - -* Mon Aug 17 2015 jchaloup - 1.1.0-0.9.git081d9c6 -- Bump to upstream 081d9c64d25c20ec16035036536511811118173d - related: #1211266 - -* Fri Aug 14 2015 jchaloup - 1.1.0-0.8.git8dcbeba -- Bump to upstream 8dcbebae5ef6a7191d9dfb65c68833c6852a21ad - related: #1211266 - -* Thu Aug 13 2015 jchaloup - 1.1.0-0.7.git968cbbe -- Bump to upstream 968cbbee5d4964bd916ba379904c469abb53d623 - related: #1211266 - -* Wed Aug 12 2015 jchaloup - 1.1.0-0.6.gitc91950f -- Bump to upstream c91950f01cb14ad47486dfcd2fdfb4be3ee7f36b - related: #1211266 - -* Tue Aug 11 2015 jchaloup - 1.1.0-0.5.gite44c8e6 -- Bump to upstream e44c8e6661c931f7fd434911b0d3bca140e1df3a - related: #1211266 - -* Mon Aug 10 2015 jchaloup - 1.1.0-0.4.git2bfa9a1 -- Bump to upstream 2bfa9a1f98147cfdc2e9f4cf50e2c430518d91eb - related: #1243827 - -* Thu Aug 06 2015 jchaloup - 1.1.0-0.3.git4c42e13 -- Bump to upstream 4c42e1302d3b351f3cb6074d32aa420bbd45e07d -- Change import path prefix to k8s.io/kubernetes - related: #1243827 - -* Wed Aug 05 2015 jchaloup - 1.1.0-0.2.git159ba48 -- Bump to upstream 159ba489329e9f6ce422541e13f97e1166090ec8 - related: #1243827 - -* Sat Aug 01 2015 jchaloup - 1.1.0-0.1.git6129d3d -- Bump to upstream 6129d3d4eb80714286650818081a64ce2699afed - related: #1243827 - -* Fri Jul 31 2015 jchaloup - 1.0.0-0.18.gitff058a1 -- Bump to upstream ff058a1afeb63474f7a35805941f3b07c27aae0f - related: #1243827 - -* Thu Jul 30 2015 jchaloup - 1.0.0-0.17.git769230e -- Bump to upstream 769230e735993bb0bf924279a40593c147c9a6ab - related: #1243827 - -* Wed Jul 29 2015 jchaloup - 1.0.0-0.16.gitdde7222 -- Bump to upstream dde72229dc9cbbdacfb2e44b22d9d5b357027020 - related: #1243827 - -* Tue Jul 28 2015 jchaloup - 1.0.0-0.15.gitc5bffaa -- Bump to upstream c5bffaaf3166513da6259c44a5d1ba8e86bea5ce - related: #1243827 - -* Sat Jul 25 2015 jchaloup - 1.0.0-0.14.git5bd82ff -- Bump to upstream 5bd82ffe6da8f4e72e71b362635e558bfc412106 - related: #1243827 - -* Fri Jul 24 2015 jchaloup - 1.0.0-0.13.git291acd1 -- Bump to upstream 291acd1a09ac836ec7524b060a19a6498d9878dd - related: #1243827 - -* Thu Jul 23 2015 jchaloup - 1.0.0-0.12.gitfbed349 -- Bump to upstream fbed3492bfa09e59b1c423fdd7c1ecad333a06ef - related: #1243827 - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.11.gitfbc85e9 -- Add runtime dependency of kubernetes-node on socat (so kubectl port-forward works on AH) - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.10.gitfbc85e9 -- Update the build script for go1.5 as well -- Bump to upstream fbc85e9838f25547be94fbffeeb92a756d908ca0 - related: #1243827 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.9.git2d88675 -- Bump to upstream 2d88675f2203d316d4bac312c7ccad12991b56c2 -- Change KUBE_ETCD_SERVERS to listen on 2379 ports instead of 4001 - resolves: #1243827 -- Add kubernetes-client to provide kubectl command - resolves: #1241469 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.8.gitb2dafda -- Fix dependency and tests for go-1.5 -- with_debug off as the builds ends with error "ELFRESERVE too small: ..." - -* Sat Jul 18 2015 Eric Paris - 1.0.0-0.7.gitb2dafda -- Update apiserver binary gid - -* Fri Jul 17 2015 jchaloup - 1.0.0-0.6.gitb2dafda -- Bump to upstream b2dafdaef5aceafad503ab56254b60f80da9e980 - related: #1211266 - -* Thu Jul 16 2015 jchaloup - 1.0.0-0.5.git596a8a4 -- Bump to upstream 596a8a40d12498b5335140f50753980bfaea4f6b - related: #1211266 - -* Wed Jul 15 2015 jchaloup - 1.0.0-0.4.git6ba532b -- Bump to upstream 6ba532b218cb5f5ea3f0e8dce5395182f388536c - related: #1211266 - -* Tue Jul 14 2015 jchaloup - 1.0.0-0.3.gitc616182 -- Bump to upstream c6161824db3784e6156131307a5e94647e5557fd - related: #1211266 - -* Mon Jul 13 2015 jchaloup - 1.0.0-0.2.git2c27b1f -- Bump to upstream 2c27b1fa64f4e70f04575d1b217494f49332390e - related: #1211266 - -* Sat Jul 11 2015 jchaloup - 1.0.0-0.1.git1b37059 -- Bump to upstream 1b370599ccf271741e657335c4943cb8c7dba28b - related: #1211266 - -* Fri Jul 10 2015 jchaloup - 0.21.1-0.2.gitccc4cfc -- Bump to upstream ccc4cfc7e11e0f127ac1cea045017dd799be3c63 - related: #1211266 - -* Thu Jul 09 2015 jchaloup - 0.21.1-0.1.git41f8907 -- Update generating of man pages from md (add genmanpages.sh) -- Bump to upstream 41f89075396329cd46c58495c7d3f7e13adcaa96 - related: #1211266 - -* Wed Jul 08 2015 jchaloup - 0.20.2-0.5.git77be29e -- Bump to upstream 77be29e3da71f0a136b6aa4048b2f0575c2598e4 - related: #1211266 - -* Tue Jul 07 2015 jchaloup - 0.20.2-0.4.git639a7da -- Bump to upstream 639a7dac50a331414cc6c47083323388da0d8756 - related: #1211266 - -* Mon Jul 06 2015 jchaloup - 0.20.2-0.3.gitbb6f2f7 -- Bump to upstream bb6f2f7ad90596d624d84cc691eec0f518e90cc8 - related: #1211266 - -* Fri Jul 03 2015 jchaloup - 0.20.2-0.2.git974377b -- Bump to upstream 974377b3064ac59b6e5694bfa568d67128026171 - related: #1211266 - -* Thu Jul 02 2015 jchaloup - 0.20.2-0.1.gitef41ceb -- Bump to upstream ef41ceb3e477ceada84c5522f429f02ab0f5948e - related: #1211266 - -* Tue Jun 30 2015 jchaloup - 0.20.0-0.3.git835eded -- Bump to upstream 835eded2943dfcf13a89518715e4be842a6a3ac0 -- Generate missing man pages - related: #1211266 - -* Mon Jun 29 2015 jchaloup - 0.20.0-0.2.git1c0b765 -- Bump to upstream 1c0b765df6dabfe9bd0e20489ed3bd18e6b3bda8 - Comment out missing man pages - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.20.0-0.1.git8ebd896 -- Bump to upstream 8ebd896351513d446d56bc5785c070d2909226a3 - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.19.3-0.6.git712f303 -- Bump to upstream 712f303350b35e70a573f3cb19193c8ec7ee7544 - related: #1211266 - -* Thu Jun 25 2015 jchaloup - 0.19.3-0.5.git2803b86 -- Bump to upstream 2803b86a42bf187afa816a7ce14fec754cc2af51 - related: #1211266 - -* Wed Jun 24 2015 Eric Paris - 0.19.3-0.4.git5b4dc4e -- Set CAP_NET_BIND_SERVICE on the kube-apiserver so it can use 443 - -* Wed Jun 24 2015 jchaloup - 0.19.3-0.3.git5b4dc4e -- Bump to upstream 5b4dc4edaa14e1ab4e3baa19df0388fa54dab344 - pkg/cloudprovider/* packages does not conform to golang language specification - related: #1211266 - -* Tue Jun 23 2015 jchaloup - 0.19.3-0.2.gita2ce3ea -- Bump to upstream a2ce3ea5293553b1fe0db3cbc6d53bdafe061d79 - related: #1211266 - -* Mon Jun 22 2015 jchaloup - 0.19.1-0.1.gitff0546d -- Bump to upstream ff0546da4fc23598de59db9f747c535545036463 - related: #1211266 - -* Fri Jun 19 2015 jchaloup - 0.19.0-0.7.gitb2e9fed -- Bump to upstream b2e9fed3490274509506285bdba309c50afb5c39 - related: #1211266 - -* Thu Jun 18 2015 jchaloup - 0.19.0-0.6.gitf660940 -- Bump to upstream f660940dceb3fe6ffb1b14ba495a47d91b5cd910 - related: #1211266 - -* Wed Jun 17 2015 jchaloup - 0.19.0-0.5.git43889c6 -- Bump to upstream 43889c612c4d396dcd8fbf3fbd217e106eaf5bce - related: #1211266 - -* Tue Jun 16 2015 jchaloup - 0.19.0-0.4.gita8269e3 -- Bump to upstream a8269e38c9e2bf81ba18cd6420e2309745d5b0b9 - related: #1211266 - -* Sun Jun 14 2015 jchaloup - 0.19.0-0.3.git5e5c1d1 -- Bump to upstream 5e5c1d10976f2f26d356ca60ef7d0d715c9f00a2 - related: #1211266 - -* Fri Jun 12 2015 jchaloup - 0.19.0-0.2.git0ca96c3 -- Bump to upstream 0ca96c3ac8b47114169f3b716ae4521ed8c7657c - related: #1211266 - -* Thu Jun 11 2015 jchaloup - 0.19.0-0.1.git5a02fc0 -- Bump to upstream 5a02fc07d8a943132b9e68fe7169778253318487 - related: #1211266 - -* Wed Jun 10 2015 jchaloup - 0.18.2-0.3.git0dfb681 -- Bump to upstream 0dfb681ba5d5dba535895ace9d650667904b5df7 - related: #1211266 - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.2.gitb68e08f -- golang-cover is not needed - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.1.gitb68e08f -- Bump to upstream b68e08f55f5ae566c4ea3905d0993a8735d6d34f - related: #1211266 - -* Sat Jun 06 2015 jchaloup - 0.18.1-0.3.git0f1c4c2 -- Bump to upstream 0f1c4c25c344f70c3592040b2ef092ccdce0244f - related: #1211266 - -* Fri Jun 05 2015 jchaloup - 0.18.1-0.2.git7309e1f -- Bump to upstream 7309e1f707ea5dd08c51f803037d7d22c20e2b92 - related: #1211266 - -* Thu Jun 04 2015 jchaloup - 0.18.1-0.1.gita161edb -- Bump to upstream a161edb3960c01ff6e14813858c2eeb85910009b - related: #1211266 - -* Wed Jun 03 2015 jchaloup - 0.18.0-0.3.gitb5a91bd -- Bump to upstream b5a91bda103ed2459f933959241a2b57331747ba -- Don't run %%check section (kept only for local run). Tests are now handled via CI. - related: #1211266 - -* Tue Jun 02 2015 jchaloup - 0.18.0-0.2.git5520386 -- Bump to upstream 5520386b180d3ddc4fa7b7dfe6f52642cc0c25f3 - related: #1211266 - -* Mon Jun 01 2015 jchaloup - 0.18.0-0.1.git0bb78fe -- Bump to upstream 0bb78fe6c53ce38198cc3805c78308cdd4805ac8 - related: #1211266 - -* Fri May 29 2015 jchaloup - 0.17.1-6 -- Bump to upstream ed4898d98c46869e9cbdb44186dfdeda9ff80cc2 - related: #1211266 - -* Thu May 28 2015 jchaloup - 0.17.1-5 -- Bump to upstream 6fa2777e26559fc008eacac83eb165d25bd9a7de - related: #1211266 - -* Tue May 26 2015 jchaloup - 0.17.1-4 -- Bump to upstream 01fcb58673001e56c69e128ab57e0c3f701aeea5 - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-3 -- Decompose package into master and node subpackage. - Thanks to Avesh for testing and patience. - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-2 -- Bump to upstream cf7b0bdc2a41d38613ac7f8eeea91cae23553fa2 - related: #1211266 - -* Fri May 22 2015 jchaloup - 0.17.1-1 -- Bump to upstream d9d12fd3f7036c92606fc3ba9046b365212fcd70 - related: #1211266 - -* Wed May 20 2015 jchaloup - 0.17.0-12 -- Bump to upstream a76bdd97100c66a46e2b49288540dcec58a954c4 - related: #1211266 - -* Tue May 19 2015 jchaloup - 0.17.0-11 -- Bump to upstream 10339d72b66a31592f73797a9983e7c207481b22 - related: #1211266 - -* Mon May 18 2015 jchaloup - 0.17.0-10 -- Bump to upstream efb42b302d871f7217394205d84e5ae82335d786 - related: #1211266 - -* Sat May 16 2015 jchaloup - 0.17.0-9 -- Bump to upstream d51e131726b925e7088b90915e99042459b628e0 - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-8 -- Bump to upstream 1ee33ac481a14db7b90e3bbac8cec4ceea822bfb - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-7 -- Bump to upstream d3c6fb0d6a13c0177dcd67556d72963c959234ea - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-6 -- Bump to upstream f57f31783089f41c0bdca8cb87a1001ca94e1a45 - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-5 -- Bump to upstream c90d381d0d5cf8ab7b8412106f5a6991d7e13c7d - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-4 -- Bump to upstream 5010b2dde0f9b9eb820fe047e3b34bc9fa6324de -- Add debug info - related: #1211266 - -* Wed May 13 2015 jchaloup - 0.17.0-3 -- Bump to upstream ec19d41b63f5fe7b2c939e7738a41c0fbe65d796 - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-2 -- Provide /usr/bin/kube-version-change binary - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-1 -- Bump to upstream 962f10ee580eea30e5f4ea725c4e9e3743408a58 - related: #1211266 - -* Mon May 11 2015 jchaloup - 0.16.2-7 -- Bump to upstream 63182318c5876b94ac9b264d1224813b2b2ab541 - related: #1211266 - -* Fri May 08 2015 jchaloup - 0.16.2-6 -- Bump to upstream d136728df7e2694df9e082902f6239c11b0f2b00 -- Add NetworkManager as dependency for /etc/resolv.conf - related: #1211266 - -* Thu May 07 2015 jchaloup - 0.16.2-5 -- Bump to upstream ca0f678b9a0a6dc795ac7a595350d0dbe9d0ac3b - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-4 -- Add docs to kubernetes-unit-test - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-3 -- Bump to upstream 3a24c0e898cb3060d7905af6df275a3be562451d - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-2 -- Add api and README.md to kubernetes-unit-test - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-1 -- Bump to upstream 72048a824ca16c3921354197953fabecede5af47 - related: #1211266 - -* Mon May 04 2015 jchaloup - 0.16.1-2 -- Bump to upstream 1dcd80cdf3f00409d55cea1ef0e7faef0ae1d656 - related: #1211266 - -* Sun May 03 2015 jchaloup - 0.16.1-1 -- Bump to upstream 86751e8c90a3c0e852afb78d26cb6ba8cdbc37ba - related: #1211266 - -* Fri May 01 2015 jchaloup - 0.16.0-2 -- Bump to upstream 72708d74b9801989ddbdc8403fc5ba4aafb7c1ef - related: #1211266 - -* Wed Apr 29 2015 jchaloup - 0.16.0-1 -- Bump to upstream 7dcce2eeb7f28643d599c8b6a244523670d17c93 - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-10 -- Add unit-test subpackage - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-9 -- Bump to upstream 99fc906f78cd2bcb08536c262867fa6803f816d5 - related: #1211266 - -* Mon Apr 27 2015 jchaloup - 0.15.0-8 -- Bump to upstream 051dd96c542799dfab39184d2a7c8bacf9e88d85 - related: #1211266 - -* Fri Apr 24 2015 jchaloup - 0.15.0-7 -- Bump to upstream 9f753c2592481a226d72cea91648db8fb97f0da8 - related: #1211266 - -* Thu Apr 23 2015 jchaloup - 0.15.0-6 -- Bump to upstream cf824ae5e07965ba0b4b15ee88e08e2679f36978 - related: #1211266 - -* Tue Apr 21 2015 jchaloup - 0.15.0-5 -- Bump to upstream 21788d8e6606038a0a465c97f5240b4e66970fbb - related: #1211266 - -* Mon Apr 20 2015 jchaloup - 0.15.0-4 -- Bump to upstream eb1ea269954da2ce557f3305fa88d42e3ade7975 - related: #1211266 - -* Fri Apr 17 2015 jchaloup - 0.15.0-3 -- Obsolete cadvisor as it is integrated in kubelet - related: #1211266 - -* Wed Apr 15 2015 jchaloup - 0.15.0-0.2.git0ea87e4 -- Bump to upstream 0ea87e486407298dc1e3126c47f4076b9022fb09 - related: #1211266 - -* Tue Apr 14 2015 jchaloup - 0.15.0-0.1.gitd02139d -- Bump to upstream d02139d2b454ecc5730cc535d415c1963a7fb2aa - related: #1211266 - -* Sun Apr 12 2015 jchaloup - 0.14.2-0.2.gitd577db9 -- Bump to upstream d577db99873cbf04b8e17b78f17ec8f3a27eca30 - -* Wed Apr 08 2015 jchaloup - 0.14.2-0.1.git2719194 -- Bump to upstream 2719194154ffd38fd1613699a9dd10a00909957e - Use etcd-2.0.8 and higher - -* Tue Apr 07 2015 jchaloup - 0.14.1-0.2.gitd2f4734 -- Bump to upstream d2f473465738e6b6f7935aa704319577f5e890ba - -* Thu Apr 02 2015 jchaloup - 0.14.1-0.1.gita94ffc8 -- Bump to upstream a94ffc8625beb5e2a39edb01edc839cb8e59c444 - -* Wed Apr 01 2015 jchaloup - 0.14.0-0.2.git8168344 -- Bump to upstream 81683441b96537d4b51d146e39929b7003401cd5 - -* Tue Mar 31 2015 jchaloup - 0.14.0-0.1.git9ed8761 -- Bump to upstream 9ed87612d07f75143ac96ad90ff1ff68f13a2c67 -- Remove [B]R from devel branch until the package has stable API - -* Mon Mar 30 2015 jchaloup - 0.13.2-0.6.git8a7a127 -- Bump to upstream 8a7a127352263439e22253a58628d37a93fdaeb2 - -* Fri Mar 27 2015 jchaloup - 0.13.2-0.5.git8d94c43 -- Bump to upstream 8d94c43e705824f23791b66ad5de4ea095d5bb32 - resolves: #1205362 - -* Wed Mar 25 2015 jchaloup - 0.13.2-0.4.git455fe82 -- Bump to upstream 455fe8235be8fd9ba0ce21bf4f50a69d42e18693 - -* Mon Mar 23 2015 jchaloup - 0.13.2-0.3.gitef75888 -- Remove runtime dependency on etcd - resolves: #1202923 - -* Sun Mar 22 2015 jchaloup - 0.13.2-0.2.gitef75888 -- Bump to upstream ef758881d108bb53a128126c503689104d17f477 - -* Fri Mar 20 2015 jchaloup - 0.13.2-0.1.gita8f2cee -- Bump to upstream a8f2cee8c5418676ee33a311fad57d6821d3d29a - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.9.git53b25a7 -- Bump to upstream 53b25a7890e31bdec6f2a95b32200d6cc27ae2ca - fix kube-proxy.service and kubelet - resolves: #1200919 #1200924 - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.8.git39dceb1 -- Bump to upstream 39dceb13a511a83963a766a439cb386d10764310 - -* Thu Mar 12 2015 Eric Paris - 0.12.0-0.7.gita3fd0a9 -- Move from /etc/tmpfiles.d to %%{_tmpfilesdir} - resolves: #1200969 - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.6.gita3fd0a9 -- Place contrib/init/systemd/tmpfiles.d/kubernetes.conf to /etc/tmpfiles.d/kubernetes.conf - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.5.gita3fd0a9 -- Bump to upstream a3fd0a9fd516bb6033f32196ae97aaecf8c096b1 - -* Tue Mar 10 2015 jchaloup - 0.12.0-0.4.gita4d871a -- Bump to upstream a4d871a10086436557f804930812f2566c9d4d39 - -* Fri Mar 06 2015 jchaloup - 0.12.0-0.3.git2700871 -- Bump to upstream 2700871b049d5498167671cea6de8317099ad406 - -* Thu Mar 05 2015 jchaloup - 0.12.0-0.2.git8b627f5 -- Bump to upstream 8b627f516fd3e4f62da90d401ceb3d38de6f8077 - -* Tue Mar 03 2015 jchaloup - 0.12.0-0.1.gitecca426 -- Bump to upstream ecca42643b91a7117de8cd385b64e6bafecefd65 - -* Mon Mar 02 2015 jchaloup - 0.11.0-0.5.git6c5b390 -- Bump to upstream 6c5b390160856cd8334043344ef6e08568b0a5c9 - -* Sat Feb 28 2015 jchaloup - 0.11.0-0.4.git0fec31a -- Bump to upstream 0fec31a11edff14715a1efb27f77262a7c3770f4 - -* Fri Feb 27 2015 jchaloup - 0.11.0-0.3.git08402d7 -- Bump to upstream 08402d798c8f207a2e093de5a670c5e8e673e2de - -* Wed Feb 25 2015 jchaloup - 0.11.0-0.2.git86434b4 -- Bump to upstream 86434b4038ab87ac40219562ad420c3cc58c7c6b - -* Tue Feb 24 2015 jchaloup - 0.11.0-0.1.git754a2a8 -- Bump to upstream 754a2a8305c812121c3845d8293efdd819b6a704 - turn off integration tests until "FAILED: unexpected endpoints: - timed out waiting for the condition" problem is resolved - Adding back devel subpackage ([B]R list outdated) - -* Fri Feb 20 2015 jchaloup - 0.10.1-0.3.git4c87805 -- Bump to upstream 4c87805870b1b22e463c4bd711238ef68c77f0af - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.2.git6f84bda -- Bump to upstream 6f84bdaba853872dbac69c84d3ab4b6964e85d8c - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.1.git7d6130e -- Bump to upstream 7d6130edcdfabd7dd2e6a06fdc8fe5e333f07f5c - -* Sat Feb 07 2015 jchaloup - 0.9.1-0.7.gitc9c98ab -- Bump to upstream c9c98ab19eaa6f0b2ea17152c9a455338853f4d0 - Since some dependencies are broken, we can not build Kubernetes from Fedora deps. - Switching to vendored source codes until Go draft is resolved - -* Wed Feb 04 2015 jchaloup - 0.9.1-0.6.git7f5ed54 -- Bump to upstream 7f5ed541f794348ae6279414cf70523a4d5133cc - -* Tue Feb 03 2015 jchaloup - 0.9.1-0.5.git2ac6bbb -- Bump to upstream 2ac6bbb7eba7e69eac71bd9acd192cda97e67641 - -* Mon Feb 02 2015 jchaloup - 0.9.1-0.4.gite335e2d -- Bump to upstream e335e2d3e26a9a58d3b189ccf41ceb3770d1bfa9 - -* Fri Jan 30 2015 jchaloup - 0.9.1-0.3.git55793ac -- Bump to upstream 55793ac2066745f7243c666316499e1a8cf074f0 - -* Thu Jan 29 2015 jchaloup - 0.9.1-0.2.gitca6de16 -- Bump to upstream ca6de16df7762d4fc9b4ad44baa78d22e3f30742 - -* Tue Jan 27 2015 jchaloup - 0.9.1-0.1.git3623a01 -- Bump to upstream 3623a01bf0e90de6345147eef62894057fe04b29 -- update tests for etcd-2.0 - -* Thu Jan 22 2015 jchaloup - 0.8.2-571.gitb2f287c -+- Bump to upstream b2f287c259d856f4c08052a51cd7772c563aff77 - -* Thu Jan 22 2015 Eric Paris - 0.8.2-570.gitb2f287c -- patch kubelet service file to use docker.service not docker.socket - -* Wed Jan 21 2015 jchaloup - 0.8.2-0.1.git5b04640 -- Bump to upstream 5b046406a957a1e7eda7c0c86dd7a89e9c94fc5f - -* Sun Jan 18 2015 jchaloup - 0.8.0-126.0.git68298f0 -- Add some missing dependencies -- Add devel subpackage - -* Fri Jan 09 2015 Eric Paris - 0.8.0-125.0.git68298f0 -- Bump to upstream 68298f08a4980f95dfbf7b9f58bfec1808fb2670 - -* Tue Dec 16 2014 Eric Paris - 0.7.0-18.0.git52e165a -- Bump to upstream 52e165a4fd720d1703ebc31bd6660e01334227b8 - -* Mon Dec 15 2014 Eric Paris - 0.6-297.0.git5ef34bf -- Bump to upstream 5ef34bf52311901b997119cc49eff944c610081b - -* Wed Dec 03 2014 Eric Paris -- Replace patch to use old googlecode/go.net/ with BuildRequires on golang.org/x/net/ - -* Tue Dec 02 2014 Eric Paris - 0.6-4.0.git993ef88 -- Bump to upstream 993ef88eec9012b221f79abe8f2932ee97997d28 - -* Mon Dec 01 2014 Eric Paris - 0.5-235.0.git6aabd98 -- Bump to upstream 6aabd9804fb75764b70e9172774002d4febcae34 - -* Wed Nov 26 2014 Eric Paris - 0.5-210.0.gitff1e9f4 -- Bump to upstream ff1e9f4c191342c24974c030e82aceaff8ea9c24 - -* Tue Nov 25 2014 Eric Paris - 0.5-174.0.git64e07f7 -- Bump to upstream 64e07f7fe03d8692c685b09770c45f364967a119 - -* Mon Nov 24 2014 Eric Paris - 0.5-125.0.git162e498 -- Bump to upstream 162e4983b947d2f6f858ca7607869d70627f5dff - -* Fri Nov 21 2014 Eric Paris - 0.5-105.0.git3f74a1e -- Bump to upstream 3f74a1e9f56b3c3502762930c0c551ccab0557ea - -* Thu Nov 20 2014 Eric Paris - 0.5-65.0.gitc6158b8 -- Bump to upstream c6158b8aa9c40fbf1732650a8611429536466b21 -- include go-restful build requirement - -* Tue Nov 18 2014 Eric Paris - 0.5-14.0.gitdf0981b -- Bump to upstream df0981bc01c5782ad30fc45cb6f510f365737fc1 - -* Tue Nov 11 2014 Eric Paris - 0.4-680.0.git30fcf24 -- Bump to upstream 30fcf241312f6d0767c7d9305b4c462f1655f790 - -* Mon Nov 10 2014 Eric Paris - 0.4-633.0.git6c70227 -- Bump to upstream 6c70227a2eccc23966d32ea6d558ee05df46e400 - -* Fri Nov 07 2014 Eric Paris - 0.4-595.0.gitb695650 -- Bump to upstream b6956506fa2682afa93770a58ea8c7ba4b4caec1 - -* Thu Nov 06 2014 Eric Paris - 0.4-567.0.git3b1ef73 -- Bump to upstream 3b1ef739d1fb32a822a22216fb965e22cdd28e7f - -* Thu Nov 06 2014 Eric Paris - 0.4-561.0.git06633bf -- Bump to upstream 06633bf4cdc1ebd4fc848f85025e14a794b017b4 -- Make spec file more RHEL/CentOS friendly - -* Tue Nov 04 2014 Eric Paris - 0.4-0.0.git4452163 -- rebase to v0.4 -- include man pages - -* Tue Oct 14 2014 jchaloup - 0.3-0.3.git98ac8e1 -- create /var/lib/kubelet -- Use bash completions from upstream -- Bump to upstream 98ac8e178fcf1627399d659889bcb5fe25abdca4 -- all by Eric Paris - -* Mon Sep 29 2014 Jan Chaloupka - 0.3-0.2.git88fdb65 -- replace * with coresponding files -- remove dependency on gcc - -* Wed Sep 24 2014 Eric Paris - 0.1-0.4.git6ebe69a -- prefer autosetup instead of setup (revert setup change in 0-0.3.git) -https://fedoraproject.org/wiki/Autosetup_packaging_draft -- revert version number to 0.1 - -* Mon Sep 08 2014 Lokesh Mandvekar - 0-0.3.git6ebe69a -- gopath defined in golang package already -- package owns /etc/kubernetes -- bash dependency implicit -- keep buildroot/$RPM_BUILD_ROOT macros consistent -- replace with macros wherever possible -- set version, release and source tarball prep as per -https://fedoraproject.org/wiki/Packaging:SourceURL#Github - -* Mon Sep 08 2014 Eric Paris -- make services restart automatically on error - -* Sat Sep 06 2014 Eric Paris -- update to upstream -- redo build to use project scripts -- use project scripts in %%check -- rework deletion of third_party packages to easily detect changes -- run apiserver and controller-manager as non-root - -* Mon Aug 11 2014 Adam Miller -- update to upstream -- decouple the rest of third_party - -* Thu Aug 7 2014 Eric Paris -- update to head -- update package to include config files - -* Wed Jul 16 2014 Colin Walters -- Initial package diff --git a/kubernetes/kubernetes-1.20.9/centos/Readme.rst b/kubernetes/kubernetes-1.20.9/centos/Readme.rst deleted file mode 100644 index 6e819fedf..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/Readme.rst +++ /dev/null @@ -1,9 +0,0 @@ -The spec file used here was from the kubernetes 1.10.0 src rpm. -The orig file is included to help show modifications made to that -spec file, to help understand which changes were needed and to -assist with future upversioning. - -The contrib tarball does not have the same versioning as kubernetes and -there is little activity in that repo. - -The version for the contrib tarball is arbitrary. diff --git a/kubernetes/kubernetes-1.20.9/centos/build_srpm.data b/kubernetes/kubernetes-1.20.9/centos/build_srpm.data deleted file mode 100644 index 60a18b82d..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/build_srpm.data +++ /dev/null @@ -1,5 +0,0 @@ -VERSION=1.20.9 -TAR_NAME=kubernetes -TAR="$TAR_NAME-v$VERSION.tar.gz" -COPY_LIST="${CGCS_BASE}/downloads/$TAR $FILES_BASE/*" -TIS_PATCH_VER=PKG_GITREVCOUNT diff --git a/kubernetes/kubernetes-1.20.9/centos/files/enable-support-for-kubernetes-to-ignore-isolcpus.patch b/kubernetes/kubernetes-1.20.9/centos/files/enable-support-for-kubernetes-to-ignore-isolcpus.patch deleted file mode 100644 index 112353d24..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/files/enable-support-for-kubernetes-to-ignore-isolcpus.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 80fc45845ac260819108a6a6dabb9da7c0fd111f Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Fri, 23 Oct 2020 17:46:10 -0600 -Subject: [PATCH 6/6] enable support for kubernetes to ignore isolcpus - -The normal mechanisms for allocating isolated CPUs do not allow -a mix of isolated and exclusive CPUs in the same container. In -order to allow this in *very* limited cases where the pod spec -is known in advance we will add the ability to disable the normal -isolcpus behaviour. - -If the file "/etc/kubernetes/ignore_isolcpus" exists, then kubelet -will basically forget everything it knows about isolcpus and just -treat them like regular CPUs. - -The admin user can then rely on the fact that CPU allocation is -deterministic to ensure that the isolcpus they configure end up being -allocated to the correct pods. ---- - pkg/kubelet/cm/cpumanager/cpu_manager.go | 9 +++++++++ - pkg/kubelet/cm/cpumanager/policy_static.go | 8 ++++++++ - 2 files changed, 17 insertions(+) - -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index 8470431c07c..fd0bdeeee07 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -19,6 +19,7 @@ package cpumanager - import ( - "fmt" - "math" -+ "os" - "sync" - "time" - "strings" -@@ -56,6 +57,14 @@ const cpuManagerStateFileName = "cpu_manager_state" - - // get the system-level isolated CPUs - func getIsolcpus() cpuset.CPUSet { -+ -+ // This is a gross hack to basically turn off awareness of isolcpus to enable -+ // isolated cpus to be allocated to pods the same way as non-isolated CPUs. -+ if _, err := os.Stat("/etc/kubernetes/ignore_isolcpus"); err == nil { -+ klog.Infof("[cpumanager] turning off isolcpus awareness") -+ return cpuset.NewCPUSet() -+ } -+ - dat, err := ioutil.ReadFile("/sys/devices/system/cpu/isolated") - if err != nil { - klog.Errorf("[cpumanager] unable to read sysfs isolcpus subdir") -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index 4acd5609748..78c5f0f2576 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -18,6 +18,7 @@ package cpumanager - - import ( - "fmt" -+ "os" - "strconv" - - v1 "k8s.io/api/core/v1" -@@ -614,6 +615,13 @@ func isKubeInfra(pod *v1.Pod) bool { - - // get the isolated CPUs (if any) from the devices associated with a specific container - func (p *staticPolicy) podIsolCPUs(pod *v1.Pod, container *v1.Container) cpuset.CPUSet { -+ -+ // This is a gross hack to basically turn off awareness of isolcpus to enable -+ // isolated cpus to be allocated to pods the same way as non-isolated CPUs. -+ if _, err := os.Stat("/etc/kubernetes/ignore_isolcpus"); err == nil { -+ return cpuset.NewCPUSet() -+ } -+ - // NOTE: This is required for TestStaticPolicyAdd() since makePod() does - // not create UID. We also need a way to properly stub devicemanager. - if len(string(pod.UID)) == 0 { --- -2.17.1 - diff --git a/kubernetes/kubernetes-1.20.9/centos/files/genmanpages.sh b/kubernetes/kubernetes-1.20.9/centos/files/genmanpages.sh deleted file mode 100644 index be2ef8f05..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/files/genmanpages.sh +++ /dev/null @@ -1,84 +0,0 @@ -MDSFORMANPAGES="kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md" - -# remove comments from man pages -for manpage in ${MDSFORMANPAGES}; do - pos=$(grep -n "<\!-- END MUNGE: UNVERSIONED_WARNING -->" ${manpage} | cut -d':' -f1) - if [ -n ${pos} ]; then - sed -i "1,${pos}{/.*/d}" ${manpage} - fi -done - -# for each man page add NAME and SYNOPSIS section -# kube-apiserver -sed -i -s "s/## kube-apiserver/# NAME\nkube-apiserver \- Provides the API for kubernetes orchestration.\n\n# SYNOPSIS\n**kube-apiserver** [OPTIONS]\n/" kube-apiserver.md - -cat << 'EOF' >> kube-apiserver.md -# EXAMPLES -``` -/usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd_servers=http://127.0.0.1:4001 --insecure_bind_address=127.0.0.1 --insecure_port=8080 --kubelet_port=10250 --service-cluster-ip-range=10.1.1.0/24 --allow_privileged=false -``` -EOF -# kube-controller-manager -sed -i -s "s/## kube-controller-manager/# NAME\nkube-controller-manager \- Enforces kubernetes services.\n\n# SYNOPSIS\n**kube-controller-manager** [OPTIONS]\n/" kube-controller-manager.md - -cat << 'EOF' >> kube-controller-manager.md -# EXAMPLES -``` -/usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=127.0.0.1:8080 -``` -EOF -# kube-proxy -sed -i -s "s/## kube-proxy/# NAME\nkube-proxy \- Provides network proxy services.\n\n# SYNOPSIS\n**kube-proxy** [OPTIONS]\n/" kube-proxy.md - -cat << 'EOF' >> kube-proxy.md -# EXAMPLES -``` -/usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://127.0.0.1:8080 -``` -EOF -# kube-scheduler -sed -i -s "s/## kube-scheduler/# NAME\nkube-scheduler \- Schedules containers on hosts.\n\n# SYNOPSIS\n**kube-scheduler** [OPTIONS]\n/" kube-scheduler.md - -cat << 'EOF' >> kube-scheduler.md -# EXAMPLES -``` -/usr/bin/kube-scheduler --logtostderr=true --v=0 --master=127.0.0.1:8080 -``` -EOF -# kubelet -sed -i -s "s/## kubelet/# NAME\nkubelet \- Processes a container manifest so the containers are launched according to how they are described.\n\n# SYNOPSIS\n**kubelet** [OPTIONS]\n/" kubelet.md - -cat << 'EOF' >> kubelet.md -# EXAMPLES -``` -/usr/bin/kubelet --logtostderr=true --v=0 --api_servers=http://127.0.0.1:8080 --address=127.0.0.1 --port=10250 --hostname_override=127.0.0.1 --allow-privileged=false -``` -EOF - -# for all man-pages -for md in $MDSFORMANPAGES; do - # correct section names - sed -i -s "s/### Synopsis/# DESCRIPTION/" $md - sed -i -s "s/### Options/# OPTIONS/" $md - # add header - sed -i "s/# NAME/% KUBERNETES(1) kubernetes User Manuals\n# NAME/" $md - # modify list of options - # options with no value in "" - sed -i -r 's/(^ )(-[^":][^":]*)(:)(.*)/\*\*\2\*\*\n\t\4\n/' $md - # option with value in "" - sed -i -r 's/(^ )(-[^":][^":]*)("[^"]*")(:)(.*)/\*\*\2\3\*\*\n\t\5\n/' $md - # options in -s, --long - sed -i -r 's/(^ )(-[a-z], -[^":][^":]*)(:)(.*)/\*\*\2\*\*\n\t\4\n/' $md - sed -i -r 's/(^ )(-[a-z], -[^":][^":]*)("[^"]*")(:)(.*)/\*\*\2\3\*\*\n\t\5\n/' $md - # remove ``` - sed -i 's/```//' $md - # remove all lines starting with ###### - sed -i 's/^######.*//' $md - # modify footer - sed -i -r "s/^\[!\[Analytics\].*//" $md - # md does not contain section => taking 1 - name="${md%.md}" - go-md2man -in $md -out man/man1/$name.1 -done - - diff --git a/kubernetes/kubernetes-1.20.9/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch b/kubernetes/kubernetes-1.20.9/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch deleted file mode 100644 index 4749e9284..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/files/kubeadm-create-platform-pods-with-zero-CPU-resources.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 62575aa6d34c52dffb02535a526f6361cdedb300 Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Fri, 3 Sep 2021 18:05:15 -0400 -Subject: [PATCH 5/6] kubeadm: create platform pods with zero CPU resources - -We want to specify zero CPU resources when creating the manifests -for the static platform pods, as a workaround for the lack of -separate resource tracking for platform resources. - -We also specify zero CPU resources for the coredns deployment. -manifests.go appears to be the main file for this, not sure if the -others are used but I changed them just in case. - -Signed-off-by: Jim Gauld ---- - cluster/addons/dns/coredns/coredns.yaml.base | 2 +- - cluster/addons/dns/coredns/coredns.yaml.in | 2 +- - cluster/addons/dns/coredns/coredns.yaml.sed | 2 +- - cmd/kubeadm/app/phases/addons/dns/manifests.go | 2 +- - cmd/kubeadm/app/phases/controlplane/manifests.go | 6 +++--- - 5 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/cluster/addons/dns/coredns/coredns.yaml.base b/cluster/addons/dns/coredns/coredns.yaml.base -index 460db6317db..30873a81f18 100644 ---- a/cluster/addons/dns/coredns/coredns.yaml.base -+++ b/cluster/addons/dns/coredns/coredns.yaml.base -@@ -138,7 +138,7 @@ spec: - limits: - memory: __DNS__MEMORY__LIMIT__ - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cluster/addons/dns/coredns/coredns.yaml.in b/cluster/addons/dns/coredns/coredns.yaml.in -index 35fd52f15cd..51d963282ea 100644 ---- a/cluster/addons/dns/coredns/coredns.yaml.in -+++ b/cluster/addons/dns/coredns/coredns.yaml.in -@@ -138,7 +138,7 @@ spec: - limits: - memory: 'dns_memory_limit' - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cluster/addons/dns/coredns/coredns.yaml.sed b/cluster/addons/dns/coredns/coredns.yaml.sed -index ebe0c7182e8..dab87353509 100644 ---- a/cluster/addons/dns/coredns/coredns.yaml.sed -+++ b/cluster/addons/dns/coredns/coredns.yaml.sed -@@ -138,7 +138,7 @@ spec: - limits: - memory: $DNS_MEMORY_LIMIT - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cmd/kubeadm/app/phases/addons/dns/manifests.go b/cmd/kubeadm/app/phases/addons/dns/manifests.go -index 014cbd773c2..18ce45d1e85 100644 ---- a/cmd/kubeadm/app/phases/addons/dns/manifests.go -+++ b/cmd/kubeadm/app/phases/addons/dns/manifests.go -@@ -254,7 +254,7 @@ spec: - limits: - memory: 170Mi - requests: -- cpu: 100m -+ cpu: 0 - memory: 70Mi - args: [ "-conf", "/etc/coredns/Corefile" ] - volumeMounts: -diff --git a/cmd/kubeadm/app/phases/controlplane/manifests.go b/cmd/kubeadm/app/phases/controlplane/manifests.go -index 8181bea63a4..4c4b4448dd4 100644 ---- a/cmd/kubeadm/app/phases/controlplane/manifests.go -+++ b/cmd/kubeadm/app/phases/controlplane/manifests.go -@@ -60,7 +60,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap - LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetAPIServerProbeAddress(endpoint), "/livez", int(endpoint.BindPort), v1.URISchemeHTTPS), - ReadinessProbe: staticpodutil.ReadinessProbe(staticpodutil.GetAPIServerProbeAddress(endpoint), "/readyz", int(endpoint.BindPort), v1.URISchemeHTTPS), - StartupProbe: staticpodutil.StartupProbe(staticpodutil.GetAPIServerProbeAddress(endpoint), "/livez", int(endpoint.BindPort), v1.URISchemeHTTPS, cfg.APIServer.TimeoutForControlPlane), -- Resources: staticpodutil.ComponentResources("250m"), -+ Resources: staticpodutil.ComponentResources("0"), - Env: kubeadmutil.GetProxyEnvVars(), - }, mounts.GetVolumes(kubeadmconstants.KubeAPIServer), - map[string]string{kubeadmconstants.KubeAPIServerAdvertiseAddressEndpointAnnotationKey: endpoint.String()}), -@@ -72,7 +72,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap - VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeControllerManager)), - LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetControllerManagerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeControllerManagerPort, v1.URISchemeHTTPS), - StartupProbe: staticpodutil.StartupProbe(staticpodutil.GetControllerManagerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeControllerManagerPort, v1.URISchemeHTTPS, cfg.APIServer.TimeoutForControlPlane), -- Resources: staticpodutil.ComponentResources("200m"), -+ Resources: staticpodutil.ComponentResources("0"), - Env: kubeadmutil.GetProxyEnvVars(), - }, mounts.GetVolumes(kubeadmconstants.KubeControllerManager), nil), - kubeadmconstants.KubeScheduler: staticpodutil.ComponentPod(v1.Container{ -@@ -83,7 +83,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap - VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeScheduler)), - LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS), - StartupProbe: staticpodutil.StartupProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS, cfg.APIServer.TimeoutForControlPlane), -- Resources: staticpodutil.ComponentResources("100m"), -+ Resources: staticpodutil.ComponentResources("0"), - Env: kubeadmutil.GetProxyEnvVars(), - }, mounts.GetVolumes(kubeadmconstants.KubeScheduler), nil), - } --- -2.17.1 - diff --git a/kubernetes/kubernetes-1.20.9/centos/files/kubeadm.conf b/kubernetes/kubernetes-1.20.9/centos/files/kubeadm.conf deleted file mode 100644 index da0611444..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/files/kubeadm.conf +++ /dev/null @@ -1,18 +0,0 @@ -# Note: This dropin only works with kubeadm and kubelet v1.11+ -[Service] -Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf" -Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml" -# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically -EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env -# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use -# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file. -EnvironmentFile=-/etc/sysconfig/kubelet -ExecStart= -ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS -ExecStartPre=-/usr/local/sbin/sanitize_kubelet_reserved_cpus.sh /etc/sysconfig/kubelet -ExecStartPre=-/usr/bin/kubelet-cgroup-setup.sh -ExecStartPost=/bin/bash -c 'echo $MAINPID > /var/run/kubelet.pid;' -ExecStopPost=/bin/rm -f /var/run/kubelet.pid -Restart=always -StartLimitInterval=0 -RestartSec=10 diff --git a/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cgroup-setup.sh b/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cgroup-setup.sh deleted file mode 100644 index 385314bfe..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cgroup-setup.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2019 Wind River Systems, Inc. -# -# SPDX-License-Identifier: Apache-2.0 -# -# This script does minimal cgroup setup for kubelet. This creates k8s-infra -# cgroup for a minimal set of resource controllers, and configures cpuset -# attributes to span all online cpus and nodes. This will do nothing if -# the k8s-infra cgroup already exists (i.e., assume already configured). -# NOTE: The creation of directories under /sys/fs/cgroup is volatile, and -# does not persist reboots. The cpuset.mems and cpuset.cpus is later updated -# by puppet kubernetes.pp manifest. -# - -# Define minimal path -PATH=/bin:/usr/bin:/usr/local/bin - -# Log info message to /var/log/daemon.log -function LOG { - logger -p daemon.info "$0($$): $@" -} - -# Log error message to /var/log/daemon.log -function ERROR { - logger -s -p daemon.error "$0($$): ERROR: $@" -} - -# Create minimal cgroup directories and configure cpuset attributes if required -function create_cgroup { - local cg_name=$1 - local cg_nodeset=$2 - local cg_cpuset=$3 - - local CGROUP=/sys/fs/cgroup - local CONTROLLERS_AUTO_DELETED=("pids" "hugetlb") - local CONTROLLERS_PRESERVED=("cpuset" "memory" "cpu,cpuacct" "systemd") - local cnt='' - local CGDIR='' - local RC=0 - - # Ensure that these cgroups are created every time as they are auto deleted - for cnt in ${CONTROLLERS_AUTO_DELETED[@]}; do - CGDIR=${CGROUP}/${cnt}/${cg_name} - if [ -d ${CGDIR} ]; then - LOG "Nothing to do, already configured: ${CGDIR}." - continue - fi - LOG "Creating: ${CGDIR}" - mkdir -p ${CGDIR} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Creating: ${CGDIR}, rc=${RC}" - exit ${RC} - fi - done - - # These cgroups are preserved so if any of these are encountered additional - # cgroup setup is not required - for cnt in ${CONTROLLERS_PRESERVED[@]}; do - CGDIR=${CGROUP}/${cnt}/${cg_name} - if [ -d ${CGDIR} ]; then - LOG "Nothing to do, already configured: ${CGDIR}." - exit ${RC} - fi - LOG "Creating: ${CGDIR}" - mkdir -p ${CGDIR} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Creating: ${CGDIR}, rc=${RC}" - exit ${RC} - fi - done - - # Customize cpuset attributes - LOG "Configuring cgroup: ${cg_name}, nodeset: ${cg_nodeset}, cpuset: ${cg_cpuset}" - CGDIR=${CGROUP}/cpuset/${cg_name} - local CGMEMS=${CGDIR}/cpuset.mems - local CGCPUS=${CGDIR}/cpuset.cpus - local CGTASKS=${CGDIR}/tasks - - # Assign cgroup memory nodeset - LOG "Assign nodeset ${cg_nodeset} to ${CGMEMS}" - /bin/echo ${cg_nodeset} > ${CGMEMS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Unable to write to: ${CGMEMS}, rc=${RC}" - exit ${RC} - fi - - # Assign cgroup cpus - LOG "Assign cpuset ${cg_cpuset} to ${CGCPUS}" - /bin/echo ${cg_cpuset} > ${CGCPUS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Assigning: ${cg_cpuset} to ${CGCPUS}, rc=${RC}" - exit ${RC} - fi - - # Set file ownership - chown root:root ${CGMEMS} ${CGCPUS} ${CGTASKS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Setting owner for: ${CGMEMS}, ${CGCPUS}, ${CGTASKS}, rc=${RC}" - exit ${RC} - fi - - # Set file mode permissions - chmod 644 ${CGMEMS} ${CGCPUS} ${CGTASKS} - RC=$? - if [ ${RC} -ne 0 ]; then - ERROR "Setting mode for: ${CGMEMS}, ${CGCPUS}, ${CGTASKS}, rc=${RC}" - exit ${RC} - fi - - return ${RC} -} - -if [ $UID -ne 0 ]; then - ERROR "Require sudo/root." - exit 1 -fi - -# Configure default kubepods cpuset to span all online cpus and nodes. -ONLINE_NODESET=$(/bin/cat /sys/devices/system/node/online) -ONLINE_CPUSET=$(/bin/cat /sys/devices/system/cpu/online) - -# Configure kubelet cgroup to match cgroupRoot. -create_cgroup 'k8s-infra' ${ONLINE_NODESET} ${ONLINE_CPUSET} - -exit $? - diff --git a/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch b/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch deleted file mode 100644 index b396bb234..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 019172946c0146eca91d611595866c70a8ed3ddb Mon Sep 17 00:00:00 2001 -From: Jim Gauld -Date: Fri, 3 Sep 2021 14:10:46 -0400 -Subject: [PATCH 1/6] kubelet cpumanager disable CFS quota throttling for - Guaranteed pods - -This disables CFS CPU quota to avoid performance degradation due to -Linux kernel CFS quota implementation. Note that 4.18 kernel attempts -to solve the CFS throttling problem, but there are reports that it is -not completely effective. - -This disables CFS quota throttling for Guaranteed pods for both -parent and container cgroups by writing -1 to cgroup cpu.cfs_quota_us. -Disabling has a dramatic latency improvement for HTTP response times. - -Signed-off-by: Jim Gauld ---- - pkg/kubelet/cm/cpumanager/cpu_manager.go | 22 ++++++++++++++++++++++ - pkg/kubelet/cm/helpers_linux.go | 5 +++++ - pkg/kubelet/cm/helpers_linux_test.go | 8 ++++---- - 3 files changed, 31 insertions(+), 4 deletions(-) - -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index 44368efc441..88cfbc1fa83 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -36,6 +36,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/config" - kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" - "k8s.io/kubernetes/pkg/kubelet/status" -+ v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" - ) - - // ActivePodsFunc is a function that returns a list of pods to reconcile. -@@ -242,6 +243,14 @@ func (m *manager) AddContainer(p *v1.Pod, c *v1.Container, containerID string) e - // Get the CPUs assigned to the container during Allocate() - // (or fall back to the default CPUSet if none were assigned). - cpus := m.state.GetCPUSetOrDefault(string(p.UID), c.Name) -+ -+ // Guaranteed PODs should not have CFS quota throttle -+ if m.policy.Name() == string(PolicyStatic) && v1qos.GetPodQOS(p) == v1.PodQOSGuaranteed { -+ err := m.disableContainerCPUQuota(containerID) -+ if err != nil { -+ klog.Errorf("[cpumanager] AddContainer disable CPU Quota error: %v", err) -+ } -+ } - m.Unlock() - - if !cpus.IsEmpty() { -@@ -489,3 +498,16 @@ func (m *manager) GetCPUs(podUID, containerName string) []int64 { - } - return result - } -+ -+func (m *manager) disableContainerCPUQuota(containerID string) error { -+ // Disable CFS CPU quota to avoid performance degradation due to -+ // Linux kernel CFS throttle implementation. -+ // NOTE: 4.18 kernel attempts to solve CFS throttling problem, -+ // but there are reports that it is not completely effective. -+ return m.containerRuntime.UpdateContainerResources( -+ containerID, -+ &runtimeapi.LinuxContainerResources{ -+ CpuPeriod: 100000, -+ CpuQuota: -1, -+ }) -+} -diff --git a/pkg/kubelet/cm/helpers_linux.go b/pkg/kubelet/cm/helpers_linux.go -index 9b115ab5380..d3185e1e958 100644 ---- a/pkg/kubelet/cm/helpers_linux.go -+++ b/pkg/kubelet/cm/helpers_linux.go -@@ -166,6 +166,11 @@ func ResourceConfigForPod(pod *v1.Pod, enforceCPULimits bool, cpuPeriod uint64) - // determine the qos class - qosClass := v1qos.GetPodQOS(pod) - -+ // disable cfs quota for guaranteed pods -+ if qosClass == v1.PodQOSGuaranteed { -+ cpuQuota = int64(-1) -+ } -+ - // build the result - result := &ResourceConfig{} - if qosClass == v1.PodQOSGuaranteed { -diff --git a/pkg/kubelet/cm/helpers_linux_test.go b/pkg/kubelet/cm/helpers_linux_test.go -index 56d765fbc22..0c43afe5875 100644 ---- a/pkg/kubelet/cm/helpers_linux_test.go -+++ b/pkg/kubelet/cm/helpers_linux_test.go -@@ -63,8 +63,8 @@ func TestResourceConfigForPod(t *testing.T) { - burstablePartialShares := MilliCPUToShares(200) - burstableQuota := MilliCPUToQuota(200, int64(defaultQuotaPeriod)) - guaranteedShares := MilliCPUToShares(100) -- guaranteedQuota := MilliCPUToQuota(100, int64(defaultQuotaPeriod)) -- guaranteedTunedQuota := MilliCPUToQuota(100, int64(tunedQuotaPeriod)) -+ guaranteedQuota := int64(-1) -+ guaranteedTunedQuota := int64(-1) - memoryQuantity = resource.MustParse("100Mi") - cpuNoLimit := int64(-1) - guaranteedMemory := memoryQuantity.Value() -@@ -283,8 +283,8 @@ func TestResourceConfigForPodWithCustomCPUCFSQuotaPeriod(t *testing.T) { - burstablePartialShares := MilliCPUToShares(200) - burstableQuota := MilliCPUToQuota(200, int64(defaultQuotaPeriod)) - guaranteedShares := MilliCPUToShares(100) -- guaranteedQuota := MilliCPUToQuota(100, int64(defaultQuotaPeriod)) -- guaranteedTunedQuota := MilliCPUToQuota(100, int64(tunedQuotaPeriod)) -+ guaranteedQuota := int64(-1) -+ guaranteedTunedQuota := int64(-1) - memoryQuantity = resource.MustParse("100Mi") - cpuNoLimit := int64(-1) - guaranteedMemory := memoryQuantity.Value() --- -2.17.1 - diff --git a/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch b/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch deleted file mode 100644 index baa1d2600..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-infrastructure-pods-use-system-re.patch +++ /dev/null @@ -1,139 +0,0 @@ -From 5471fc2f03d1d14ceb250bf98f400cee9feb6983 Mon Sep 17 00:00:00 2001 -From: Jim Gauld -Date: Fri, 3 Sep 2021 15:57:58 -0400 -Subject: [PATCH 3/6] kubelet cpumanager infrastructure pods use system - reserved CPUs - -This assigns system infrastructure pods to the "reserved" cpuset -to isolate them from the shared pool of CPUs. - -Infrastructure pods include any pods that belong to the kube-system, -armada, cert-manager, vault, platform-deployment-manager, portieris, -notification or flux-helm namespaces. - -The implementation is a bit simplistic, it is assumed that the -"reserved" cpuset is large enough to handle all infrastructure pods -CPU allocations. - -This also prevents infrastucture pods from using Guaranteed resources. - -Signed-off-by: Jim Gauld ---- - pkg/kubelet/cm/cpumanager/policy_static.go | 44 +++++++++++++++++++ - .../cm/cpumanager/policy_static_test.go | 19 +++++++- - 2 files changed, 62 insertions(+), 1 deletion(-) - -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index e892d63641b..ab3206c5dc4 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -33,6 +33,11 @@ import ( - // PolicyStatic is the name of the static policy - const PolicyStatic policyName = "static" - -+// Define namespaces used by platform infrastructure pods -+var infraNamespaces = [...]string{ -+ "kube-system", "armada", "cert-manager", "platform-deployment-manager", "portieris", "vault", "notification", "flux-helm", -+} -+ - // staticPolicy is a CPU manager policy that does not change CPU - // assignments for exclusively pinned guaranteed containers after the main - // container process starts. -@@ -233,6 +238,31 @@ func (p *staticPolicy) updateCPUsToReuse(pod *v1.Pod, container *v1.Container, c - } - - func (p *staticPolicy) Allocate(s state.State, pod *v1.Pod, container *v1.Container) error { -+ // Process infra pods before guaranteed pods -+ if isKubeInfra(pod) { -+ // Container belongs in reserved pool. -+ // We don't want to fall through to the p.guaranteedCPUs() clause below so return either nil or error. -+ if _, ok := s.GetCPUSet(string(pod.UID), container.Name); ok { -+ klog.Infof("[cpumanager] static policy: reserved container already present in state, skipping " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s)", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name) -+ return nil -+ } -+ -+ cpuset := p.reserved -+ if cpuset.IsEmpty() { -+ // If this happens then someone messed up. -+ return fmt.Errorf("[cpumanager] static policy: reserved container unable to allocate cpus " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v, reserved:%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset, p.reserved) -+ } -+ s.SetCPUSet(string(pod.UID), container.Name, cpuset) -+ klog.Infof("[cpumanager] static policy: reserved: AddContainer " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset) -+ return nil -+ } -+ - if numCPUs := p.guaranteedCPUs(pod, container); numCPUs != 0 { - klog.Infof("[cpumanager] static policy: Allocate (pod: %s, container: %s)", format.Pod(pod), container.Name) - // container belongs in an exclusively allocated pool -@@ -322,6 +352,10 @@ func (p *staticPolicy) guaranteedCPUs(pod *v1.Pod, container *v1.Container) int - if cpuQuantity.Value()*1000 != cpuQuantity.MilliValue() { - return 0 - } -+ // Infrastructure pods use reserved CPUs even if they're in the Guaranteed QoS class -+ if isKubeInfra(pod) { -+ return 0 -+ } - // Safe downcast to do for all systems with < 2.1 billion CPUs. - // Per the language spec, `int` is guaranteed to be at least 32 bits wide. - // https://golang.org/ref/spec#Numeric_types -@@ -524,3 +558,13 @@ func (p *staticPolicy) generateCPUTopologyHints(availableCPUs cpuset.CPUSet, reu - - return hints - } -+ -+// check if a given pod is in a platform infrastructure namespace -+func isKubeInfra(pod *v1.Pod) bool { -+ for _, namespace := range infraNamespaces { -+ if namespace == pod.Namespace { -+ return true -+ } -+ } -+ return false -+} -\ No newline at end of file -diff --git a/pkg/kubelet/cm/cpumanager/policy_static_test.go b/pkg/kubelet/cm/cpumanager/policy_static_test.go -index 9c7e4f146ff..5cfd9a8e24e 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static_test.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static_test.go -@@ -747,7 +747,8 @@ func TestStaticPolicyStartWithResvList(t *testing.T) { - } - - func TestStaticPolicyAddWithResvList(t *testing.T) { -- -+ infraPod := makePod("fakePod", "fakeContainer2", "200m", "200m") -+ infraPod.Namespace = "kube-system" - testCases := []staticPolicyTestWithResvList{ - { - description: "GuPodSingleCore, SingleSocketHT, ExpectError", -@@ -789,6 +790,22 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - expCPUAlloc: true, - expCSet: cpuset.NewCPUSet(4, 5), - }, -+ { -+ description: "InfraPod, SingleSocketHT, ExpectAllocReserved", -+ topo: topoSingleSocketHT, -+ numReservedCPUs: 2, -+ reserved: cpuset.NewCPUSet(0, 1), -+ stAssignments: state.ContainerCPUAssignments{ -+ "fakePod": map[string]cpuset.CPUSet{ -+ "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -+ }, -+ }, -+ stDefaultCPUSet: cpuset.NewCPUSet(4, 5), -+ pod: infraPod, -+ expErr: nil, -+ expCPUAlloc: true, -+ expCSet: cpuset.NewCPUSet(0, 1), -+ }, - } - - testExcl := true --- -2.17.1 - diff --git a/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch b/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch deleted file mode 100644 index b07705a50..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch +++ /dev/null @@ -1,526 +0,0 @@ -From 05db95e27509e60022a62c1001be2191ba42d2a3 Mon Sep 17 00:00:00 2001 -From: Jim Gauld -Date: Fri, 3 Sep 2021 17:30:31 -0400 -Subject: [PATCH 4/6] kubelet cpumanager introduce concept of isolated CPUs - -This introduces the concept of "isolated CPUs", which are CPUs that -have been isolated at the kernel level via the "isolcpus" kernel boot -parameter. - -When starting the kubelet process, two separate sets of reserved CPUs -may be specified. With this change CPUs reserved via -'--system-reserved=cpu' will be used for infrastructure pods while the -isolated CPUs should be reserved via '--kube-reserved=cpu' to cause -kubelet to skip over them for "normal" CPU resource tracking. The -kubelet code will double-check that the specified isolated CPUs match -what the kernel exposes in "/sys/devices/system/cpu/isolated". - -A plugin (outside the scope of this commit) will expose the isolated -CPUs to kubelet via the device plugin API. - -If a pod specifies some number of "isolcpus" resources, the device -manager will allocate them. In this code we check whether such -resources have been allocated, and if so we set the container cpuset to -the isolated CPUs. This does mean that it really only makes sense to -specify "isolcpus" resources for best-effort or burstable pods, not for -guaranteed ones since that would throw off the accounting code. In -order to ensure the accounting still works as designed, if "isolcpus" -are specified for guaranteed pods, the affinity will be set to the -non-isolated CPUs. - -Signed-off-by: Jim Gauld -Co-authored-by: Chris Friesen ---- - pkg/kubelet/cm/container_manager_linux.go | 1 + - pkg/kubelet/cm/cpumanager/cpu_manager.go | 31 ++++++- - pkg/kubelet/cm/cpumanager/cpu_manager_test.go | 13 ++- - pkg/kubelet/cm/cpumanager/policy_static.go | 84 +++++++++++++++++-- - .../cm/cpumanager/policy_static_test.go | 44 ++++++++-- - 5 files changed, 155 insertions(+), 18 deletions(-) - -diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go -index eeea6a8b7e4..4f250b2a6ca 100644 ---- a/pkg/kubelet/cm/container_manager_linux.go -+++ b/pkg/kubelet/cm/container_manager_linux.go -@@ -333,6 +333,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I - cm.GetNodeAllocatableReservation(), - nodeConfig.KubeletRootDir, - cm.topologyManager, -+ cm.deviceManager, - ) - if err != nil { - klog.Errorf("failed to initialize cpu manager: %v", err) -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index a0586c7b860..8470431c07c 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -21,6 +21,8 @@ import ( - "math" - "sync" - "time" -+ "strings" -+ "io/ioutil" - - cadvisorapi "github.com/google/cadvisor/info/v1" - v1 "k8s.io/api/core/v1" -@@ -34,6 +36,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" - "k8s.io/kubernetes/pkg/kubelet/config" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" - "k8s.io/kubernetes/pkg/kubelet/status" - v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" -@@ -51,6 +54,25 @@ type policyName string - // cpuManagerStateFileName is the file name where cpu manager stores its state - const cpuManagerStateFileName = "cpu_manager_state" - -+// get the system-level isolated CPUs -+func getIsolcpus() cpuset.CPUSet { -+ dat, err := ioutil.ReadFile("/sys/devices/system/cpu/isolated") -+ if err != nil { -+ klog.Errorf("[cpumanager] unable to read sysfs isolcpus subdir") -+ return cpuset.NewCPUSet() -+ } -+ -+ // The isolated cpus string ends in a newline -+ cpustring := strings.TrimSuffix(string(dat), "\n") -+ cset, err := cpuset.Parse(cpustring) -+ if err != nil { -+ klog.Errorf("[cpumanager] unable to parse sysfs isolcpus string to cpuset") -+ return cpuset.NewCPUSet() -+ } -+ -+ return cset -+} -+ - // Manager interface provides methods for Kubelet to manage pod cpus. - type Manager interface { - // Start is called during Kubelet initialization. -@@ -136,7 +158,7 @@ func (s *sourcesReadyStub) AddSource(source string) {} - func (s *sourcesReadyStub) AllReady() bool { return true } - - // NewManager creates new cpu manager based on provided policy --func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo *cadvisorapi.MachineInfo, specificCPUs cpuset.CPUSet, nodeAllocatableReservation v1.ResourceList, stateFileDirectory string, affinity topologymanager.Store) (Manager, error) { -+func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo *cadvisorapi.MachineInfo, specificCPUs cpuset.CPUSet, nodeAllocatableReservation v1.ResourceList, stateFileDirectory string, affinity topologymanager.Store, deviceManager devicemanager.Manager) (Manager, error) { - var topo *topology.CPUTopology - var policy Policy - -@@ -173,8 +195,11 @@ func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo - // NOTE: Set excludeReserved unconditionally to exclude reserved CPUs from default cpuset. - // This variable is primarily to make testing easier. - excludeReserved := true -- policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, affinity, excludeReserved) -- -+ // isolCPUs is the set of kernel-isolated CPUs. They should be a subset of specificCPUs or -+ // of the CPUs that NewStaticPolicy() will pick if numReservedCPUs is set. It's only in the -+ // argument list here for ease of testing, it's really internal to the policy. -+ isolCPUs := getIsolcpus() -+ policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, isolCPUs, affinity, deviceManager, excludeReserved) - if err != nil { - return nil, fmt.Errorf("new static policy error: %v", err) - } -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -index a155791e75f..7a6ea90b3c5 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -@@ -38,6 +38,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology" - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - ) - - type mockState struct { -@@ -211,6 +212,7 @@ func makeMultiContainerPod(initCPUs, appCPUs []struct{ request, limit string }) - } - - func TestCPUManagerAdd(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - testExcl := false - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ -@@ -226,7 +228,9 @@ func TestCPUManagerAdd(t *testing.T) { - }, - 0, - cpuset.NewCPUSet(), -+ cpuset.NewCPUSet(), - topologymanager.NewFakeManager(), -+ testDM, - testExcl) - testCases := []struct { - description string -@@ -483,8 +487,9 @@ func TestCPUManagerAddWithInitContainers(t *testing.T) { - } - - testExcl := false -+ testDM, _ := devicemanager.NewManagerStub() - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testExcl) - - state := &mockState{ - assignments: testCase.stAssignments, -@@ -636,7 +641,8 @@ func TestCPUManagerGenerate(t *testing.T) { - } - defer os.RemoveAll(sDir) - -- mgr, err := NewManager(testCase.cpuPolicyName, 5*time.Second, machineInfo, cpuset.NewCPUSet(), testCase.nodeAllocatableReservation, sDir, topologymanager.NewFakeManager()) -+ testDM, err := devicemanager.NewManagerStub() -+ mgr, err := NewManager(testCase.cpuPolicyName, 5*time.Second, machineInfo, cpuset.NewCPUSet(), testCase.nodeAllocatableReservation, sDir, topologymanager.NewFakeManager(), testDM) - if testCase.expectedError != nil { - if !strings.Contains(err.Error(), testCase.expectedError.Error()) { - t.Errorf("Unexpected error message. Have: %s wants %s", err.Error(), testCase.expectedError.Error()) -@@ -991,6 +997,7 @@ func TestReconcileState(t *testing.T) { - // the following tests are with --reserved-cpus configured - func TestCPUManagerAddWithResvList(t *testing.T) { - testExcl := false -+ testDM, _ := devicemanager.NewManagerStub() - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ - NumCPUs: 4, -@@ -1005,7 +1012,9 @@ func TestCPUManagerAddWithResvList(t *testing.T) { - }, - 1, - cpuset.NewCPUSet(0), -+ cpuset.NewCPUSet(), - topologymanager.NewFakeManager(), -+ testDM, - testExcl) - testCases := []struct { - description string -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index ab3206c5dc4..4acd5609748 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -18,6 +18,7 @@ package cpumanager - - import ( - "fmt" -+ "strconv" - - v1 "k8s.io/api/core/v1" - "k8s.io/klog/v2" -@@ -28,6 +29,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask" - "k8s.io/kubernetes/pkg/kubelet/util/format" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - ) - - // PolicyStatic is the name of the static policy -@@ -81,6 +83,10 @@ type staticPolicy struct { - topology *topology.CPUTopology - // set of CPUs that is not available for exclusive assignment - reserved cpuset.CPUSet -+ // subset of reserved CPUs with isolcpus attribute -+ isolcpus cpuset.CPUSet -+ // parent containerManager, used to get device list -+ deviceManager devicemanager.Manager - // If true, default CPUSet should exclude reserved CPUs - excludeReserved bool - // topology manager reference to get container Topology affinity -@@ -95,7 +101,7 @@ var _ Policy = &staticPolicy{} - // NewStaticPolicy returns a CPU manager policy that does not change CPU - // assignments for exclusively pinned guaranteed containers after the main - // container process starts. --func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, affinity topologymanager.Store, excludeReserved bool) (Policy, error) { -+func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, isolCPUs cpuset.CPUSet, affinity topologymanager.Store, deviceManager devicemanager.Manager, excludeReserved bool) (Policy, error) { - allCPUs := topology.CPUDetails.CPUs() - var reserved cpuset.CPUSet - if reservedCPUs.Size() > 0 { -@@ -116,9 +122,17 @@ func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reserv - - klog.Infof("[cpumanager] reserved %d CPUs (\"%s\") not available for exclusive assignment", reserved.Size(), reserved) - -+ if !isolCPUs.IsSubsetOf(reserved) { -+ klog.Errorf("[cpumanager] isolCPUs %v is not a subset of reserved %v", isolCPUs, reserved) -+ reserved = reserved.Union(isolCPUs) -+ klog.Warningf("[cpumanager] mismatch isolCPUs %v, force reserved %v", isolCPUs, reserved) -+ } -+ - return &staticPolicy{ - topology: topology, - reserved: reserved, -+ isolcpus: isolCPUs, -+ deviceManager: deviceManager, - excludeReserved: excludeReserved, - affinity: affinity, - cpusToReuse: make(map[string]cpuset.CPUSet), -@@ -155,8 +169,8 @@ func (p *staticPolicy) validateState(s state.State) error { - } else { - s.SetDefaultCPUSet(allCPUs) - } -- klog.Infof("[cpumanager] static policy: CPUSet: allCPUs:%v, reserved:%v, default:%v\n", -- allCPUs, p.reserved, s.GetDefaultCPUSet()) -+ klog.Infof("[cpumanager] static policy: CPUSet: allCPUs:%v, reserved:%v, isolcpus:%v, default:%v\n", -+ allCPUs, p.reserved, p.isolcpus, s.GetDefaultCPUSet()) - return nil - } - -@@ -249,12 +263,12 @@ func (p *staticPolicy) Allocate(s state.State, pod *v1.Pod, container *v1.Contai - return nil - } - -- cpuset := p.reserved -+ cpuset := p.reserved.Clone().Difference(p.isolcpus) - if cpuset.IsEmpty() { - // If this happens then someone messed up. - return fmt.Errorf("[cpumanager] static policy: reserved container unable to allocate cpus " + -- "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v, reserved:%v", -- pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset, p.reserved) -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v, reserved:%v, isolcpus:%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, cpuset, p.reserved, p.isolcpus) - } - s.SetCPUSet(string(pod.UID), container.Name, cpuset) - klog.Infof("[cpumanager] static policy: reserved: AddContainer " + -@@ -285,8 +299,37 @@ func (p *staticPolicy) Allocate(s state.State, pod *v1.Pod, container *v1.Contai - } - s.SetCPUSet(string(pod.UID), container.Name, cpuset) - p.updateCPUsToReuse(pod, container, cpuset) -+ klog.Infof("[cpumanager] guaranteed: AddContainer " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); numCPUS=%d, cpuset=%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, numCPUs, cpuset) -+ return nil -+ } - -+ if isolcpus := p.podIsolCPUs(pod, container); isolcpus.Size() > 0 { -+ // container has requested isolated CPUs -+ if set, ok := s.GetCPUSet(string(pod.UID), container.Name); ok { -+ if set.Equals(isolcpus) { -+ klog.Infof("[cpumanager] isolcpus container already present in state, skipping " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s)", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name) -+ return nil -+ } else { -+ klog.Infof("[cpumanager] isolcpus container state has cpus %v, should be %v" + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s)", -+ isolcpus, set, pod.Namespace, string(pod.UID), pod.Name, container.Name) -+ } -+ } -+ // Note that we do not do anything about init containers here. -+ // It looks like devices are allocated per-pod based on effective requests/limits -+ // and extra devices from initContainers are not freed up when the regular containers start. -+ // TODO: confirm this is still true for 1.20 -+ s.SetCPUSet(string(pod.UID), container.Name, isolcpus) -+ klog.Infof("[cpumanager] isolcpus: AddContainer " + -+ "(namespace: %s, pod UID: %s, pod: %s, container: %s); cpuset=%v", -+ pod.Namespace, string(pod.UID), pod.Name, container.Name, isolcpus) -+ return nil - } -+ - // container belongs in the shared pool (nothing to do; use default cpuset) - return nil - } -@@ -567,4 +610,33 @@ func isKubeInfra(pod *v1.Pod) bool { - } - } - return false -+} -+ -+// get the isolated CPUs (if any) from the devices associated with a specific container -+func (p *staticPolicy) podIsolCPUs(pod *v1.Pod, container *v1.Container) cpuset.CPUSet { -+ // NOTE: This is required for TestStaticPolicyAdd() since makePod() does -+ // not create UID. We also need a way to properly stub devicemanager. -+ if len(string(pod.UID)) == 0 { -+ return cpuset.NewCPUSet() -+ } -+ devices := p.deviceManager.GetDevices(string(pod.UID), container.Name) -+ for _, dev := range devices { -+ // this resource name needs to match the isolcpus device plugin -+ if dev.ResourceName == "windriver.com/isolcpus" { -+ cpuStrList := dev.DeviceIds -+ if len(cpuStrList) > 0 { -+ cpuSet := cpuset.NewCPUSet() -+ // loop over the list of strings, convert each one to int, add to cpuset -+ for _, cpuStr := range cpuStrList { -+ cpu, err := strconv.Atoi(cpuStr) -+ if err != nil { -+ panic(err) -+ } -+ cpuSet = cpuSet.Union(cpuset.NewCPUSet(cpu)) -+ } -+ return cpuSet -+ } -+ } -+ } -+ return cpuset.NewCPUSet() - } -\ No newline at end of file -diff --git a/pkg/kubelet/cm/cpumanager/policy_static_test.go b/pkg/kubelet/cm/cpumanager/policy_static_test.go -index 5cfd9a8e24e..8307aa1e3f0 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static_test.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static_test.go -@@ -27,6 +27,7 @@ import ( - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" - "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask" -+ "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" - ) - - type staticPolicyTest struct { -@@ -45,8 +46,9 @@ type staticPolicyTest struct { - } - - func TestStaticPolicyName(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - testExcl := false -- policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) -+ policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testExcl) - - policyName := policy.Name() - if policyName != "static" { -@@ -56,6 +58,7 @@ func TestStaticPolicyName(t *testing.T) { - } - - func TestStaticPolicyStart(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - testCases := []staticPolicyTest{ - { - description: "non-corrupted state", -@@ -131,7 +134,7 @@ func TestStaticPolicyStart(t *testing.T) { - } - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) -+ p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testCase.excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: testCase.stAssignments, -@@ -179,6 +182,7 @@ func TestStaticPolicyAdd(t *testing.T) { - largeTopoSock0CPUSet := largeTopoSock0Builder.Result() - largeTopoSock1CPUSet := largeTopoSock1Builder.Result() - -+ testDM, _ := devicemanager.NewManagerStub() - testCases := []staticPolicyTest{ - { - description: "GuPodSingleCore, SingleSocketHT, ExpectError", -@@ -447,7 +451,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testCase.excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -490,6 +494,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - func TestStaticPolicyRemove(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - excludeReserved := false - testCases := []staticPolicyTest{ - { -@@ -549,7 +554,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -571,6 +576,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - func TestTopologyAwareAllocateCPUs(t *testing.T) { -+ testDM, _ := devicemanager.NewManagerStub() - excludeReserved := false - testCases := []struct { - description string -@@ -640,7 +646,7 @@ func TestTopologyAwareAllocateCPUs(t *testing.T) { - }, - } - for _, tc := range testCases { -- p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) -+ p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: tc.stAssignments, -@@ -673,6 +679,7 @@ type staticPolicyTestWithResvList struct { - topo *topology.CPUTopology - numReservedCPUs int - reserved cpuset.CPUSet -+ isolcpus cpuset.CPUSet - stAssignments state.ContainerCPUAssignments - stDefaultCPUSet cpuset.CPUSet - pod *v1.Pod -@@ -713,9 +720,10 @@ func TestStaticPolicyStartWithResvList(t *testing.T) { - }, - } - testExcl := false -+ testDM, _ := devicemanager.NewManagerStub() - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) -+ p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testDM, testExcl) - if !reflect.DeepEqual(err, testCase.expNewErr) { - t.Errorf("StaticPolicy Start() error (%v). expected error: %v but got: %v", - testCase.description, testCase.expNewErr, err) -@@ -755,6 +763,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 1, - reserved: cpuset.NewCPUSet(0), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{}, - stDefaultCPUSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "8000m", "8000m"), -@@ -767,6 +776,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{}, - stDefaultCPUSet: cpuset.NewCPUSet(2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "1000m", "1000m"), -@@ -779,6 +789,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{ - "fakePod": map[string]cpuset.CPUSet{ - "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -@@ -795,6 +806,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - topo: topoSingleSocketHT, - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(), - stAssignments: state.ContainerCPUAssignments{ - "fakePod": map[string]cpuset.CPUSet{ - "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -@@ -806,11 +818,29 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - expCPUAlloc: true, - expCSet: cpuset.NewCPUSet(0, 1), - }, -+ { -+ description: "InfraPod, SingleSocketHT, Isolcpus, ExpectAllocReserved", -+ topo: topoSingleSocketHT, -+ numReservedCPUs: 2, -+ reserved: cpuset.NewCPUSet(0, 1), -+ isolcpus: cpuset.NewCPUSet(1), -+ stAssignments: state.ContainerCPUAssignments{ -+ "fakePod": map[string]cpuset.CPUSet{ -+ "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), -+ }, -+ }, -+ stDefaultCPUSet: cpuset.NewCPUSet(4, 5), -+ pod: infraPod, -+ expErr: nil, -+ expCPUAlloc: true, -+ expCSet: cpuset.NewCPUSet(0), -+ }, - } - - testExcl := true -+ testDM, _ := devicemanager.NewManagerStub() - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, testCase.isolcpus, topologymanager.NewFakeManager(), testDM, testExcl) - - st := &mockState{ - assignments: testCase.stAssignments, --- -2.17.1 - diff --git a/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch b/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch deleted file mode 100644 index bc2c6cc62..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/files/kubelet-cpumanager-keep-normal-containers-off-reserv.patch +++ /dev/null @@ -1,313 +0,0 @@ -From c85d0d1a42fc5989f2e989daf46fdedeebf486a4 Mon Sep 17 00:00:00 2001 -From: Jim Gauld -Date: Fri, 3 Sep 2021 15:31:31 -0400 -Subject: [PATCH 2/6] kubelet cpumanager keep normal containers off reserved - CPUs - -When starting the kubelet process, two separate sets of reserved CPUs -may be specified. With this change CPUs reserved via '--system-reserved=cpu' -or '--kube-reserved=cpu' will be ignored by kubernetes itself. A small -tweak to the default CPU affinity ensures that "normal" Kubernetes -pods won't run on the reserved CPUs. - -Signed-off-by: Jim Gauld ---- - pkg/kubelet/cm/cpumanager/cpu_manager.go | 6 +++- - pkg/kubelet/cm/cpumanager/cpu_manager_test.go | 11 ++++-- - pkg/kubelet/cm/cpumanager/policy_static.go | 29 ++++++++++++--- - .../cm/cpumanager/policy_static_test.go | 35 +++++++++++++------ - 4 files changed, 62 insertions(+), 19 deletions(-) - -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go -index 88cfbc1fa83..a0586c7b860 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go -@@ -170,7 +170,11 @@ func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo - // exclusively allocated. - reservedCPUsFloat := float64(reservedCPUs.MilliValue()) / 1000 - numReservedCPUs := int(math.Ceil(reservedCPUsFloat)) -- policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, affinity) -+ // NOTE: Set excludeReserved unconditionally to exclude reserved CPUs from default cpuset. -+ // This variable is primarily to make testing easier. -+ excludeReserved := true -+ policy, err = NewStaticPolicy(topo, numReservedCPUs, specificCPUs, affinity, excludeReserved) -+ - if err != nil { - return nil, fmt.Errorf("new static policy error: %v", err) - } -diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -index 34b170be234..a155791e75f 100644 ---- a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -+++ b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go -@@ -211,6 +211,7 @@ func makeMultiContainerPod(initCPUs, appCPUs []struct{ request, limit string }) - } - - func TestCPUManagerAdd(t *testing.T) { -+ testExcl := false - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ - NumCPUs: 4, -@@ -225,7 +226,8 @@ func TestCPUManagerAdd(t *testing.T) { - }, - 0, - cpuset.NewCPUSet(), -- topologymanager.NewFakeManager()) -+ topologymanager.NewFakeManager(), -+ testExcl) - testCases := []struct { - description string - updateErr error -@@ -480,8 +482,9 @@ func TestCPUManagerAddWithInitContainers(t *testing.T) { - }, - } - -+ testExcl := false - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) - - state := &mockState{ - assignments: testCase.stAssignments, -@@ -987,6 +990,7 @@ func TestReconcileState(t *testing.T) { - // above test cases are without kubelet --reserved-cpus cmd option - // the following tests are with --reserved-cpus configured - func TestCPUManagerAddWithResvList(t *testing.T) { -+ testExcl := false - testPolicy, _ := NewStaticPolicy( - &topology.CPUTopology{ - NumCPUs: 4, -@@ -1001,7 +1005,8 @@ func TestCPUManagerAddWithResvList(t *testing.T) { - }, - 1, - cpuset.NewCPUSet(0), -- topologymanager.NewFakeManager()) -+ topologymanager.NewFakeManager(), -+ testExcl) - testCases := []struct { - description string - updateErr error -diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go -index c3309ef7280..e892d63641b 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static.go -@@ -76,6 +76,8 @@ type staticPolicy struct { - topology *topology.CPUTopology - // set of CPUs that is not available for exclusive assignment - reserved cpuset.CPUSet -+ // If true, default CPUSet should exclude reserved CPUs -+ excludeReserved bool - // topology manager reference to get container Topology affinity - affinity topologymanager.Store - // set of CPUs to reuse across allocations in a pod -@@ -88,7 +90,7 @@ var _ Policy = &staticPolicy{} - // NewStaticPolicy returns a CPU manager policy that does not change CPU - // assignments for exclusively pinned guaranteed containers after the main - // container process starts. --func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, affinity topologymanager.Store) (Policy, error) { -+func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reservedCPUs cpuset.CPUSet, affinity topologymanager.Store, excludeReserved bool) (Policy, error) { - allCPUs := topology.CPUDetails.CPUs() - var reserved cpuset.CPUSet - if reservedCPUs.Size() > 0 { -@@ -112,6 +114,7 @@ func NewStaticPolicy(topology *topology.CPUTopology, numReservedCPUs int, reserv - return &staticPolicy{ - topology: topology, - reserved: reserved, -+ excludeReserved: excludeReserved, - affinity: affinity, - cpusToReuse: make(map[string]cpuset.CPUSet), - }, nil -@@ -140,7 +143,15 @@ func (p *staticPolicy) validateState(s state.State) error { - } - // state is empty initialize - allCPUs := p.topology.CPUDetails.CPUs() -- s.SetDefaultCPUSet(allCPUs) -+ if p.excludeReserved { -+ // Exclude reserved CPUs from the default CPUSet to keep containers off them -+ // unless explicitly affined. -+ s.SetDefaultCPUSet(allCPUs.Difference(p.reserved)) -+ } else { -+ s.SetDefaultCPUSet(allCPUs) -+ } -+ klog.Infof("[cpumanager] static policy: CPUSet: allCPUs:%v, reserved:%v, default:%v\n", -+ allCPUs, p.reserved, s.GetDefaultCPUSet()) - return nil - } - -@@ -148,9 +159,11 @@ func (p *staticPolicy) validateState(s state.State) error { - // 1. Check if the reserved cpuset is not part of default cpuset because: - // - kube/system reserved have changed (increased) - may lead to some containers not being able to start - // - user tampered with file -- if !p.reserved.Intersection(tmpDefaultCPUset).Equals(p.reserved) { -- return fmt.Errorf("not all reserved cpus: \"%s\" are present in defaultCpuSet: \"%s\"", -- p.reserved.String(), tmpDefaultCPUset.String()) -+ if !p.excludeReserved { -+ if !p.reserved.Intersection(tmpDefaultCPUset).Equals(p.reserved) { -+ return fmt.Errorf("not all reserved cpus: \"%s\" are present in defaultCpuSet: \"%s\"", -+ p.reserved.String(), tmpDefaultCPUset.String()) -+ } - } - - // 2. Check if state for static policy is consistent -@@ -179,6 +192,9 @@ func (p *staticPolicy) validateState(s state.State) error { - } - } - totalKnownCPUs = totalKnownCPUs.UnionAll(tmpCPUSets) -+ if p.excludeReserved { -+ totalKnownCPUs = totalKnownCPUs.Union(p.reserved) -+ } - if !totalKnownCPUs.Equals(p.topology.CPUDetails.CPUs()) { - return fmt.Errorf("current set of available CPUs \"%s\" doesn't match with CPUs in state \"%s\"", - p.topology.CPUDetails.CPUs().String(), totalKnownCPUs.String()) -@@ -249,6 +265,9 @@ func (p *staticPolicy) RemoveContainer(s state.State, podUID string, containerNa - klog.Infof("[cpumanager] static policy: RemoveContainer (pod: %s, container: %s)", podUID, containerName) - if toRelease, ok := s.GetCPUSet(podUID, containerName); ok { - s.Delete(podUID, containerName) -+ if p.excludeReserved { -+ toRelease = toRelease.Difference(p.reserved) -+ } - // Mutate the shared pool, adding released cpus. - s.SetDefaultCPUSet(s.GetDefaultCPUSet().Union(toRelease)) - } -diff --git a/pkg/kubelet/cm/cpumanager/policy_static_test.go b/pkg/kubelet/cm/cpumanager/policy_static_test.go -index b4b46c68c17..9c7e4f146ff 100644 ---- a/pkg/kubelet/cm/cpumanager/policy_static_test.go -+++ b/pkg/kubelet/cm/cpumanager/policy_static_test.go -@@ -33,6 +33,7 @@ type staticPolicyTest struct { - description string - topo *topology.CPUTopology - numReservedCPUs int -+ excludeReserved bool - podUID string - containerName string - stAssignments state.ContainerCPUAssignments -@@ -44,7 +45,8 @@ type staticPolicyTest struct { - } - - func TestStaticPolicyName(t *testing.T) { -- policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ testExcl := false -+ policy, _ := NewStaticPolicy(topoSingleSocketHT, 1, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testExcl) - - policyName := policy.Name() - if policyName != "static" { -@@ -74,6 +76,15 @@ func TestStaticPolicyStart(t *testing.T) { - stDefaultCPUSet: cpuset.NewCPUSet(), - expCSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), - }, -+ { -+ description: "empty cpuset exclude reserved", -+ topo: topoDualSocketHT, -+ numReservedCPUs: 2, -+ excludeReserved: true, -+ stAssignments: state.ContainerCPUAssignments{}, -+ stDefaultCPUSet: cpuset.NewCPUSet(), -+ expCSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 7, 8, 9, 10, 11), -+ }, - { - description: "reserved cores 0 & 6 are not present in available cpuset", - topo: topoDualSocketHT, -@@ -120,7 +131,7 @@ func TestStaticPolicyStart(t *testing.T) { - } - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ p, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: testCase.stAssignments, -@@ -436,7 +447,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), testCase.excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -479,6 +490,7 @@ func TestStaticPolicyAdd(t *testing.T) { - } - - func TestStaticPolicyRemove(t *testing.T) { -+ excludeReserved := false - testCases := []staticPolicyTest{ - { - description: "SingleSocketHT, DeAllocOneContainer", -@@ -537,7 +549,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) - - st := &mockState{ - assignments: testCase.stAssignments, -@@ -559,6 +571,7 @@ func TestStaticPolicyRemove(t *testing.T) { - } - - func TestTopologyAwareAllocateCPUs(t *testing.T) { -+ excludeReserved := false - testCases := []struct { - description string - topo *topology.CPUTopology -@@ -627,7 +640,7 @@ func TestTopologyAwareAllocateCPUs(t *testing.T) { - }, - } - for _, tc := range testCases { -- p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), topologymanager.NewFakeManager()) -+ p, _ := NewStaticPolicy(tc.topo, 0, cpuset.NewCPUSet(), topologymanager.NewFakeManager(), excludeReserved) - policy := p.(*staticPolicy) - st := &mockState{ - assignments: tc.stAssignments, -@@ -699,9 +712,10 @@ func TestStaticPolicyStartWithResvList(t *testing.T) { - expNewErr: fmt.Errorf("[cpumanager] unable to reserve the required amount of CPUs (size of 0-1 did not equal 1)"), - }, - } -+ testExcl := false - for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { -- p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager()) -+ p, err := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) - if !reflect.DeepEqual(err, testCase.expNewErr) { - t.Errorf("StaticPolicy Start() error (%v). expected error: %v but got: %v", - testCase.description, testCase.expNewErr, err) -@@ -741,7 +755,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - numReservedCPUs: 1, - reserved: cpuset.NewCPUSet(0), - stAssignments: state.ContainerCPUAssignments{}, -- stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), -+ stDefaultCPUSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "8000m", "8000m"), - expErr: fmt.Errorf("not enough cpus available to satisfy request"), - expCPUAlloc: false, -@@ -753,7 +767,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - numReservedCPUs: 2, - reserved: cpuset.NewCPUSet(0, 1), - stAssignments: state.ContainerCPUAssignments{}, -- stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), -+ stDefaultCPUSet: cpuset.NewCPUSet(2, 3, 4, 5, 6, 7), - pod: makePod("fakePod", "fakeContainer2", "1000m", "1000m"), - expErr: nil, - expCPUAlloc: true, -@@ -769,7 +783,7 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - "fakeContainer100": cpuset.NewCPUSet(2, 3, 6, 7), - }, - }, -- stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 4, 5), -+ stDefaultCPUSet: cpuset.NewCPUSet(4, 5), - pod: makePod("fakePod", "fakeContainer3", "2000m", "2000m"), - expErr: nil, - expCPUAlloc: true, -@@ -777,8 +791,9 @@ func TestStaticPolicyAddWithResvList(t *testing.T) { - }, - } - -+ testExcl := true - for _, testCase := range testCases { -- policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager()) -+ policy, _ := NewStaticPolicy(testCase.topo, testCase.numReservedCPUs, testCase.reserved, topologymanager.NewFakeManager(), testExcl) - - st := &mockState{ - assignments: testCase.stAssignments, --- -2.17.1 - diff --git a/kubernetes/kubernetes-1.20.9/centos/kubernetes.spec b/kubernetes/kubernetes-1.20.9/centos/kubernetes.spec deleted file mode 100644 index bff802133..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/kubernetes.spec +++ /dev/null @@ -1,2253 +0,0 @@ -%if 0%{?fedora} -%global with_devel 1 -%global with_bundled 0 -%global with_debug 1 -%else -%global with_devel 0 -%global with_bundled 1 -%global with_debug 0 -%endif - -%if 0%{?with_debug} -# https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12 -%global _dwz_low_mem_die_limit 0 -%else -%global debug_package %{nil} -%endif - -%global provider github -%global provider_tld com -%global project kubernetes -%global repo kubernetes -# https://github.com/kubernetes/kubernetes - -%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} -%global import_path k8s.io/kubernetes -%global commit 1.20.9 - -%global kube_version 1.20.9 -%global kube_git_version v%{kube_version} - -%global go_version 1.15.14 -%global go_path /usr/lib/golang-%{go_version}-%{go_version}/bin - -# Needed otherwise "version_ldflags=$(kube::version_ldflags)" doesn't work -%global _buildshell /bin/bash -%global _checkshell /bin/bash - -# Used to simplify the paths for install and files -%global _stage1 %{_exec_prefix}/local/kubernetes/%{kube_version}/stage1 -%global _stage2 %{_exec_prefix}/local/kubernetes/%{kube_version}/stage2 - -############################################## -Name: kubernetes-%{kube_version} -Version: %{kube_version} -Release: 1%{?_tis_dist}.%{tis_patch_ver} -Summary: Container cluster management -License: ASL 2.0 -URL: https://%{import_path} -ExclusiveArch: x86_64 aarch64 ppc64le s390x -Source0: %{project}-v%{kube_version}.tar.gz -Source4: kubeadm.conf -Source5: kubelet-cgroup-setup.sh - -Source33: genmanpages.sh - -Patch1: kubelet-cpumanager-disable-CFS-quota-throttling-for-.patch -Patch2: kubelet-cpumanager-keep-normal-containers-off-reserv.patch -Patch3: kubelet-cpumanager-infrastructure-pods-use-system-re.patch -Patch4: kubelet-cpumanager-introduce-concept-of-isolated-CPU.patch -Patch5: kubeadm-create-platform-pods-with-zero-CPU-resources.patch -Patch6: enable-support-for-kubernetes-to-ignore-isolcpus.patch - -# It obsoletes cadvisor but needs its source code (literally integrated) -Obsoletes: cadvisor - -# kubernetes is decomposed into master and node subpackages -# require both of them for updates -Requires: kubernetes-%{kube_version}-master -Requires: kubernetes-%{kube_version}-node - -%description -%{summary} - -%if 0%{?with_devel} -%package devel -Summary: %{summary} -BuildArch: noarch - -Provides: golang(%{import_path}/cmd/genutils) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubectl/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/normalization) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/install) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/v1) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/conversion-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/deepcopy-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/generator) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/go-to-protobuf/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/import-boss/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/namer) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/parser) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/set-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/types) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/install) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/pkg/federation-controller/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/admission) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/annotations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/endpoints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta/metatypes) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest/resttest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing/compat) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery/registered) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v0) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v2alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/audit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator/bearertoken) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/union) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/handlers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/chaosclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/leaderelection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/record) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/restclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/testing/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/transport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/dynamic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/adapters/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/auth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient/simple) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/azure) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/cloudstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/gce) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/mesos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/openstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/ovirt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/rackspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/vsphere) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/daemon) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/disruption) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework/informers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector/metaonly) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podgc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/route) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/statusupdater) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion/queryparams) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/dns) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fieldpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fields) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/openapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/healthz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/httplog) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/rollout) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/set) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/templates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/editor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/jsonmerge) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/metricsutil) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/client) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cm) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/custommetrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockershim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockertools) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/envvars) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/events) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/eviction) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/images) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/kuberuntime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/leaky) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hairpin) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/kubenet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/mock_network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pleg) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/results) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/qos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/remote) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt/mock_os) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rktshim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/status) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/format) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/ioutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/queue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/sliceutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubemark) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master/ports) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/http) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/tcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/healthcheck) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/userspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/evaluator/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/subjectaccessreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/cachesize) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/componentstatus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/experimental/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rangeallocation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/registrytest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/tokenreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/recognizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/streaming) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/versioning) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontext) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/seccomp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/selection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ssh) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/etcdtest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing/testingcert) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend/factory) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ui) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/async) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/bandwidth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chmod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chown) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/clock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/codeinspector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/configz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crlf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crypto) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/dbus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/diff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/ebtables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/env) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flowcontrol) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flushwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/framer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap/exponentialbackoff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/hash) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/homedir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream/spdy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/integer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/interrupt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/intstr) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/io) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/jsonpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/keymutex) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/limitwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/logs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/maps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/mount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/oom) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/parsers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/procfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/resourcecontainer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rlimit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/slice) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strategicpatch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strings) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/system) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/term) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/threading) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/uuid) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation/field) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wait) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/workqueue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wsstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/verflag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/aws_ebs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_dd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_file) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cephfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cinder) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/downwardapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/empty_dir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/fc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flexvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flocker) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/gce_pd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/git_repo) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/glusterfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/host_path) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/iscsi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/nfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/quobyte) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/rbd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/nestedpendingoperations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/operationexecutor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/volumehelper) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/vsphere_volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/versioned) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/admit) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/alwayspullimages) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/antiaffinity) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/deny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/exec) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/initialresources) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/limitranger) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/autoprovision) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/exists) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/persistentvolume/label) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/securitycontext/scdeny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/storageclass/default) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/allow) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/keystone) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/passwordfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/basicauth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/union) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/x509) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokenfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokentest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/predicates) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities/util) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider/defaults) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/factory) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/schedulercache) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/webhook) = %{version}-%{release} - -%description devel -Libraries for building packages importing k8s.io/kubernetes. -Currently, the devel is not suitable for development. -It is meant only as a buildtime dependency for other projects. - -This package contains library source intended for -building other packages which use %{project}/%{repo}. -%endif - -############################################## -%package unit-test -Summary: %{summary} - for running unit tests - -# below Rs used for testing -Requires: golang-%{go_version} -Requires: etcd >= 2.0.9 -Requires: hostname -Requires: rsync -Requires: NetworkManager - -%description unit-test -%{summary} - for running unit tests - -############################################## -%package master -Summary: Kubernetes services for master host - -# Build with the recommended golang for this Kubernetes version -BuildRequires: golang-%{go_version} -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: kubernetes-%{kube_version}-client - -%description master -Kubernetes services for master host - -############################################## -%package node -Summary: Kubernetes services for node host - -%if 0%{?fedora} >= 27 -Requires: (docker or docker-ce) -Suggests: docker-ce -%else -Requires: docker-ce -%endif -Requires: conntrack-tools - -BuildRequires: golang-%{go_version} -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: socat -Requires: kubernetes-%{kube_version}-client - -%description node -Kubernetes services for node host - -############################################## -%package kubeadm -Summary: Kubernetes tool for standing up clusters -Requires: kubernetes-%{kube_version}-client -Requires: containernetworking-cni - -%description kubeadm -Kubernetes tool for standing up clusters - -############################################## -%package client -Summary: Kubernetes client tools - -BuildRequires: golang-%{go_version} -BuildRequires: go-bindata - -%description client -Kubernetes client tools like kubectl - -############################################## -%package kube-misc -Summary: dummy package -%description kube-misc -Kubernetes dummy package for misc stuff we don't want to -install in production. - -############################################## - -%prep -%setup -q -n %{repo}-%{commit} -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 - -#src/k8s.io/kubernetes/pkg/util/certificates -# Patch the code to remove eliptic.P224 support -for dir in vendor/github.com/google/certificate-transparency/go/x509 pkg/util/certificates; do - if [ -d "${dir}" ]; then - pushd ${dir} - sed -i "/^[^=]*$/ s/oidNamedCurveP224/oidNamedCurveP256/g" *.go - sed -i "/^[^=]*$/ s/elliptic\.P224/elliptic.P256/g" *.go - popd - fi -done - -# Move all the code under src/k8s.io/kubernetes directory -mkdir -p src/k8s.io/kubernetes -mv $(ls | grep -v "^src$") src/k8s.io/kubernetes/. - -############### - -%build -export PATH=%{go_path}:$PATH -export PBR_VERSION=%{version} -pushd src/k8s.io/kubernetes/ -export KUBE_GIT_TREE_STATE="clean" -export KUBE_GIT_COMMIT=%{commit} -export KUBE_GIT_VERSION=%{kube_git_version} -export KUBE_EXTRA_GOPATH=$(pwd)/Godeps/_workspace - -# Verify the go version we will build against -go version - -# https://bugzilla.redhat.com/show_bug.cgi?id=1392922#c1 -%ifarch ppc64le -export GOLDFLAGS='-linkmode=external' -%endif - -# uncomment these two lines to build unoptimized binaries for debugging. -# export GOLDFLAGS="" -# export GOGCFLAGS="-N -l" -make WHAT="cmd/kube-proxy cmd/kube-apiserver cmd/kube-controller-manager cmd/kubelet cmd/kubeadm cmd/kube-scheduler cmd/kubectl" - -# convert md to man -./hack/generate-docs.sh || true -pushd docs -pushd admin -cp kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md .. -popd -cp %{SOURCE33} genmanpages.sh -bash genmanpages.sh -popd -popd - -%install -# go_path required for setup_env golang version check -export PATH=%{go_path}:$PATH -export PBR_VERSION=%{version} -pushd src/k8s.io/kubernetes/ -. hack/lib/init.sh -kube::golang::setup_env - -%ifarch ppc64le -output_path="_output/local/go/bin" -%else -output_path="${KUBE_OUTPUT_BINPATH}/$(kube::golang::host_platform)" -%endif - -install -m 755 -d %{buildroot}%{_bindir} -install -m 755 -d %{buildroot}%{_stage1}%{_bindir} -install -m 755 -d %{buildroot}%{_stage2}%{_bindir} - -echo "+++ INSTALLING kube-apiserver" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-apiserver - -echo "+++ INSTALLING kubeadm" -install -p -m 755 -t %{buildroot}%{_stage1}%{_bindir} ${output_path}/kubeadm -install -d -m 0755 %{buildroot}%{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d -install -p -m 0644 -t %{buildroot}%{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d %{SOURCE4} - -echo "+++ INSTALLING kubelet-cgroup-setup.sh" -install -p -m 0700 -t %{buildroot}%{_stage2}%{_bindir} %{SOURCE5} - -echo "+++ INSTALLING kube-apiserver" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-apiserver - -echo "+++ INSTALLING kube-controller-manager" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-controller-manager - -echo "+++ INSTALLING kube-scheduler" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-scheduler - -echo "+++ INSTALLING kube-proxy" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-proxy - -echo "+++ INSTALLING kubelet" -install -p -m 754 -t %{buildroot}%{_stage2}%{_bindir} ${output_path}/kubelet - -echo "+++ INSTALLING kubectl" -install -p -m 754 -t %{buildroot}%{_stage2}%{_bindir} ${output_path}/kubectl - -# install the bash completion -install -d -m 0755 %{buildroot}%{_stage2}%{_datadir}/bash-completion/completions/ -%{buildroot}%{_stage2}%{_bindir}/kubectl completion bash > %{buildroot}%{_stage2}%{_datadir}/bash-completion/completions/kubectl - -# install specific cluster addons for optional use -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons -# Addon: volumesnapshots -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/crd -install -m 0644 -t %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/crd cluster/addons/volumesnapshots/crd/* -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller -install -m 0644 -t %{buildroot}%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller cluster/addons/volumesnapshots/volume-snapshot-controller/* - -# install manpages -install -d %{buildroot}%{_mandir}/man1 -install -p -m 644 docs/man/man1/* %{buildroot}%{_mandir}/man1 -rm -Rf %{buildroot}%{_mandir}/man1/cloud-controller-manager.* -# from k8s tarball copied docs/man/man1/*.1 - -# source codes for building projects -%if 0%{?with_devel} -install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ -echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list -# find all *.go but no *_test.go files and generate devel.file-list -for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do - echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list - install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file) - cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file - echo "%%{gopath}/src/%%{import_path}/$file" >> devel.filelist -done -%endif - - -%if 0%{?with_devel} -sort -u -o devel.file-list devel.file-list -%endif - -popd - -%if 0%{?with_devel} -mv src/k8s.io/kubernetes/devel.file-list . -%endif - -mv src/k8s.io/kubernetes/*.md . -mv src/k8s.io/kubernetes/LICENSE . - - -# place files for unit-test rpm -install -d -m 0755 %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -# basically, everything from the root directory is needed -# unit-tests needs source code -# integration tests needs docs and other files -# test-cmd.sh atm needs cluster, examples and other -cp -a src %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -rm -rf %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/_output -cp -a *.md %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/ - -%check -# Fedora, RHEL7 and CentOS are tested via unit-test subpackage -if [ 1 != 1 ]; then -echo "******Testing the commands*****" -hack/test-cmd.sh -echo "******Benchmarking kube********" -hack/benchmark-go.sh - -# In Fedora 20 and RHEL7 the go cover tools isn't available correctly -%if 0%{?fedora} >= 21 -echo "******Testing the go code******" -hack/test-go.sh -echo "******Testing integration******" -hack/test-integration.sh --use_go_build -%endif -fi - -############################################## -%files -# empty as it depends on master and node - -############################################## -%files master -%license LICENSE -%doc *.md -%attr(754, -, root) %caps(cap_net_bind_service=ep) %{_bindir}/kube-apiserver -%{_bindir}/kube-controller-manager -%{_bindir}/kube-scheduler -%dir %{_sysconfdir}/%{name} -%dir %{_sysconfdir}/%{name}/addons -%dir %{_sysconfdir}/%{name}/addons/volumesnapshots -%dir %{_sysconfdir}/%{name}/addons/volumesnapshots/crd -%{_sysconfdir}/%{name}/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml -%{_sysconfdir}/%{name}/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml -%{_sysconfdir}/%{name}/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshots.yaml -%dir %{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller -%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller/volume-snapshot-controller-deployment.yaml -%{_sysconfdir}/%{name}/addons/volumesnapshots/volume-snapshot-controller/rbac-volume-snapshot-controller.yaml - -############################################## -%files node -%license LICENSE -%{_stage2}%{_bindir}/kubelet -%{_stage2}%{_bindir}/kubelet-cgroup-setup.sh - -############################################## -%files kubeadm -%license LICENSE -%{_stage1}%{_bindir}/kubeadm -%dir %{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d -%config(noreplace) %{_stage2}%{_sysconfdir}/systemd/system/kubelet.service.d/kubeadm.conf - -############################################## -%files client -%license LICENSE -%{_stage2}%{_bindir}/kubectl -%{_stage2}%{_datadir}/bash-completion/completions/kubectl - -############################################## -%files unit-test -%{_sharedstatedir}/kubernetes-unit-test/ - -%if 0%{?with_devel} -%files devel -f devel.file-list -%doc *.md -%dir %{gopath}/src/k8s.io -%endif - -############################################## -%files kube-misc -%{_mandir}/man1/kube-apiserver.1* -%{_mandir}/man1/kube-controller-manager.1* -%{_mandir}/man1/kube-scheduler.1* -%{_mandir}/man1/kube-proxy.1* -%{_bindir}/kube-proxy -%{_mandir}/man1/kubelet.1* -%{_mandir}/man1/kubeadm.1* -%{_mandir}/man1/kubeadm-* -%{_mandir}/man1/kubectl.1* -%{_mandir}/man1/kubectl-* - -############################################## - -%pre master - -%post master -%systemd_post kube-apiserver kube-scheduler kube-controller-manager - -%preun master -%systemd_preun kube-apiserver kube-scheduler kube-controller-manager - -%postun master -%systemd_postun - - -%pre node - -%post node - -%preun node - -%postun node -%systemd_postun - -############################################ -%changelog -* Tue Mar 27 2018 Spyros Trigazis - 1.10.0-1 -- Bump to upstream v1.10.0 - -* Thu Mar 22 2018 Spyros Trigazis - 1.9.6-1 -- Bump to upstream v1.9.6 - -* Tue Mar 20 2018 Jan Chaloupka - 1.9.5-1 -- Bump to upstream v1.9.5 - resolves: #1554420 - -* Sun Feb 11 2018 Spyros Trigazis - 1.9.3-1 -- Bump to upstream v1.9.3 - -* Fri Feb 09 2018 Jan Chaloupka - 1.9.1-5 -- Add --fail-swap-on=false flag to the /etc/kubernetes/kubelet - resolves: #1542476 - -* Thu Feb 08 2018 Igor Gnatenko - 1.9.1-4 -- Escape macro in %%changelog - -* Wed Feb 07 2018 Fedora Release Engineering - 1.9.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Mon Jan 15 2018 Jan Chaloupka - 1.9.1-2 -- If docker is not available, try docker-ce instead (use boolean dependencies) - resolves: #1534508 - -* Fri Jan 12 2018 Spyros Trigazis - 1.9.1-1 -- Update to upstream v1.9.1 - resolves #1533794 - -* Tue Oct 24 2017 Jan Chaloupka - 1.8.1-1 -- Update to upstream v1.8.1 - resolves: #1497135 - -* Mon Oct 02 2017 Jan Chaloupka - 1.8.0-1 -- Update to upstream v1.8.0 - related: #1497625 - -* Mon Oct 02 2017 Jan Chaloupka - 1.7.7-1 -- Update to upstream v1.7.7 - resolves: #1497625 - -* Mon Sep 18 2017 Jan Chaloupka - 1.7.6-1 -- Update to upstream v1.7.6 - resolves: #1492551 - -* Mon Sep 11 2017 Jan Chaloupka - 1.7.5-1 -- Update to upstream v1.7.5 - resolves: #1490316 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.4-1 -- Fix the version - related: #1482874 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.3-2 -- Update to upstream v1.7.4 - resolves: #1482874 - -* Tue Aug 08 2017 Jan Chaloupka - 1.7.3-1 -- Update to upstream v1.7.3 - resolves: #1479685 - -* Thu Aug 03 2017 Fedora Release Engineering - 1.7.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Sun Jul 30 2017 Florian Weimer - 1.7.2-3 -- Rebuild with binutils fix for ppc64le (#1475636) - -* Wed Jul 26 2017 Fedora Release Engineering - 1.7.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.2-1 -- Update to upstream v1.7.2 - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.1-2 -- Sync kubeadm.conf with upstream service configuration (set Restart,StartLimitInterval,RestartSec) - -* Fri Jul 14 2017 Jan Chaloupka - 1.7.1-1 -- Update to upstream v1.7.1 - resolves: #1471767 - -* Sat Jul 08 2017 Jan Chaloupka - 1.6.7-1 -- Update to upstream v1.6.7 - resolves: #1468823 - resolves: #1468752 - -* Fri May 19 2017 Timothy St. Clair - 1.6.4-1 -- Add kubeadm subpackage to enable upstream deployments - -* Thu May 18 2017 Jan Chaloupka - 1.6.3-1 -- Update to upstream v1.6.3 - resolves: #1452101 - -* Fri May 12 2017 Jan Chaloupka - 1.6.2-2 -- Extend archs with s390x - resolves: #1400000 - -* Tue May 02 2017 Jan Chaloupka - 1.6.2-1 -- Update to upstream v1.6.2 - resolves: #1447338 - -* Tue Apr 11 2017 Jan Chaloupka - 1.6.1-1 -- Update to upstream v1.6.1 - related: #1422889 - -* Fri Mar 31 2017 Jan Chaloupka - 1.5.6-1 -- Update to upstream v1.5.6 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.5-4 -- Update to upstream v1.5.5 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.4-3 -- re-enable debug-info - related: #1422889 - -* Thu Mar 09 2017 Jan Chaloupka - 1.5.4-2 -- Bump to upstream 7243c69eb523aa4377bce883e7c0dd76b84709a1 - related: #1422889 - -* Thu Feb 16 2017 Jan Chaloupka - 1.5.3-1 -- Update to upstream v1.5.3 - resolves: #1422889 - -* Fri Feb 10 2017 Fedora Release Engineering - 1.5.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Jan 18 2017 Jan Chaloupka - 1.5.2-2 -- fix rootScopeNaming generate selfLink - resolves: #1413997 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.2-1 -- Bump version as well - related: #1412996 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.1-2 -- Bump to upstream 1.5.2 - resolves: #1412996 - -* Thu Jan 05 2017 Jan Chaloupka - 1.5.1-1 -- Bump to upstream 1.5.1 - resolves: #1410186 - -* Wed Jan 04 2017 Jan Chaloupka - 1.4.7-2 -- Generate the md files before they are converted to man pages - resolves: #1409943 - -* Mon Dec 12 2016 Jan Chaloupka - 1.4.7-1 -- Bump to upstream v1.4.7 - resolves: #1403823 - New conntrack-tools dependency of kube-proxy - Build kubernetes on ppc64le with linkmode=external - resolves: #1392922 - -* Mon Nov 14 2016 jchaloup - 1.4.5-3 -- Patch unit-test subpackage to run tests over k8s distro binaries - -* Wed Nov 09 2016 jchaloup - 1.4.5-2 -- Add missing if devel around generated devel.file-list - related: #1390074 - -* Tue Nov 08 2016 jchaloup - 1.4.5-1 -- Bump to upstream v1.4.5 (flip back to upstream based Kubernetes) - related: #1390074 - -* Mon Oct 31 2016 jchaloup - 1.4.0-0.1.beta3.git52492b4 -- Update to origin v1.4.0-alpha.0 (ppc64le and arm unbuildable with the current golang version) - resolves: #1390074 - -* Mon Oct 24 2016 jchaloup - 1.3.0-0.4.git52492b4 -- Update to origin v1.3.1 - resolves: #1388092 - -* Thu Sep 08 2016 jchaloup - 1.3.0-0.3.rc1.git507d3a7 -- Update to origin v1.3.0-rc1 - resolves: #1374361 - -* Thu Aug 11 2016 Dennis Gilmore -1.3.0-0.2.git4a3f9c5 -- enable armv7hl and aarch64 - -* Tue Aug 09 2016 jchaloup - 1.3.0-0.1.git4a3f9c5 -- Update to origin v1.3.0-alpha.3 - resolves: #1365601 - -* Thu Jul 21 2016 Fedora Release Engineering - 1.2.0-0.27.git4a3f9c5 -- https://fedoraproject.org/wiki/Changes/golang1.7 - -* Sun Jul 17 2016 jchaloup - 1.2.0-0.26.git4a3f9c5 -- Update to origin v1.2.1 - resolves: #1357261 - -* Wed Jul 13 2016 jchaloup - 1.2.0-0.25.git4a3f9c5 -- Enable CPU and Memory accounting on a node - -* Wed Jun 29 2016 jchaloup - 1.2.0-0.24.git4a3f9c5 -- Be more verbose about devel subpackage - resolves: #1269449 - -* Tue Jun 28 2016 jchaloup - 1.2.0-0.23.git4a3f9c5 -- Own /run/kubernetes directory - resolves: #1264699 - -* Sat May 28 2016 jchaloup - 1.2.0-0.22.git4a3f9c5 -- Bump to origin v1.2.0 - resolves: #1340643 - -* Wed May 04 2016 jchaloup - 1.2.0-0.21.git4a3f9c5 -- Extend uni-test subpackage to run other tests - -* Mon Apr 25 2016 jchaloup - 1.2.0-0.20.git4a3f9c5 -- Update support for ppc64le to use go compiler - related: #1306214 - -* Thu Apr 21 2016 jchaloup - 1.2.0-0.19.git4a3f9c5 -- Fix support for ppc64le - related: #1306214 - -* Tue Apr 19 2016 jchaloup - 1.2.0-0.18.git4a3f9c5 -- Bump to origin v1.1.6 - resolves: #1328357 - -* Mon Apr 11 2016 jchaloup - 1.2.0-0.17.alpha6.git4a3f9c5 -- Don't disable extensions/v1beta1 by default to conform with upstream documentation - -* Wed Mar 30 2016 jchaloup - 1.2.0-0.16.alpha6.git4a3f9c5 - Update to origin's v1.1.5 - Build on ppc64le as well - resolves: #1306214 - -* Tue Mar 08 2016 jchaloup - 1.2.0-0.15.alpha6.gitf0cd09a -- hyperkube.server: don't parse args for any command - -* Fri Mar 04 2016 jchaloup - 1.2.0-0.14.alpha6.gitf0cd09a -- Disable extensions/v1beta1 implicitly - -* Tue Mar 01 2016 jchaloup - 1.2.0-0.13.alpha6.gitf0cd09a -- Hyperkube checks flags of individual commands/servers even if it does not define their flags. - Thus resulting in 'uknown shorthand flag' error - -* Mon Feb 29 2016 jchaloup - 1.2.0-0.12.alpha6.gitf0cd09a -- Disable v1beta3 -- hyperkube-kubectl-dont shift os.Args - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.11.alpha6.gitf0cd09a -- add kube- prefix to controller-manager, proxy and scheduler - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.10.alpha6.gitf0cd09a -- Hardlink kube-controller-manager, kuber-scheduler, kubectl, kubelet and kube-proxy into hyperkube -- Keep kube-apiserver binary as it is (it has different permission and capabilities) - -* Thu Feb 25 2016 jchaloup - 1.2.0-0.9.alpha6.gitf0cd09a -- Fix Content-Type of docker client response - resolves: #1311861 - -* Mon Feb 22 2016 Fedora Release Engineering - 1.2.0-0.8.alpha6.gitf0cd09a -- https://fedoraproject.org/wiki/Changes/golang1.6 - -* Mon Feb 22 2016 jchaloup - 1.2.0-0.7.alpha6.git4c8e6f4 -- Bump to origin 1.1.3 - kube-version-change command replaced with kubectl convert (check out docs/admin/cluster-management.md) - related: 1295066 - -* Thu Feb 04 2016 Fedora Release Engineering - 1.2.0-0.6.alpha1.git4c8e6f4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 21 2016 jchaloup - 1.2.0-0.5.alpha1.git4c8e6f4 -- Bump to upstream e1d9873c1d5711b83fd3dd7eefe83a88ceb92c08 - related: #1291860 - -* Thu Jan 07 2016 jchaloup - 1.2.0-0.4.alpha1.git4c8e6f4 -- Move definition of all version, git and commit macros at one place - resolves: #1291860 - -* Fri Jan 01 2016 jchaloup - 1.2.0-0.3.alpha1.git4c8e6f4 -- Bump to upstream bf56e235826baded1772fb340266b8419c3e8f30 - Rebase to origin's "v1.1.0.1 - Security Update to v1.1" release - resolves: #1295066 - -* Thu Nov 26 2015 jchaloup - 1.2.0-0.2.alpha1.git4c8e6f4 -- Bump to origin upstream a41c9ff38d52fd508481c3c2bac13d52871fde02 -- Build kubernetes from origin's Godeps using hack/build-go.sh - origin's Godeps = kubernetes upstream + additional patches - -* Tue Oct 20 2015 jchaloup - 1.2.0-0.1.alpha1.git4c8e6f4 -- Bump to upstream 403de3874fba420fd096f2329b45fe2f5ae97e46 - related: #1211266 - -* Wed Oct 14 2015 jchaloup - 1.1.0-0.41.alpha1.gite9a6ef1 -- Bump to origin upstream e9a6ef1cd4c29d45730289a497d18b19d7ba450d - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.40.alpha1.git5f38cb0 -- Add missing short option for --server of kubectl -- Update unit-test-subpackage (only test-cmd.sh atm) - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.39.alpha1.git5f38cb0 -- Add normalization of flags - related: #1211266 - -* Fri Oct 02 2015 jchaloup - 1.1.0-0.38.alpha1.git5f38cb0 -- Restore unit-test subpackage (not yet tested) - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.37.alpha1.git5f38cb0 -- Do not unset default cluster, otherwise k8s ends with error when no cluster set - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.36.alpha0.git5f38cb0 -- Bump to o4n 5f38cb0e98c9e854cafba9c7f98dafd51e955ad8 - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.35.alpha1.git2695cdc -- Update git version of k8s and o4n, add macros - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.34.alpha1.git2695cdc -- Built k8s from o4n tarball -- Bump to upstream 2695cdcd29a8f11ef60278758e11f4817daf3c7c - related: #1211266 - -* Tue Sep 22 2015 jchaloup - 1.1.0-0.33.alpha1.git09cf38e -- Bump to upstream 09cf38e9a80327e2d41654db277d00f19e2c84d0 - related: #1211266 - -* Thu Sep 17 2015 jchaloup - 1.1.0-0.32.alpha1.git400e685 -- Bump to upstream 400e6856b082ecf4b295568acda68d630fc000f1 - related: #1211266 - -* Wed Sep 16 2015 jchaloup - 1.1.0-0.31.gitd549fc4 -- Bump to upstream d549fc400ac3e5901bd089b40168e1e6fb17341d - related: #1211266 - -* Tue Sep 15 2015 jchaloup - 1.1.0-0.30.gitc9570e3 -- Bump to upstream c9570e34d03c6700d83f796c0125d17c5064e57d - related: #1211266 - -* Mon Sep 14 2015 jchaloup - 1.1.0-0.29.git86b4e77 -- Bump to upstream 86b4e777e1947c1bc00e422306a3ca74cbd54dbe - related: #1211266 - -* Thu Sep 10 2015 jchaloup - 1.1.0-0.28.gitf867ba3 -- Bump to upstream f867ba3ba13e3dad422efd21c74f52b9762de37e - related: #1211266 - -* Wed Sep 09 2015 jchaloup - 1.1.0-0.27.git0f4fa4e -- Bump to upstream 0f4fa4ed25ae9a9d1824fe55aeefb4d4ebfecdfd - related: #1211266 - -* Tue Sep 08 2015 jchaloup - 1.1.0-0.26.git196f58b -- Bump to upstream 196f58b9cb25a2222c7f9aacd624737910b03acb - related: #1211266 - -* Mon Sep 07 2015 jchaloup - 1.1.0-0.25.git96e0ed5 -- Bump to upstream 96e0ed5749608d4cc32f61b3674deb04c8fa90ad - related: #1211266 - -* Sat Sep 05 2015 jchaloup - 1.1.0-0.24.git2e2def3 -- Bump to upstream 2e2def36a904fe9a197da5fc70e433e2e884442f - related: #1211266 - -* Fri Sep 04 2015 jchaloup - 1.1.0-0.23.gite724a52 -- Bump to upstream e724a5210adf717f62a72162621ace1e08730c75 - related: #1211266 - -* Thu Sep 03 2015 jchaloup - 1.1.0-0.22.gitb6f2f39 -- Bump to upstream b6f2f396baec5105ff928cf61903c2c368259b21 - related: #1211266 - -* Wed Sep 02 2015 jchaloup - 1.1.0-0.21.gitb4a3698 -- Bump to upstream b4a3698faed81410468eccf9f328ca6df3d0cca3 - related: #1211266 - -* Tue Sep 01 2015 jchaloup - 1.1.0-0.20.git2f9652c -- Bump to upstream 2f9652c7f1d4b8f333c0b5c8c1270db83b913436 - related: #1211266 - -* Mon Aug 31 2015 jchaloup - 1.1.0-0.19.git66a644b -- Bump to upstream 66a644b275ede9ddb98eb3f76e8d1840cafc2147 - related: #1211266 - -* Thu Aug 27 2015 jchaloup - 1.1.0-0.18.gitab73849 -- Bump to upstream ab7384943748312f5e9294f42d42ed3983c7c96c - related: #1211266 - -* Wed Aug 26 2015 jchaloup - 1.1.0-0.17.git00e3442 -- Bump to upstream 00e34429e0242323ed34347cf0ab65b3d62b21f7 - related: #1211266 - -* Tue Aug 25 2015 jchaloup - 1.1.0-0.16.gita945785 -- Bump to upstream a945785409d5b68f3a2721d2209300edb5abf1ce - related: #1211266 - -* Mon Aug 24 2015 jchaloup - 1.1.0-0.15.git5fe7029 -- Bump to upstream 5fe7029e688e1e5873a0b95a622edda5b5156d2b - related: #1211266 - -* Fri Aug 21 2015 jchaloup - 1.1.0-0.14.gitb6f18c7 -- Bump to upstream b6f18c7ce08714c8d4f6019463879a164a41750e - related: #1211266 - -* Thu Aug 20 2015 jchaloup - 1.1.0-0.13.git44fa48e -- Bump to upstream 44fa48e5af44d3e988fa943d96a2de732d8cc666 - related: #1211266 - -* Wed Aug 19 2015 jchaloup - 1.1.0-0.12.gitb5a4a54 -- Bump to upstream b5a4a548df0cffb99bdcc3b9b9e48d4025d0541c - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.11.git919c7e9 -- Bump to upstream 919c7e94e23d2dcd5bdd96896e0a7990f9ae3338 - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.10.git280b66c -- Bump to upstream 280b66c9012c21e253acd4e730f8684c39ca08ec - related: #1211266 - -* Mon Aug 17 2015 jchaloup - 1.1.0-0.9.git081d9c6 -- Bump to upstream 081d9c64d25c20ec16035036536511811118173d - related: #1211266 - -* Fri Aug 14 2015 jchaloup - 1.1.0-0.8.git8dcbeba -- Bump to upstream 8dcbebae5ef6a7191d9dfb65c68833c6852a21ad - related: #1211266 - -* Thu Aug 13 2015 jchaloup - 1.1.0-0.7.git968cbbe -- Bump to upstream 968cbbee5d4964bd916ba379904c469abb53d623 - related: #1211266 - -* Wed Aug 12 2015 jchaloup - 1.1.0-0.6.gitc91950f -- Bump to upstream c91950f01cb14ad47486dfcd2fdfb4be3ee7f36b - related: #1211266 - -* Tue Aug 11 2015 jchaloup - 1.1.0-0.5.gite44c8e6 -- Bump to upstream e44c8e6661c931f7fd434911b0d3bca140e1df3a - related: #1211266 - -* Mon Aug 10 2015 jchaloup - 1.1.0-0.4.git2bfa9a1 -- Bump to upstream 2bfa9a1f98147cfdc2e9f4cf50e2c430518d91eb - related: #1243827 - -* Thu Aug 06 2015 jchaloup - 1.1.0-0.3.git4c42e13 -- Bump to upstream 4c42e1302d3b351f3cb6074d32aa420bbd45e07d -- Change import path prefix to k8s.io/kubernetes - related: #1243827 - -* Wed Aug 05 2015 jchaloup - 1.1.0-0.2.git159ba48 -- Bump to upstream 159ba489329e9f6ce422541e13f97e1166090ec8 - related: #1243827 - -* Sat Aug 01 2015 jchaloup - 1.1.0-0.1.git6129d3d -- Bump to upstream 6129d3d4eb80714286650818081a64ce2699afed - related: #1243827 - -* Fri Jul 31 2015 jchaloup - 1.0.0-0.18.gitff058a1 -- Bump to upstream ff058a1afeb63474f7a35805941f3b07c27aae0f - related: #1243827 - -* Thu Jul 30 2015 jchaloup - 1.0.0-0.17.git769230e -- Bump to upstream 769230e735993bb0bf924279a40593c147c9a6ab - related: #1243827 - -* Wed Jul 29 2015 jchaloup - 1.0.0-0.16.gitdde7222 -- Bump to upstream dde72229dc9cbbdacfb2e44b22d9d5b357027020 - related: #1243827 - -* Tue Jul 28 2015 jchaloup - 1.0.0-0.15.gitc5bffaa -- Bump to upstream c5bffaaf3166513da6259c44a5d1ba8e86bea5ce - related: #1243827 - -* Sat Jul 25 2015 jchaloup - 1.0.0-0.14.git5bd82ff -- Bump to upstream 5bd82ffe6da8f4e72e71b362635e558bfc412106 - related: #1243827 - -* Fri Jul 24 2015 jchaloup - 1.0.0-0.13.git291acd1 -- Bump to upstream 291acd1a09ac836ec7524b060a19a6498d9878dd - related: #1243827 - -* Thu Jul 23 2015 jchaloup - 1.0.0-0.12.gitfbed349 -- Bump to upstream fbed3492bfa09e59b1c423fdd7c1ecad333a06ef - related: #1243827 - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.11.gitfbc85e9 -- Add runtime dependency of kubernetes-node on socat (so kubectl port-forward works on AH) - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.10.gitfbc85e9 -- Update the build script for go1.5 as well -- Bump to upstream fbc85e9838f25547be94fbffeeb92a756d908ca0 - related: #1243827 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.9.git2d88675 -- Bump to upstream 2d88675f2203d316d4bac312c7ccad12991b56c2 -- Change KUBE_ETCD_SERVERS to listen on 2379 ports instead of 4001 - resolves: #1243827 -- Add kubernetes-client to provide kubectl command - resolves: #1241469 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.8.gitb2dafda -- Fix dependency and tests for go-1.5 -- with_debug off as the builds ends with error "ELFRESERVE too small: ..." - -* Sat Jul 18 2015 Eric Paris - 1.0.0-0.7.gitb2dafda -- Update apiserver binary gid - -* Fri Jul 17 2015 jchaloup - 1.0.0-0.6.gitb2dafda -- Bump to upstream b2dafdaef5aceafad503ab56254b60f80da9e980 - related: #1211266 - -* Thu Jul 16 2015 jchaloup - 1.0.0-0.5.git596a8a4 -- Bump to upstream 596a8a40d12498b5335140f50753980bfaea4f6b - related: #1211266 - -* Wed Jul 15 2015 jchaloup - 1.0.0-0.4.git6ba532b -- Bump to upstream 6ba532b218cb5f5ea3f0e8dce5395182f388536c - related: #1211266 - -* Tue Jul 14 2015 jchaloup - 1.0.0-0.3.gitc616182 -- Bump to upstream c6161824db3784e6156131307a5e94647e5557fd - related: #1211266 - -* Mon Jul 13 2015 jchaloup - 1.0.0-0.2.git2c27b1f -- Bump to upstream 2c27b1fa64f4e70f04575d1b217494f49332390e - related: #1211266 - -* Sat Jul 11 2015 jchaloup - 1.0.0-0.1.git1b37059 -- Bump to upstream 1b370599ccf271741e657335c4943cb8c7dba28b - related: #1211266 - -* Fri Jul 10 2015 jchaloup - 0.21.1-0.2.gitccc4cfc -- Bump to upstream ccc4cfc7e11e0f127ac1cea045017dd799be3c63 - related: #1211266 - -* Thu Jul 09 2015 jchaloup - 0.21.1-0.1.git41f8907 -- Update generating of man pages from md (add genmanpages.sh) -- Bump to upstream 41f89075396329cd46c58495c7d3f7e13adcaa96 - related: #1211266 - -* Wed Jul 08 2015 jchaloup - 0.20.2-0.5.git77be29e -- Bump to upstream 77be29e3da71f0a136b6aa4048b2f0575c2598e4 - related: #1211266 - -* Tue Jul 07 2015 jchaloup - 0.20.2-0.4.git639a7da -- Bump to upstream 639a7dac50a331414cc6c47083323388da0d8756 - related: #1211266 - -* Mon Jul 06 2015 jchaloup - 0.20.2-0.3.gitbb6f2f7 -- Bump to upstream bb6f2f7ad90596d624d84cc691eec0f518e90cc8 - related: #1211266 - -* Fri Jul 03 2015 jchaloup - 0.20.2-0.2.git974377b -- Bump to upstream 974377b3064ac59b6e5694bfa568d67128026171 - related: #1211266 - -* Thu Jul 02 2015 jchaloup - 0.20.2-0.1.gitef41ceb -- Bump to upstream ef41ceb3e477ceada84c5522f429f02ab0f5948e - related: #1211266 - -* Tue Jun 30 2015 jchaloup - 0.20.0-0.3.git835eded -- Bump to upstream 835eded2943dfcf13a89518715e4be842a6a3ac0 -- Generate missing man pages - related: #1211266 - -* Mon Jun 29 2015 jchaloup - 0.20.0-0.2.git1c0b765 -- Bump to upstream 1c0b765df6dabfe9bd0e20489ed3bd18e6b3bda8 - Comment out missing man pages - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.20.0-0.1.git8ebd896 -- Bump to upstream 8ebd896351513d446d56bc5785c070d2909226a3 - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.19.3-0.6.git712f303 -- Bump to upstream 712f303350b35e70a573f3cb19193c8ec7ee7544 - related: #1211266 - -* Thu Jun 25 2015 jchaloup - 0.19.3-0.5.git2803b86 -- Bump to upstream 2803b86a42bf187afa816a7ce14fec754cc2af51 - related: #1211266 - -* Wed Jun 24 2015 Eric Paris - 0.19.3-0.4.git5b4dc4e -- Set CAP_NET_BIND_SERVICE on the kube-apiserver so it can use 443 - -* Wed Jun 24 2015 jchaloup - 0.19.3-0.3.git5b4dc4e -- Bump to upstream 5b4dc4edaa14e1ab4e3baa19df0388fa54dab344 - pkg/cloudprovider/* packages does not conform to golang language specification - related: #1211266 - -* Tue Jun 23 2015 jchaloup - 0.19.3-0.2.gita2ce3ea -- Bump to upstream a2ce3ea5293553b1fe0db3cbc6d53bdafe061d79 - related: #1211266 - -* Mon Jun 22 2015 jchaloup - 0.19.1-0.1.gitff0546d -- Bump to upstream ff0546da4fc23598de59db9f747c535545036463 - related: #1211266 - -* Fri Jun 19 2015 jchaloup - 0.19.0-0.7.gitb2e9fed -- Bump to upstream b2e9fed3490274509506285bdba309c50afb5c39 - related: #1211266 - -* Thu Jun 18 2015 jchaloup - 0.19.0-0.6.gitf660940 -- Bump to upstream f660940dceb3fe6ffb1b14ba495a47d91b5cd910 - related: #1211266 - -* Wed Jun 17 2015 jchaloup - 0.19.0-0.5.git43889c6 -- Bump to upstream 43889c612c4d396dcd8fbf3fbd217e106eaf5bce - related: #1211266 - -* Tue Jun 16 2015 jchaloup - 0.19.0-0.4.gita8269e3 -- Bump to upstream a8269e38c9e2bf81ba18cd6420e2309745d5b0b9 - related: #1211266 - -* Sun Jun 14 2015 jchaloup - 0.19.0-0.3.git5e5c1d1 -- Bump to upstream 5e5c1d10976f2f26d356ca60ef7d0d715c9f00a2 - related: #1211266 - -* Fri Jun 12 2015 jchaloup - 0.19.0-0.2.git0ca96c3 -- Bump to upstream 0ca96c3ac8b47114169f3b716ae4521ed8c7657c - related: #1211266 - -* Thu Jun 11 2015 jchaloup - 0.19.0-0.1.git5a02fc0 -- Bump to upstream 5a02fc07d8a943132b9e68fe7169778253318487 - related: #1211266 - -* Wed Jun 10 2015 jchaloup - 0.18.2-0.3.git0dfb681 -- Bump to upstream 0dfb681ba5d5dba535895ace9d650667904b5df7 - related: #1211266 - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.2.gitb68e08f -- golang-cover is not needed - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.1.gitb68e08f -- Bump to upstream b68e08f55f5ae566c4ea3905d0993a8735d6d34f - related: #1211266 - -* Sat Jun 06 2015 jchaloup - 0.18.1-0.3.git0f1c4c2 -- Bump to upstream 0f1c4c25c344f70c3592040b2ef092ccdce0244f - related: #1211266 - -* Fri Jun 05 2015 jchaloup - 0.18.1-0.2.git7309e1f -- Bump to upstream 7309e1f707ea5dd08c51f803037d7d22c20e2b92 - related: #1211266 - -* Thu Jun 04 2015 jchaloup - 0.18.1-0.1.gita161edb -- Bump to upstream a161edb3960c01ff6e14813858c2eeb85910009b - related: #1211266 - -* Wed Jun 03 2015 jchaloup - 0.18.0-0.3.gitb5a91bd -- Bump to upstream b5a91bda103ed2459f933959241a2b57331747ba -- Don't run %%check section (kept only for local run). Tests are now handled via CI. - related: #1211266 - -* Tue Jun 02 2015 jchaloup - 0.18.0-0.2.git5520386 -- Bump to upstream 5520386b180d3ddc4fa7b7dfe6f52642cc0c25f3 - related: #1211266 - -* Mon Jun 01 2015 jchaloup - 0.18.0-0.1.git0bb78fe -- Bump to upstream 0bb78fe6c53ce38198cc3805c78308cdd4805ac8 - related: #1211266 - -* Fri May 29 2015 jchaloup - 0.17.1-6 -- Bump to upstream ed4898d98c46869e9cbdb44186dfdeda9ff80cc2 - related: #1211266 - -* Thu May 28 2015 jchaloup - 0.17.1-5 -- Bump to upstream 6fa2777e26559fc008eacac83eb165d25bd9a7de - related: #1211266 - -* Tue May 26 2015 jchaloup - 0.17.1-4 -- Bump to upstream 01fcb58673001e56c69e128ab57e0c3f701aeea5 - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-3 -- Decompose package into master and node subpackage. - Thanks to Avesh for testing and patience. - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-2 -- Bump to upstream cf7b0bdc2a41d38613ac7f8eeea91cae23553fa2 - related: #1211266 - -* Fri May 22 2015 jchaloup - 0.17.1-1 -- Bump to upstream d9d12fd3f7036c92606fc3ba9046b365212fcd70 - related: #1211266 - -* Wed May 20 2015 jchaloup - 0.17.0-12 -- Bump to upstream a76bdd97100c66a46e2b49288540dcec58a954c4 - related: #1211266 - -* Tue May 19 2015 jchaloup - 0.17.0-11 -- Bump to upstream 10339d72b66a31592f73797a9983e7c207481b22 - related: #1211266 - -* Mon May 18 2015 jchaloup - 0.17.0-10 -- Bump to upstream efb42b302d871f7217394205d84e5ae82335d786 - related: #1211266 - -* Sat May 16 2015 jchaloup - 0.17.0-9 -- Bump to upstream d51e131726b925e7088b90915e99042459b628e0 - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-8 -- Bump to upstream 1ee33ac481a14db7b90e3bbac8cec4ceea822bfb - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-7 -- Bump to upstream d3c6fb0d6a13c0177dcd67556d72963c959234ea - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-6 -- Bump to upstream f57f31783089f41c0bdca8cb87a1001ca94e1a45 - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-5 -- Bump to upstream c90d381d0d5cf8ab7b8412106f5a6991d7e13c7d - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-4 -- Bump to upstream 5010b2dde0f9b9eb820fe047e3b34bc9fa6324de -- Add debug info - related: #1211266 - -* Wed May 13 2015 jchaloup - 0.17.0-3 -- Bump to upstream ec19d41b63f5fe7b2c939e7738a41c0fbe65d796 - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-2 -- Provide /usr/bin/kube-version-change binary - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-1 -- Bump to upstream 962f10ee580eea30e5f4ea725c4e9e3743408a58 - related: #1211266 - -* Mon May 11 2015 jchaloup - 0.16.2-7 -- Bump to upstream 63182318c5876b94ac9b264d1224813b2b2ab541 - related: #1211266 - -* Fri May 08 2015 jchaloup - 0.16.2-6 -- Bump to upstream d136728df7e2694df9e082902f6239c11b0f2b00 -- Add NetworkManager as dependency for /etc/resolv.conf - related: #1211266 - -* Thu May 07 2015 jchaloup - 0.16.2-5 -- Bump to upstream ca0f678b9a0a6dc795ac7a595350d0dbe9d0ac3b - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-4 -- Add docs to kubernetes-unit-test - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-3 -- Bump to upstream 3a24c0e898cb3060d7905af6df275a3be562451d - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-2 -- Add api and README.md to kubernetes-unit-test - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-1 -- Bump to upstream 72048a824ca16c3921354197953fabecede5af47 - related: #1211266 - -* Mon May 04 2015 jchaloup - 0.16.1-2 -- Bump to upstream 1dcd80cdf3f00409d55cea1ef0e7faef0ae1d656 - related: #1211266 - -* Sun May 03 2015 jchaloup - 0.16.1-1 -- Bump to upstream 86751e8c90a3c0e852afb78d26cb6ba8cdbc37ba - related: #1211266 - -* Fri May 01 2015 jchaloup - 0.16.0-2 -- Bump to upstream 72708d74b9801989ddbdc8403fc5ba4aafb7c1ef - related: #1211266 - -* Wed Apr 29 2015 jchaloup - 0.16.0-1 -- Bump to upstream 7dcce2eeb7f28643d599c8b6a244523670d17c93 - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-10 -- Add unit-test subpackage - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-9 -- Bump to upstream 99fc906f78cd2bcb08536c262867fa6803f816d5 - related: #1211266 - -* Mon Apr 27 2015 jchaloup - 0.15.0-8 -- Bump to upstream 051dd96c542799dfab39184d2a7c8bacf9e88d85 - related: #1211266 - -* Fri Apr 24 2015 jchaloup - 0.15.0-7 -- Bump to upstream 9f753c2592481a226d72cea91648db8fb97f0da8 - related: #1211266 - -* Thu Apr 23 2015 jchaloup - 0.15.0-6 -- Bump to upstream cf824ae5e07965ba0b4b15ee88e08e2679f36978 - related: #1211266 - -* Tue Apr 21 2015 jchaloup - 0.15.0-5 -- Bump to upstream 21788d8e6606038a0a465c97f5240b4e66970fbb - related: #1211266 - -* Mon Apr 20 2015 jchaloup - 0.15.0-4 -- Bump to upstream eb1ea269954da2ce557f3305fa88d42e3ade7975 - related: #1211266 - -* Fri Apr 17 2015 jchaloup - 0.15.0-3 -- Obsolete cadvisor as it is integrated in kubelet - related: #1211266 - -* Wed Apr 15 2015 jchaloup - 0.15.0-0.2.git0ea87e4 -- Bump to upstream 0ea87e486407298dc1e3126c47f4076b9022fb09 - related: #1211266 - -* Tue Apr 14 2015 jchaloup - 0.15.0-0.1.gitd02139d -- Bump to upstream d02139d2b454ecc5730cc535d415c1963a7fb2aa - related: #1211266 - -* Sun Apr 12 2015 jchaloup - 0.14.2-0.2.gitd577db9 -- Bump to upstream d577db99873cbf04b8e17b78f17ec8f3a27eca30 - -* Wed Apr 08 2015 jchaloup - 0.14.2-0.1.git2719194 -- Bump to upstream 2719194154ffd38fd1613699a9dd10a00909957e - Use etcd-2.0.8 and higher - -* Tue Apr 07 2015 jchaloup - 0.14.1-0.2.gitd2f4734 -- Bump to upstream d2f473465738e6b6f7935aa704319577f5e890ba - -* Thu Apr 02 2015 jchaloup - 0.14.1-0.1.gita94ffc8 -- Bump to upstream a94ffc8625beb5e2a39edb01edc839cb8e59c444 - -* Wed Apr 01 2015 jchaloup - 0.14.0-0.2.git8168344 -- Bump to upstream 81683441b96537d4b51d146e39929b7003401cd5 - -* Tue Mar 31 2015 jchaloup - 0.14.0-0.1.git9ed8761 -- Bump to upstream 9ed87612d07f75143ac96ad90ff1ff68f13a2c67 -- Remove [B]R from devel branch until the package has stable API - -* Mon Mar 30 2015 jchaloup - 0.13.2-0.6.git8a7a127 -- Bump to upstream 8a7a127352263439e22253a58628d37a93fdaeb2 - -* Fri Mar 27 2015 jchaloup - 0.13.2-0.5.git8d94c43 -- Bump to upstream 8d94c43e705824f23791b66ad5de4ea095d5bb32 - resolves: #1205362 - -* Wed Mar 25 2015 jchaloup - 0.13.2-0.4.git455fe82 -- Bump to upstream 455fe8235be8fd9ba0ce21bf4f50a69d42e18693 - -* Mon Mar 23 2015 jchaloup - 0.13.2-0.3.gitef75888 -- Remove runtime dependency on etcd - resolves: #1202923 - -* Sun Mar 22 2015 jchaloup - 0.13.2-0.2.gitef75888 -- Bump to upstream ef758881d108bb53a128126c503689104d17f477 - -* Fri Mar 20 2015 jchaloup - 0.13.2-0.1.gita8f2cee -- Bump to upstream a8f2cee8c5418676ee33a311fad57d6821d3d29a - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.9.git53b25a7 -- Bump to upstream 53b25a7890e31bdec6f2a95b32200d6cc27ae2ca - fix kube-proxy.service and kubelet - resolves: #1200919 #1200924 - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.8.git39dceb1 -- Bump to upstream 39dceb13a511a83963a766a439cb386d10764310 - -* Thu Mar 12 2015 Eric Paris - 0.12.0-0.7.gita3fd0a9 -- Move from /etc/tmpfiles.d to %%{_tmpfilesdir} - resolves: #1200969 - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.6.gita3fd0a9 -- Place contrib/init/systemd/tmpfiles.d/kubernetes.conf to /etc/tmpfiles.d/kubernetes.conf - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.5.gita3fd0a9 -- Bump to upstream a3fd0a9fd516bb6033f32196ae97aaecf8c096b1 - -* Tue Mar 10 2015 jchaloup - 0.12.0-0.4.gita4d871a -- Bump to upstream a4d871a10086436557f804930812f2566c9d4d39 - -* Fri Mar 06 2015 jchaloup - 0.12.0-0.3.git2700871 -- Bump to upstream 2700871b049d5498167671cea6de8317099ad406 - -* Thu Mar 05 2015 jchaloup - 0.12.0-0.2.git8b627f5 -- Bump to upstream 8b627f516fd3e4f62da90d401ceb3d38de6f8077 - -* Tue Mar 03 2015 jchaloup - 0.12.0-0.1.gitecca426 -- Bump to upstream ecca42643b91a7117de8cd385b64e6bafecefd65 - -* Mon Mar 02 2015 jchaloup - 0.11.0-0.5.git6c5b390 -- Bump to upstream 6c5b390160856cd8334043344ef6e08568b0a5c9 - -* Sat Feb 28 2015 jchaloup - 0.11.0-0.4.git0fec31a -- Bump to upstream 0fec31a11edff14715a1efb27f77262a7c3770f4 - -* Fri Feb 27 2015 jchaloup - 0.11.0-0.3.git08402d7 -- Bump to upstream 08402d798c8f207a2e093de5a670c5e8e673e2de - -* Wed Feb 25 2015 jchaloup - 0.11.0-0.2.git86434b4 -- Bump to upstream 86434b4038ab87ac40219562ad420c3cc58c7c6b - -* Tue Feb 24 2015 jchaloup - 0.11.0-0.1.git754a2a8 -- Bump to upstream 754a2a8305c812121c3845d8293efdd819b6a704 - turn off integration tests until "FAILED: unexpected endpoints: - timed out waiting for the condition" problem is resolved - Adding back devel subpackage ([B]R list outdated) - -* Fri Feb 20 2015 jchaloup - 0.10.1-0.3.git4c87805 -- Bump to upstream 4c87805870b1b22e463c4bd711238ef68c77f0af - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.2.git6f84bda -- Bump to upstream 6f84bdaba853872dbac69c84d3ab4b6964e85d8c - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.1.git7d6130e -- Bump to upstream 7d6130edcdfabd7dd2e6a06fdc8fe5e333f07f5c - -* Sat Feb 07 2015 jchaloup - 0.9.1-0.7.gitc9c98ab -- Bump to upstream c9c98ab19eaa6f0b2ea17152c9a455338853f4d0 - Since some dependencies are broken, we can not build Kubernetes from Fedora deps. - Switching to vendored source codes until Go draft is resolved - -* Wed Feb 04 2015 jchaloup - 0.9.1-0.6.git7f5ed54 -- Bump to upstream 7f5ed541f794348ae6279414cf70523a4d5133cc - -* Tue Feb 03 2015 jchaloup - 0.9.1-0.5.git2ac6bbb -- Bump to upstream 2ac6bbb7eba7e69eac71bd9acd192cda97e67641 - -* Mon Feb 02 2015 jchaloup - 0.9.1-0.4.gite335e2d -- Bump to upstream e335e2d3e26a9a58d3b189ccf41ceb3770d1bfa9 - -* Fri Jan 30 2015 jchaloup - 0.9.1-0.3.git55793ac -- Bump to upstream 55793ac2066745f7243c666316499e1a8cf074f0 - -* Thu Jan 29 2015 jchaloup - 0.9.1-0.2.gitca6de16 -- Bump to upstream ca6de16df7762d4fc9b4ad44baa78d22e3f30742 - -* Tue Jan 27 2015 jchaloup - 0.9.1-0.1.git3623a01 -- Bump to upstream 3623a01bf0e90de6345147eef62894057fe04b29 -- update tests for etcd-2.0 - -* Thu Jan 22 2015 jchaloup - 0.8.2-571.gitb2f287c -+- Bump to upstream b2f287c259d856f4c08052a51cd7772c563aff77 - -* Thu Jan 22 2015 Eric Paris - 0.8.2-570.gitb2f287c -- patch kubelet service file to use docker.service not docker.socket - -* Wed Jan 21 2015 jchaloup - 0.8.2-0.1.git5b04640 -- Bump to upstream 5b046406a957a1e7eda7c0c86dd7a89e9c94fc5f - -* Sun Jan 18 2015 jchaloup - 0.8.0-126.0.git68298f0 -- Add some missing dependencies -- Add devel subpackage - -* Fri Jan 09 2015 Eric Paris - 0.8.0-125.0.git68298f0 -- Bump to upstream 68298f08a4980f95dfbf7b9f58bfec1808fb2670 - -* Tue Dec 16 2014 Eric Paris - 0.7.0-18.0.git52e165a -- Bump to upstream 52e165a4fd720d1703ebc31bd6660e01334227b8 - -* Mon Dec 15 2014 Eric Paris - 0.6-297.0.git5ef34bf -- Bump to upstream 5ef34bf52311901b997119cc49eff944c610081b - -* Wed Dec 03 2014 Eric Paris -- Replace patch to use old googlecode/go.net/ with BuildRequires on golang.org/x/net/ - -* Tue Dec 02 2014 Eric Paris - 0.6-4.0.git993ef88 -- Bump to upstream 993ef88eec9012b221f79abe8f2932ee97997d28 - -* Mon Dec 01 2014 Eric Paris - 0.5-235.0.git6aabd98 -- Bump to upstream 6aabd9804fb75764b70e9172774002d4febcae34 - -* Wed Nov 26 2014 Eric Paris - 0.5-210.0.gitff1e9f4 -- Bump to upstream ff1e9f4c191342c24974c030e82aceaff8ea9c24 - -* Tue Nov 25 2014 Eric Paris - 0.5-174.0.git64e07f7 -- Bump to upstream 64e07f7fe03d8692c685b09770c45f364967a119 - -* Mon Nov 24 2014 Eric Paris - 0.5-125.0.git162e498 -- Bump to upstream 162e4983b947d2f6f858ca7607869d70627f5dff - -* Fri Nov 21 2014 Eric Paris - 0.5-105.0.git3f74a1e -- Bump to upstream 3f74a1e9f56b3c3502762930c0c551ccab0557ea - -* Thu Nov 20 2014 Eric Paris - 0.5-65.0.gitc6158b8 -- Bump to upstream c6158b8aa9c40fbf1732650a8611429536466b21 -- include go-restful build requirement - -* Tue Nov 18 2014 Eric Paris - 0.5-14.0.gitdf0981b -- Bump to upstream df0981bc01c5782ad30fc45cb6f510f365737fc1 - -* Tue Nov 11 2014 Eric Paris - 0.4-680.0.git30fcf24 -- Bump to upstream 30fcf241312f6d0767c7d9305b4c462f1655f790 - -* Mon Nov 10 2014 Eric Paris - 0.4-633.0.git6c70227 -- Bump to upstream 6c70227a2eccc23966d32ea6d558ee05df46e400 - -* Fri Nov 07 2014 Eric Paris - 0.4-595.0.gitb695650 -- Bump to upstream b6956506fa2682afa93770a58ea8c7ba4b4caec1 - -* Thu Nov 06 2014 Eric Paris - 0.4-567.0.git3b1ef73 -- Bump to upstream 3b1ef739d1fb32a822a22216fb965e22cdd28e7f - -* Thu Nov 06 2014 Eric Paris - 0.4-561.0.git06633bf -- Bump to upstream 06633bf4cdc1ebd4fc848f85025e14a794b017b4 -- Make spec file more RHEL/CentOS friendly - -* Tue Nov 04 2014 Eric Paris - 0.4-0.0.git4452163 -- rebase to v0.4 -- include man pages - -* Tue Oct 14 2014 jchaloup - 0.3-0.3.git98ac8e1 -- create /var/lib/kubelet -- Use bash completions from upstream -- Bump to upstream 98ac8e178fcf1627399d659889bcb5fe25abdca4 -- all by Eric Paris - -* Mon Sep 29 2014 Jan Chaloupka - 0.3-0.2.git88fdb65 -- replace * with coresponding files -- remove dependency on gcc - -* Wed Sep 24 2014 Eric Paris - 0.1-0.4.git6ebe69a -- prefer autosetup instead of setup (revert setup change in 0-0.3.git) -https://fedoraproject.org/wiki/Autosetup_packaging_draft -- revert version number to 0.1 - -* Mon Sep 08 2014 Lokesh Mandvekar - 0-0.3.git6ebe69a -- gopath defined in golang package already -- package owns /etc/kubernetes -- bash dependency implicit -- keep buildroot/$RPM_BUILD_ROOT macros consistent -- replace with macros wherever possible -- set version, release and source tarball prep as per -https://fedoraproject.org/wiki/Packaging:SourceURL#Github - -* Mon Sep 08 2014 Eric Paris -- make services restart automatically on error - -* Sat Sep 06 2014 Eric Paris -- update to upstream -- redo build to use project scripts -- use project scripts in %%check -- rework deletion of third_party packages to easily detect changes -- run apiserver and controller-manager as non-root - -* Mon Aug 11 2014 Adam Miller -- update to upstream -- decouple the rest of third_party - -* Thu Aug 7 2014 Eric Paris -- update to head -- update package to include config files - -* Wed Jul 16 2014 Colin Walters -- Initial package diff --git a/kubernetes/kubernetes-1.20.9/centos/kubernetes.spec.orig b/kubernetes/kubernetes-1.20.9/centos/kubernetes.spec.orig deleted file mode 100644 index fd43ef4cd..000000000 --- a/kubernetes/kubernetes-1.20.9/centos/kubernetes.spec.orig +++ /dev/null @@ -1,2282 +0,0 @@ -%if 0%{?fedora} -%global with_devel 1 -%global with_bundled 0 -%global with_debug 1 -%else -%global with_devel 0 -%global with_bundled 1 -%global with_debug 0 -%endif - -%if 0%{?with_debug} -# https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12 -%global _dwz_low_mem_die_limit 0 -%else -%global debug_package %{nil} -%endif - -%global provider github -%global provider_tld com -%global project kubernetes -%global repo kubernetes -# https://github.com/kubernetes/kubernetes - -%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} -%global import_path k8s.io/kubernetes -%global commit fc32d2f3698e36b93322a3465f63a14e9f0eaead -%global shortcommit %(c=%{commit}; echo ${c:0:7}) - -%global con_provider github -%global con_provider_tld com -%global con_project kubernetes -%global con_repo contrib -# https://github.com/kubernetes/contrib -%global con_provider_prefix %{con_provider}.%{con_provider_tld}/%{con_project}/%{con_repo} -%global con_commit 5b445f1c53aa8d6457523526340077935f62e691 -%global con_shortcommit %(c=%{con_commit}; echo ${c:0:7}) - -%global kube_version 1.10.0 -%global kube_git_version v%{kube_version} - -# Needed otherwise "version_ldflags=$(kube::version_ldflags)" doesn't work -%global _buildshell /bin/bash -%global _checkshell /bin/bash - -############################################## -Name: kubernetes -Version: %{kube_version} -Release: 1%{?dist} -Summary: Container cluster management -License: ASL 2.0 -URL: https://%{import_path} -ExclusiveArch: x86_64 aarch64 ppc64le s390x -Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz -Source1: https://%{con_provider_prefix}/archive/%{con_commit}/%{con_repo}-%{con_shortcommit}.tar.gz -Source3: kubernetes-accounting.conf -Source4: kubeadm.conf - -Source33: genmanpages.sh - -Patch3: build-with-debug-info.patch -#Patch4: make-test-cmd-run-over-hyperkube-based-kubectl.patch -#Patch5: make-e2e_node-run-over-distro-bins.patch - -# ppc64le -Patch16: fix-support-for-ppc64le.patch - -Patch20: use_go_build-is-not-fully-propagated-so-make-it-fixe.patch - -# It obsoletes cadvisor but needs its source code (literally integrated) -Obsoletes: cadvisor - -# kubernetes is decomposed into master and node subpackages -# require both of them for updates -Requires: kubernetes-master = %{version}-%{release} -Requires: kubernetes-node = %{version}-%{release} - -%description -%{summary} - -%if 0%{?with_devel} -%package devel -Summary: %{summary} -BuildArch: noarch - -Provides: golang(%{import_path}/cmd/genutils) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-apiserver/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-controller-manager/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kube-proxy/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubectl/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/kubelet/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/args) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/generators/normalization) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/install) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/v1) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/conversion-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/deepcopy-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/generator) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/go-to-protobuf/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/import-boss/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/namer) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/parser) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/set-gen/generators) = %{version}-%{release} -Provides: golang(%{import_path}/cmd/libs/go2idl/types) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/install) = %{version}-%{release} -Provides: golang(%{import_path}/federation/apis/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/federation/pkg/federation-controller/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/admission) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/annotations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/endpoints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/errors/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/meta/metatypes) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/rest/resttest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/testing/compat) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/unversioned/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apimachinery/registered) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v0) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/abac/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/apps/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authentication/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/authorization/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/autoscaling/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/v2alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/batch/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/certificates/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/componentconfig/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/extensions/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/imagepolicy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/policy/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/rbac/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apis/storage/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/audit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/apiserver/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authenticator/bearertoken) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/abac) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/authorizer/union) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/handlers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/auth/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/chaosclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/autoscaling/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/batch/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/core/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/extensions/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/rbac/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/internalclientset/typed/storage/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_2/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_3/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/batch/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/core/v1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/leaderelection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/metrics/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/record) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/restclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/testing/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/transport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/discovery/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/typed/dynamic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/adapters/internalclientset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/auth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/clientcmd/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/client/unversioned/testclient/simple) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/azure) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/cloudstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/fake) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/gce) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/mesos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/openstack) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/ovirt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/rackspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/cloudprovider/providers/vsphere) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/daemon) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/deployment/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/disruption) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/framework/informers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/garbagecollector/metaonly) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podautoscaler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/podgc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replicaset/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/replication) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/route) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/statusupdater) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/attachdetach/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/controller/volume/persistentvolume/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/conversion/queryparams) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/aws) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/credentialprovider/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/dns) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fieldpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/fields) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/openapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/options) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/genericapiserver/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/healthz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/httplog) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/hyperkube) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/rollout) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/set) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/templates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/editor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/cmd/util/jsonmerge) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/metricsutil) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/resource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubectl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/api/v1alpha1/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cadvisor/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/client) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/cm) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/container/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/custommetrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockershim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/dockertools) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/envvars) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/events) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/eviction) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/images) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/kuberuntime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/leaky) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/cni/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hairpin) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/hostport/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/kubenet) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/mock_network) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/network/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pleg) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/pod/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/results) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/prober/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/qos) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/remote) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rkt/mock_os) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/rktshim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/portforward) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/remotecommand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/server/stats) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/status) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/format) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/ioutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/queue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/util/sliceutils) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/populator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubelet/volumemanager/reconciler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/kubemark) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/master/ports) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/http) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/probe/tcp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/healthcheck) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/proxy/userspace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/evaluator/core) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/quota/install) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/subjectaccessreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/authorization/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/cachesize) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/certificates/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrole/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/clusterrolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/componentstatus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/configmap/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/daemonset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/deployment/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/endpoint/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/event/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/experimental/controller/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/registry) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/generic/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/horizontalpodautoscaler/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/ingress/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/job/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/limitrange/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/namespace/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/networkpolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/node/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolume/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/persistentvolumeclaim/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/petset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/pod/rest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/poddisruptionbudget/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podsecuritypolicy/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/podtemplate/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rangeallocation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/registrytest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/replicaset/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/resourcequota/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/role/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/rolebinding/policybased) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/scheduledjob/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/secret/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/securitycontextconstraints/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/allocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/ipallocator/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/service/portallocator/controller) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/serviceaccount/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/storageclass/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresource/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/thirdpartyresourcedata/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/registry/tokenreview) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/protobuf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/recognizer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/streaming) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/versioning) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/runtime/serializer/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/apparmor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/security/podsecuritypolicy/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontext) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/capabilities) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/group) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/seccomp) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/user) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/securitycontextconstraints/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/selection) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ssh) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/etcdtest) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/testing/testingcert) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/etcd3) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/storagebackend/factory) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/storage/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/ui) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/async) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/bandwidth) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/cache) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/certificates) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chmod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/chown) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/clock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/codeinspector) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/config) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/configz) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crlf) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/crypto) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/dbus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/diff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/ebtables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/env) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/errors) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/exec) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flock) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flowcontrol) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/flushwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/framer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/goroutinemap/exponentialbackoff) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/hash) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/homedir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/httpstream/spdy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/integer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/interrupt) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/intstr) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/io) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/iptables/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/jsonpath) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/keymutex) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/labels) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/limitwriter) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/logs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/maps) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/mount) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/net/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/node) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/oom) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/parsers) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/pod) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/procfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/proxy) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rand) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/replicaset) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/resourcecontainer) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/rlimit) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/runtime) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/selinux) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sets/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/slice) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strategicpatch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/strings) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/sysctl/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/system) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/term) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/threading) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/uuid) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/validation/field) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wait) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/workqueue) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/wsstream) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/util/yaml) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/prometheus) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/version/verflag) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/aws_ebs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_dd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/azure_file) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cephfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/cinder) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/configmap) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/downwardapi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/empty_dir) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/fc) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flexvolume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/flocker) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/gce_pd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/git_repo) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/glusterfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/host_path) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/iscsi) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/nfs) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/quobyte) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/rbd) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/secret) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/testing) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/nestedpendingoperations) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/operationexecutor) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/types) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/util/volumehelper) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/volume/vsphere_volume) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/json) = %{version}-%{release} -Provides: golang(%{import_path}/pkg/watch/versioned) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/cmd/kube-scheduler/app/options) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/admit) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/alwayspullimages) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/antiaffinity) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/deny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/exec) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/imagepolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/initialresources) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/limitranger) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/autoprovision) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/exists) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/namespace/lifecycle) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/persistentvolume/label) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/resourcequota) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/security/podsecuritypolicy) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/securitycontext/scdeny) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/serviceaccount) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/admission/storageclass/default) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/allow) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/keystone) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/password/passwordfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/basicauth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/union) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/request/x509) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/oidc/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokenfile) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/tokentest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authenticator/token/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/rbac) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/auth/authorizer/webhook) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/gcp) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/client/auth/oidc) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/predicates) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithm/priorities/util) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/algorithmprovider/defaults) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/latest) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/v1) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/api/validation) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/factory) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/metrics) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/schedulercache) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/scheduler/testing) = %{version}-%{release} -Provides: golang(%{import_path}/plugin/pkg/webhook) = %{version}-%{release} - -%description devel -Libraries for building packages importing k8s.io/kubernetes. -Currently, the devel is not suitable for development. -It is meant only as a buildtime dependency for other projects. - -This package contains library source intended for -building other packages which use %{project}/%{repo}. -%endif - -############################################## -%package unit-test -Summary: %{summary} - for running unit tests - -# below Rs used for testing -Requires: golang >= 1.2-7 -Requires: etcd >= 2.0.9 -Requires: hostname -Requires: rsync -Requires: NetworkManager - -%description unit-test -%{summary} - for running unit tests - -############################################## -%package master -Summary: Kubernetes services for master host - -BuildRequires: golang >= 1.2-7 -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: kubernetes-client = %{version}-%{release} - -# if node is installed with node, version and release must be the same -Conflicts: kubernetes-node < %{version}-%{release} -Conflicts: kubernetes-node > %{version}-%{release} - -%description master -Kubernetes services for master host - -############################################## -%package node -Summary: Kubernetes services for node host - -%if 0%{?fedora} >= 27 -Requires: (docker or docker-ce) -Suggests: docker -%else -Requires: docker -%endif -Requires: conntrack-tools - -BuildRequires: golang >= 1.2-7 -BuildRequires: systemd -BuildRequires: rsync -BuildRequires: go-md2man -BuildRequires: go-bindata - -Requires(pre): shadow-utils -Requires: socat -Requires: kubernetes-client = %{version}-%{release} - -# if master is installed with node, version and release must be the same -Conflicts: kubernetes-master < %{version}-%{release} -Conflicts: kubernetes-master > %{version}-%{release} - -%description node -Kubernetes services for node host - -############################################## -%package kubeadm -Summary: Kubernetes tool for standing up clusters -Requires: kubernetes-node = %{version}-%{release} -Requires: containernetworking-cni - -%description kubeadm -Kubernetes tool for standing up clusters - -############################################## -%package client -Summary: Kubernetes client tools - -BuildRequires: golang >= 1.2-7 -BuildRequires: go-bindata - -%description client -Kubernetes client tools like kubectl - -############################################## - -%prep -%setup -q -n %{con_repo}-%{con_commit} -T -b 1 -%setup -q -n %{repo}-%{commit} - -%if 0%{?with_debug} -%patch3 -p1 -%endif - -%patch20 -p1 - -# copy contrib folder -mkdir contrib -cp -r ../%{con_repo}-%{con_commit}/init contrib/. - -#src/k8s.io/kubernetes/pkg/util/certificates -# Patch the code to remove eliptic.P224 support -for dir in vendor/github.com/google/certificate-transparency/go/x509 pkg/util/certificates; do - if [ -d "${dir}" ]; then - pushd ${dir} - sed -i "/^[^=]*$/ s/oidNamedCurveP224/oidNamedCurveP256/g" *.go - sed -i "/^[^=]*$/ s/elliptic\.P224/elliptic.P256/g" *.go - popd - fi -done - -# Move all the code under src/k8s.io/kubernetes directory -mkdir -p src/k8s.io/kubernetes -mv $(ls | grep -v "^src$") src/k8s.io/kubernetes/. - -# Patch tests to be run over distro bins -#patch4 -p1 -#patch5 -p1 - -%ifarch ppc64le -%patch16 -p1 -%endif - -############### - -%build -pushd src/k8s.io/kubernetes/ -export KUBE_GIT_TREE_STATE="clean" -export KUBE_GIT_COMMIT=%{commit} -export KUBE_GIT_VERSION=%{kube_git_version} -export KUBE_EXTRA_GOPATH=$(pwd)/Godeps/_workspace - -# https://bugzilla.redhat.com/show_bug.cgi?id=1392922#c1 -%ifarch ppc64le -export GOLDFLAGS='-linkmode=external' -%endif -make WHAT="--use_go_build cmd/hyperkube cmd/kube-apiserver cmd/kubeadm" - -# convert md to man -./hack/generate-docs.sh || true -pushd docs -pushd admin -cp kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md .. -popd -cp %{SOURCE33} genmanpages.sh -bash genmanpages.sh -popd -popd - -%install -pushd src/k8s.io/kubernetes/ -. hack/lib/init.sh -kube::golang::setup_env - -%ifarch ppc64le -output_path="_output/local/go/bin" -%else -output_path="${KUBE_OUTPUT_BINPATH}/$(kube::golang::host_platform)" -%endif - -install -m 755 -d %{buildroot}%{_bindir} - -echo "+++ INSTALLING hyperkube" -install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/hyperkube - -echo "+++ INSTALLING kube-apiserver" -install -p -m 754 -t %{buildroot}%{_bindir} ${output_path}/kube-apiserver - -echo "+++ INSTALLING kubeadm" -install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kubeadm -install -d -m 0755 %{buildroot}/%{_sysconfdir}/systemd/system/kubelet.service.d -install -p -m 0644 -t %{buildroot}/%{_sysconfdir}/systemd/system/kubelet.service.d %{SOURCE4} - -binaries=(kube-controller-manager kube-scheduler kube-proxy kubelet kubectl) -for bin in "${binaries[@]}"; do - echo "+++ HARDLINKING ${bin} to hyperkube" - ln %{buildroot}%{_bindir}/hyperkube %{buildroot}%{_bindir}/${bin} -done - -# install the bash completion -install -d -m 0755 %{buildroot}%{_datadir}/bash-completion/completions/ -%{buildroot}%{_bindir}/kubectl completion bash > %{buildroot}%{_datadir}/bash-completion/completions/kubectl - -# install config files -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name} -install -m 644 -t %{buildroot}%{_sysconfdir}/%{name} contrib/init/systemd/environ/* - -# install service files -install -d -m 0755 %{buildroot}%{_unitdir} -install -m 0644 -t %{buildroot}%{_unitdir} contrib/init/systemd/*.service - -# install manpages -install -d %{buildroot}%{_mandir}/man1 -install -p -m 644 docs/man/man1/* %{buildroot}%{_mandir}/man1 -rm %{buildroot}%{_mandir}/man1/cloud-controller-manager.* -# from k8s tarball copied docs/man/man1/*.1 - -# install the place the kubelet defaults to put volumes -install -d %{buildroot}%{_sharedstatedir}/kubelet - -# place contrib/init/systemd/tmpfiles.d/kubernetes.conf to /usr/lib/tmpfiles.d/kubernetes.conf -install -d -m 0755 %{buildroot}%{_tmpfilesdir} -install -p -m 0644 -t %{buildroot}/%{_tmpfilesdir} contrib/init/systemd/tmpfiles.d/kubernetes.conf -mkdir -p %{buildroot}/run -install -d -m 0755 %{buildroot}/run/%{name}/ - -# enable CPU and Memory accounting -install -d -m 0755 %{buildroot}/%{_sysconfdir}/systemd/system.conf.d -install -p -m 0644 -t %{buildroot}/%{_sysconfdir}/systemd/system.conf.d %{SOURCE3} - -# source codes for building projects -%if 0%{?with_devel} -install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ -echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list -# find all *.go but no *_test.go files and generate devel.file-list -for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do - echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list - install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file) - cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file - echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list -done -%endif - -%if 0%{?with_devel} -sort -u -o devel.file-list devel.file-list -%endif - -popd - -%if 0%{?with_devel} -mv src/k8s.io/kubernetes/devel.file-list . -%endif - -mv src/k8s.io/kubernetes/*.md . -mv src/k8s.io/kubernetes/LICENSE . - - -# place files for unit-test rpm -install -d -m 0755 %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -# basically, everything from the root directory is needed -# unit-tests needs source code -# integration tests needs docs and other files -# test-cmd.sh atm needs cluster, examples and other -cp -a src %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/ -rm -rf %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/_output -cp -a *.md %{buildroot}%{_sharedstatedir}/kubernetes-unit-test/src/k8s.io/kubernetes/ - -%check -# Fedora, RHEL7 and CentOS are tested via unit-test subpackage -if [ 1 != 1 ]; then -echo "******Testing the commands*****" -hack/test-cmd.sh -echo "******Benchmarking kube********" -hack/benchmark-go.sh - -# In Fedora 20 and RHEL7 the go cover tools isn't available correctly -%if 0%{?fedora} >= 21 -echo "******Testing the go code******" -hack/test-go.sh -echo "******Testing integration******" -hack/test-integration.sh --use_go_build -%endif -fi - -############################################## -%files -# empty as it depends on master and node - -############################################## -%files master -%license LICENSE -%doc *.md -%{_mandir}/man1/kube-apiserver.1* -%{_mandir}/man1/kube-controller-manager.1* -%{_mandir}/man1/kube-scheduler.1* -%attr(754, -, kube) %caps(cap_net_bind_service=ep) %{_bindir}/kube-apiserver -%{_bindir}/kube-controller-manager -%{_bindir}/kube-scheduler -%{_bindir}/hyperkube -%{_unitdir}/kube-apiserver.service -%{_unitdir}/kube-controller-manager.service -%{_unitdir}/kube-scheduler.service -%dir %{_sysconfdir}/%{name} -%config(noreplace) %{_sysconfdir}/%{name}/apiserver -%config(noreplace) %{_sysconfdir}/%{name}/scheduler -%config(noreplace) %{_sysconfdir}/%{name}/config -%config(noreplace) %{_sysconfdir}/%{name}/controller-manager -%{_tmpfilesdir}/kubernetes.conf -%verify(not size mtime md5) %attr(755, kube,kube) %dir /run/%{name} - -############################################## -%files node -%license LICENSE -%doc *.md -%{_mandir}/man1/kubelet.1* -%{_mandir}/man1/kube-proxy.1* -%{_bindir}/kubelet -%{_bindir}/kube-proxy -%{_bindir}/hyperkube -%{_unitdir}/kube-proxy.service -%{_unitdir}/kubelet.service -%dir %{_sharedstatedir}/kubelet -%dir %{_sysconfdir}/%{name} -%config(noreplace) %{_sysconfdir}/%{name}/config -%config(noreplace) %{_sysconfdir}/%{name}/kubelet -%config(noreplace) %{_sysconfdir}/%{name}/proxy -%config(noreplace) %{_sysconfdir}/systemd/system.conf.d/kubernetes-accounting.conf -%{_tmpfilesdir}/kubernetes.conf -%verify(not size mtime md5) %attr(755, kube,kube) %dir /run/%{name} - -############################################## -%files kubeadm -%license LICENSE -%doc *.md -%{_mandir}/man1/kubeadm.1* -%{_mandir}/man1/kubeadm-* -%{_bindir}/kubeadm -%dir %{_sysconfdir}/systemd/system/kubelet.service.d -%config(noreplace) %{_sysconfdir}/systemd/system/kubelet.service.d/kubeadm.conf - -############################################## -%files client -%license LICENSE -%doc *.md -%{_mandir}/man1/kubectl.1* -%{_mandir}/man1/kubectl-* -%{_bindir}/kubectl -%{_bindir}/hyperkube -%{_datadir}/bash-completion/completions/kubectl - -############################################## -%files unit-test -%{_sharedstatedir}/kubernetes-unit-test/ - -%if 0%{?with_devel} -%files devel -f devel.file-list -%doc *.md -%dir %{gopath}/src/k8s.io -%endif - -############################################## - -%pre master -getent group kube >/dev/null || groupadd -r kube -getent passwd kube >/dev/null || useradd -r -g kube -d / -s /sbin/nologin \ - -c "Kubernetes user" kube - -%post master -%systemd_post kube-apiserver kube-scheduler kube-controller-manager - -%preun master -%systemd_preun kube-apiserver kube-scheduler kube-controller-manager - -%postun master -%systemd_postun - - -%pre node -getent group kube >/dev/null || groupadd -r kube -getent passwd kube >/dev/null || useradd -r -g kube -d / -s /sbin/nologin \ - -c "Kubernetes user" kube - -%post node -%systemd_post kubelet kube-proxy -# If accounting is not currently enabled systemd reexec -if [[ `systemctl show docker kubelet | grep -q -e CPUAccounting=no -e MemoryAccounting=no; echo $?` -eq 0 ]]; then - systemctl daemon-reexec -fi - -%preun node -%systemd_preun kubelet kube-proxy - -%postun node -%systemd_postun - -############################################ -%changelog -* Tue Mar 27 2018 Spyros Trigazis - 1.10.0-1 -- Bump to upstream v1.10.0 - -* Thu Mar 22 2018 Spyros Trigazis - 1.9.6-1 -- Bump to upstream v1.9.6 - -* Tue Mar 20 2018 Jan Chaloupka - 1.9.5-1 -- Bump to upstream v1.9.5 - resolves: #1554420 - -* Sun Feb 11 2018 Spyros Trigazis - 1.9.3-1 -- Bump to upstream v1.9.3 - -* Fri Feb 09 2018 Jan Chaloupka - 1.9.1-5 -- Add --fail-swap-on=false flag to the /etc/kubernetes/kubelet - resolves: #1542476 - -* Thu Feb 08 2018 Igor Gnatenko - 1.9.1-4 -- Escape macro in %%changelog - -* Wed Feb 07 2018 Fedora Release Engineering - 1.9.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Mon Jan 15 2018 Jan Chaloupka - 1.9.1-2 -- If docker is not available, try docker-ce instead (use boolean dependencies) - resolves: #1534508 - -* Fri Jan 12 2018 Spyros Trigazis - 1.9.1-1 -- Update to upstream v1.9.1 - resolves #1533794 - -* Tue Oct 24 2017 Jan Chaloupka - 1.8.1-1 -- Update to upstream v1.8.1 - resolves: #1497135 - -* Mon Oct 02 2017 Jan Chaloupka - 1.8.0-1 -- Update to upstream v1.8.0 - related: #1497625 - -* Mon Oct 02 2017 Jan Chaloupka - 1.7.7-1 -- Update to upstream v1.7.7 - resolves: #1497625 - -* Mon Sep 18 2017 Jan Chaloupka - 1.7.6-1 -- Update to upstream v1.7.6 - resolves: #1492551 - -* Mon Sep 11 2017 Jan Chaloupka - 1.7.5-1 -- Update to upstream v1.7.5 - resolves: #1490316 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.4-1 -- Fix the version - related: #1482874 - -* Fri Aug 18 2017 Jan Chaloupka - 1.7.3-2 -- Update to upstream v1.7.4 - resolves: #1482874 - -* Tue Aug 08 2017 Jan Chaloupka - 1.7.3-1 -- Update to upstream v1.7.3 - resolves: #1479685 - -* Thu Aug 03 2017 Fedora Release Engineering - 1.7.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Sun Jul 30 2017 Florian Weimer - 1.7.2-3 -- Rebuild with binutils fix for ppc64le (#1475636) - -* Wed Jul 26 2017 Fedora Release Engineering - 1.7.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.2-1 -- Update to upstream v1.7.2 - -* Mon Jul 24 2017 Jan Chaloupka - 1.7.1-2 -- Sync kubeadm.conf with upstream service configuration (set Restart,StartLimitInterval,RestartSec) - -* Fri Jul 14 2017 Jan Chaloupka - 1.7.1-1 -- Update to upstream v1.7.1 - resolves: #1471767 - -* Sat Jul 08 2017 Jan Chaloupka - 1.6.7-1 -- Update to upstream v1.6.7 - resolves: #1468823 - resolves: #1468752 - -* Fri May 19 2017 Timothy St. Clair - 1.6.4-1 -- Add kubeadm subpackage to enable upstream deployments - -* Thu May 18 2017 Jan Chaloupka - 1.6.3-1 -- Update to upstream v1.6.3 - resolves: #1452101 - -* Fri May 12 2017 Jan Chaloupka - 1.6.2-2 -- Extend archs with s390x - resolves: #1400000 - -* Tue May 02 2017 Jan Chaloupka - 1.6.2-1 -- Update to upstream v1.6.2 - resolves: #1447338 - -* Tue Apr 11 2017 Jan Chaloupka - 1.6.1-1 -- Update to upstream v1.6.1 - related: #1422889 - -* Fri Mar 31 2017 Jan Chaloupka - 1.5.6-1 -- Update to upstream v1.5.6 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.5-4 -- Update to upstream v1.5.5 - related: #1422889 - -* Mon Mar 27 2017 Jan Chaloupka - 1.5.4-3 -- re-enable debug-info - related: #1422889 - -* Thu Mar 09 2017 Jan Chaloupka - 1.5.4-2 -- Bump to upstream 7243c69eb523aa4377bce883e7c0dd76b84709a1 - related: #1422889 - -* Thu Feb 16 2017 Jan Chaloupka - 1.5.3-1 -- Update to upstream v1.5.3 - resolves: #1422889 - -* Fri Feb 10 2017 Fedora Release Engineering - 1.5.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Jan 18 2017 Jan Chaloupka - 1.5.2-2 -- fix rootScopeNaming generate selfLink - resolves: #1413997 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.2-1 -- Bump version as well - related: #1412996 - -* Fri Jan 13 2017 Jan Chaloupka - 1.5.1-2 -- Bump to upstream 1.5.2 - resolves: #1412996 - -* Thu Jan 05 2017 Jan Chaloupka - 1.5.1-1 -- Bump to upstream 1.5.1 - resolves: #1410186 - -* Wed Jan 04 2017 Jan Chaloupka - 1.4.7-2 -- Generate the md files before they are converted to man pages - resolves: #1409943 - -* Mon Dec 12 2016 Jan Chaloupka - 1.4.7-1 -- Bump to upstream v1.4.7 - resolves: #1403823 - New conntrack-tools dependency of kube-proxy - Build kubernetes on ppc64le with linkmode=external - resolves: #1392922 - -* Mon Nov 14 2016 jchaloup - 1.4.5-3 -- Patch unit-test subpackage to run tests over k8s distro binaries - -* Wed Nov 09 2016 jchaloup - 1.4.5-2 -- Add missing if devel around generated devel.file-list - related: #1390074 - -* Tue Nov 08 2016 jchaloup - 1.4.5-1 -- Bump to upstream v1.4.5 (flip back to upstream based Kubernetes) - related: #1390074 - -* Mon Oct 31 2016 jchaloup - 1.4.0-0.1.beta3.git52492b4 -- Update to origin v1.4.0-alpha.0 (ppc64le and arm unbuildable with the current golang version) - resolves: #1390074 - -* Mon Oct 24 2016 jchaloup - 1.3.0-0.4.git52492b4 -- Update to origin v1.3.1 - resolves: #1388092 - -* Thu Sep 08 2016 jchaloup - 1.3.0-0.3.rc1.git507d3a7 -- Update to origin v1.3.0-rc1 - resolves: #1374361 - -* Thu Aug 11 2016 Dennis Gilmore -1.3.0-0.2.git4a3f9c5 -- enable armv7hl and aarch64 - -* Tue Aug 09 2016 jchaloup - 1.3.0-0.1.git4a3f9c5 -- Update to origin v1.3.0-alpha.3 - resolves: #1365601 - -* Thu Jul 21 2016 Fedora Release Engineering - 1.2.0-0.27.git4a3f9c5 -- https://fedoraproject.org/wiki/Changes/golang1.7 - -* Sun Jul 17 2016 jchaloup - 1.2.0-0.26.git4a3f9c5 -- Update to origin v1.2.1 - resolves: #1357261 - -* Wed Jul 13 2016 jchaloup - 1.2.0-0.25.git4a3f9c5 -- Enable CPU and Memory accounting on a node - -* Wed Jun 29 2016 jchaloup - 1.2.0-0.24.git4a3f9c5 -- Be more verbose about devel subpackage - resolves: #1269449 - -* Tue Jun 28 2016 jchaloup - 1.2.0-0.23.git4a3f9c5 -- Own /run/kubernetes directory - resolves: #1264699 - -* Sat May 28 2016 jchaloup - 1.2.0-0.22.git4a3f9c5 -- Bump to origin v1.2.0 - resolves: #1340643 - -* Wed May 04 2016 jchaloup - 1.2.0-0.21.git4a3f9c5 -- Extend uni-test subpackage to run other tests - -* Mon Apr 25 2016 jchaloup - 1.2.0-0.20.git4a3f9c5 -- Update support for ppc64le to use go compiler - related: #1306214 - -* Thu Apr 21 2016 jchaloup - 1.2.0-0.19.git4a3f9c5 -- Fix support for ppc64le - related: #1306214 - -* Tue Apr 19 2016 jchaloup - 1.2.0-0.18.git4a3f9c5 -- Bump to origin v1.1.6 - resolves: #1328357 - -* Mon Apr 11 2016 jchaloup - 1.2.0-0.17.alpha6.git4a3f9c5 -- Don't disable extensions/v1beta1 by default to conform with upstream documentation - -* Wed Mar 30 2016 jchaloup - 1.2.0-0.16.alpha6.git4a3f9c5 - Update to origin's v1.1.5 - Build on ppc64le as well - resolves: #1306214 - -* Tue Mar 08 2016 jchaloup - 1.2.0-0.15.alpha6.gitf0cd09a -- hyperkube.server: don't parse args for any command - -* Fri Mar 04 2016 jchaloup - 1.2.0-0.14.alpha6.gitf0cd09a -- Disable extensions/v1beta1 implicitly - -* Tue Mar 01 2016 jchaloup - 1.2.0-0.13.alpha6.gitf0cd09a -- Hyperkube checks flags of individual commands/servers even if it does not define their flags. - Thus resulting in 'uknown shorthand flag' error - -* Mon Feb 29 2016 jchaloup - 1.2.0-0.12.alpha6.gitf0cd09a -- Disable v1beta3 -- hyperkube-kubectl-dont shift os.Args - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.11.alpha6.gitf0cd09a -- add kube- prefix to controller-manager, proxy and scheduler - -* Fri Feb 26 2016 jchaloup - 1.2.0-0.10.alpha6.gitf0cd09a -- Hardlink kube-controller-manager, kuber-scheduler, kubectl, kubelet and kube-proxy into hyperkube -- Keep kube-apiserver binary as it is (it has different permission and capabilities) - -* Thu Feb 25 2016 jchaloup - 1.2.0-0.9.alpha6.gitf0cd09a -- Fix Content-Type of docker client response - resolves: #1311861 - -* Mon Feb 22 2016 Fedora Release Engineering - 1.2.0-0.8.alpha6.gitf0cd09a -- https://fedoraproject.org/wiki/Changes/golang1.6 - -* Mon Feb 22 2016 jchaloup - 1.2.0-0.7.alpha6.git4c8e6f4 -- Bump to origin 1.1.3 - kube-version-change command replaced with kubectl convert (check out docs/admin/cluster-management.md) - related: 1295066 - -* Thu Feb 04 2016 Fedora Release Engineering - 1.2.0-0.6.alpha1.git4c8e6f4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 21 2016 jchaloup - 1.2.0-0.5.alpha1.git4c8e6f4 -- Bump to upstream e1d9873c1d5711b83fd3dd7eefe83a88ceb92c08 - related: #1291860 - -* Thu Jan 07 2016 jchaloup - 1.2.0-0.4.alpha1.git4c8e6f4 -- Move definition of all version, git and commit macros at one place - resolves: #1291860 - -* Fri Jan 01 2016 jchaloup - 1.2.0-0.3.alpha1.git4c8e6f4 -- Bump to upstream bf56e235826baded1772fb340266b8419c3e8f30 - Rebase to origin's "v1.1.0.1 - Security Update to v1.1" release - resolves: #1295066 - -* Thu Nov 26 2015 jchaloup - 1.2.0-0.2.alpha1.git4c8e6f4 -- Bump to origin upstream a41c9ff38d52fd508481c3c2bac13d52871fde02 -- Build kubernetes from origin's Godeps using hack/build-go.sh - origin's Godeps = kubernetes upstream + additional patches - -* Tue Oct 20 2015 jchaloup - 1.2.0-0.1.alpha1.git4c8e6f4 -- Bump to upstream 403de3874fba420fd096f2329b45fe2f5ae97e46 - related: #1211266 - -* Wed Oct 14 2015 jchaloup - 1.1.0-0.41.alpha1.gite9a6ef1 -- Bump to origin upstream e9a6ef1cd4c29d45730289a497d18b19d7ba450d - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.40.alpha1.git5f38cb0 -- Add missing short option for --server of kubectl -- Update unit-test-subpackage (only test-cmd.sh atm) - related: #1211266 - -* Fri Oct 09 2015 jchaloup - 1.1.0-0.39.alpha1.git5f38cb0 -- Add normalization of flags - related: #1211266 - -* Fri Oct 02 2015 jchaloup - 1.1.0-0.38.alpha1.git5f38cb0 -- Restore unit-test subpackage (not yet tested) - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.37.alpha1.git5f38cb0 -- Do not unset default cluster, otherwise k8s ends with error when no cluster set - related: #1211266 - -* Wed Sep 30 2015 jchaloup - 1.1.0-0.36.alpha0.git5f38cb0 -- Bump to o4n 5f38cb0e98c9e854cafba9c7f98dafd51e955ad8 - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.35.alpha1.git2695cdc -- Update git version of k8s and o4n, add macros - related: #1211266 - -* Tue Sep 29 2015 jchaloup - 1.1.0-0.34.alpha1.git2695cdc -- Built k8s from o4n tarball -- Bump to upstream 2695cdcd29a8f11ef60278758e11f4817daf3c7c - related: #1211266 - -* Tue Sep 22 2015 jchaloup - 1.1.0-0.33.alpha1.git09cf38e -- Bump to upstream 09cf38e9a80327e2d41654db277d00f19e2c84d0 - related: #1211266 - -* Thu Sep 17 2015 jchaloup - 1.1.0-0.32.alpha1.git400e685 -- Bump to upstream 400e6856b082ecf4b295568acda68d630fc000f1 - related: #1211266 - -* Wed Sep 16 2015 jchaloup - 1.1.0-0.31.gitd549fc4 -- Bump to upstream d549fc400ac3e5901bd089b40168e1e6fb17341d - related: #1211266 - -* Tue Sep 15 2015 jchaloup - 1.1.0-0.30.gitc9570e3 -- Bump to upstream c9570e34d03c6700d83f796c0125d17c5064e57d - related: #1211266 - -* Mon Sep 14 2015 jchaloup - 1.1.0-0.29.git86b4e77 -- Bump to upstream 86b4e777e1947c1bc00e422306a3ca74cbd54dbe - related: #1211266 - -* Thu Sep 10 2015 jchaloup - 1.1.0-0.28.gitf867ba3 -- Bump to upstream f867ba3ba13e3dad422efd21c74f52b9762de37e - related: #1211266 - -* Wed Sep 09 2015 jchaloup - 1.1.0-0.27.git0f4fa4e -- Bump to upstream 0f4fa4ed25ae9a9d1824fe55aeefb4d4ebfecdfd - related: #1211266 - -* Tue Sep 08 2015 jchaloup - 1.1.0-0.26.git196f58b -- Bump to upstream 196f58b9cb25a2222c7f9aacd624737910b03acb - related: #1211266 - -* Mon Sep 07 2015 jchaloup - 1.1.0-0.25.git96e0ed5 -- Bump to upstream 96e0ed5749608d4cc32f61b3674deb04c8fa90ad - related: #1211266 - -* Sat Sep 05 2015 jchaloup - 1.1.0-0.24.git2e2def3 -- Bump to upstream 2e2def36a904fe9a197da5fc70e433e2e884442f - related: #1211266 - -* Fri Sep 04 2015 jchaloup - 1.1.0-0.23.gite724a52 -- Bump to upstream e724a5210adf717f62a72162621ace1e08730c75 - related: #1211266 - -* Thu Sep 03 2015 jchaloup - 1.1.0-0.22.gitb6f2f39 -- Bump to upstream b6f2f396baec5105ff928cf61903c2c368259b21 - related: #1211266 - -* Wed Sep 02 2015 jchaloup - 1.1.0-0.21.gitb4a3698 -- Bump to upstream b4a3698faed81410468eccf9f328ca6df3d0cca3 - related: #1211266 - -* Tue Sep 01 2015 jchaloup - 1.1.0-0.20.git2f9652c -- Bump to upstream 2f9652c7f1d4b8f333c0b5c8c1270db83b913436 - related: #1211266 - -* Mon Aug 31 2015 jchaloup - 1.1.0-0.19.git66a644b -- Bump to upstream 66a644b275ede9ddb98eb3f76e8d1840cafc2147 - related: #1211266 - -* Thu Aug 27 2015 jchaloup - 1.1.0-0.18.gitab73849 -- Bump to upstream ab7384943748312f5e9294f42d42ed3983c7c96c - related: #1211266 - -* Wed Aug 26 2015 jchaloup - 1.1.0-0.17.git00e3442 -- Bump to upstream 00e34429e0242323ed34347cf0ab65b3d62b21f7 - related: #1211266 - -* Tue Aug 25 2015 jchaloup - 1.1.0-0.16.gita945785 -- Bump to upstream a945785409d5b68f3a2721d2209300edb5abf1ce - related: #1211266 - -* Mon Aug 24 2015 jchaloup - 1.1.0-0.15.git5fe7029 -- Bump to upstream 5fe7029e688e1e5873a0b95a622edda5b5156d2b - related: #1211266 - -* Fri Aug 21 2015 jchaloup - 1.1.0-0.14.gitb6f18c7 -- Bump to upstream b6f18c7ce08714c8d4f6019463879a164a41750e - related: #1211266 - -* Thu Aug 20 2015 jchaloup - 1.1.0-0.13.git44fa48e -- Bump to upstream 44fa48e5af44d3e988fa943d96a2de732d8cc666 - related: #1211266 - -* Wed Aug 19 2015 jchaloup - 1.1.0-0.12.gitb5a4a54 -- Bump to upstream b5a4a548df0cffb99bdcc3b9b9e48d4025d0541c - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.11.git919c7e9 -- Bump to upstream 919c7e94e23d2dcd5bdd96896e0a7990f9ae3338 - related: #1211266 - -* Tue Aug 18 2015 jchaloup - 1.1.0-0.10.git280b66c -- Bump to upstream 280b66c9012c21e253acd4e730f8684c39ca08ec - related: #1211266 - -* Mon Aug 17 2015 jchaloup - 1.1.0-0.9.git081d9c6 -- Bump to upstream 081d9c64d25c20ec16035036536511811118173d - related: #1211266 - -* Fri Aug 14 2015 jchaloup - 1.1.0-0.8.git8dcbeba -- Bump to upstream 8dcbebae5ef6a7191d9dfb65c68833c6852a21ad - related: #1211266 - -* Thu Aug 13 2015 jchaloup - 1.1.0-0.7.git968cbbe -- Bump to upstream 968cbbee5d4964bd916ba379904c469abb53d623 - related: #1211266 - -* Wed Aug 12 2015 jchaloup - 1.1.0-0.6.gitc91950f -- Bump to upstream c91950f01cb14ad47486dfcd2fdfb4be3ee7f36b - related: #1211266 - -* Tue Aug 11 2015 jchaloup - 1.1.0-0.5.gite44c8e6 -- Bump to upstream e44c8e6661c931f7fd434911b0d3bca140e1df3a - related: #1211266 - -* Mon Aug 10 2015 jchaloup - 1.1.0-0.4.git2bfa9a1 -- Bump to upstream 2bfa9a1f98147cfdc2e9f4cf50e2c430518d91eb - related: #1243827 - -* Thu Aug 06 2015 jchaloup - 1.1.0-0.3.git4c42e13 -- Bump to upstream 4c42e1302d3b351f3cb6074d32aa420bbd45e07d -- Change import path prefix to k8s.io/kubernetes - related: #1243827 - -* Wed Aug 05 2015 jchaloup - 1.1.0-0.2.git159ba48 -- Bump to upstream 159ba489329e9f6ce422541e13f97e1166090ec8 - related: #1243827 - -* Sat Aug 01 2015 jchaloup - 1.1.0-0.1.git6129d3d -- Bump to upstream 6129d3d4eb80714286650818081a64ce2699afed - related: #1243827 - -* Fri Jul 31 2015 jchaloup - 1.0.0-0.18.gitff058a1 -- Bump to upstream ff058a1afeb63474f7a35805941f3b07c27aae0f - related: #1243827 - -* Thu Jul 30 2015 jchaloup - 1.0.0-0.17.git769230e -- Bump to upstream 769230e735993bb0bf924279a40593c147c9a6ab - related: #1243827 - -* Wed Jul 29 2015 jchaloup - 1.0.0-0.16.gitdde7222 -- Bump to upstream dde72229dc9cbbdacfb2e44b22d9d5b357027020 - related: #1243827 - -* Tue Jul 28 2015 jchaloup - 1.0.0-0.15.gitc5bffaa -- Bump to upstream c5bffaaf3166513da6259c44a5d1ba8e86bea5ce - related: #1243827 - -* Sat Jul 25 2015 jchaloup - 1.0.0-0.14.git5bd82ff -- Bump to upstream 5bd82ffe6da8f4e72e71b362635e558bfc412106 - related: #1243827 - -* Fri Jul 24 2015 jchaloup - 1.0.0-0.13.git291acd1 -- Bump to upstream 291acd1a09ac836ec7524b060a19a6498d9878dd - related: #1243827 - -* Thu Jul 23 2015 jchaloup - 1.0.0-0.12.gitfbed349 -- Bump to upstream fbed3492bfa09e59b1c423fdd7c1ecad333a06ef - related: #1243827 - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.11.gitfbc85e9 -- Add runtime dependency of kubernetes-node on socat (so kubectl port-forward works on AH) - -* Tue Jul 21 2015 jchaloup - 1.0.0-0.10.gitfbc85e9 -- Update the build script for go1.5 as well -- Bump to upstream fbc85e9838f25547be94fbffeeb92a756d908ca0 - related: #1243827 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.9.git2d88675 -- Bump to upstream 2d88675f2203d316d4bac312c7ccad12991b56c2 -- Change KUBE_ETCD_SERVERS to listen on 2379 ports instead of 4001 - resolves: #1243827 -- Add kubernetes-client to provide kubectl command - resolves: #1241469 - -* Mon Jul 20 2015 jchaloup - 1.0.0-0.8.gitb2dafda -- Fix dependency and tests for go-1.5 -- with_debug off as the builds ends with error "ELFRESERVE too small: ..." - -* Sat Jul 18 2015 Eric Paris - 1.0.0-0.7.gitb2dafda -- Update apiserver binary gid - -* Fri Jul 17 2015 jchaloup - 1.0.0-0.6.gitb2dafda -- Bump to upstream b2dafdaef5aceafad503ab56254b60f80da9e980 - related: #1211266 - -* Thu Jul 16 2015 jchaloup - 1.0.0-0.5.git596a8a4 -- Bump to upstream 596a8a40d12498b5335140f50753980bfaea4f6b - related: #1211266 - -* Wed Jul 15 2015 jchaloup - 1.0.0-0.4.git6ba532b -- Bump to upstream 6ba532b218cb5f5ea3f0e8dce5395182f388536c - related: #1211266 - -* Tue Jul 14 2015 jchaloup - 1.0.0-0.3.gitc616182 -- Bump to upstream c6161824db3784e6156131307a5e94647e5557fd - related: #1211266 - -* Mon Jul 13 2015 jchaloup - 1.0.0-0.2.git2c27b1f -- Bump to upstream 2c27b1fa64f4e70f04575d1b217494f49332390e - related: #1211266 - -* Sat Jul 11 2015 jchaloup - 1.0.0-0.1.git1b37059 -- Bump to upstream 1b370599ccf271741e657335c4943cb8c7dba28b - related: #1211266 - -* Fri Jul 10 2015 jchaloup - 0.21.1-0.2.gitccc4cfc -- Bump to upstream ccc4cfc7e11e0f127ac1cea045017dd799be3c63 - related: #1211266 - -* Thu Jul 09 2015 jchaloup - 0.21.1-0.1.git41f8907 -- Update generating of man pages from md (add genmanpages.sh) -- Bump to upstream 41f89075396329cd46c58495c7d3f7e13adcaa96 - related: #1211266 - -* Wed Jul 08 2015 jchaloup - 0.20.2-0.5.git77be29e -- Bump to upstream 77be29e3da71f0a136b6aa4048b2f0575c2598e4 - related: #1211266 - -* Tue Jul 07 2015 jchaloup - 0.20.2-0.4.git639a7da -- Bump to upstream 639a7dac50a331414cc6c47083323388da0d8756 - related: #1211266 - -* Mon Jul 06 2015 jchaloup - 0.20.2-0.3.gitbb6f2f7 -- Bump to upstream bb6f2f7ad90596d624d84cc691eec0f518e90cc8 - related: #1211266 - -* Fri Jul 03 2015 jchaloup - 0.20.2-0.2.git974377b -- Bump to upstream 974377b3064ac59b6e5694bfa568d67128026171 - related: #1211266 - -* Thu Jul 02 2015 jchaloup - 0.20.2-0.1.gitef41ceb -- Bump to upstream ef41ceb3e477ceada84c5522f429f02ab0f5948e - related: #1211266 - -* Tue Jun 30 2015 jchaloup - 0.20.0-0.3.git835eded -- Bump to upstream 835eded2943dfcf13a89518715e4be842a6a3ac0 -- Generate missing man pages - related: #1211266 - -* Mon Jun 29 2015 jchaloup - 0.20.0-0.2.git1c0b765 -- Bump to upstream 1c0b765df6dabfe9bd0e20489ed3bd18e6b3bda8 - Comment out missing man pages - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.20.0-0.1.git8ebd896 -- Bump to upstream 8ebd896351513d446d56bc5785c070d2909226a3 - related: #1211266 - -* Fri Jun 26 2015 jchaloup - 0.19.3-0.6.git712f303 -- Bump to upstream 712f303350b35e70a573f3cb19193c8ec7ee7544 - related: #1211266 - -* Thu Jun 25 2015 jchaloup - 0.19.3-0.5.git2803b86 -- Bump to upstream 2803b86a42bf187afa816a7ce14fec754cc2af51 - related: #1211266 - -* Wed Jun 24 2015 Eric Paris - 0.19.3-0.4.git5b4dc4e -- Set CAP_NET_BIND_SERVICE on the kube-apiserver so it can use 443 - -* Wed Jun 24 2015 jchaloup - 0.19.3-0.3.git5b4dc4e -- Bump to upstream 5b4dc4edaa14e1ab4e3baa19df0388fa54dab344 - pkg/cloudprovider/* packages does not conform to golang language specification - related: #1211266 - -* Tue Jun 23 2015 jchaloup - 0.19.3-0.2.gita2ce3ea -- Bump to upstream a2ce3ea5293553b1fe0db3cbc6d53bdafe061d79 - related: #1211266 - -* Mon Jun 22 2015 jchaloup - 0.19.1-0.1.gitff0546d -- Bump to upstream ff0546da4fc23598de59db9f747c535545036463 - related: #1211266 - -* Fri Jun 19 2015 jchaloup - 0.19.0-0.7.gitb2e9fed -- Bump to upstream b2e9fed3490274509506285bdba309c50afb5c39 - related: #1211266 - -* Thu Jun 18 2015 jchaloup - 0.19.0-0.6.gitf660940 -- Bump to upstream f660940dceb3fe6ffb1b14ba495a47d91b5cd910 - related: #1211266 - -* Wed Jun 17 2015 jchaloup - 0.19.0-0.5.git43889c6 -- Bump to upstream 43889c612c4d396dcd8fbf3fbd217e106eaf5bce - related: #1211266 - -* Tue Jun 16 2015 jchaloup - 0.19.0-0.4.gita8269e3 -- Bump to upstream a8269e38c9e2bf81ba18cd6420e2309745d5b0b9 - related: #1211266 - -* Sun Jun 14 2015 jchaloup - 0.19.0-0.3.git5e5c1d1 -- Bump to upstream 5e5c1d10976f2f26d356ca60ef7d0d715c9f00a2 - related: #1211266 - -* Fri Jun 12 2015 jchaloup - 0.19.0-0.2.git0ca96c3 -- Bump to upstream 0ca96c3ac8b47114169f3b716ae4521ed8c7657c - related: #1211266 - -* Thu Jun 11 2015 jchaloup - 0.19.0-0.1.git5a02fc0 -- Bump to upstream 5a02fc07d8a943132b9e68fe7169778253318487 - related: #1211266 - -* Wed Jun 10 2015 jchaloup - 0.18.2-0.3.git0dfb681 -- Bump to upstream 0dfb681ba5d5dba535895ace9d650667904b5df7 - related: #1211266 - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.2.gitb68e08f -- golang-cover is not needed - -* Tue Jun 09 2015 jchaloup - 0.18.2-0.1.gitb68e08f -- Bump to upstream b68e08f55f5ae566c4ea3905d0993a8735d6d34f - related: #1211266 - -* Sat Jun 06 2015 jchaloup - 0.18.1-0.3.git0f1c4c2 -- Bump to upstream 0f1c4c25c344f70c3592040b2ef092ccdce0244f - related: #1211266 - -* Fri Jun 05 2015 jchaloup - 0.18.1-0.2.git7309e1f -- Bump to upstream 7309e1f707ea5dd08c51f803037d7d22c20e2b92 - related: #1211266 - -* Thu Jun 04 2015 jchaloup - 0.18.1-0.1.gita161edb -- Bump to upstream a161edb3960c01ff6e14813858c2eeb85910009b - related: #1211266 - -* Wed Jun 03 2015 jchaloup - 0.18.0-0.3.gitb5a91bd -- Bump to upstream b5a91bda103ed2459f933959241a2b57331747ba -- Don't run %%check section (kept only for local run). Tests are now handled via CI. - related: #1211266 - -* Tue Jun 02 2015 jchaloup - 0.18.0-0.2.git5520386 -- Bump to upstream 5520386b180d3ddc4fa7b7dfe6f52642cc0c25f3 - related: #1211266 - -* Mon Jun 01 2015 jchaloup - 0.18.0-0.1.git0bb78fe -- Bump to upstream 0bb78fe6c53ce38198cc3805c78308cdd4805ac8 - related: #1211266 - -* Fri May 29 2015 jchaloup - 0.17.1-6 -- Bump to upstream ed4898d98c46869e9cbdb44186dfdeda9ff80cc2 - related: #1211266 - -* Thu May 28 2015 jchaloup - 0.17.1-5 -- Bump to upstream 6fa2777e26559fc008eacac83eb165d25bd9a7de - related: #1211266 - -* Tue May 26 2015 jchaloup - 0.17.1-4 -- Bump to upstream 01fcb58673001e56c69e128ab57e0c3f701aeea5 - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-3 -- Decompose package into master and node subpackage. - Thanks to Avesh for testing and patience. - related: #1211266 - -* Mon May 25 2015 jchaloup - 0.17.1-2 -- Bump to upstream cf7b0bdc2a41d38613ac7f8eeea91cae23553fa2 - related: #1211266 - -* Fri May 22 2015 jchaloup - 0.17.1-1 -- Bump to upstream d9d12fd3f7036c92606fc3ba9046b365212fcd70 - related: #1211266 - -* Wed May 20 2015 jchaloup - 0.17.0-12 -- Bump to upstream a76bdd97100c66a46e2b49288540dcec58a954c4 - related: #1211266 - -* Tue May 19 2015 jchaloup - 0.17.0-11 -- Bump to upstream 10339d72b66a31592f73797a9983e7c207481b22 - related: #1211266 - -* Mon May 18 2015 jchaloup - 0.17.0-10 -- Bump to upstream efb42b302d871f7217394205d84e5ae82335d786 - related: #1211266 - -* Sat May 16 2015 jchaloup - 0.17.0-9 -- Bump to upstream d51e131726b925e7088b90915e99042459b628e0 - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-8 -- Bump to upstream 1ee33ac481a14db7b90e3bbac8cec4ceea822bfb - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-7 -- Bump to upstream d3c6fb0d6a13c0177dcd67556d72963c959234ea - related: #1211266 - -* Fri May 15 2015 jchaloup - 0.17.0-6 -- Bump to upstream f57f31783089f41c0bdca8cb87a1001ca94e1a45 - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-5 -- Bump to upstream c90d381d0d5cf8ab7b8412106f5a6991d7e13c7d - related: #1211266 - -* Thu May 14 2015 jchaloup - 0.17.0-4 -- Bump to upstream 5010b2dde0f9b9eb820fe047e3b34bc9fa6324de -- Add debug info - related: #1211266 - -* Wed May 13 2015 jchaloup - 0.17.0-3 -- Bump to upstream ec19d41b63f5fe7b2c939e7738a41c0fbe65d796 - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-2 -- Provide /usr/bin/kube-version-change binary - related: #1211266 - -* Tue May 12 2015 jchaloup - 0.17.0-1 -- Bump to upstream 962f10ee580eea30e5f4ea725c4e9e3743408a58 - related: #1211266 - -* Mon May 11 2015 jchaloup - 0.16.2-7 -- Bump to upstream 63182318c5876b94ac9b264d1224813b2b2ab541 - related: #1211266 - -* Fri May 08 2015 jchaloup - 0.16.2-6 -- Bump to upstream d136728df7e2694df9e082902f6239c11b0f2b00 -- Add NetworkManager as dependency for /etc/resolv.conf - related: #1211266 - -* Thu May 07 2015 jchaloup - 0.16.2-5 -- Bump to upstream ca0f678b9a0a6dc795ac7a595350d0dbe9d0ac3b - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-4 -- Add docs to kubernetes-unit-test - related: #1211266 - -* Wed May 06 2015 jchaloup - 0.16.2-3 -- Bump to upstream 3a24c0e898cb3060d7905af6df275a3be562451d - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-2 -- Add api and README.md to kubernetes-unit-test - related: #1211266 - -* Tue May 05 2015 jchaloup - 0.16.2-1 -- Bump to upstream 72048a824ca16c3921354197953fabecede5af47 - related: #1211266 - -* Mon May 04 2015 jchaloup - 0.16.1-2 -- Bump to upstream 1dcd80cdf3f00409d55cea1ef0e7faef0ae1d656 - related: #1211266 - -* Sun May 03 2015 jchaloup - 0.16.1-1 -- Bump to upstream 86751e8c90a3c0e852afb78d26cb6ba8cdbc37ba - related: #1211266 - -* Fri May 01 2015 jchaloup - 0.16.0-2 -- Bump to upstream 72708d74b9801989ddbdc8403fc5ba4aafb7c1ef - related: #1211266 - -* Wed Apr 29 2015 jchaloup - 0.16.0-1 -- Bump to upstream 7dcce2eeb7f28643d599c8b6a244523670d17c93 - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-10 -- Add unit-test subpackage - related: #1211266 - -* Tue Apr 28 2015 jchaloup - 0.15.0-9 -- Bump to upstream 99fc906f78cd2bcb08536c262867fa6803f816d5 - related: #1211266 - -* Mon Apr 27 2015 jchaloup - 0.15.0-8 -- Bump to upstream 051dd96c542799dfab39184d2a7c8bacf9e88d85 - related: #1211266 - -* Fri Apr 24 2015 jchaloup - 0.15.0-7 -- Bump to upstream 9f753c2592481a226d72cea91648db8fb97f0da8 - related: #1211266 - -* Thu Apr 23 2015 jchaloup - 0.15.0-6 -- Bump to upstream cf824ae5e07965ba0b4b15ee88e08e2679f36978 - related: #1211266 - -* Tue Apr 21 2015 jchaloup - 0.15.0-5 -- Bump to upstream 21788d8e6606038a0a465c97f5240b4e66970fbb - related: #1211266 - -* Mon Apr 20 2015 jchaloup - 0.15.0-4 -- Bump to upstream eb1ea269954da2ce557f3305fa88d42e3ade7975 - related: #1211266 - -* Fri Apr 17 2015 jchaloup - 0.15.0-3 -- Obsolete cadvisor as it is integrated in kubelet - related: #1211266 - -* Wed Apr 15 2015 jchaloup - 0.15.0-0.2.git0ea87e4 -- Bump to upstream 0ea87e486407298dc1e3126c47f4076b9022fb09 - related: #1211266 - -* Tue Apr 14 2015 jchaloup - 0.15.0-0.1.gitd02139d -- Bump to upstream d02139d2b454ecc5730cc535d415c1963a7fb2aa - related: #1211266 - -* Sun Apr 12 2015 jchaloup - 0.14.2-0.2.gitd577db9 -- Bump to upstream d577db99873cbf04b8e17b78f17ec8f3a27eca30 - -* Wed Apr 08 2015 jchaloup - 0.14.2-0.1.git2719194 -- Bump to upstream 2719194154ffd38fd1613699a9dd10a00909957e - Use etcd-2.0.8 and higher - -* Tue Apr 07 2015 jchaloup - 0.14.1-0.2.gitd2f4734 -- Bump to upstream d2f473465738e6b6f7935aa704319577f5e890ba - -* Thu Apr 02 2015 jchaloup - 0.14.1-0.1.gita94ffc8 -- Bump to upstream a94ffc8625beb5e2a39edb01edc839cb8e59c444 - -* Wed Apr 01 2015 jchaloup - 0.14.0-0.2.git8168344 -- Bump to upstream 81683441b96537d4b51d146e39929b7003401cd5 - -* Tue Mar 31 2015 jchaloup - 0.14.0-0.1.git9ed8761 -- Bump to upstream 9ed87612d07f75143ac96ad90ff1ff68f13a2c67 -- Remove [B]R from devel branch until the package has stable API - -* Mon Mar 30 2015 jchaloup - 0.13.2-0.6.git8a7a127 -- Bump to upstream 8a7a127352263439e22253a58628d37a93fdaeb2 - -* Fri Mar 27 2015 jchaloup - 0.13.2-0.5.git8d94c43 -- Bump to upstream 8d94c43e705824f23791b66ad5de4ea095d5bb32 - resolves: #1205362 - -* Wed Mar 25 2015 jchaloup - 0.13.2-0.4.git455fe82 -- Bump to upstream 455fe8235be8fd9ba0ce21bf4f50a69d42e18693 - -* Mon Mar 23 2015 jchaloup - 0.13.2-0.3.gitef75888 -- Remove runtime dependency on etcd - resolves: #1202923 - -* Sun Mar 22 2015 jchaloup - 0.13.2-0.2.gitef75888 -- Bump to upstream ef758881d108bb53a128126c503689104d17f477 - -* Fri Mar 20 2015 jchaloup - 0.13.2-0.1.gita8f2cee -- Bump to upstream a8f2cee8c5418676ee33a311fad57d6821d3d29a - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.9.git53b25a7 -- Bump to upstream 53b25a7890e31bdec6f2a95b32200d6cc27ae2ca - fix kube-proxy.service and kubelet - resolves: #1200919 #1200924 - -* Fri Mar 13 2015 jchaloup - 0.12.0-0.8.git39dceb1 -- Bump to upstream 39dceb13a511a83963a766a439cb386d10764310 - -* Thu Mar 12 2015 Eric Paris - 0.12.0-0.7.gita3fd0a9 -- Move from /etc/tmpfiles.d to %%{_tmpfilesdir} - resolves: #1200969 - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.6.gita3fd0a9 -- Place contrib/init/systemd/tmpfiles.d/kubernetes.conf to /etc/tmpfiles.d/kubernetes.conf - -* Thu Mar 12 2015 jchaloup - 0.12.0-0.5.gita3fd0a9 -- Bump to upstream a3fd0a9fd516bb6033f32196ae97aaecf8c096b1 - -* Tue Mar 10 2015 jchaloup - 0.12.0-0.4.gita4d871a -- Bump to upstream a4d871a10086436557f804930812f2566c9d4d39 - -* Fri Mar 06 2015 jchaloup - 0.12.0-0.3.git2700871 -- Bump to upstream 2700871b049d5498167671cea6de8317099ad406 - -* Thu Mar 05 2015 jchaloup - 0.12.0-0.2.git8b627f5 -- Bump to upstream 8b627f516fd3e4f62da90d401ceb3d38de6f8077 - -* Tue Mar 03 2015 jchaloup - 0.12.0-0.1.gitecca426 -- Bump to upstream ecca42643b91a7117de8cd385b64e6bafecefd65 - -* Mon Mar 02 2015 jchaloup - 0.11.0-0.5.git6c5b390 -- Bump to upstream 6c5b390160856cd8334043344ef6e08568b0a5c9 - -* Sat Feb 28 2015 jchaloup - 0.11.0-0.4.git0fec31a -- Bump to upstream 0fec31a11edff14715a1efb27f77262a7c3770f4 - -* Fri Feb 27 2015 jchaloup - 0.11.0-0.3.git08402d7 -- Bump to upstream 08402d798c8f207a2e093de5a670c5e8e673e2de - -* Wed Feb 25 2015 jchaloup - 0.11.0-0.2.git86434b4 -- Bump to upstream 86434b4038ab87ac40219562ad420c3cc58c7c6b - -* Tue Feb 24 2015 jchaloup - 0.11.0-0.1.git754a2a8 -- Bump to upstream 754a2a8305c812121c3845d8293efdd819b6a704 - turn off integration tests until "FAILED: unexpected endpoints: - timed out waiting for the condition" problem is resolved - Adding back devel subpackage ([B]R list outdated) - -* Fri Feb 20 2015 jchaloup - 0.10.1-0.3.git4c87805 -- Bump to upstream 4c87805870b1b22e463c4bd711238ef68c77f0af - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.2.git6f84bda -- Bump to upstream 6f84bdaba853872dbac69c84d3ab4b6964e85d8c - -* Tue Feb 17 2015 jchaloup - 0.10.1-0.1.git7d6130e -- Bump to upstream 7d6130edcdfabd7dd2e6a06fdc8fe5e333f07f5c - -* Sat Feb 07 2015 jchaloup - 0.9.1-0.7.gitc9c98ab -- Bump to upstream c9c98ab19eaa6f0b2ea17152c9a455338853f4d0 - Since some dependencies are broken, we can not build Kubernetes from Fedora deps. - Switching to vendored source codes until Go draft is resolved - -* Wed Feb 04 2015 jchaloup - 0.9.1-0.6.git7f5ed54 -- Bump to upstream 7f5ed541f794348ae6279414cf70523a4d5133cc - -* Tue Feb 03 2015 jchaloup - 0.9.1-0.5.git2ac6bbb -- Bump to upstream 2ac6bbb7eba7e69eac71bd9acd192cda97e67641 - -* Mon Feb 02 2015 jchaloup - 0.9.1-0.4.gite335e2d -- Bump to upstream e335e2d3e26a9a58d3b189ccf41ceb3770d1bfa9 - -* Fri Jan 30 2015 jchaloup - 0.9.1-0.3.git55793ac -- Bump to upstream 55793ac2066745f7243c666316499e1a8cf074f0 - -* Thu Jan 29 2015 jchaloup - 0.9.1-0.2.gitca6de16 -- Bump to upstream ca6de16df7762d4fc9b4ad44baa78d22e3f30742 - -* Tue Jan 27 2015 jchaloup - 0.9.1-0.1.git3623a01 -- Bump to upstream 3623a01bf0e90de6345147eef62894057fe04b29 -- update tests for etcd-2.0 - -* Thu Jan 22 2015 jchaloup - 0.8.2-571.gitb2f287c -+- Bump to upstream b2f287c259d856f4c08052a51cd7772c563aff77 - -* Thu Jan 22 2015 Eric Paris - 0.8.2-570.gitb2f287c -- patch kubelet service file to use docker.service not docker.socket - -* Wed Jan 21 2015 jchaloup - 0.8.2-0.1.git5b04640 -- Bump to upstream 5b046406a957a1e7eda7c0c86dd7a89e9c94fc5f - -* Sun Jan 18 2015 jchaloup - 0.8.0-126.0.git68298f0 -- Add some missing dependencies -- Add devel subpackage - -* Fri Jan 09 2015 Eric Paris - 0.8.0-125.0.git68298f0 -- Bump to upstream 68298f08a4980f95dfbf7b9f58bfec1808fb2670 - -* Tue Dec 16 2014 Eric Paris - 0.7.0-18.0.git52e165a -- Bump to upstream 52e165a4fd720d1703ebc31bd6660e01334227b8 - -* Mon Dec 15 2014 Eric Paris - 0.6-297.0.git5ef34bf -- Bump to upstream 5ef34bf52311901b997119cc49eff944c610081b - -* Wed Dec 03 2014 Eric Paris -- Replace patch to use old googlecode/go.net/ with BuildRequires on golang.org/x/net/ - -* Tue Dec 02 2014 Eric Paris - 0.6-4.0.git993ef88 -- Bump to upstream 993ef88eec9012b221f79abe8f2932ee97997d28 - -* Mon Dec 01 2014 Eric Paris - 0.5-235.0.git6aabd98 -- Bump to upstream 6aabd9804fb75764b70e9172774002d4febcae34 - -* Wed Nov 26 2014 Eric Paris - 0.5-210.0.gitff1e9f4 -- Bump to upstream ff1e9f4c191342c24974c030e82aceaff8ea9c24 - -* Tue Nov 25 2014 Eric Paris - 0.5-174.0.git64e07f7 -- Bump to upstream 64e07f7fe03d8692c685b09770c45f364967a119 - -* Mon Nov 24 2014 Eric Paris - 0.5-125.0.git162e498 -- Bump to upstream 162e4983b947d2f6f858ca7607869d70627f5dff - -* Fri Nov 21 2014 Eric Paris - 0.5-105.0.git3f74a1e -- Bump to upstream 3f74a1e9f56b3c3502762930c0c551ccab0557ea - -* Thu Nov 20 2014 Eric Paris - 0.5-65.0.gitc6158b8 -- Bump to upstream c6158b8aa9c40fbf1732650a8611429536466b21 -- include go-restful build requirement - -* Tue Nov 18 2014 Eric Paris - 0.5-14.0.gitdf0981b -- Bump to upstream df0981bc01c5782ad30fc45cb6f510f365737fc1 - -* Tue Nov 11 2014 Eric Paris - 0.4-680.0.git30fcf24 -- Bump to upstream 30fcf241312f6d0767c7d9305b4c462f1655f790 - -* Mon Nov 10 2014 Eric Paris - 0.4-633.0.git6c70227 -- Bump to upstream 6c70227a2eccc23966d32ea6d558ee05df46e400 - -* Fri Nov 07 2014 Eric Paris - 0.4-595.0.gitb695650 -- Bump to upstream b6956506fa2682afa93770a58ea8c7ba4b4caec1 - -* Thu Nov 06 2014 Eric Paris - 0.4-567.0.git3b1ef73 -- Bump to upstream 3b1ef739d1fb32a822a22216fb965e22cdd28e7f - -* Thu Nov 06 2014 Eric Paris - 0.4-561.0.git06633bf -- Bump to upstream 06633bf4cdc1ebd4fc848f85025e14a794b017b4 -- Make spec file more RHEL/CentOS friendly - -* Tue Nov 04 2014 Eric Paris - 0.4-0.0.git4452163 -- rebase to v0.4 -- include man pages - -* Tue Oct 14 2014 jchaloup - 0.3-0.3.git98ac8e1 -- create /var/lib/kubelet -- Use bash completions from upstream -- Bump to upstream 98ac8e178fcf1627399d659889bcb5fe25abdca4 -- all by Eric Paris - -* Mon Sep 29 2014 Jan Chaloupka - 0.3-0.2.git88fdb65 -- replace * with coresponding files -- remove dependency on gcc - -* Wed Sep 24 2014 Eric Paris - 0.1-0.4.git6ebe69a -- prefer autosetup instead of setup (revert setup change in 0-0.3.git) -https://fedoraproject.org/wiki/Autosetup_packaging_draft -- revert version number to 0.1 - -* Mon Sep 08 2014 Lokesh Mandvekar - 0-0.3.git6ebe69a -- gopath defined in golang package already -- package owns /etc/kubernetes -- bash dependency implicit -- keep buildroot/$RPM_BUILD_ROOT macros consistent -- replace with macros wherever possible -- set version, release and source tarball prep as per -https://fedoraproject.org/wiki/Packaging:SourceURL#Github - -* Mon Sep 08 2014 Eric Paris -- make services restart automatically on error - -* Sat Sep 06 2014 Eric Paris -- update to upstream -- redo build to use project scripts -- use project scripts in %%check -- rework deletion of third_party packages to easily detect changes -- run apiserver and controller-manager as non-root - -* Mon Aug 11 2014 Adam Miller -- update to upstream -- decouple the rest of third_party - -* Thu Aug 7 2014 Eric Paris -- update to head -- update package to include config files - -* Wed Jul 16 2014 Colin Walters -- Initial package