Skip to content

Commit

Permalink
kubernetes: 1.29 version stream
Browse files Browse the repository at this point in the history
  • Loading branch information
ajayk committed Dec 16, 2023
1 parent 1ad2e73 commit e911941
Showing 1 changed file with 229 additions and 0 deletions.
229 changes: 229 additions & 0 deletions kubernetes-1.29.yaml
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.

0 comments on commit e911941

Please sign in to comment.