Update keystone service definition

Add services for ec2 and volume

Ensure that all objects should be present.
This commit is contained in:
Dan Bode 2012-04-10 09:37:27 -07:00
parent 4e76473925
commit f3d26339d0
1 changed files with 40 additions and 11 deletions

View File

@ -1,31 +1,60 @@
class nova::keystone::auth(
$auth_name = 'nova',
$password = 'nova_password',
$service = 'compute',
$address = '127.0.0.1',
$port = '8774',
$version = 'v1.1'
$auth_name = 'nova',
$password = 'nova_password',
$service = 'compute',
$address = '127.0.0.1',
$compute_port = '8774',
$volume_port = '8776',
$ec2_port = '8773',
$version = 'v1.1'
) {
Class['keystone::roles::admin'] -> Class['nova::keystone::auth']
keystone_user { $auth_name:
ensure => present,
password => $password,
}
keystone_user_role { "${auth_name}@services":
ensure => present,
roles => 'admin',
require => Keystone_user[$auth_name]
}
keystone_service { $auth_name:
ensure => present,
type => 'compute',
description => "Openstack Compute Service",
}
keystone_endpoint { $auth_name:
ensure => present,
public_url => "http://${address}:${port}/${version}/%(tenant_id)s",
admin_url => "http://${address}:${port}/${version}/%(tenant_id)s",
internal_url => "http://${address}:${port}/${version}/%(tenant_id)s",
region => 'RegionOne',
public_url => "http://${address}:${compute_port}/${version}/%(tenant_id)s",
admin_url => "http://${address}:${compute_port}/${version}/%(tenant_id)s",
internal_url => "http://${address}:${compute_port}/${version}/%(tenant_id)s",
}
keystone_service { "${auth_name}_volume":
ensure => present,
type => 'volume',
description => 'Volume Service',
}
keystone_endpoint { "${auth_name}_volume":
ensure => present,
region => 'RegionOne',
public_url => "http://${address}:${volume_port}/${version}/%(tenant_id)s",
admin_url => "http://${address}:${volume_port}/${version}/%(tenant_id)s",
internal_url => "http://${address}:${volume_port}/${version}/%(tenant_id)s",
}
keystone_service { "${auth_name}_ec2":
ensure => present,
type => 'ec2',
description => 'EC2 service',
}
keystone_endpoint { "${auth_name}_ec2":
ensure => present,
region => 'RegionOne',
public_url => "http://${address}:${ec2_port}/services/Cloud",
admin_url => "http://${address}:${ec2_port}/services/Admin",
internal_url => "http://${address}:${ec2_port}/services/Cloud",
}
}