aboutsummaryrefslogtreecommitdiffstats
path: root/testing/kubernetes/APKBUILD
blob: 22342df12cdfc9fb55da0449ee96f3bbb9c8ff48 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Contributor: Mateusz MikuĊ‚a <matti@marinelayer.io>
# Contributor: Tiago Ilieve <tiago.myhro@gmail.com>
# Contributor: Dave <dj.2dixx@gmail.com>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=kubernetes
pkgver=1.21.1
pkgrel=1
pkgdesc="Container Cluster Manager"
url="https://kubernetes.io/"
arch="x86_64 aarch64 ppc64le armv7 x86"
license="Apache-2.0"
options="!check chmod-clean" # Tests hang

_kube_proxy_deps="iptables"
_kubelet_deps="iptables"
_kubeadm_deps="iproute2 socat ethtool conntrack-tools cri-tools"
makedepends="go go-bindata linux-headers rsync grep findutils bash
	$_kube_proxy_deps
	$_kubelet_deps
	$_kubeadm_deps
	"
subpackages="
	kubeadm:_kubeadm
	kubectl:_kubectl
	kubelet:_kubelet
	kubelet-openrc:_kubelet_openrc
	kube-apiserver:_apiserver
	kube-apiserver-openrc:_apiserver_openrc
	kube-controller-manager:_controllermanager
	kube-controller-manager-openrc:_controllermanager_openrc
	kube-proxy:_proxy
	kube-proxy-openrc:_proxy_openrc
	kube-scheduler:_scheduler
	kube-scheduler-openrc:_scheduler_openrc
	kubeadm-bash-completion:_kubeadm_bash:noarch
	kubectl-bash-completion:_kubectl_bash:noarch
"

source="$pkgname-$pkgver.tar.gz::https://github.com/kubernetes/kubernetes/archive/v$pkgver.tar.gz
	ensure-cgo-usage.patch
	make-e2e_node-run-over-distro-bins.patch
	make-test-cmd-run-over-hyperkube-based-kubectl.patch
	Get-inodes-and-disk-usage-via-pure-go.patch

	kube-apiserver.initd
	kube-apiserver.confd
	kube-apiserver.logrotated

	kube-controller-manager.initd
	kube-controller-manager.confd
	kube-controller-manager.logrotated

	kube-proxy.initd
	kube-proxy.confd
	kube-proxy.logrotated

	kube-scheduler.initd
	kube-scheduler.confd
	kube-scheduler.logrotated

	kubelet.initd
	kubelet.confd
	kubelet.logrotated"

_agent="kubelet"
_cli="kubeadm kubectl"
_services="kube-apiserver kube-controller-manager kube-proxy kube-scheduler"

build() {
	make generated_files
	for _pkgs in $_agent $_cli $_services ; do
		make GOFLAGS="-buildmode=pie -v -tags=providerless" GOLDFLAGS="-extldflags=-static -w -s" WHAT=cmd/$_pkgs
	done
}

