Error: Could not set 'present' on ensure: No such file or directory - /etc/heat/heat.conf at 72:/etc/puppet/modules/heat/manifests/keystone/domain.pp

Bug #1656389 reported by James Slagle
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
High
Unassigned

Bug Description

I've hit this error during Controller deployment Step3 when using deployed servers where all the packages are not already preinstalled. I'm deploying with EnablePackageInstall: True.

Jan 13 18:18:17 tripleo-05.tripleo.lab.eng.bos.redhat.com os-collect-config[25652]: Error: Could not set 'present' on ensure: No such file or directory - /etc/heat/heat.conf at 72:/etc/puppet/modules/heat/manifests/keystone/domain.pp
Jan 13 18:18:17 tripleo-05.tripleo.lab.eng.bos.redhat.com os-collect-config[25652]: Wrapped exception:
Jan 13 18:18:17 tripleo-05.tripleo.lab.eng.bos.redhat.com os-collect-config[25652]: No such file or directory - /etc/heat/heat.conf
Jan 13 18:18:17 tripleo-05.tripleo.lab.eng.bos.redhat.com os-collect-config[25652]: Error: /Stage[main]/Heat::Keystone::Domain/Heat_config[DEFAULT/stack_user_domain_name]/ensure: change from absent to present failed: Could not set 'present' on ensure: No such file or directory - /etc/heat/heat.conf at 72:/etc/puppet/modules/heat/manifests/keystone/domain.pp

The error seems to be because we include the heat keystone domain class at step 3 in puppet-tripleo:

  if $step >= 3 {
    class { '::heat::keystone::domain':
      manage_domain => false,
      manage_user => false,
      manage_role => false,
    }
  }

That command requires heat.conf, but nothing has installed openstack-heat-common yet, as that package does not get installed until step 4 (various heat service manifests, e.g., api.pp, are included at step4 in puppet-tripleo).

It seems this is kind of racey does not happen 100% of the time b/c in puppet-tripleo/manifests/profile/base/heat/engine.pp we have:

  if $step >= 4 or ( $step >= 3 and $sync_db ) {
    include ::heat::engine
  }

So in Step3 with sync_db=True, ::heat::engine will end up installing openstack-heat-common. In cases where the bootstrap node happens to try to setup the heat keystone domain first, you won't hit this error.

Revision history for this message
James Slagle (james-slagle) wrote :

I'm thinking the right fix is in puppet-heat:
https://review.openstack.org/420147

Changed in tripleo:
importance: Undecided → High
assignee: nobody → James Slagle (james-slagle)
milestone: none → ocata-3
status: New → In Progress
Revision history for this message
James Slagle (james-slagle) wrote :

puppet-tripleo patch instead:
https://review.openstack.org/420173

Changed in tripleo:
milestone: ocata-3 → ocata-rc1
Changed in tripleo:
milestone: ocata-rc1 → ocata-rc2
Changed in tripleo:
milestone: ocata-rc2 → pike-1
Changed in tripleo:
milestone: pike-1 → pike-2
Changed in tripleo:
milestone: pike-2 → pike-3
Revision history for this message
Emilien Macchi (emilienm) wrote :

There are no currently open reviews on this bug, changing the status back to the previous state and unassigning. If there are active reviews related to this bug, please include links in comments.

Changed in tripleo:
status: In Progress → New
assignee: James Slagle (james-slagle) → nobody
status: New → Triaged
Changed in tripleo:
milestone: pike-3 → pike-rc1
Revision history for this message
Ben Nemec (bnemec) wrote :

Looks like this was fixed by https://review.openstack.org/#/c/420173/ but for some reason the bug didn't get updated.

Changed in tripleo:
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.