diff --git a/ironic/files/pike/ironic.conf b/ironic/files/pike/ironic.conf
index c69c81a..6ae4419 100644
--- a/ironic/files/pike/ironic.conf
+++ b/ironic/files/pike/ironic.conf
@@ -1020,10 +1020,10 @@
 #action_retry_interval = 5
 
 # Authentication URL (string value)
-{%- if ironic.get('cinder', {}).get('auth_strategy') == 'keystone' %}
-auth_url = {{ ironic.identity.protocol }}://{{ ironic.identity.host }}:{{ ironic.identity.port }}
-{%- if ironic.identity.protocol == 'https' %}
-cafile={{ ironic.identity.get('cacert_file', ironic.cacert_file) }}
+{%- if conductor.get('cinder', {}).get('auth_strategy') == 'keystone' %}
+auth_url = {{ conductor.identity.protocol }}://{{ conductor.identity.host }}:{{ conductor.identity.port }}
+{%- if conductor.identity.protocol == 'https' %}
+cafile={{ conductor.identity.get('cacert_file', conductor.cacert_file) }}
 {%- endif %}
 {%- else %}
 #auth_url = <None>
@@ -1031,8 +1031,8 @@
 
 # Authentication type to load (string value)
 # Deprecated group/name - [cinder]/auth_plugin
-{%- if ironic.get('cinder', {}).get('auth_type') %}
-auth_type = {{ ironic.cinder.auth_type }}
+{%- if conductor.get('cinder', {}).get('auth_type') %}
+auth_type = {{ conductor.cinder.auth_type }}
 {%- else %}
 #auth_type = <None>
 {%- endif %}
@@ -1069,16 +1069,16 @@
 
 # User's password (string value)
 #password = <None>
-{%- if ironic.get('cinder', {}).get('password') %}
-password = {{ ironic.cinder.password }}
+{%- if conductor.get('cinder', {}).get('password') %}
+password = {{ conductor.cinder.password }}
 {%- else %}
 #password = <None>
 {%- endif %}
 
 # Domain ID containing project (string value)
 #project_domain_id = <None>
-{%- if ironic.get('cinder', {}).get('project_domain_id') %}
-project_domain_id = {{ ironic.cinder.project_domain_id }}
+{%- if conductor.get('cinder', {}).get('project_domain_id') %}
+project_domain_id = {{ conductor.cinder.project_domain_id }}
 {%- else %}
 #project_domain_id = <None>
 {%- endif %}
@@ -1094,8 +1094,8 @@
 # Project name to scope to (string value)
 # Deprecated group/name - [cinder]/tenant_name
 #project_name = <None>
-{%- if ironic.get('cinder', {}).get('project_name') %}
-project_name = {{ ironic.cinder.project_name }}
+{%- if conductor.get('cinder', {}).get('project_name') %}
+project_name = {{ conductor.cinder.project_name }}
 {%- else %}
 #project_name = <None>
 {%- endif %}
@@ -1121,8 +1121,8 @@
 # with either http:// or https://. This option is part of
 # boot-from-volume work, which is not currently exposed to
 # users. (uri value)
-{%- if ironic.get('cinder', {}).get('url') %}
-url = {{ ironic.cinder.url }}
+{%- if conductor.get('cinder', {}).get('url') %}
+url = {{ conductor.cinder.url }}
 {%- else %}
 #url = <None>
 {%- endif %}
@@ -1132,8 +1132,8 @@
 user_domain_id = default
 
 # User's domain name (string value)
-{%- if ironic.get('cinder', {}).get('user_domain_name') %}
-user_domain_name = {{ ironic.cinder.user_domain_name }}
+{%- if conductor.get('cinder', {}).get('user_domain_name') %}
+user_domain_name = {{ conductor.cinder.user_domain_name }}
 {%- else %}
 #user_domain_name = <None>
 {%- endif %}
@@ -1143,8 +1143,8 @@
 
 # Username (string value)
 # Deprecated group/name - [cinder]/user_name
-{%- if ironic.get('cinder', {}).get('username') %}
-username = {{ ironic.cinder.username }}
+{%- if conductor.get('cinder', {}).get('username') %}
+username = {{ conductor.cinder.username }}
 {%- else %}
 #username = <None>
 {%- endif %}