package() {
	for bin in $_agent $_cli $_services; do
		install -Dm755 _output/local/bin/linux/*/$bin "$pkgdir"/usr/bin/$bin
	done
	mkdir -p "$pkgdir"/etc/kubernetes
}


_do_subpkg() {
	local _pkg=$1
	pkgdesc="Kubernetes - $_pkg"
	case "$_pkg" in
		kubelet) depends="$_kubelet_deps" ;;
		kubeadm) depends="$_kubeadm_deps" ;;
	esac
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/$_pkg "$subpkgdir"/usr/bin
	return 0
}

_kubeadm() { _do_subpkg kubeadm; }
_kubectl() { _do_subpkg kubectl; }

_kubeadm_bash() { _do_bashcomp kubeadm; }
_kubectl_bash() { _do_bashcomp kubectl; }

_kubelet() {
	_do_subpkg kubelet
	install -d "$subpkgdir"/var/lib/kubelet
	install -d "$subpkgdir"/var/log/kubelet

	install -Dm644 "$srcdir"/kubelet.logrotated "$subpkgdir"/etc/logrotate.d/kubelet
}

_kubelet_openrc() {
	pkgdesc="Kubernetes - kubelet (OpenRC init scripts)"
	depends="openrc"
	install_if="openrc kubelet=$pkgver-r$pkgrel"

	install -Dm755 "$srcdir"/kubelet.initd "$subpkgdir"/etc/init.d/kubelet
	install -Dm644 "$srcdir"/kubelet.confd "$subpkgdir"/etc/conf.d/kubelet
}

_apiserver() {
	_do_subpkg kube-apiserver

	install -d "$subpkgdir"/var/log/kube-apiserver
	install -Dm644 "$srcdir"/kube-apiserver.logrotated "$subpkgdir"/etc/logrotate.d/kube-apiserver
}

_apiserver_openrc() {
	pkgdesc="Kubernetes - kube-apiserver (OpenRC init scripts)"
	depends="openrc"
	install_if="openrc kube-apiserver=$pkgver-r$pkgrel"
	install -Dm755 "$srcdir"/kube-apiserver.initd "$subpkgdir"/etc/init.d/kube-apiserver
	install -Dm644 "$srcdir"/kube-apiserver.confd "$subpkgdir"/etc/conf.d/kube-apiserver
}

_controllermanager() {
	_do_subpkg kube-controller-manager

	install -d "$subpkgdir"/var/log/kube-controller-manager
	install -Dm644 "$srcdir"/kube-controller-manager.logrotated "$subpkgdir"/etc/logrotate.d/kube-controller-manager
}

_controllermanager_openrc() {
	pkgdesc="Kubernetes - kube-controller-manager (OpenRC init scripts)"
	depends="openrc"
	install_if="openrc kube-controller-manager=$pkgver-r$pkgrel"

	install -Dm755 "$srcdir"/kube-controller-manager.initd "$subpkgdir"/etc/init.d/kube-controller-manager
	install -Dm644 "$srcdir"/kube-controller-manager.confd "$subpkgdir"/etc/conf.d/kube-controller-manager
}

_proxy() {
	_do_subpkg kube-proxy
	depends="$_kube_proxy_deps"

	install -d "$subpkgdir"/var/lib/kube-proxy
	install -d "$subpkgdir"/var/log/kube-proxy
	install -Dm644 "$srcdir"/kube-proxy.logrotated "$subpkgdir"/etc/logrotate.d/kube-proxy
}

_proxy_openrc() {
	pkgdesc="Kubernetes - kube-proxy (OpenRC init scripts)"
	depends="openrc"
	install_if="openrc kube-proxy=$pkgver-r$pkgrel"
	install -Dm755 "$srcdir"/kube-proxy.initd "$subpkgdir"/etc/init.d/kube-proxy
	install -Dm644 "$srcdir"/kube-proxy.confd "$subpkgdir"/etc/conf.d/kube-proxy
}

_scheduler() {
	_do_subpkg kube-scheduler
	install -d "$subpkgdir"/var/log/kube-scheduler
	install -Dm644 "$srcdir"/kube-scheduler.logrotated "$subpkgdir"/etc/logrotate.d/kube-scheduler
}

_scheduler_openrc() {
	pkgdesc="Kubernetes - kube-scheduler (OpenRC init scripts)"
	depends="openrc"
	install_if="openrc kube-scheduler=$pkgver-r$pkgrel"
	install -Dm755 "$srcdir"/kube-scheduler.initd "$subpkgdir"/etc/init.d/kube-scheduler
	install -Dm644 "$srcdir"/kube-scheduler.confd "$subpkgdir"/etc/conf.d/kube-scheduler
}

_do_bashcomp() {
	local _pkgname=$1
	pkgdesc="Bash completions for $_pkgname"
	install_if="$_pkgname=$pkgver-r$pkgrel bash-completion"

	mkdir -p "$subpkgdir"/usr/share/bash-completion/completions
	"$builddir"/_output/local/bin/linux/*/$_pkgname completion bash>"$subpkgdir"/usr/share/bash-completion/completions/$_pkgname
}

cleanup_srcdir() {
	go clean -modcache
	default_cleanup_srcdir
}
sha512sums="
d3257566a07e1c08bfcbce85775af8c2d7dfbc7df4aa8692e6a0a6f8590f7eeb9fc6802b715ee8b0f67b2f41344e926a0a955afa68e2b8d518a7d8160771dfcc  kubernetes-1.21.1.tar.gz
bfe072d2f53543b8d704319755f3cfe5ed2467b54879e22117a25a9d7d6d4d238356e45824deaf4d18b8e9eb6f34d1de43be4840b9906f7909478ffe9e8a65ff  ensure-cgo-usage.patch
052a0b06de417704f87361f00195063d1aaba0e12ae80a21342613061df2b37b908265e7375604d5f6283767da45363310ec1d9f9e0c17aa616c040c8ecbb267  make-e2e_node-run-over-distro-bins.patch
56201491d2dfe3a487931cbf5c6e60af898701b9541a936d80e3823948fcfb98508e3d51f4aaa415ce971f7bd20a7b51f74f025c76b83f58d5a8de8ce0ab679b  make-test-cmd-run-over-hyperkube-based-kubectl.patch
f38dde9c464a09615854bd80521f1f9b83cb96adf7d99b31c3e3f7c566cfc525f88eef7d5a447ace03c65678e7d575529d54f5974b1b1b5183b46b216cbecf5e  Get-inodes-and-disk-usage-via-pure-go.patch
e690daff2adb1013c92124f32e71f8ed9a18c611ae6ae5fcb5ce9674768dbf9d911a05d7e4028488cda886e63b82e8ac0606d14389a05844c1b5538a33dd09d1  kube-apiserver.initd
302b2a7ec715967c0aa7d1c177d4e55b26e37ebba8d04dd37ecf627d20042fe91cd7e6192ff9d71422129b0ea54a9eec6046f505af550548bd450998924f37ee  kube-apiserver.confd
1a4bcd54dafaedc614e34bbadc2a1163f003b5925d47552fb2c47049c033c147e612171e263d9659d189fc2d95688a0b7153322d8dba97c083c079fdef6c400e  kube-apiserver.logrotated
90b9a9708e6d7c9084de17c8b28cbf6ff543400128d47f4d168883d8d3461b4dcbbb1796950a12ffc79b0f341b3881b48bba7651e3c232c1731a7e6dbddb62b8  kube-controller-manager.initd
347dcf514abec4bc94036955d0fb2d32f141a39d1a70d7fb37e7bf8eb5792e5c29560d500a08aafcd3e19422d04466004b832bca7108eb2815610feb144688fe  kube-controller-manager.confd
e00cd9297d8ac75fcd504a2bfb80d5c5e145e7d475dd15edf9361dc28721afdc069c5b6e79438b75a774e972028841a17e8f7842dcfb3d7835c436a3e503704c  kube-controller-manager.logrotated
cd43587f69bd9fc6f1fdf0896d99df89377f677f4fa9b367dcaee1bf6f66469577dd79c60833ba0cd60ffdb68deedd0fb9bc00caa2b06854af4e6e56f1ffe365  kube-proxy.initd
4c8c34ae8668bcfa5167c2d2af006fc46b461a5dafb3ec5b64cb8cdf2a830c22ddb5cf806c93b1404f60dabf91b4153724947fa2d2c494376f20e637eeed5018  kube-proxy.confd
d7e022ee22da191bda7382f87cb293d9c9d115a3df0c2054bf918279eb866f99c6d5c21e4c98eae84bacf925f7793bbe3087e0bcf6732ccb33844d15e4386fb5  kube-proxy.logrotated
561bef5633ba4b9021720624443d9c279a561e5fabea76e5d0fbee2e7ad8999029a2511a45895fbec8448026212a3c5b4c197b248a6afa7f8bd945f705524ea7  kube-scheduler.initd
af88b382ab75657d0ff13c3f8f6d924cef9f2df7807a9a27daa63495981801bc4b607998f65c0758c11a7e070e43c24f7184ba7720711109c74b1c4d57919e34  kube-scheduler.confd
3692da349dd6ed0f5acc09d7b95ac562ffecb103e2270bebdfe4a7808d48dada9d2debff262d85b11c47f9ca3f0c20000712d03629ed813ff08a3e02d69267e6  kube-scheduler.logrotated
70fb5c95a02083025f38b099fa50d1a1e8893bc4141955031c4129c0d4aa20fde05c565c3f2e5b6ea31efb954673aeb8289f22eadcedeb7cb89e197898dfc65d  kubelet.initd
e6a1d33e8b986b076fd7144ed74abda6aed20d45c138dca6d88c5a27fbf61d6bf10c4b8530b8c7a1ea9df63deb70ab47273142169e79e0b3c7a135d0b11017ec  kubelet.confd
dda5fb57b55926fd2e9cebe6c1593da699afba0398c58dfa8b923c53a9ae6e63d765778577211460047f20863a6095e8e2ab3e7769e38c4f6a1c55c0e3485501  kubelet.logrotated
"