From 2b072743287a1a970c56755786fd9cd714715f7c Mon Sep 17 00:00:00 2001 From: "Ralf S. Engelschall" Date: Sat, 11 Aug 2018 16:49:33 +0200 Subject: [PATCH] new package --- kubernetes/kubernetes.patch | 49 ++++++++++++++++++ kubernetes/kubernetes.spec | 100 ++++++++++++++++++++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 kubernetes/kubernetes.patch create mode 100644 kubernetes/kubernetes.spec diff --git a/kubernetes/kubernetes.patch b/kubernetes/kubernetes.patch new file mode 100644 index 0000000000..8d80a830f7 --- /dev/null +++ b/kubernetes/kubernetes.patch @@ -0,0 +1,49 @@ +Index: src/k8s.io/kubernetes/cluster/clientbin.sh +--- src/k8s.io/kubernetes/cluster/clientbin.sh.orig 2017-01-28 12:53:58.000000000 +0100 ++++ src/k8s.io/kubernetes/cluster/clientbin.sh 2017-01-28 13:35:04.222772000 +0100 +@@ -28,6 +28,9 @@ + Linux) + host_os=linux + ;; ++ FreeBSD) ++ host_os=freebsd ++ ;; + *) + echo "Unsupported host OS. Must be Linux or Mac OS X." >&2 + exit 1 +Index: src/k8s.io/kubernetes/hack/lib/util.sh +--- src/k8s.io/kubernetes/hack/lib/util.sh.orig 2017-01-28 12:53:58.000000000 +0100 ++++ src/k8s.io/kubernetes/hack/lib/util.sh 2017-01-28 13:34:01.339840000 +0100 +@@ -122,6 +122,9 @@ + Linux) + host_os=linux + ;; ++ FreeBSD) ++ host_os=freebsd ++ ;; + *) + kube::log::error "Unsupported host OS. Must be Linux or Mac OS X." + exit 1 +Index: src/k8s.io/kubernetes/hack/local-up-cluster.sh +--- src/k8s.io/kubernetes/hack/local-up-cluster.sh.orig 2017-01-28 12:53:58.000000000 +0100 ++++ src/k8s.io/kubernetes/hack/local-up-cluster.sh 2017-01-28 13:34:51.400261000 +0100 +@@ -225,6 +225,9 @@ + Linux) + host_os=linux + ;; ++ FreeBSD) ++ host_os=freebsd ++ ;; + *) + echo "Unsupported host OS. Must be Linux or Mac OS X." >&2 + exit 1 +@@ -745,6 +748,9 @@ + Linux) + start_kubelet + ;; ++ FreeBSD) ++ start_kubelet ++ ;; + *) + warning "Unsupported host OS. Must be Linux or Mac OS X, kubelet aborted." + ;; diff --git a/kubernetes/kubernetes.spec b/kubernetes/kubernetes.spec new file mode 100644 index 0000000000..5051fdc02f --- /dev/null +++ b/kubernetes/kubernetes.spec @@ -0,0 +1,100 @@ +## +## kubernetes.spec -- OpenPKG RPM Package Specification +## Copyright (c) 2000-2018 OpenPKG Project +## +## Permission to use, copy, modify, and distribute this software for +## any purpose with or without fee is hereby granted, provided that +## the above copyright notice and this permission notice appear in all +## copies. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## + +# package version +%define V_kubernetes_base 1.11.2 +%define V_kubernetes_snap 20180811 + +# package information +Name: kubernetes +Summary: Container Scheduling and Management (Command-Line Interface) +URL: http://kubernetes.io/ +Vendor: Google, Cloud Native Computing Foundation +Packager: OpenPKG Project +Distribution: OpenPKG Community +Class: EVAL +Group: Web +License: Apache +Version: %{V_kubernetes_base}.%{V_kubernetes_snap} +Release: 20180811 + +# list of sources +Source0: http://download.openpkg.org/components/versioned/kubernetes/kubernetes-%{V_kubernetes_snap}.tar.xz +Patch0: kubernetes.patch + +# build information +BuildPreReq: OpenPKG, openpkg >= 20160101, go +PreReq: OpenPKG, openpkg >= 20160101 + +%description + Kubernetes is a system for managing containerized applications + across multiple hosts, providing basic mechanisms for deployment, + maintenance, and scaling of applications. This is the Command-Line + Interface (CLI) kubectl(1) only, for remotely connecting to and + controlling a Kubernetes cluster. + +%track + prog kubernetes:release = { + version = %{V_kubernetes_base} + url = https://github.com/kubernetes/kubernetes/releases + regex = v(\d+\.\d+\.\d+)\.tar\.gz + } + prog kubernetes:snapshot = { + version = %{V_kubernetes_snap} + url = http://download.openpkg.org/components/versioned/kubernetes/ + regex = kubernetes-(__VER__)\.tar\.xz + } + +%prep + %setup -q -n kubernetes + %patch -p0 + +%build + # build program + export GOPATH=`pwd` + cd src/k8s.io/kubernetes + go build -x -o kubectl cmd/kubectl/kubectl.go + +%install + # create directory hierarchy + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/bin \ + $RPM_BUILD_ROOT%{l_prefix}/man/man1 + + # install program + %{l_shtool} install -c -s -m 755 \ + src/k8s.io/kubernetes/kubectl \ + $RPM_BUILD_ROOT%{l_prefix}/bin/ + + # install manual page + %{l_shtool} install -c -m 644 \ + src/k8s.io/kubernetes/docs/man/man1/kubectl* \ + $RPM_BUILD_ROOT%{l_prefix}/man/man1/ + + # determine installation files + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} + +%files -f files + +%clean +