-
Notifications
You must be signed in to change notification settings - Fork 289
/
Copy pathkubernetes-1.29.yaml
211 lines (182 loc) · 6.51 KB
/
kubernetes-1.29.yaml
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
package:
name: kubernetes-1.29
version: 1.29.3
epoch: 0
description: Production-Grade Container Scheduling and Management
copyright:
- license: Apache-2.0
dependencies:
provides:
- kubernetes=${{package.full-version}}
environment:
contents:
packages:
- bash
- build-base
- busybox
- ca-certificates-bundle
- coreutils # needed for non busybox version of `mktemp`
- findutils # needed for non busybox version of `xargs`
- go
- go-bindata
- grep
- jq
- libcap-utils
- linux-headers
- rsync
# "transform" the kubernetes version into the corresponding pause version, these don't always line up
var-transforms:
- from: ${{package.version}}
match: ^(.+)$
replace: 3.9
to: pause-version
vars:
components: "kubectl kubeadm kubelet kube-scheduler kube-proxy kube-controller-manager kube-apiserver"
pipeline:
- uses: git-checkout
with:
repository: https://github.com/kubernetes/kubernetes
tag: v${{package.version}}
expected-commit: 6813625b7cd706db5bc7388921be03071e1a492d
- runs: |
# Use our Go version instead of downloading another one
export FORCE_HOST_GO=true
export KUBE_GIT_TREE_STATE=clean
WHAT=""
for c in ${{vars.components}} ; do
WHAT="$WHAT cmd/$c"
done
make WHAT="$WHAT"
- runs: |
# We apply cap_net_bind_service so that kube-apiserver can be run as
# non-root and still listen on port less than 1024
setcap cap_net_bind_service=+ep _output/bin/kube-apiserver
- runs: |
mkdir -p "${{targets.destdir}}"/usr/bin/
install -m755 _output/bin/* ${{targets.destdir}}/usr/bin/
mkdir -p "${{targets.destdir}}"/etc/kubernetes
subpackages:
- name: kubectl-1.29
description: A command line tool for communicating with a Kubernetes API server
pipeline:
- runs: |
mkdir -p ${{targets.subpkgdir}}/usr/bin
install -m755 _output/bin/kubectl ${{targets.subpkgdir}}/usr/bin/kubectl-1.29
- name: kubectl-bash-completion-1.29
dependencies:
runtime:
- kubectl-1.29
pipeline:
- runs: |
mkdir -p "${{targets.subpkgdir}}"/usr/share/bash-completion/completions
_output/bin/kubectl completion bash > "${{targets.subpkgdir}}"/usr/share/bash-completion/completions/kubectl-1.29
- name: kubeadm-1.29
description: A tool for quickly installing Kubernetes and setting up a secure cluster
dependencies:
runtime:
- iproute2
- socat
- ethtool
- conntrack-tools
- crictl
pipeline:
- runs: |
mkdir -p ${{targets.subpkgdir}}/usr/bin
install -m755 _output/bin/kubeadm ${{targets.subpkgdir}}/usr/bin/kubeadm-1.29
mkdir -p "${{targets.subpkgdir}}"/usr/share/bash-completion/completions
_output/bin/kubeadm completion bash > "${{targets.subpkgdir}}"/usr/share/bash-completion/completions/kubeadm
- name: kubelet-1.29
description: An agent that runs on each node in a Kubernetes cluster making sure that containers are running in a Pod
dependencies:
runtime:
- ip6tables
pipeline:
- runs: |
mkdir -p ${{targets.subpkgdir}}/usr/bin
install -m755 _output/bin/kubelet ${{targets.subpkgdir}}/usr/bin/kubelet-1.29
install -d ${{targets.subpkgdir}}/var/lib/kubelet
install -d ${{targets.subpkgdir}}/var/log/kubelet
- name: kube-scheduler-1.29
description: Kubernetes control plane component watching over pods on nodes
pipeline:
- runs: |
mkdir -p ${{targets.subpkgdir}}/usr/bin
install -m755 _output/bin/kube-scheduler ${{targets.subpkgdir}}/usr/bin/kube-scheduler-1.29
install -d ${{targets.subpkgdir}}/var/log/kube-scheduler
- name: kube-proxy-1.29
description: Kubernetes network proxy that runs on each node
pipeline:
- runs: |
mkdir -p ${{targets.subpkgdir}}/usr/bin
install -m755 _output/bin/kube-proxy ${{targets.subpkgdir}}/usr/bin/kube-proxy-1.29
install -d ${{targets.subpkgdir}}/var/lib/kube-proxy
install -d ${{targets.subpkgdir}}/var/log/kube-proxy
- name: kube-controller-manager-1.29
description: Kubernetes control plane component that runs controller processes
pipeline:
- runs: |
mkdir -p ${{targets.subpkgdir}}/usr/bin
install -m755 _output/bin/kube-controller-manager ${{targets.subpkgdir}}/usr/bin/kube-controller-manager-1.29
install -d ${{targets.subpkgdir}}/var/log/kube-controller-manager
- name: kube-apiserver-1.29
description: Kubernetes control plane component exposing the Kubernetes API
pipeline:
- runs: |
mkdir -p ${{targets.subpkgdir}}/usr/bin
install -m755 _output/bin/kube-apiserver ${{targets.subpkgdir}}/usr/bin/kube-apiserver-1.29
install -d ${{targets.subpkgdir}}/var/log/kube-apiserver
- name: kubernetes-pause-3.9
description: ""
dependencies:
provides:
- kubernetes-pause=3.9
pipeline:
- working-directory: /home/build/build/pause
runs: |
mkdir -p ${{targets.subpkgdir}}/usr/bin/
CFLAGS="$CFLAGS -static -DVERSION=${{vars.pause-version}}-${{package.version}}"
gcc -o "${{targets.subpkgdir}}"/usr/bin/pause-3.9 linux/pause.c
- range: components
name: "${{range.key}}-1.29-default"
description: "Makes this version of ${{range.key}} the default."
dependencies:
runtime:
- ${{range.key}}-1.29
provides:
- ${{range.key}}-default=1.29
- ${{range.key}}=1.29
pipeline:
- runs: |
mkdir -p ${{targets.subpkgdir}}/usr/bin
ln -s ${{range.key}}-1.29 ${{targets.subpkgdir}}/usr/bin/${{range.key}}
- name: kubernetes-1.29-default
description: "Compatibility package to set 1.29 as the default kubernetes, and add packages to their shortened path"
dependencies:
runtime:
- kubectl-1.29-default
- kubeadm-1.29-default
- kubelet-1.29-default
- kube-scheduler-1.29-default
- kube-proxy-1.29-default
- kube-controller-manager-1.29-default
- kube-apiserver-1.29-default
checks:
disabled:
- empty
data:
- name: components
items:
# Only the keys matter
kubectl:
kubeadm:
kubelet:
kube-scheduler:
kube-proxy:
kube-controller-manager:
kube-apiserver:
update:
enabled: true
github:
identifier: kubernetes/kubernetes
strip-prefix: v
tag-filter: v1.29.