diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ca19e5bb0be5e94c6aec42388ee3bc4b16b2c218..0672b35c6e3396f6649375f310e612c07ccc07c7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,9 +18,6 @@ before_script:
     - make -C ${CI_JOB_NAME}
     - '[ "$CI_COMMIT_REF_NAME" != master ] || make -C ${CI_JOB_NAME} push'
 
-'29':
-  <<: *build_job
-
 '30':
   <<: *build_job
 
diff --git a/29/Dockerfile b/29/Dockerfile
deleted file mode 100644
index ca9bf2497547f016f61e67913818925b18e3c5f9..0000000000000000000000000000000000000000
--- a/29/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-FROM fedora:29
-
-RUN dnf update -y --setopt=install_weak_deps=False # 20190502
-
-RUN dnf install -y --allowerasing \
-  sudo wget curl which tar expect git \
-  patch rpm-build redhat-rpm-config rpmlint \
-  patch ccache make util-linux \
-  dnf-utils rpmdevtools createrepo \
- && dnf clean all
-
-RUN wget -O /etc/yum.repos.d/ICINGA-release.repo \
- https://packages.icinga.com/fedora/ICINGA-release.repo
-
-RUN groupadd -g 1000 build \
- && useradd -u 1000 -g 1000 -m build \
- && echo 'Defaults:build !requiretty' | tee -a /etc/sudoers \
- && echo 'build ALL=(ALL:ALL) NOPASSWD: ALL' | tee -a /etc/sudoers \
- && chown build.build /usr/local/bin
-
-USER build
-RUN git clone https://git.icinga.com/build-docker/scripts.git /usr/local/bin
-ENTRYPOINT ["/usr/local/bin/icinga-build-entrypoint"]
-CMD ["icinga-build-package"]
diff --git a/29/Makefile b/29/Makefile
deleted file mode 100644
index f451fe153997996b75db9be5b1b9b967fad97fc4..0000000000000000000000000000000000000000
--- a/29/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-VARIANT := x86_64
-include ../image.mk
diff --git a/Makefile b/Makefile
index 0a0c2f8e37a1840b88641593d376fe00e552189d..3e60329a72e32e6dc0fe2321b04fa93920769b18 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,10 @@
 all:
-	$(MAKE) -C 29
 	$(MAKE) -C 30
 	$(MAKE) -C 31
 	$(MAKE) -C 32
 	$(MAKE) -C 33
 
 push:
-	$(MAKE) -C 29 push
 	$(MAKE) -C 30 push
 	$(MAKE) -C 31 push
 	$(MAKE) -C 32 push