diff --git a/doc/source/admin/dib.rst b/doc/source/admin/dib.rst
index b405f4b..98474a2 100644
--- a/doc/source/admin/dib.rst
+++ b/doc/source/admin/dib.rst
@@ -130,6 +130,9 @@ time via the kernel command line parameters:
 
 * Restart the ironic-conductor.
 
+.. note::
+   This element is added to the published images by default.
+
 The *devuser* element allows creating a user at build time, for example:
 
 .. code-block:: bash
diff --git a/roles/ipa-build-dib-image/defaults/main.yaml b/roles/ipa-build-dib-image/defaults/main.yaml
index 8783d77..42a5952 100644
--- a/roles/ipa-build-dib-image/defaults/main.yaml
+++ b/roles/ipa-build-dib-image/defaults/main.yaml
@@ -8,3 +8,4 @@ ipa_raw_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-age
 ipa_tar_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR'
 dib_extra_args:
 dib_from_source: true
+extra_elements: ["dynamic-login"]
diff --git a/roles/ipa-build-dib-image/tasks/main.yaml b/roles/ipa-build-dib-image/tasks/main.yaml
index bcda54f..315cf73 100644
--- a/roles/ipa-build-dib-image/tasks/main.yaml
+++ b/roles/ipa-build-dib-image/tasks/main.yaml
@@ -20,6 +20,9 @@
   command: |
     ironic-python-agent-builder -o {{ image_name }} -b HEAD -v
         {{ "-r {}".format(image_release) if image_release else '' }}
+        {% for element in extra_elements %}
+          --element {{ element }}
+        {% endfor %}
         {{ "--extra-args '{}'".format(dib_extra_args) if dib_extra_args else '' }}
         {{ image_distro }}
   environment: