Compare commits

...

8 Commits

3 changed files with 103 additions and 0 deletions

View File

@ -0,0 +1,42 @@
name: Build kubernetes images
on:
push:
branches:
- test-gitea-actions
paths:
- ".gitea/workflows/build-k8s-images.yaml"
- "org/k8s/kube-apiserver/**"
- "org/k8s/kube-controller-manager/**"
- "org/k8s/kube-scheduler/**"
- "org/k8s/kube-proxy/**"
- "tags.toml"
- "k8s-images.sh"
schedule:
- cron: "30 3 1 * *"
jobs:
build-images:
runs-on: alt-latest
steps:
- name: Install the dependencies
run: |
apt-get update
apt-get install -y \
podman \
python3-module-tomli \
python3-module-jinja2 \
qemu-user-static-binfmt-aarch64 \
qemu-user-static-binfmt-arm \
qemu-user-static-binfmt-ppc
- name: Check out repository code
uses: actions/checkout@v3
- name: Log into gitea.basealt.ru
run: podman login -u stepchenkoas -p "${{ secrets.ACTIONS_TOKEN }}" gitea.basealt.ru
- name: Build docker images for p10 (kube-apiserver, kube-controller-manager, kube-scheduler, kube-proxy)
run: ${{ gitea.workspace }}/build-k8s-images.sh gitea.basealt.ru k8s-p10 p10
- name: Push docker images for p10 to gitea.basealt.ru
run: ${{ gitea.workspace }}/push-k8s-images.sh gitea.basealt.ru k8s-p10 p10
- name: Build docker images for sisyphus (kube-apiserver, kube-controller-manager, kube-scheduler, kube-proxy)
run: ${{ gitea.workspace }}/build-k8s-images.sh gitea.basealt.ru k8s-sisyphus sisyphus
- name: Push docker images for sisyphus to gitea.basealt.ru
run: ${{ gitea.workspace }}/push-k8s-images.sh gitea.basealt.ru k8s-sisyphus sisyphus

View File

@ -28,7 +28,9 @@ If you push to the users repository, then organiztion is your username.
## Dependencies
On x86_64 machine using p10 branch you need:
- `podman`
- `python3-module-tomli`
- `python3-module-jinja2`
- `qemu-user-static-binfmt-aarch64` to build for arm64 architecture
- `qemu-user-static-binfmt-arm` to build for arm architecture
- `qemu-user-static-binfmt-ppc` to build for ppc64le architecture

59
k8s-images.sh Executable file
View File

@ -0,0 +1,59 @@
#!/usr/bin/env sh
set -xeuo pipefail
function print_help() {
cat <<EOF
usage:
$0 (build | push) <REGISTRY> <ORGANIZATION> <BRANCH>
EOF
}
if [ "$#" -lt 4 ]; then
print_help
exit 1
fi
COMMAND=$1
REGISTRY=${2:-"gitea.basealt.ru"}
ORGANIZATION=${3:-"k8s-sisyphus"}
BRANCH=${4:-"sisyphus"}
shift 4
[ "$COMMAND" == 'build' ] || [ "$COMMAND" == 'push' ] || exit 1
function build() {
./build.py \
--branches $BRANCH \
--latest $BRANCH \
--registry $REGISTRY \
--overwrite-organization $ORGANIZATION \
--images k8s/kube-apiserver k8s/kube-controller-manager k8s/kube-scheduler k8s/kube-proxy \
--tags tags.toml \
--skip-stages push \
"$@"
}
function push() {
./build.py \
--branches $BRANCH \
--latest $BRANCH \
--registry $REGISTRY \
--overwrite-organization $ORGANIZATION \
--images k8s/kube-apiserver k8s/kube-controller-manager k8s/kube-scheduler k8s/kube-proxy \
--tags tags.toml \
--stages push \
"$@"
}
for version in 1.26.14 1.27.12 1.28.8; do
sed -i "s/kubernetes.*-/kubernetes${version::4}-/g" org/k8s/kube-*/*
sed -i "s/$BRANCH = \[ \"v.*\" \]/$BRANCH = \[ \"v$version\" \]/g" tags.toml
if [ "$COMMAND" == 'build' ]; then
build "$@"
elif [ "$COMMAND" == 'push' ]; then
push "$@"
fi
done