diff --git a/.gitlab-ci.yaml b/.gitlab-ci.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..550f548dba2a5e699fe1a09ed87214c17f655308
--- /dev/null
+++ b/.gitlab-ci.yaml
@@ -0,0 +1,29 @@
+variables:
+  STORAGE_DRIVER: "vfs"
+  BUILDAH_FORMAT: "docker"
+
+image: quay.io/buildah/stable
+before_script:
+  - buildah login --u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
+  - source environment
+  - >
+      buildah bud
+      --pull
+      --build-arg "BASE=$BASE"
+      --build-arg "LDAP_PLUGIN_URL=$LDAP_PLUGIN_URL"
+      --build-arg login_text="${LOGIN_TEXT}"
+      --build-arg collab_text="${COLLAB_TEXT}"
+      --build-arg admin_is_sysadmin="${ADMIN_IS_SYSADMIN}"
+      -t "$CI_REGISTRY_IMAGE" .
+build-main:
+  script:
+    - buildah tag "$CI_REGISTRY_IMAGE" "$CI_REGISTRY_IMAGE:branch-$CI_COMMIT_REF_SLUG"
+    - buildah push "$CI_REGISTRY_IMAGE:branch-$CI_COMMIT_REF_SLUG" "docker://$CI_REGISTRY_IMAGE:branch-$CI_COMMIT_REF_SLUG"
+  only: main
+
+build:
+  script:
+    - buildah tag "$CI_REGISTRY_IMAGE" "$CI_REGISTRY_IMAGE:branch-$CI_COMMIT_REF_SLUG"
+    - buildah push "$CI_REGISTRY_IMAGE:branch-$CI_COMMIT_REF_SLUG" "docker://$CI_REGISTRY_IMAGE:branch-$CI_COMMIT_REF_SLUG"
+  except:
+    - main
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
deleted file mode 100644
index e4955380f619b6eb2861e6a37e09ff24f167a8f7..0000000000000000000000000000000000000000
--- a/.gitlab-ci.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-variables:
-  DOCKER_DRIVER: vfs
-
-image: docker
-services:
-  - name: docker:19-dind
-    # Currently we need this ugly workaround in order to use docker in Kata:
-    entrypoint:
-      - sh
-      - -c
-      - >-
-        mkdir /sys/fs/cgroup/systemd
-        && mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
-        && exec dockerd-entrypoint.sh
-
-before_script:
-  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
-  - source environment
-  - ulimit -n 999999
-  - ulimit -n
-  - lsof | wc -l
-  - sysctl fs.file-max
- # - docker pull "$CI_REGISTRY_IMAGE" || true
- # - docker pull "$BASE"
-  - >
-      docker build
-      --ulimit nofile=999999
-      --cache-from "$CI_REGISTRY_IMAGE"
-      --pull
-      --build-arg "BASE=$BASE"
-      --build-arg "LDAP_PLUGIN_URL=$LDAP_PLUGIN_URL"
-      --build-arg login_text="${LOGIN_TEXT}"
-      --build-arg collab_text="${COLLAB_TEXT}"
-      --build-arg admin_is_sysadmin="${ADMIN_IS_SYSADMIN}"
-      -t "$CI_REGISTRY_IMAGE" .
-
-build-main:
-  script:
-    - docker tag "$CI_REGISTRY_IMAGE" "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
-    - docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
-    - docker push "$CI_REGISTRY_IMAGE"
-  only:
-    - main
-
-build:
-  script:
-    - docker tag "$CI_REGISTRY_IMAGE" "$CI_REGISTRY_IMAGE:branch-$CI_COMMIT_REF_SLUG"
-    - docker push "$CI_REGISTRY_IMAGE:branch-$CI_COMMIT_REF_SLUG"
-  except:
-    - main