Oki, I could reproduce the exact same error using: include ::openstack_integration include ::openstack_integration::repos include ::openstack_integration::mysql class { '::openstack_integration::keystone': using_domain_config => true, } ::keystone::resource::service_identity { 'beaker-ci': service_type => 'beaker', service_description => 'beaker service', service_name => 'beaker', password => 'secret', public_url => 'http://127.0.0.1:1234', admin_url => 'http://127.0.0.1:1234', internal_url => 'http://127.0.0.1:1234', } # v3 admin # we don't use ::keystone::roles::admin but still create resources manually: keystone_domain { 'admin_domain': ensure => present, enabled => true, description => 'Domain for admin v3 users', } keystone_domain { 'service_domain': ensure => present, enabled => true, description => 'Domain for admin v3 users', } keystone_tenant { 'servicesv3::service_domain': ensure => present, enabled => true, description => 'Tenant for the openstack services', } keystone_tenant { 'openstackv3::admin_domain': ensure => present, enabled => true, description => 'admin tenant', } keystone_user { 'adminv3::admin_domain': ensure => present, enabled => true, email => '