| 1 | # Contributor: Francesco Colista <[email protected]> |
| 2 | # Contributor: Mateusz Mikuła <[email protected]> |
| 3 | # Contributor: Tiago Ilieve <[email protected]> |
| 4 | # Contributor: Dave <[email protected]> |
| 5 | # Maintainer: Francesco Colista <[email protected]> |
| 6 | pkgname=kubernetes |
| 7 | pkgver=1.37.1 |
| 8 | pkgrel=0 |
| 9 | pkgdesc="Container Cluster Manager" |
| 10 | url="https://kubernetes.io/" |
| 11 | arch="all" |
| 12 | license="Apache-2.0" |
| 13 | options="!check chmod-clean net" # Tests hang |
| 14 | |
| 15 | _kube_proxy_deps="iptables" |
| 16 | _kubelet_deps="iptables" |
| 17 | _kubeadm_deps="iproute2 socat ethtool conntrack-tools cri-tools" |
| 18 | makedepends="go go-bindata linux-headers rsync grep findutils bash |
| 19 | $_kube_proxy_deps |
| 20 | $_kubelet_deps |
| 21 | $_kubeadm_deps |
| 22 | " |
| 23 | subpackages=" |
| 24 | kubeadm:_split |
| 25 | kubectl:_split |
| 26 | kubectl-convert:_split |
| 27 | kubelet:_split |
| 28 | kubelet-openrc |
| 29 | kube-apiserver:_split |
| 30 | kube-apiserver-openrc |
| 31 | kube-controller-manager:_split |
| 32 | kube-controller-manager-openrc |
| 33 | kube-proxy:_split |
| 34 | kube-proxy-openrc |
| 35 | kube-scheduler:_split |
| 36 | kube-scheduler-openrc |
| 37 | kubeadm-bash-completion |
| 38 | kubectl-bash-completion |
| 39 | kubeadm-zsh-completion |
| 40 | kubectl-zsh-completion |
| 41 | " |
| 42 | |
| 43 | source="$pkgname-$pkgver.tar.gz::https://github.com/kubernetes/kubernetes/archive/refs/tags/v$pkgver.tar.gz |
| 44 | make-e2e_node-run-over-distro-bins.patch |
| 45 | make-test-cmd-run-over-hyperkube-based-kubectl.patch |
| 46 | |
| 47 | kube-apiserver.initd |
| 48 | kube-apiserver.confd |
| 49 | kube-apiserver.logrotated |
| 50 | |
| 51 | kube-controller-manager.initd |
| 52 | kube-controller-manager.confd |
| 53 | kube-controller-manager.logrotated |
| 54 | |
| 55 | kube-proxy.initd |
| 56 | kube-proxy.confd |
| 57 | kube-proxy.logrotated |
| 58 | |
| 59 | kube-scheduler.initd |
| 60 | kube-scheduler.confd |
| 61 | kube-scheduler.logrotated |
| 62 | |
| 63 | kubelet.initd |
| 64 | kubelet.confd |
| 65 | kubelet.logrotated |
| 66 | " |
| 67 | |
| 68 | _agent="kubelet" |
| 69 | _cli="kubeadm kubectl kubectl-convert" |
| 70 | _services="kube-apiserver kube-controller-manager kube-proxy kube-scheduler" |
| 71 | |
| 72 | # Without this the build scripts will attempt to download a whole Go toolchain |
| 73 | # with the 'gimme' script when our Go does not match version from '.go-version' |
| 74 | export FORCE_HOST_GO=y |
| 75 | |
| 76 | # Without this some architectures (x86, armv7, s390x) encounter the error: |
| 77 | # "-buildmode=pie requires external (cgo) linking, but cgo is not enabled" |
| 78 | export KUBE_CGO_OVERRIDES="$_agent $_cli $_services" |
| 79 | |
| 80 | build() { |
| 81 | for _pkgs in $_agent $_cli $_services ; do |
| 82 | make -j1 GOFLAGS="$GOFLAGS -buildmode=pie -v -tags=providerless" GOLDFLAGS="-extldflags=-static" WHAT=cmd/$_pkgs |
| 83 | done |
| 84 | } |
| 85 | |
| 86 | package() { |
| 87 | for bin in $_agent $_cli $_services; do |
| 88 | install -Dm755 _output/local/go/bin/$bin "$pkgdir"/usr/bin/$bin |
| 89 | done |
| 90 | mkdir -p "$pkgdir"/etc/kubernetes |
| 91 | } |
| 92 | |
| 93 | _split() { |
| 94 | local _pkg=$subpkgname |
| 95 | pkgdesc="Kubernetes - $_pkg" |
| 96 | case "$_pkg" in |
| 97 | kubelet) depends="$_kubelet_deps" ;; |
| 98 | kubeadm) depends="$_kubeadm_deps" ;; |
| 99 | kube-proxy) depends="$_kube_proxy_deps" ;; |
| 100 | kubectl-convert) depends="kubectl" ;; |
| 101 | esac |
| 102 | case "$_pkg" in |
| 103 | kubelet|kube-proxy) install -d "$subpkgdir"/var/lib/$_pkg ;; |
| 104 | esac |
| 105 | |
| 106 | amove usr/bin/$_pkg |
| 107 | |
| 108 | if [ -f "$srcdir"/$_pkg.logrotated ]; then |
| 109 | install -d "$subpkgdir"/var/log/$_pkg |
| 110 | install -Dm644 "$srcdir"/$_pkg.logrotated "$subpkgdir"/etc/logrotate.d/$_pkg |
| 111 | fi |
| 112 | } |
| 113 | |
| 114 | openrc() { |
| 115 | local name=${subpkgname%-openrc} |
| 116 | pkgdesc="Kubernetes - $name" |
| 117 | default_openrc |
| 118 | depends="openrc" |
| 119 | |
| 120 | install -Dm755 "$srcdir"/$name.initd "$subpkgdir"/etc/init.d/$name |
| 121 | install -Dm644 "$srcdir"/$name.confd "$subpkgdir"/etc/conf.d/$name |
| 122 | } |
| 123 | |
| 124 | bashcomp() { |
| 125 | local _pkgname=${subpkgname%-bash-completion} |
| 126 | pkgdesc="Bash completions for $_pkgname" |
| 127 | install_if="$_pkgname=$pkgver-r$pkgrel bash-completion" |
| 128 | |
| 129 | mkdir -p "$subpkgdir"/usr/share/bash-completion/completions |
| 130 | "$builddir"/_output/local/go/bin/$_pkgname completion bash>"$subpkgdir"/usr/share/bash-completion/completions/$_pkgname |
| 131 | } |
| 132 | |
| 133 | zshcomp() { |
| 134 | local _pkgname=${subpkgname%-zsh-completion} |
| 135 | pkgdesc="Zsh completions for $_pkgname" |
| 136 | install_if="$_pkgname=$pkgver-r$pkgrel zsh" |
| 137 | |
| 138 | mkdir -p "$subpkgdir"/usr/share/zsh/site-functions |
| 139 | "$builddir"/_output/local/go/bin/$_pkgname completion zsh \ |
| 140 | > "$subpkgdir"/usr/share/zsh/site-functions/_$_pkgname |
| 141 | } |
| 142 | |
| 143 | sha512sums=" |
| 144 | 46c12c6eecf08b14a9c4c9b99f6bcc9095fe60ef9b42c8a64eed4a21dec02fbe5a7546468337e9e77d681636e795a1701b4d4f048911837fc6ea2947dfdc52f6 kubernetes-1.37.1.tar.gz |
| 145 | 5427c2e653504cfd5b0bcaf195d4734ee40947ddfebc9f155cd96dddccfc27692c29d94af4ac99f1018925b52995c593b584c5d7a82df2f185ebce1a9e463c40 make-e2e_node-run-over-distro-bins.patch |
| 146 | 94d07edfe7ca52b12e85dd9e29f4c9edcd144abc8d120fb71e2a0507f064afd4bac5dde30da7673a35bdd842b79a4770a03a1f3946bfae361c01dd4dc4903c64 make-test-cmd-run-over-hyperkube-based-kubectl.patch |
| 147 | e690daff2adb1013c92124f32e71f8ed9a18c611ae6ae5fcb5ce9674768dbf9d911a05d7e4028488cda886e63b82e8ac0606d14389a05844c1b5538a33dd09d1 kube-apiserver.initd |
| 148 | 302b2a7ec715967c0aa7d1c177d4e55b26e37ebba8d04dd37ecf627d20042fe91cd7e6192ff9d71422129b0ea54a9eec6046f505af550548bd450998924f37ee kube-apiserver.confd |
| 149 | 1a4bcd54dafaedc614e34bbadc2a1163f003b5925d47552fb2c47049c033c147e612171e263d9659d189fc2d95688a0b7153322d8dba97c083c079fdef6c400e kube-apiserver.logrotated |
| 150 | 90b9a9708e6d7c9084de17c8b28cbf6ff543400128d47f4d168883d8d3461b4dcbbb1796950a12ffc79b0f341b3881b48bba7651e3c232c1731a7e6dbddb62b8 kube-controller-manager.initd |
| 151 | 347dcf514abec4bc94036955d0fb2d32f141a39d1a70d7fb37e7bf8eb5792e5c29560d500a08aafcd3e19422d04466004b832bca7108eb2815610feb144688fe kube-controller-manager.confd |
| 152 | e00cd9297d8ac75fcd504a2bfb80d5c5e145e7d475dd15edf9361dc28721afdc069c5b6e79438b75a774e972028841a17e8f7842dcfb3d7835c436a3e503704c kube-controller-manager.logrotated |
| 153 | cd43587f69bd9fc6f1fdf0896d99df89377f677f4fa9b367dcaee1bf6f66469577dd79c60833ba0cd60ffdb68deedd0fb9bc00caa2b06854af4e6e56f1ffe365 kube-proxy.initd |
| 154 | 4c8c34ae8668bcfa5167c2d2af006fc46b461a5dafb3ec5b64cb8cdf2a830c22ddb5cf806c93b1404f60dabf91b4153724947fa2d2c494376f20e637eeed5018 kube-proxy.confd |
| 155 | d7e022ee22da191bda7382f87cb293d9c9d115a3df0c2054bf918279eb866f99c6d5c21e4c98eae84bacf925f7793bbe3087e0bcf6732ccb33844d15e4386fb5 kube-proxy.logrotated |
| 156 | 561bef5633ba4b9021720624443d9c279a561e5fabea76e5d0fbee2e7ad8999029a2511a45895fbec8448026212a3c5b4c197b248a6afa7f8bd945f705524ea7 kube-scheduler.initd |
| 157 | af88b382ab75657d0ff13c3f8f6d924cef9f2df7807a9a27daa63495981801bc4b607998f65c0758c11a7e070e43c24f7184ba7720711109c74b1c4d57919e34 kube-scheduler.confd |
| 158 | 3692da349dd6ed0f5acc09d7b95ac562ffecb103e2270bebdfe4a7808d48dada9d2debff262d85b11c47f9ca3f0c20000712d03629ed813ff08a3e02d69267e6 kube-scheduler.logrotated |
| 159 | 1b0e0cc45666b18ecb333bf3835b282e9f72e40bf29b7a9d7b9e5e2bbbd009297be8c31d284e865af45d66434a27dee14e617e61fac0dda0242d7d0f3fc89ce8 kubelet.initd |
| 160 | f79ea6dec632ca052f8cd061bf0c5f7f821c7013c048b4737752e1a41c677c020c1f9454ddabe7f9ba5d55c2a8a4718170e30049b7212a4a2dc91148a3ac7ebc kubelet.confd |
| 161 | dda5fb57b55926fd2e9cebe6c1593da699afba0398c58dfa8b923c53a9ae6e63d765778577211460047f20863a6095e8e2ab3e7769e38c4f6a1c55c0e3485501 kubelet.logrotated |
| 162 | " |