-
Notifications
You must be signed in to change notification settings - Fork 283
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
229 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,229 @@ | ||
package: | ||
name: kubernetes-1.29 | ||
version: 1.29.0 | ||
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: 3f7a50f38688eb332e2a1b013678c6435d539ae6 | ||
|
||
- 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 | ||
dependencies: | ||
provides: | ||
- kubectl=1.29 | ||
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 | ||
provides: | ||
- kubeadm=1.29 | ||
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 | ||
provides: | ||
- kubelet=1.29 | ||
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 | ||
dependencies: | ||
provides: | ||
- kube-scheduler=1.29 | ||
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 | ||
dependencies: | ||
provides: | ||
- kube-proxy=1.29 | ||
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 | ||
dependencies: | ||
provides: | ||
- kube-controller-manager=1.29 | ||
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 | ||
dependencies: | ||
provides: | ||
- kube-apiserver=1.29 | ||
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 | ||
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. |