From: francisco garcia Date: Tue, 11 Jun 2024 11:19:31 +0000 (+0000) Subject: deploy: create dockerfile to fast k8s compilation in rhel platform X-Git-Tag: Release-15.0.3~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5842bafc7a832243252af8b0256f0fd77e9c87b5;p=thirdparty%2Fbacula.git deploy: create dockerfile to fast k8s compilation in rhel platform --- diff --git a/bacula/src/plugins/fd/kubernetes-backend/docker/Dockerfile b/bacula/src/plugins/fd/kubernetes-backend/docker/Dockerfile index f1b540f39..d37c89e8f 100644 --- a/bacula/src/plugins/fd/kubernetes-backend/docker/Dockerfile +++ b/bacula/src/plugins/fd/kubernetes-backend/docker/Dockerfile @@ -19,7 +19,7 @@ ENTRYPOINT ["/docker-entrypoint.sh"] # Add Makefile rule: # async: # rsync -av -i ../bacula/src/ build/src/ - # Change directory to: /mnt/regress/ + # Change bacula directory in config file to: /mnt/regress/ # Execute: # make async && -C build/src/plugins/fd install-kubernetes && make -C build/src/plugins/fd/kubernetes-backend clean && make -C build/src/plugins/fd/kubernetes-backend install-kubernetes # Binary in: ~/regress/bin/k8s_backend \ No newline at end of file diff --git a/bacula/src/plugins/fd/kubernetes-backend/docker/README b/bacula/src/plugins/fd/kubernetes-backend/docker/README index 968d80408..8bb09f249 100644 --- a/bacula/src/plugins/fd/kubernetes-backend/docker/README +++ b/bacula/src/plugins/fd/kubernetes-backend/docker/README @@ -1,15 +1,23 @@ # Target +## Ubuntu/Debian + This docker image is to compile k8s plugin independent of ubuntu/debian platform. I had problems with libc library, so to isolate this problem, we create this docker image. If you want change this version, modify the image tag and dockerfile FROM. +For example: `FROM debian:bullseye` to `FROM ubuntu:jammy` + **Note:** The difference between Ubuntu and Debian in this compilation is that `rm` binary is allocated in other place: - Ubuntu: `/usr/bin/rm` - Debian: `/bin/rm` So, the Makefile will be modified to avoid errors. +## RHEL (Rocky 9) + +This docker image is to compile k8s plugin independent of RHEL platforms. + # Create the Docker image We need copy the requirements to docker context folder. For this reason, we do: @@ -17,10 +25,18 @@ We need copy the requirements to docker context folder. For this reason, we do: cp -a ../requirements.txt . ``` +```bash +docker build -t k8s_compilation:bullseye . +``` + ```bash docker build -t k8s_compilation:jammy . ``` +```bash +docker build -t k8s_compilation:rocky9 -f Dockerfile-rpm . +``` + # Pre-Run docker container To compile in docker container, we need modify the `regress config file` to adapt. @@ -60,19 +76,31 @@ async: ``` # Run docker container -In root project (bacula-bee folder), execute: +In root project (bacula-bee folder), execute (Depend on platform): + +```bash +docker run --rm -it -v $(pwd):/mnt k8s_compilation:bullseye /bin/bash +``` ```bash docker run --rm -it -v $(pwd):/mnt k8s_compilation:jammy /bin/bash ``` +```bash +docker run --rm -it -v $(pwd):/mnt k8s_compilation:rocky9 /bin/bash +``` + # Compile k8s plugin Execute: ```bash make async + +./k8s_compile ``` +This `./k8s_compile` binary will do: + ```bash make -C build/src/plugins/fd install-kubernetes ``` @@ -85,10 +113,6 @@ make -C build/src/plugins/fd/kubernetes-backend clean make -C build/src/plugins/fd/kubernetes-backend install-kubernetes ``` -Or in one command: -```bash -make async; make -C build/src/plugins/fd install-kubernetes; make -C build/src/plugins/fd/kubernetes-backend clean; make -C build/src/plugins/fd/kubernetes-backend install-kubernetes -``` # Get the k8s_backend binary diff --git a/bacula/src/plugins/fd/kubernetes-backend/docker/docker-entrypoint.sh b/bacula/src/plugins/fd/kubernetes-backend/docker/docker-entrypoint.sh index dfad74981..31578fe98 100755 --- a/bacula/src/plugins/fd/kubernetes-backend/docker/docker-entrypoint.sh +++ b/bacula/src/plugins/fd/kubernetes-backend/docker/docker-entrypoint.sh @@ -4,6 +4,18 @@ TMP_DIR="/mnt/regress/tmp" if [ ! -d "$TMP_DIR" ]; then make setup + cat </mnt/regress/k8s_compile +#!/bin/bash +make async +printf "\n%s\n" "Make async done." +make -C build/src/plugins/fd install-kubernetes +printf "\n%s\n" "Compiled k8s fd." +make -C build/src/plugins/fd/kubernetes-backend clean +printf "\n%s\n" "Cleaned k8s binary." +make -C build/src/plugins/fd/kubernetes-backend install-kubernetes +printf "\n%s\n" "Compiled k8s binary." +EOF +chmod +x /mnt/regress/k8s_compile else echo "The directory /mnt/regress/tmp already exists. So, we do not make setup" fi diff --git a/bacula/src/plugins/fd/kubernetes-backend/requirements.txt b/bacula/src/plugins/fd/kubernetes-backend/requirements.txt index dbfa98033..a29e84963 100644 --- a/bacula/src/plugins/fd/kubernetes-backend/requirements.txt +++ b/bacula/src/plugins/fd/kubernetes-backend/requirements.txt @@ -6,7 +6,7 @@ # Author: Radoslaw Korzeniewski # -pyyaml == 6.0 -kubernetes <= 26.1.0 -urllib3 == 1.26.16 -requests == 2.27.1 +pyyaml == 6.0.1 +kubernetes == 30.1.0 +urllib3 == 2.2.1 +requests == 2.32.3