diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9bef26bb10b81cbff969a44669b1a325d7005cdc..4e38e66a45398a91bdf6d0ec75aa33ce4d1e6182 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -133,15 +133,6 @@ docker_build_image_lofar_device_base:
   script:
 #    Do not remove 'bash' or statement will be ignored by primitive docker shell
     - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh lofar-device-base $tag
-
-# This job template ensures the base image jobs have all run to completion
-# prior to executing the job that uses this template.
-.base_image_needs:
-  needs: [
-    'docker_build_image_lofar_device_base', 'docker_build_image_all',
-    'docker_store_images_changes', 'docker_store_images_master_tag'
-  ]
-
 docker_build_image_prometheus:
   extends: .base_docker_images_except
   only:
@@ -450,7 +441,6 @@ docker_build_image_hdbppts_es:
 #    Do not remove 'bash' or statement will be ignored by primitive docker shell
     - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh hdbppts-es $tag
 newline_at_eof:
-  extends: .base_image_needs
   stage: linting
   before_script:
     - pip3 install -r tangostationcontrol/test-requirements.txt
@@ -458,7 +448,6 @@ newline_at_eof:
 #     TODO(Corne): Ignore shell files in submodules more cleanly
     - flake8 --filename *.sh,*.conf,*.md,*.yml --select=W292 --exclude docker-compose/tango-prometheus-exporter,.tox,.egg-info,docker
 python_linting:
-  extends: .base_image_needs
   stage: linting
   before_script:
     - sudo apt-get update
@@ -467,7 +456,6 @@ python_linting:
     - cd tangostationcontrol
     - tox -e pep8
 bandit:
-  extends: .base_image_needs
   stage: static-analysis
   before_script:
     - sudo apt-get update
@@ -476,7 +464,6 @@ bandit:
     - cd tangostationcontrol
     - tox -e bandit
 xenon:
-  extends: .base_image_needs
   stage: static-analysis
   allow_failure: true
   before_script:
@@ -486,7 +473,6 @@ xenon:
    - cd tangostationcontrol
    - tox -e xenon
 shellcheck:
-  extends: .base_image_needs
   stage: static-analysis
   before_script:
     - sudo apt-get update
@@ -495,7 +481,6 @@ shellcheck:
 #     TODO(Corne): Ignore shell files in submodules
     - shellcheck **/*.sh
 sphinx-documentation:
-  extends: .base_image_needs
   stage: documentation
   before_script:
     - sudo apt-get update
@@ -507,7 +492,6 @@ sphinx-documentation:
     paths:
       - tangostationcontrol/docs/build/
 unit_test:
-  extends: .base_image_needs
   stage: unit-tests
   before_script:
     - sudo apt-get update
@@ -525,32 +509,6 @@ integration_test_docker:
   image: docker:latest
   tags:
     - privileged
-  needs: [
-    'docker_build_image_lofar_device_base', 'docker_build_image_all',
-    'docker_store_images_changes', 'docker_store_images_master_tag',
-
-    'docker_build_image_elk', 'docker_build_image_prometheus',
-    'docker_build_image_itango', 'docker_build_image_grafana',
-    'docker_build_image_jupyter',
-
-    'docker_build_image_apsct_sim', 'docker_build_image_apspu_sim',
-    'docker_build_image_recv_sim', 'docker_build_image_sdptr_sim',
-    'docker_build_image_unb2_sim',
-
-    'docker_build_image_device_apsct', 'docker_build_image_device_apspu',
-    'docker_build_image_device_pdu', 'docker_build_image_device_tilebeam',
-    'docker_build_image_device_beamlet',
-    'docker_build_image_device_digitalbeam', 'docker_build_image_device_boot',
-    'docker_build_image_device_docker',
-    'docker_build_image_device_observation_control',
-    'docker_build_image_device_antennafield', 'docker_build_image_device_recv',
-    'docker_build_image_device_sdp', 'docker_build_image_device_sst',
-    'docker_build_image_device_unb2', 'docker_build_image_device_xst',
-    'docker_build_image_device_temperature_manager',
-
-    'docker_build_image_archiver_timescale', 'docker_build_image_hdbppts_cm',
-    'docker_build_image_hdbppts_es'
-  ]
   services:
     - name: docker:dind
   variables:
@@ -597,7 +555,6 @@ integration_test_docker:
       done
       PGPASSWORD=password pg_dump --host=docker --username=postgres hdb 2>log/archiver-timescale-dump.log | gzip > log/archiver-timescale-dump.txt.gz
 wheel_packaging:
-  extends: .base_image_needs
   stage: packaging
   artifacts:
     paths: