Refactor VirtualResources

- rename VirtualResource to Composer
- rename event parameter depend_action to child_action
- rename values parameter to input

Closes-bug: #1526780

Change-Id: Ib974e14ff4bda44c2d7d991f62aa4a06dea160ea
This commit is contained in:
Łukasz Oleś 2015-12-28 15:22:52 +01:00
parent f7edd1f957
commit 25dc2685f5
33 changed files with 237 additions and 235 deletions

2
.gitignore vendored
View File

@ -55,3 +55,5 @@ solar/.cache
.testrepository/
.solar_config_override
.ropeproject

View File

@ -8,7 +8,7 @@ from solar.core import actions
from solar.core import resource
from solar.core import signals
from solar.core import validation
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar import errors
from solar.dblayer.model import ModelMeta
@ -21,13 +21,13 @@ def main():
def setup_resources():
ModelMeta.remove_all()
node2 = vr.create('node2', 'resources/ro_node/', {
node2 = cr.create('node2', 'resources/ro_node/', {
'ip': '10.0.0.4',
'ssh_key': '/vagrant/.vagrant/machines/solar-dev2/virtualbox/private_key',
'ssh_user': 'vagrant'
})[0]
solar_bootstrap2 = vr.create('solar_bootstrap2', 'resources/solar_bootstrap', {'master_ip': '10.0.0.2'})[0]
solar_bootstrap2 = cr.create('solar_bootstrap2', 'resources/solar_bootstrap', {'master_ip': '10.0.0.2'})[0]
signals.connect(node2, solar_bootstrap2)

View File

@ -16,7 +16,7 @@ import sys
import time
from solar.core import actions
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar.core import resource
from solar.core import signals
from solar.dblayer.model import ModelMeta
@ -55,7 +55,7 @@ def deploy():
signals.connect(openstack_vhost, openstack_rabbitmq_user, {'vhost_name': 'vhost_name'})
errors = vr.validate_resources()
errors = cr.validate_resources()
if errors:
for r, error in errors:
print 'ERROR: %s: %s' % (r.name, error)

View File

@ -3,14 +3,14 @@ import sys
import time
from solar.core import signals
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar.dblayer.model import ModelMeta
def run():
ModelMeta.remove_all()
resources = vr.create('nodes', 'templates/nodes', {'count': 2})
resources = cr.create('nodes', 'templates/nodes', {'count': 2})
node1, node2 = [x for x in resources if x.name.startswith('node')]
hosts1, hosts2 = [x for x in resources

View File

@ -3,15 +3,15 @@ id: librarian_examples
resources:
- id: rabbitmq_service1
from: resources/rabbitmq_service
location: {{node}}
values:
location: #{node}#
input:
management_port: 15672
port: 5672
- id: librarian
location: {{node}}
location: #{node}#
from: resources/librarian
values:
input:
modules:
- rabbitmq_service1::module::NO_EVENTS
@ -19,4 +19,4 @@ events:
- type: depends_on
parent_action: librarian.run
state: success
depend_action: rabbitmq_service1.run
child_action: rabbitmq_service1.run

View File

@ -1,5 +1,5 @@
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar.dblayer.model import ModelMeta
import yaml
@ -33,24 +33,24 @@ NETWORK_METADATA = yaml.load("""
def deploy():
ModelMeta.remove_all()
resources = vr.create('nodes', 'templates/nodes', {'count': 2})
resources = cr.create('nodes', 'templates/nodes', {'count': 2})
first_node, second_node = [x for x in resources if x.name.startswith('node')]
first_transp = next(x for x in resources if x.name.startswith('transport'))
library = vr.create('library1', 'resources/fuel_library', {})[0]
library = cr.create('library1', 'resources/fuel_library', {})[0]
first_node.connect(library)
keys = vr.create('ceph_key', 'resources/ceph_keys', {})[0]
keys = cr.create('ceph_key', 'resources/ceph_keys', {})[0]
first_node.connect(keys)
remote_file = vr.create('ceph_key2', 'resources/remote_file',
remote_file = cr.create('ceph_key2', 'resources/remote_file',
{'dest': '/var/lib/astute/'})[0]
second_node.connect(remote_file)
keys.connect(remote_file, {'ip': 'remote_ip', 'path': 'remote_path'})
first_transp.connect(remote_file, {'transports': 'remote'})
ceph_mon = vr.create('ceph_mon1', 'resources/ceph_mon',
ceph_mon = cr.create('ceph_mon1', 'resources/ceph_mon',
{'storage': STORAGE,
'keystone': KEYSTONE,
'network_scheme': NETWORK_SCHEMA,
@ -59,7 +59,7 @@ def deploy():
'role': 'controller',
})[0]
managed_apt = vr.create(
managed_apt = cr.create(
'managed_apt1', 'templates/mos_repos',
{'node': first_node.name, 'index': 0})[-1]

View File

@ -10,7 +10,7 @@
import click
from solar.core import signals
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar.system_log import change
from solar.cli import orch
@ -45,10 +45,10 @@ def lxc_template(idx):
def deploy():
ModelMeta.remove_all()
node1 = vr.create('nodes', 'templates/nodes', {})[0]
seed = vr.create('nodes', 'templates/seed_node', {})[0]
node1 = cr.create('nodes', 'templates/nodes', {})[0]
seed = cr.create('nodes', 'templates/seed_node', {})[0]
ssh_key = vr.create('ssh_key1', 'resources/ssh_key', {
ssh_key = cr.create('ssh_key1', 'resources/ssh_key', {
'keys_dir': '/vagrant/.ssh',
'private_key': '/vagrant/.ssh/id_rsa',
'public_key': '/vagrant/.ssh/id_rsa.pub',
@ -56,14 +56,14 @@ def deploy():
})[0]
signals.connect(seed, ssh_key)
cnets1 = vr.create('cnets1', 'resources/container_networks', {
cnets1 = cr.create('cnets1', 'resources/container_networks', {
'networks':
{'mgmt': {
'bridge': 'br-int53',
'bridge_address': '172.18.11.254/24'
}}
})[0]
cnets2 = vr.create('cnets2', 'resources/container_networks', {
cnets2 = cr.create('cnets2', 'resources/container_networks', {
'networks':
{'mgmt': {
'bridge': 'br-int53',
@ -73,12 +73,12 @@ def deploy():
signals.connect(seed, cnets1)
signals.connect(node1, cnets2)
vxlan_mesh1 = vr.create('vxlan_mesh1', 'resources/vxlan_mesh', {
vxlan_mesh1 = cr.create('vxlan_mesh1', 'resources/vxlan_mesh', {
'id': 53,
'parent': 'eth1',
'master': 'br-int53'
})[0]
vxlan_mesh2 = vr.create('vxlan_mesh2', 'resources/vxlan_mesh', {
vxlan_mesh2 = cr.create('vxlan_mesh2', 'resources/vxlan_mesh', {
'id': 53,
'parent': 'eth1',
'master': 'br-int53'
@ -88,14 +88,14 @@ def deploy():
signals.connect(seed, vxlan_mesh1)
signals.connect(node1, vxlan_mesh2)
lxc_infra1 = vr.create('lxc_infra1', 'resources/lxc_host', {})[0]
lxc_infra1 = cr.create('lxc_infra1', 'resources/lxc_host', {})[0]
signals.connect(node1, lxc_infra1)
lxc_hosts = range(28, 35)
hosts_map = {}
for idx in lxc_hosts:
lxc_host_idx = vr.create(
lxc_host_idx = cr.create(
'lxc_host{}'.format(idx),
'resources/lxc_container', lxc_template(idx))[0]
hosts_map[idx] = lxc_host_idx
@ -112,15 +112,15 @@ def deploy():
'private_key': 'user_key'})
# RABBIT
rabbitmq_service1 = vr.create('rabbitmq_service1', 'resources/rabbitmq_service/', {
rabbitmq_service1 = cr.create('rabbitmq_service1', 'resources/rabbitmq_service/', {
'management_port': 15672,
'port': 5672,
})[0]
openstack_vhost = vr.create('openstack_vhost', 'resources/rabbitmq_vhost/', {
openstack_vhost = cr.create('openstack_vhost', 'resources/rabbitmq_vhost/', {
'vhost_name': 'openstack'
})[0]
openstack_rabbitmq_user = vr.create('openstack_rabbitmq_user', 'resources/rabbitmq_user/', {
openstack_rabbitmq_user = cr.create('openstack_rabbitmq_user', 'resources/rabbitmq_user/', {
'user_name': 'openstack',
'password': 'openstack_password'
})[0]

View File

@ -6,7 +6,7 @@ import sys
from solar.core import resource
from solar.core import signals
from solar.core import validation
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar import events as evapi
from solar.dblayer.model import ModelMeta
@ -40,9 +40,9 @@ def main():
def prepare_nodes(nodes_count):
resources = vr.create('nodes', 'templates/nodes_with_transports', {"count": nodes_count})
resources = cr.create('nodes', 'templates/nodes_with_transports', {"count": nodes_count})
nodes = [x for x in resources if x.name.startswith('node')]
resources = vr.create('nodes_network', 'templates/nodes_network', {"count": nodes_count})
resources = cr.create('nodes_network', 'templates/nodes_network', {"count": nodes_count})
nodes_sdn = [x for x in resources if x.name.startswith('node')]
r = {}
@ -51,7 +51,7 @@ def prepare_nodes(nodes_count):
r[node_sdn.name] = node_sdn
# LIBRARIAN
librarian = vr.create('librarian_{}'.format(node.name), 'resources/librarian', {})[0]
librarian = cr.create('librarian_{}'.format(node.name), 'resources/librarian', {})[0]
r[librarian.name] = librarian
node.connect(librarian, {})
@ -70,7 +70,7 @@ def prepare_nodes(nodes_count):
def setup_base(node, librarian):
# MARIADB
mariadb_service = vr.create('mariadb_service1', 'resources/mariadb_service', {
mariadb_service = cr.create('mariadb_service1', 'resources/mariadb_service', {
'image': 'mariadb',
'port': 3306
})[0]
@ -78,15 +78,15 @@ def setup_base(node, librarian):
node.connect(mariadb_service)
# RABBIT
rabbitmq_service = vr.create('rabbitmq_service1', 'resources/rabbitmq_service/', {
rabbitmq_service = cr.create('rabbitmq_service1', 'resources/rabbitmq_service/', {
'management_port': 15672,
'port': 5672,
})[0]
openstack_vhost = vr.create('openstack_vhost', 'resources/rabbitmq_vhost/', {
openstack_vhost = cr.create('openstack_vhost', 'resources/rabbitmq_vhost/', {
'vhost_name': 'openstack'
})[0]
openstack_rabbitmq_user = vr.create('openstack_rabbitmq_user', 'resources/rabbitmq_user/', {
openstack_rabbitmq_user = cr.create('openstack_rabbitmq_user', 'resources/rabbitmq_user/', {
'user_name': 'openstack',
'password': 'openstack_password'
})[0]
@ -105,21 +105,21 @@ def setup_base(node, librarian):
'openstack_rabbitmq_user': openstack_rabbitmq_user}
def setup_keystone(node, librarian, mariadb_service, openstack_rabbitmq_user):
keystone_puppet = vr.create('keystone_puppet', 'resources/keystone_puppet', {})[0]
keystone_puppet = cr.create('keystone_puppet', 'resources/keystone_puppet', {})[0]
keystone_puppet.connect_with_events(librarian, {'module': 'modules'}, {})
evapi.add_dep(librarian.name, keystone_puppet.name, actions=('run', 'update'))
evapi.add_dep(openstack_rabbitmq_user.name, keystone_puppet.name, actions=('run', 'update'))
keystone_db = vr.create('keystone_db', 'resources/mariadb_db/', {
keystone_db = cr.create('keystone_db', 'resources/mariadb_db/', {
'db_name': 'keystone_db',
'login_user': 'root'
})[0]
keystone_db_user = vr.create('keystone_db_user', 'resources/mariadb_user/', {
keystone_db_user = cr.create('keystone_db_user', 'resources/mariadb_user/', {
'user_name': 'keystone',
'user_password': 'keystone',
})[0]
keystone_service_endpoint = vr.create('keystone_service_endpoint', 'resources/keystone_service_endpoint', {
keystone_service_endpoint = cr.create('keystone_service_endpoint', 'resources/keystone_service_endpoint', {
'endpoint_name': 'keystone',
'adminurl': 'http://{{admin_ip}}:{{admin_port}}/v2.0',
'internalurl': 'http://{{internal_ip}}:{{internal_port}}/v2.0',
@ -128,20 +128,20 @@ def setup_keystone(node, librarian, mariadb_service, openstack_rabbitmq_user):
'type': 'identity'
})[0]
admin_tenant = vr.create('admin_tenant', 'resources/keystone_tenant', {
admin_tenant = cr.create('admin_tenant', 'resources/keystone_tenant', {
'tenant_name': 'admin'
})[0]
admin_user = vr.create('admin_user', 'resources/keystone_user', {
admin_user = cr.create('admin_user', 'resources/keystone_user', {
'user_name': 'admin',
'user_password': 'admin'
})[0]
admin_role = vr.create('admin_role', 'resources/keystone_role', {
admin_role = cr.create('admin_role', 'resources/keystone_role', {
'role_name': 'admin'
})[0]
services_tenant = vr.create('services_tenant', 'resources/keystone_tenant', {
services_tenant = cr.create('services_tenant', 'resources/keystone_tenant', {
'tenant_name': 'services'
})[0]
admin_role_services = vr.create('admin_role_services', 'resources/keystone_role', {
admin_role_services = cr.create('admin_role_services', 'resources/keystone_role', {
'role_name': 'admin'
})[0]
@ -212,7 +212,7 @@ def setup_keystone(node, librarian, mariadb_service, openstack_rabbitmq_user):
def setup_openrc(node, keystone_puppet, admin_user):
# OPENRC
openrc = vr.create('openrc_file', 'resources/openrc_file', {})[0]
openrc = cr.create('openrc_file', 'resources/openrc_file', {})[0]
node.connect(openrc)
keystone_puppet.connect(openrc, {'ip': 'keystone_host', 'admin_port':'keystone_port'})
@ -222,7 +222,7 @@ def setup_openrc(node, keystone_puppet, admin_user):
def setup_neutron(node, librarian, rabbitmq_service, openstack_rabbitmq_user, openstack_vhost):
# NEUTRON
# Deploy chain neutron -> (plugins) -> neutron_server -> ( agents )
neutron_puppet = vr.create('neutron_puppet', 'resources/neutron_puppet', {
neutron_puppet = cr.create('neutron_puppet', 'resources/neutron_puppet', {
'core_plugin': 'neutron.plugins.ml2.plugin.Ml2Plugin'
})[0]
@ -244,29 +244,29 @@ def setup_neutron(node, librarian, rabbitmq_service, openstack_rabbitmq_user, op
def setup_neutron_api(node, mariadb_service, admin_user, keystone_puppet, services_tenant, neutron_puppet):
# NEUTRON PLUGIN AND NEUTRON API (SERVER)
neutron_plugins_ml2 = vr.create('neutron_plugins_ml2', 'resources/neutron_plugins_ml2_puppet', {})[0]
neutron_plugins_ml2 = cr.create('neutron_plugins_ml2', 'resources/neutron_plugins_ml2_puppet', {})[0]
node.connect(neutron_plugins_ml2)
neutron_server_puppet = vr.create('neutron_server_puppet', 'resources/neutron_server_puppet', {
neutron_server_puppet = cr.create('neutron_server_puppet', 'resources/neutron_server_puppet', {
'sync_db': True,
})[0]
evapi.add_dep(neutron_puppet.name, neutron_server_puppet.name, actions=('run',))
evapi.add_dep(neutron_plugins_ml2.name, neutron_server_puppet.name, actions=('run',))
evapi.add_dep(neutron_puppet.name, neutron_plugins_ml2.name, actions=('run',))
neutron_db = vr.create('neutron_db', 'resources/mariadb_db/', {
neutron_db = cr.create('neutron_db', 'resources/mariadb_db/', {
'db_name': 'neutron_db', 'login_user': 'root'})[0]
neutron_db_user = vr.create('neutron_db_user', 'resources/mariadb_user/', {
neutron_db_user = cr.create('neutron_db_user', 'resources/mariadb_user/', {
'user_name': 'neutron', 'user_password': 'neutron', 'login_user': 'root'})[0]
neutron_keystone_user = vr.create('neutron_keystone_user', 'resources/keystone_user', {
neutron_keystone_user = cr.create('neutron_keystone_user', 'resources/keystone_user', {
'user_name': 'neutron',
'user_password': 'neutron'
})[0]
neutron_keystone_role = vr.create('neutron_keystone_role', 'resources/keystone_role', {
neutron_keystone_role = cr.create('neutron_keystone_role', 'resources/keystone_role', {
'role_name': 'admin'
})[0]
evapi.add_dep(neutron_keystone_role.name, neutron_server_puppet.name, actions=('run',))
neutron_keystone_service_endpoint = vr.create('neutron_keystone_service_endpoint', 'resources/keystone_service_endpoint', {
neutron_keystone_service_endpoint = cr.create('neutron_keystone_service_endpoint', 'resources/keystone_service_endpoint', {
'endpoint_name': 'neutron',
'adminurl': 'http://{{admin_ip}}:{{admin_port}}',
'internalurl': 'http://{{internal_ip}}:{{internal_port}}',
@ -323,7 +323,7 @@ def setup_neutron_api(node, mariadb_service, admin_user, keystone_puppet, servic
def setup_neutron_agent(node, neutron_server_puppet):
# NEUTRON ML2 PLUGIN & ML2-OVS AGENT WITH GRE
neutron_agents_ml2 = vr.create('neutron_agents_ml2', 'resources/neutron_agents_ml2_ovs_puppet', {
neutron_agents_ml2 = cr.create('neutron_agents_ml2', 'resources/neutron_agents_ml2_ovs_puppet', {
# TODO(bogdando) these should come from the node network resource
'enable_tunneling': True,
'tunnel_types': ['gre'],
@ -333,11 +333,11 @@ def setup_neutron_agent(node, neutron_server_puppet):
evapi.add_dep(neutron_server_puppet.name, neutron_agents_ml2.name, actions=('run',))
# NEUTRON DHCP, L3, metadata agents
neutron_agents_dhcp = vr.create('neutron_agents_dhcp', 'resources/neutron_agents_dhcp_puppet', {})[0]
neutron_agents_dhcp = cr.create('neutron_agents_dhcp', 'resources/neutron_agents_dhcp_puppet', {})[0]
node.connect(neutron_agents_dhcp)
evapi.add_dep(neutron_server_puppet.name, neutron_agents_dhcp.name, actions=('run',))
neutron_agents_l3 = vr.create('neutron_agents_l3', 'resources/neutron_agents_l3_puppet', {
neutron_agents_l3 = cr.create('neutron_agents_l3', 'resources/neutron_agents_l3_puppet', {
# TODO(bogdando) these should come from the node network resource
'metadata_port': 8775,
'external_network_bridge': 'br-floating',
@ -345,7 +345,7 @@ def setup_neutron_agent(node, neutron_server_puppet):
node.connect(neutron_agents_l3)
evapi.add_dep(neutron_server_puppet.name, neutron_agents_l3.name, actions=('run',))
neutron_agents_metadata = vr.create('neutron_agents_metadata', 'resources/neutron_agents_metadata_puppet', {
neutron_agents_metadata = cr.create('neutron_agents_metadata', 'resources/neutron_agents_metadata_puppet', {
'sh2ared_secret': 'secret',
})[0]
node.connect(neutron_agents_metadata)
@ -361,7 +361,7 @@ def setup_neutron_compute(node, librarian, neutron_puppet, neutron_server_puppet
# NEUTRON FOR COMPUTE (node1)
# Deploy chain neutron -> (plugins) -> ( agents )
name = node.name
neutron_puppet2 = vr.create('neutron_puppet_{}'.format(name), 'resources/neutron_puppet', {})[0]
neutron_puppet2 = cr.create('neutron_puppet_{}'.format(name), 'resources/neutron_puppet', {})[0]
neutron_puppet2.connect_with_events(librarian, {'module': 'modules'}, {})
evapi.add_dep(librarian.name, neutron_puppet2.name, actions=('run', 'update'))
@ -378,12 +378,12 @@ def setup_neutron_compute(node, librarian, neutron_puppet, neutron_server_puppet
})
# NEUTRON OVS PLUGIN & AGENT WITH GRE FOR COMPUTE (node1)
neutron_plugins_ml22 = vr.create('neutron_plugins_ml_{}'.format(name), 'resources/neutron_plugins_ml2_puppet', {})[0]
neutron_plugins_ml22 = cr.create('neutron_plugins_ml_{}'.format(name), 'resources/neutron_plugins_ml2_puppet', {})[0]
node.connect(neutron_plugins_ml22)
evapi.add_dep(neutron_puppet2.name, neutron_plugins_ml22.name, actions=('run',))
evapi.add_dep(neutron_server_puppet.name, neutron_plugins_ml22.name, actions=('run',))
neutron_agents_ml22 = vr.create('neutron_agents_ml_{}'.format(name), 'resources/neutron_agents_ml2_ovs_puppet', {
neutron_agents_ml22 = cr.create('neutron_agents_ml_{}'.format(name), 'resources/neutron_agents_ml2_ovs_puppet', {
# TODO(bogdando) these should come from the node network resource
'enable_tunneling': True,
'tunnel_types': ['gre'],
@ -399,16 +399,16 @@ def setup_neutron_compute(node, librarian, neutron_puppet, neutron_server_puppet
def setup_cinder(node, librarian, rabbitmq_service, mariadb_service, keystone_puppet, admin_user, openstack_vhost, openstack_rabbitmq_user, services_tenant):
# CINDER
cinder_puppet = vr.create('cinder_puppet', 'resources/cinder_puppet', {})[0]
cinder_db = vr.create('cinder_db', 'resources/mariadb_db/', {
cinder_puppet = cr.create('cinder_puppet', 'resources/cinder_puppet', {})[0]
cinder_db = cr.create('cinder_db', 'resources/mariadb_db/', {
'db_name': 'cinder_db', 'login_user': 'root'})[0]
cinder_db_user = vr.create('cinder_db_user', 'resources/mariadb_user/', {
cinder_db_user = cr.create('cinder_db_user', 'resources/mariadb_user/', {
'user_name': 'cinder', 'user_password': 'cinder', 'login_user': 'root'})[0]
cinder_keystone_user = vr.create('cinder_keystone_user', 'resources/keystone_user', {
cinder_keystone_user = cr.create('cinder_keystone_user', 'resources/keystone_user', {
'user_name': 'cinder', 'user_password': 'cinder'})[0]
cinder_keystone_role = vr.create('cinder_keystone_role', 'resources/keystone_role', {
cinder_keystone_role = cr.create('cinder_keystone_role', 'resources/keystone_role', {
'role_name': 'admin'})[0]
cinder_keystone_service_endpoint = vr.create(
cinder_keystone_service_endpoint = cr.create(
'cinder_keystone_service_endpoint',
'resources/keystone_service_endpoint', {
'endpoint_name': 'cinder',
@ -454,7 +454,7 @@ def setup_cinder(node, librarian, rabbitmq_service, mariadb_service, keystone_pu
# CINDER GLANCE
# Deploy chain: cinder_puppet -> cinder_glance -> ( cinder_api, cinder_scheduler, cinder_volume )
cinder_glance_puppet = vr.create('cinder_glance_puppet', 'resources/cinder_glance_puppet', {})[0]
cinder_glance_puppet = cr.create('cinder_glance_puppet', 'resources/cinder_glance_puppet', {})[0]
node.connect(cinder_glance_puppet)
evapi.add_dep(cinder_puppet.name, cinder_glance_puppet.name, actions=('run',))
@ -468,7 +468,7 @@ def setup_cinder(node, librarian, rabbitmq_service, mariadb_service, keystone_pu
def setup_cinder_api(node, cinder_puppet):
# CINDER API
cinder_api_puppet = vr.create('cinder_api_puppet', 'resources/cinder_api_puppet', {})[0]
cinder_api_puppet = cr.create('cinder_api_puppet', 'resources/cinder_api_puppet', {})[0]
node.connect(cinder_api_puppet)
cinder_puppet.connect(cinder_api_puppet, {
'keystone_password', 'keystone_tenant', 'keystone_user'})
@ -480,7 +480,7 @@ def setup_cinder_api(node, cinder_puppet):
def setup_cinder_scheduler(node, cinder_puppet):
# CINDER SCHEDULER
cinder_scheduler_puppet = vr.create('cinder_scheduler_puppet', 'resources/cinder_scheduler_puppet', {})[0]
cinder_scheduler_puppet = cr.create('cinder_scheduler_puppet', 'resources/cinder_scheduler_puppet', {})[0]
node.connect(cinder_scheduler_puppet)
cinder_puppet.connect(cinder_scheduler_puppet)
evapi.add_react(cinder_puppet.name, cinder_scheduler_puppet.name, actions=('update',))
@ -488,11 +488,11 @@ def setup_cinder_scheduler(node, cinder_puppet):
def setup_cinder_volume(node, cinder_puppet):
# CINDER VOLUME
cinder_volume = vr.create('cinder_volume_{}'.format(node.name), 'resources/volume_group',
cinder_volume = cr.create('cinder_volume_{}'.format(node.name), 'resources/volume_group',
{'path': '/root/cinder.img', 'volume_name': 'cinder-volume'})[0]
node.connect(cinder_volume)
cinder_volume_puppet = vr.create('cinder_volume_puppet', 'resources/cinder_volume_puppet', {})[0]
cinder_volume_puppet = cr.create('cinder_volume_puppet', 'resources/cinder_volume_puppet', {})[0]
node.connect(cinder_volume_puppet)
cinder_puppet.connect(cinder_volume_puppet)
evapi.add_react(cinder_puppet.name, cinder_volume_puppet.name, actions=('update',))
@ -501,20 +501,20 @@ def setup_cinder_volume(node, cinder_puppet):
def setup_nova(node, librarian, mariadb_service, rabbitmq_service, admin_user, openstack_vhost, services_tenant, keystone_puppet, openstack_rabbitmq_user):
# NOVA
nova_puppet = vr.create('nova_puppet', 'resources/nova_puppet', {})[0]
nova_db = vr.create('nova_db', 'resources/mariadb_db/', {
nova_puppet = cr.create('nova_puppet', 'resources/nova_puppet', {})[0]
nova_db = cr.create('nova_db', 'resources/mariadb_db/', {
'db_name': 'nova_db',
'login_user': 'root'})[0]
nova_db_user = vr.create('nova_db_user', 'resources/mariadb_user/', {
nova_db_user = cr.create('nova_db_user', 'resources/mariadb_user/', {
'user_name': 'nova',
'user_password': 'nova',
'login_user': 'root'})[0]
nova_keystone_user = vr.create('nova_keystone_user', 'resources/keystone_user', {
nova_keystone_user = cr.create('nova_keystone_user', 'resources/keystone_user', {
'user_name': 'nova',
'user_password': 'nova'})[0]
nova_keystone_role = vr.create('nova_keystone_role', 'resources/keystone_role', {
nova_keystone_role = cr.create('nova_keystone_role', 'resources/keystone_role', {
'role_name': 'admin'})[0]
nova_keystone_service_endpoint = vr.create('nova_keystone_service_endpoint', 'resources/keystone_service_endpoint', {
nova_keystone_service_endpoint = cr.create('nova_keystone_service_endpoint', 'resources/keystone_service_endpoint', {
'endpoint_name': 'nova',
'adminurl': 'http://{{admin_ip}}:{{admin_port}}/v2/%(tenant_id)s',
'internalurl': 'http://{{internal_ip}}:{{internal_port}}/v2/%(tenant_id)s',
@ -577,7 +577,7 @@ def setup_nova(node, librarian, mariadb_service, rabbitmq_service, admin_user, o
def setup_nova_api(node, nova_puppet, neutron_agents_metadata):
# NOVA API
nova_api_puppet = vr.create('nova_api_puppet', 'resources/nova_api_puppet', {})[0]
nova_api_puppet = cr.create('nova_api_puppet', 'resources/nova_api_puppet', {})[0]
node.connect(nova_api_puppet)
nova_puppet.connect(nova_api_puppet, {
'keystone_tenant': 'admin_tenant_name',
@ -591,7 +591,7 @@ def setup_nova_api(node, nova_puppet, neutron_agents_metadata):
def setup_nova_conductor(node, nova_puppet, nova_api_puppet):
# NOVA CONDUCTOR
nova_conductor_puppet = vr.create('nova_conductor_puppet', 'resources/nova_conductor_puppet', {})[0]
nova_conductor_puppet = cr.create('nova_conductor_puppet', 'resources/nova_conductor_puppet', {})[0]
node.connect(nova_conductor_puppet)
nova_puppet.connect(nova_conductor_puppet)
evapi.add_dep(nova_api_puppet.name, nova_conductor_puppet.name, actions=('run',))
@ -602,7 +602,7 @@ def setup_nova_scheduler(node, nova_puppet, nova_api_puppet):
# NOVA SCHEDULER
# NOTE(bogdando) Generic service is used. Package and service names for Ubuntu case
# come from https://github.com/openstack/puppet-nova/blob/5.1.0/manifests/params.pp
nova_scheduler_puppet = vr.create('nova_scheduler_puppet', 'resources/nova_generic_service_puppet', {
nova_scheduler_puppet = cr.create('nova_scheduler_puppet', 'resources/nova_generic_service_puppet', {
'title' : 'scheduler', 'package_name': 'nova-scheduler', 'service_name': 'nova-scheduler',
})[0]
node.connect(nova_scheduler_puppet)
@ -615,9 +615,9 @@ def setup_nova_compute(node, librarian, nova_puppet, nova_api_puppet, neutron_se
# NOVA COMPUTE
# Deploy chain (nova, node_networking(TODO)) -> (nova_compute_libvirt, nova_neutron) -> nova_compute
name = node.name
nova_compute_puppet = vr.create('nova_compute_puppet_{}'.format(name), 'resources/nova_compute_puppet', {})[0]
nova_compute_puppet = cr.create('nova_compute_puppet_{}'.format(name), 'resources/nova_compute_puppet', {})[0]
# TODO (bogdando) figure out how to use it for multiple glance api servers
nova_puppet2 = vr.create('nova_puppet_{}'.format(name), 'resources/nova_puppet', {
nova_puppet2 = cr.create('nova_puppet_{}'.format(name), 'resources/nova_puppet', {
'glance_api_servers': '{{glance_api_servers_host}}:{{glance_api_servers_port}}'
})[0]
nova_puppet.connect(nova_puppet2, {
@ -643,13 +643,13 @@ def setup_nova_compute(node, librarian, nova_puppet, nova_api_puppet, neutron_se
# NOVA COMPUTE LIBVIRT, NOVA_NEUTRON
# NOTE(bogdando): changes nova config, so should notify nova compute service
nova_compute_libvirt_puppet = vr.create('nova_compute_libvirt_puppet_{}'.format(name), 'resources/nova_compute_libvirt_puppet', {})[0]
nova_compute_libvirt_puppet = cr.create('nova_compute_libvirt_puppet_{}'.format(name), 'resources/nova_compute_libvirt_puppet', {})[0]
node.connect(nova_compute_libvirt_puppet)
evapi.add_dep(nova_puppet2.name, nova_compute_libvirt_puppet.name, actions=('run',))
evapi.add_dep(nova_api_puppet.name, nova_compute_libvirt_puppet.name, actions=('run',))
# compute configuration for neutron, use http auth/endpoint protocols, keystone v2 auth hardcoded for the resource
nova_neutron_puppet = vr.create('nova_neutron_puppet_{}'.format(name), 'resources/nova_neutron_puppet', {})[0]
nova_neutron_puppet = cr.create('nova_neutron_puppet_{}'.format(name), 'resources/nova_neutron_puppet', {})[0]
node.connect(nova_neutron_puppet)
evapi.add_dep(nova_puppet2.name, nova_neutron_puppet.name, actions=('run',))
evapi.add_dep(nova_api_puppet.name, nova_neutron_puppet.name, actions=('run',))
@ -681,16 +681,16 @@ def setup_nova_compute(node, librarian, nova_puppet, nova_api_puppet, neutron_se
def setup_glance_api(node, librarian, mariadb_service, admin_user, keystone_puppet, services_tenant, cinder_glance_puppet):
# GLANCE (base and API)
glance_api_puppet = vr.create('glance_api_puppet', 'resources/glance_puppet', {})[0]
glance_db_user = vr.create('glance_db_user', 'resources/mariadb_user/', {
glance_api_puppet = cr.create('glance_api_puppet', 'resources/glance_puppet', {})[0]
glance_db_user = cr.create('glance_db_user', 'resources/mariadb_user/', {
'user_name': 'glance', 'user_password': 'glance', 'login_user': 'root'})[0]
glance_db = vr.create('glance_db', 'resources/mariadb_db/', {
glance_db = cr.create('glance_db', 'resources/mariadb_db/', {
'db_name': 'glance', 'login_user': 'root'})[0]
glance_keystone_user = vr.create('glance_keystone_user', 'resources/keystone_user', {
glance_keystone_user = cr.create('glance_keystone_user', 'resources/keystone_user', {
'user_name': 'glance', 'user_password': 'glance123'})[0]
glance_keystone_role = vr.create('glance_keystone_role', 'resources/keystone_role', {
glance_keystone_role = cr.create('glance_keystone_role', 'resources/keystone_role', {
'role_name': 'admin'})[0]
glance_keystone_service_endpoint = vr.create(
glance_keystone_service_endpoint = cr.create(
'glance_keystone_service_endpoint',
'resources/keystone_service_endpoint', {
'endpoint_name': 'glance',
@ -750,7 +750,7 @@ def setup_glance_api(node, librarian, mariadb_service, admin_user, keystone_pupp
def setup_glance_registry(node, glance_api_puppet):
# GLANCE REGISTRY
glance_registry_puppet = vr.create('glance_registry_puppet', 'resources/glance_registry_puppet', {})[0]
glance_registry_puppet = cr.create('glance_registry_puppet', 'resources/glance_registry_puppet', {})[0]
node.connect(glance_registry_puppet)
glance_api_puppet.connect(glance_registry_puppet)
evapi.add_react(glance_api_puppet.name, glance_registry_puppet.name, actions=('update',))

View File

@ -4,14 +4,14 @@ resources:
- id: rabbit_user
from: resources/rabbitmq_user
location: {{node}}
values:
input:
user_name: {{user_name}}
password: {{password}}
vhost_name: {{vhost_res}}::vhost_name
updates:
- id: {{for}}
values:
input:
{{for_user}}: rabbit_user::user_name
{{for_password}}: rabbit_user::password
@ -19,4 +19,4 @@ events:
- type: depends_on
parent_action: rabbit_user.run
state: success
depend_action: {{for}}.update
child_action: {{for}}.update

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python
import requests
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar.events.api import add_event
from solar.events.controls import React
@ -40,7 +40,7 @@ requests.post(bareon_sync)
nodes_list = requests.get(discovery_service).json()
# Create slave node resources
node_resources = vr.create('nodes', 'templates/not_provisioned_nodes',
node_resources = cr.create('nodes', 'templates/not_provisioned_nodes',
{'nodes': nodes_list})
# Get master node
@ -63,7 +63,7 @@ for node in nodes_list:
}
)
dnsmasq = vr.create('dnsmasq_{0}'.format(node.node_id),
dnsmasq = cr.create('dnsmasq_{0}'.format(node.node_id),
'resources/dnsmasq', {})[0]
master_node.connect(dnsmasq)
node_resource.connect(dnsmasq, {'admin_mac': 'exclude_mac_pxe'})

View File

@ -4,38 +4,38 @@ resources:
- id: haproxy_riak_config_http
from: resources/haproxy_service_config
tags: ['service=riak', 'protocol=http']
values:
listen_port: {{http_listen_port}}
input:
listen_port: #{http_listen_port}#
protocol: 'http'
name: 'riak_haproxy_http'
backends:server:
{% for riak in riaks %}
- {{riak}}::riak_hostname
{% endfor %}
#% for riak in riaks %#
- #{riak}#::riak_hostname
#% endfor %#
backends:port:
{% for riak in riaks %}
- {{riak}}::riak_port_http
{% endfor %}
#% for riak in riaks %#
- #{riak}#::riak_port_http
#% endfor %#
- id: haproxy_riak_config_pb
from: resources/haproxy_service_config
tags: ['service=riak', 'protocol=tcp']
values:
listen_port: {{pb_listen_port}}
input:
listen_port: #{pb_listen_port}#
protocol: 'tcp'
name: 'riak_haproxy_pb'
backends:server:
{% for riak in riaks %}
- {{riak}}::riak_hostname
{% endfor %}
#% for riak in riaks %#
- #{riak}#::riak_hostname
#% endfor %#
backends:port:
{% for riak in riaks %}
- {{riak}}::riak_port_pb
{% endfor %}
#% for riak in riaks %#
- #{riak}#::riak_port_pb
#% endfor %#
updates:
- with_tags: ['resource=haproxy_config']
values:
input:
config:protocol:
- haproxy_riak_config_http::protocol
- haproxy_riak_config_pb::protocol

View File

@ -3,49 +3,49 @@ id: riak_cluster
resources:
- id: riak_service1
from: examples/riak/riak_service.yaml
values:
node: {{nodes[0]}}
input:
node: #{nodes[0]}#
index: 1
join_to: ''
- id: riak_service2
from: examples/riak/riak_service.yaml
values:
node: {{nodes[1]}}
input:
node: #{nodes[1]}#
index: 2
join_to: riak_service1
- id: riak_service3
from: examples/riak/riak_service.yaml
values:
node: {{nodes[2]}}
input:
node: #{nodes[2]}#
index: 3
join_to: riak_service1
- id: haproxy_riak_config
from: examples/riak/haproxy_riak_config.yaml
values:
input:
http_listen_port: 8098
pb_listen_port: 8087
riaks: ['riak_service1', 'riak_service2', 'riak_service3']
- id: haproxy1
from: templates/haproxy
values:
node: {{nodes[0]}}
input:
node: #{nodes[0]}#
service_configs: ['haproxy_riak_config_pb', 'haproxy_riak_config_http']
index: 1
- id: haproxy2
from: templates/haproxy
values:
node: {{nodes[1]}}
input:
node: #{nodes[1]}#
service_configs: ['haproxy_riak_config_pb', 'haproxy_riak_config_http']
index: 2
- id: haproxy3
from: templates/haproxy
values:
node: {{nodes[2]}}
input:
node: #{nodes[2]}#
service_configs: ['haproxy_riak_config_pb', 'haproxy_riak_config_http']
index: 3

View File

@ -1,61 +1,61 @@
id: riak_service
resources:
- id: riak_service{{index}}
- id: riak_service#{index}#
from: resources/riak_node
location: {{node}}
values:
riak_self_name: riak{{index}}
riak_hostname: riak_server{{index}}.solar
riak_name: riak{{index}}@riak_server{{index}}.solar
{% if join_to %}
join_to: {{join_to}}::riak_name
{% endif %}
ip: {{node}}::ip
location: #{node}#
input:
riak_self_name: riak#{index}#
riak_hostname: riak_server#{index}#.solar
riak_name: riak#{index}#@riak_server#{index}#.solar
#% if join_to %#
join_to: #{join_to}#::riak_name
#% endif %#
ip: #{node}#::ip
updates:
- with_tags: 'resource=hosts_file'
values:
input:
hosts:name:
- riak_service{{index}}::riak_hostname::NO_EVENTS
- riak_service#{index}#::riak_hostname::NO_EVENTS
hosts:ip:
- riak_service{{index}}::ip::NO_EVENTS
- riak_service#{index}#::ip::NO_EVENTS
- with_tags: 'resource=haproxy_service_config & service=riak & protocol=http'
values:
input:
backends:server:
- riak_service{{index}}::riak_hostname
- riak_service#{index}#::riak_hostname
backends:port:
- riak_service{{index}}::riak_port_http
- riak_service#{index}#::riak_port_http
- with_tags: 'resource=haproxy_service_config & service=riak & protocol=tcp'
values:
input:
backends:server:
- riak_service{{index}}::riak_hostname
- riak_service#{index}#::riak_hostname
backends:port:
- riak_service{{index}}::riak_port_pb
- riak_service#{index}#::riak_port_pb
events:
- type: depends_on
parent:
with_tags: 'resource=hosts_file & location={{node}}'
with_tags: 'resource=hosts_file & location=#{node}#'
action: run
state: success
depend_action: riak_service{{index}}.run
child_action: riak_service#{index}#.run
{% if join_to %}
#% if join_to %#
- type: react_on
parent_action: riak_service{{index}}.run
parent_action: riak_service#{index}#.run
state: success
depend_action: riak_service{{index}}.join
child_action: riak_service#{index}#.join
- type: react_on
parent_action: riak_service{{index}}.leave
parent_action: riak_service#{index}#.leave
state: success
depend_action: riak_service{{index}}.join
child_action: riak_service#{index}#.join
- type: react_on
parent_action: riak_service{{index}}.join
parent_action: riak_service#{index}#.join
state: success
depend_action: {{join_to}}.commit
{% endif %}
child_action: #{join_to}#.commit
#% endif %#

View File

@ -17,7 +17,7 @@ import sys
from solar.core import resource
from solar.core import signals
from solar.core import validation
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar import errors
from solar.dblayer.model import ModelMeta
@ -31,7 +31,7 @@ from solar.dblayer.solar_models import Resource
def setup_riak():
ModelMeta.remove_all()
resources = vr.create('nodes', 'templates/nodes', {'count': 3})
resources = cr.create('nodes', 'templates/nodes', {'count': 3})
nodes = [x for x in resources if x.name.startswith('node')]
hosts_services = [x for x in resources if x.name.startswith('hosts_file')]
node1, node2, node3 = nodes
@ -41,7 +41,7 @@ def setup_riak():
ips = '10.0.0.%d'
for i in xrange(3):
num = i + 1
r = vr.create('riak_service%d' % num,
r = cr.create('riak_service%d' % num,
'resources/riak_node',
{'riak_self_name': 'riak%d' % num,
'storage_backend': 'leveldb',
@ -113,18 +113,18 @@ def setup_haproxies():
hpsc_pb = []
for i in xrange(3):
num = i + 1
hps.append(vr.create('haproxy_service%d' % num,
hps.append(cr.create('haproxy_service%d' % num,
'resources/haproxy_service',
{})[0])
hpc.append(vr.create('haproxy_config%d' % num,
hpc.append(cr.create('haproxy_config%d' % num,
'resources/haproxy_config',
{})[0])
hpsc_http.append(vr.create('haproxy_service_config_http%d' % num,
hpsc_http.append(cr.create('haproxy_service_config_http%d' % num,
'resources/haproxy_service_config',
{'listen_port': 8098,
'protocol': 'http',
'name': 'riak_haproxy_http%d' % num})[0])
hpsc_pb.append(vr.create('haproxy_service_config_pb%d' % num,
hpsc_pb.append(cr.create('haproxy_service_config_pb%d' % num,
'resources/haproxy_service_config',
{'listen_port': 8087,
'protocol': 'tcp',
@ -208,12 +208,12 @@ def setup_haproxies():
@click.command()
@click.argument('i', type=int, required=True)
def add_solar_agent(i):
solar_agent_transport = vr.create('solar_agent_transport%s' % i, 'resources/transport_solar_agent',
solar_agent_transport = cr.create('solar_agent_transport%s' % i, 'resources/transport_solar_agent',
{'solar_agent_user': 'vagrant',
'solar_agent_password': 'password'})[0]
transports = resource.load('transports%s' % i)
ssh_transport = resource.load('ssh_transport%s' % i)
transports_for_solar_agent = vr.create('transports_for_solar_agent%s' % i, 'resources/transports')[0]
transports_for_solar_agent = cr.create('transports_for_solar_agent%s' % i, 'resources/transports')[0]
# install solar_agent with ssh
signals.connect(transports_for_solar_agent, solar_agent_transport, {})

View File

@ -8,7 +8,7 @@ import sys
from solar.core import resource
from solar.core import signals
from solar.core import validation
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar import errors
from solar.interfaces.db import get_db
@ -28,7 +28,7 @@ def setup_riak(nodes_num=None, hosts_mapping=False):
nodes_num = NODES
db.clear()
resources = vr.create('nodes', 'templates/nodes', {'count': nodes_num})
resources = cr.create('nodes', 'templates/nodes', {'count': nodes_num})
nodes = [x for x in resources if x.name.startswith('node')]
hosts_services = [x for x in resources if x.name.startswith('hosts_file')]
@ -36,7 +36,7 @@ def setup_riak(nodes_num=None, hosts_mapping=False):
ips = '10.0.0.%d'
for i in xrange(nodes_num):
num = i + 1
r = vr.create('riak_service%d' % num,
r = cr.create('riak_service%d' % num,
'resources/riak_node',
{'riak_self_name': 'riak%d' % num,
'riak_hostname': 'riak_server%d.solar' % num,

View File

@ -4,26 +4,26 @@ import time
from solar.core import resource
from solar.core import signals
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar.dblayer.model import ModelMeta
def run():
ModelMeta.remove_all()
node = vr.create('node', 'resources/ro_node', {'name': 'first' + str(time.time()),
node = cr.create('node', 'resources/ro_node', {'name': 'first' + str(time.time()),
'ip': '10.0.0.3',
'node_id': 'node1',
})[0]
transports = vr.create('transports_node1', 'resources/transports')[0]
transports_for_solar_agent = vr.create('transports_for_solar_agent', 'resources/transports')[0]
transports = cr.create('transports_node1', 'resources/transports')[0]
transports_for_solar_agent = cr.create('transports_for_solar_agent', 'resources/transports')[0]
ssh_transport = vr.create('ssh_transport', 'resources/transport_ssh',
ssh_transport = cr.create('ssh_transport', 'resources/transport_ssh',
{'ssh_key': '/vagrant/.vagrant/machines/solar-dev1/virtualbox/private_key',
'ssh_user': 'vagrant'})[0]
solar_agent_transport = vr.create('solar_agent_transport', 'resources/transport_solar_agent',
solar_agent_transport = cr.create('solar_agent_transport', 'resources/transport_solar_agent',
{'solar_agent_user': 'vagrant',
'solar_agent_password': 'password'})[0]
@ -46,7 +46,7 @@ def run():
'name': 'transports:name'})
hosts = vr.create('hosts_file', 'resources/hosts_file', {})[0]
hosts = cr.create('hosts_file', 'resources/hosts_file', {})[0]
node.connect(hosts, {
'ip': 'hosts:ip',
'name': 'hosts:name'

View File

@ -1,6 +1,6 @@
import time
from solar.core.resource import virtual_resource as vr
from solar.core.resource import composer as cr
from solar import errors
from solar.dblayer.model import ModelMeta
@ -8,14 +8,14 @@ from solar.dblayer.model import ModelMeta
def run():
ModelMeta.remove_all()
node = vr.create('node', 'resources/ro_node', {'name': 'first' + str(time.time()),
node = cr.create('node', 'resources/ro_node', {'name': 'first' + str(time.time()),
'ip': '10.0.0.3',
'node_id': 'node1',
})[0]
transports = vr.create('transports_node1', 'resources/transports')[0]
transports = cr.create('transports_node1', 'resources/transports')[0]
ssh_transport = vr.create('ssh_transport', 'resources/transport_ssh',
ssh_transport = cr.create('ssh_transport', 'resources/transport_ssh',
{'ssh_key': '/vagrant/.vagrant/machines/solar-dev1/virtualbox/private_key',
'ssh_user': 'vagrant'})[0]
@ -27,17 +27,17 @@ def run():
'ssh_port': 'transports:port',
'name': 'transports:name'})
hosts = vr.create('hosts_file', 'resources/hosts_file', {})[0]
hosts = cr.create('hosts_file', 'resources/hosts_file', {})[0]
# let's add torrent transport for hosts file deployment (useless in real life)
torrent_transport = vr.create('torrent_transport',
torrent_transport = cr.create('torrent_transport',
'resources/transport_torrent',
{'trackers': ['udp://open.demonii.com:1337',
'udp://tracker.openbittorrent.com:80']})[0]
# you could use any trackers as you want
transports_for_torrent = vr.create(
transports_for_torrent = cr.create(
'transports_for_torrent', 'resources/transports')[0]
transports_for_torrent.connect(torrent_transport, {})
@ -48,7 +48,7 @@ def run():
'name': 'transports:name'},
events={})
transports_for_hosts = vr.create(
transports_for_hosts = cr.create(
'transports_for_hosts', 'resources/transports')[0]
torrent_transport.connect(transports_for_hosts, {'trackers': 'transports:trackers',

View File

@ -3,7 +3,7 @@ id: primary_controller
resources:
- id: mariadb_service
from: resources/mariadb_service
values:
input:
port: 3306
root_password: mariadb
image: mariadb
@ -13,14 +13,14 @@ resources:
- id: rabbitmq_service
from: resources/rabbitmq_service
values:
input:
ip: '#{ip}#'
ssh_user: '#{ssh_user}#'
ssh_key: '#{ssh_key}#'
- id: keystone_base
from: templates/keystone_base
values:
input:
login_user: root
login_password: 'mariadb_service::root_password'
login_port: 'mariadb_service::port'
@ -34,7 +34,7 @@ resources:
- id: keystone_api_1
from: templates/keystone_api
values:
input:
idx: 1
db_password: 'keystone_db_user::user_password'
db_user: 'keystone_db_user::user_name'
@ -50,7 +50,7 @@ resources:
- id: openstack_base
from: templates/openstack_base
values:
input:
ip: '#{ip}#'
ssh_user: '#{ssh_user}#'
ssh_key: '#{ssh_key}#'
@ -61,7 +61,7 @@ resources:
- id: openrc_file
from: resources/openrc_file
values:
input:
keystone_host: 'keystone_service_1::ip'
keystone_port: 'keystone_service_1::admin_port'
tenant: 'admin_user::tenant_name'

View File

@ -3,7 +3,7 @@ id: glance_#{idx}#
resources:
- id: glance_base_#{ idx }#
from: templates/glance_db
values:
input:
idx: '#{ idx }#'
db_name: '#{ db_name }#'

View File

@ -3,7 +3,7 @@ id: glance_base
resources:
- id: glance_db
from: resources/mariadb_db
values:
input:
db_name: #{db_name}#
login_user: '#{login_user}#'
login_password: '#{login_password}#'
@ -14,7 +14,7 @@ resources:
- id: glance_db_user
from: resources/mariadb_user
values:
input:
user_password: '#{user_password}#'
user_name: '#{user_name}#'
db_name: 'keystone_db::db_name'

View File

@ -3,7 +3,7 @@ id: glance_db_#{ idx }#
resources:
- id: glance_db_db_#{ idx }#
from: resources/mariadb_db
values:
input:
db_name: '#{ db_name }#'
login_user: '#{ db_login_user }#'
login_password: '#{ db_login_password }#'
@ -15,7 +15,7 @@ resources:
- id: glance_db_user
from: resources/mariadb_user
values:
input:
user_password: '#{ db_password }#'
user_name: '#{ db_user }#'

View File

@ -3,7 +3,7 @@ id: glance_register_#{idx}#
resources:
- id: glance_config_#{idx}#
from: resources/glance_config
values:
input:
keystone_admin_port: '#{keystone_admin_port}#'
keystone_ip: '#{keystone_ip}#'
mysql_password: '#{mysql_password}#'
@ -17,7 +17,7 @@ resources:
- id: glance_registry_#{idx}#
from: resources/glance_registry_service
values:
input:
ip: 'keystone_config_#{idx}#::ip'
ssh_user: 'keystone_config_#{idx}#::ssh_user'
ssh_key: 'keystone_config_#{idx}#::ssh_key'

View File

@ -4,7 +4,7 @@ resources:
- id: haproxy_config#{index}#
from: resources/haproxy_config
location: #{node}#
values:
input:
ip: '#{node}#::ip'
config:protocol:
#% for config in service_configs %#
@ -26,21 +26,21 @@ resources:
- id: haproxy_service#{index}#
location: #{node}#
from: resources/haproxy_service
values:
input:
ip: '#{node}#::ip'
events:
- type: depends_on
parent_action: 'haproxy_service#{index}#.run'
state: 'success'
depend_action: 'haproxy_config#{index}#.run'
child_action: 'haproxy_config#{index}#.run'
- type: react_on
parent_action: 'haproxy_config#{index}#.run'
state: 'success'
depend_action: 'haproxy_service#{index}#.apply_config'
child_action: 'haproxy_service#{index}#.apply_config'
- type: react_on
parent_action: 'haproxy_config#{index}#.update'
state: 'success'
depend_action: 'haproxy_service#{index}#.apply_config'
child_action: 'haproxy_service#{index}#.apply_config'

View File

@ -3,7 +3,7 @@ id: keystone_api_#{idx}#
resources:
- id: keystone_service_#{idx}#
from: resources/keystone_puppet
values:
input:
admin_token: '#{admin_token}#'
db_host: '#{db_host}#'
db_name: '#{db_name}#'

View File

@ -3,7 +3,7 @@ id: keystone_base
resources:
- id: keystone_db
from: resources/mariadb_db
values:
input:
db_name: '#{db_name}#'
db_host: '#{db_host}#'
login_user: '#{login_user}#'
@ -15,7 +15,7 @@ resources:
- id: keystone_db_user
from: resources/mariadb_user
values:
input:
user_password: '#{user_password}#'
user_name: '#{user_name}#'
db_name: 'keystone_db::db_name'

View File

@ -3,7 +3,7 @@ resources:
- id: mos_holdback_#{index}#
from: resources/apt_repo
location: #{node}#
values:
input:
name: mos-holdback
package: '*'
repo: deb http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0/ mos8.0-holdback main restricted
@ -12,7 +12,7 @@ resources:
- id: mos_security_#{index}#
from: resources/apt_repo
location: #{node}#
values:
input:
name: mos
package: '*'
repo: deb http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0/ mos8.0-security main restricted
@ -21,7 +21,7 @@ resources:
- id: mos_updates_#{index}#
from: resources/apt_repo
location: #{node}#
values:
input:
name: mos_update
package: '*'
repo: deb http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0/ mos8.0-updates main restricted
@ -30,7 +30,7 @@ resources:
- id: managed_apt_#{index}#
from: resources/managed_apt
location: #{node}#
values:
input:
names:
- mos_holdback_#{index}#::name
- mos_security_#{index}#::name

View File

@ -4,17 +4,17 @@ resources:
#% set j = i +1 %#
- id: ssh_transport#{j}#
from: resources/transport_ssh
values:
input:
ssh_user: 'vagrant'
ssh_key: '/vagrant/.vagrant/machines/solar-dev#{j}#/virtualbox/private_key'
- id: rsync#{j}#
from: resources/transport_rsync
values:
input:
user: vagrant
key: /vagrant/.vagrant/machines/solar-dev#{j}#/virtualbox/private_key
- id: transports#{j}#
from: resources/transports
values:
input:
transports:
- key: ssh_transport#{j}#::ssh_key
user: ssh_transport#{j}#::ssh_user
@ -26,7 +26,7 @@ resources:
port: rsync#{j}#::port
- id: node#{j}#
from: resources/ro_node
values:
input:
name: node#{j}#
ip: '10.0.0.#{i + 3}#'
transports_id: transports#{j}#::transports_id

View File

@ -6,7 +6,7 @@ resources:
#% for i in range(count|int) %#
- id: node#{i}#_sdn
from: resources/node_network_puppet
values:
input:
use_ovs: true
network_scheme:
version: '1.1'

View File

@ -3,17 +3,17 @@ resources:
#% for i in range(count|int) %#
- id: ssh_transport#{i}#
from: resources/transport_ssh
values:
input:
ssh_user: 'vagrant'
ssh_key: '/vagrant/.vagrant/machines/solar-dev#{i + 1}#/virtualbox/private_key'
- id: rsync#{i}#
from: resources/transport_rsync
values:
input:
user: vagrant
key: /vagrant/.vagrant/machines/solar-dev#{i + 1}#/virtualbox/private_key
- id: transports#{i}#
from: resources/transports
values:
input:
transports:
- key: ssh_transport#{i}#::ssh_key
user: ssh_transport#{i}#::ssh_user
@ -25,7 +25,7 @@ resources:
port: rsync#{i}#::port
- id: node#{i}#
from: resources/ro_node
values:
input:
ip: '10.0.0.#{i + 3}#'
transports_id: transports#{i}#::transports_id
name: node#{i}#

View File

@ -4,19 +4,19 @@ resources:
#% set id = node.id | replace(':', '_') %#
- id: ssh_transport#{ id }#
from: resources/transport_ssh
values:
input:
ssh_user: 'root'
ssh_key: '/vagrant/tmp/keys/ssh_private'
- id: transports#{id}#
from: resources/transports
values:
input:
transports:key: ssh_transport#{id}#::ssh_key
transports:user: ssh_transport#{id}#::ssh_user
transports:port: ssh_transport#{id}#::ssh_port
transports:name: ssh_transport#{id}#::name
- id: node_#{id}#
from: resources/not_provisioned_node
values:
input:
ip: #{node.ip}#
transports_id: transports#{id}#::transports_id
name: node_#{id}#
@ -25,19 +25,19 @@ resources:
- id: ssh_transport_master
from: resources/transport_ssh
values:
input:
ssh_user: 'vagrant'
ssh_key: '/vagrant/.vagrant/machines/solar-dev/virtualbox/private_key'
- id: transports_master
from: resources/transports
values:
input:
transports:key: ssh_transport_master::ssh_key
transports:user: ssh_transport_master::ssh_user
transports:port: ssh_transport_master::ssh_port
transports:name: ssh_transport_master::name
- id: node_master
from: resources/ro_node
values:
input:
name: node_master
ip: '10.0.2.15'
transports_id: transports_master::transports_id

View File

@ -3,7 +3,7 @@ id: openstack_base
resources:
- id: admin_tenant
from: resources/keystone_tenant
values:
input:
tenant_name: admin
keystone_port: '#{keystone_admin_port}#'
keystone_host: '#{keystone_ip}#'
@ -14,7 +14,7 @@ resources:
- id: admin_user
from: resources/keystone_user
values:
input:
user_name: 'admin'
user_password: 'admin'
tenant_name: 'admin_tenant::tenant_name'
@ -27,7 +27,7 @@ resources:
- id: admin_role
from: resources/keystone_role
values:
input:
role_name: 'admin'
user_name: 'admin_user::user_name'
tenant_name: 'admin_user::tenant_name'
@ -40,7 +40,7 @@ resources:
- id: keystone_service_endpoint
from: resources/keystone_service_endpoint
values:
input:
#% raw %#
adminurl: 'http://#{admin_ip}#:#{admin_port}#/v2.0'
internalurl: 'http://#{internal_ip}#:#{internal_port}#/v2.0'
@ -64,7 +64,7 @@ resources:
- id: service_tenant
from: resources/keystone_tenant
values:
input:
tenant_name: services
keystone_port: '#{keystone_admin_port}#'
keystone_host: '#{keystone_ip}#'

View File

@ -2,7 +2,7 @@ id: seed_node
resources:
- id: seed_node
from: resources/ro_node
values:
input:
ip: '10.0.0.2'
ssh_key: '/vagrant/.vagrant/machines/solar-dev/virtualbox/private_key'
ssh_user: 'vagrant'

View File

@ -3,6 +3,6 @@ resources:
- id: sources#{index}#
from: resources/sources
location: #{node}#
values:
input:
sources:
- {src: /tmp/sources_test, dst: /tmp/sources_test}