diff --git a/ironic/files/queens/ironic.conf b/ironic/files/queens/ironic.conf
index 76b6fe5..0d03817 100644
--- a/ironic/files/queens/ironic.conf
+++ b/ironic/files/queens/ironic.conf
@@ -896,10 +896,10 @@
 #action_retry_interval = 5
 
 # Authentication URL (string value)
-{%- if ironic.get('cinder', {}).get('auth_strategy') == 'keystone' %}
-auth_url = {{ ironic.identity.protocol }}://{{ ironic.identity.host }}:{{ ironic.identity.port }}
-{%- if ironic.identity.protocol == 'https' %}
-cafile={{ ironic.identity.get('cacert_file', ironic.cacert_file) }}
+{%- if conductor.get('cinder', {}).get('auth_strategy') == 'keystone' %}
+auth_url = {{ conductor.identity.protocol }}://{{ conductor.identity.host }}:{{ conductor.identity.port }}
+{%- if conductor.identity.protocol == 'https' %}
+cafile={{ conductor.identity.get('cacert_file', conductor.cacert_file) }}
 {%- endif %}
 {%- else %}
 #auth_url = <None>
@@ -907,8 +907,8 @@
 
 # Authentication type to load (string value)
 # Deprecated group/name - [cinder]/auth_plugin
-{%- if ironic.get('cinder', {}).get('auth_type') %}
-auth_type = {{ ironic.cinder.auth_type }}
+{%- if conductor.get('cinder', {}).get('auth_type') %}
+auth_type = {{ conductor.cinder.auth_type }}
 {%- else %}
 #auth_type = <None>
 {%- endif %}
@@ -945,16 +945,16 @@
 
 # User's password (string value)
 #password = <None>
-{%- if ironic.get('cinder', {}).get('password') %}
-password = {{ ironic.cinder.password }}
+{%- if conductor.get('cinder', {}).get('password') %}
+password = {{ conductor.cinder.password }}
 {%- else %}
 #password = <None>
 {%- endif %}
 
 # Domain ID containing project (string value)
 #project_domain_id = <None>
-{%- if ironic.get('cinder', {}).get('project_domain_id') %}
-project_domain_id = {{ ironic.cinder.project_domain_id }}
+{%- if conductor.get('cinder', {}).get('project_domain_id') %}
+project_domain_id = {{ conductor.cinder.project_domain_id }}
 {%- else %}
 #project_domain_id = <None>
 {%- endif %}
@@ -970,8 +970,8 @@
 # Project name to scope to (string value)
 # Deprecated group/name - [cinder]/tenant_name
 #project_name = <None>
-{%- if ironic.get('cinder', {}).get('project_name') %}
-project_name = {{ ironic.cinder.project_name }}
+{%- if conductor.get('cinder', {}).get('project_name') %}
+project_name = {{ conductor.cinder.project_name }}
 {%- else %}
 #project_name = <None>
 {%- endif %}
@@ -997,8 +997,8 @@
 # with either http:// or https://. This option is part of
 # boot-from-volume work, which is not currently exposed to
 # users. (uri value)
-{%- if ironic.get('cinder', {}).get('url') %}
-url = {{ ironic.cinder.url }}
+{%- if conductor.get('cinder', {}).get('url') %}
+url = {{ conductor.cinder.url }}
 {%- else %}
 #url = <None>
 {%- endif %}
@@ -1008,8 +1008,8 @@
 user_domain_id = default
 
 # User's domain name (string value)
-{%- if ironic.get('cinder', {}).get('user_domain_name') %}
-user_domain_name = {{ ironic.cinder.user_domain_name }}
+{%- if conductor.get('cinder', {}).get('user_domain_name') %}
+user_domain_name = {{ conductor.cinder.user_domain_name }}
 {%- else %}
 #user_domain_name = <None>
 {%- endif %}
@@ -1019,8 +1019,8 @@
 
 # Username (string value)
 # Deprecated group/name - [cinder]/user_name
-{%- if ironic.get('cinder', {}).get('username') %}
-username = {{ ironic.cinder.username }}
+{%- if conductor.get('cinder', {}).get('username') %}
+username = {{ conductor.cinder.username }}
 {%- else %}
 #username = <None>
 {%- endif %}
