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:
parent
f7edd1f957
commit
25dc2685f5
2
.gitignore
vendored
2
.gitignore
vendored
@ -55,3 +55,5 @@ solar/.cache
|
||||
.testrepository/
|
||||
|
||||
.solar_config_override
|
||||
|
||||
.ropeproject
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
||||
|
@ -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]
|
||||
|
@ -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',))
|
||||
|
@ -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
|
||||
|
@ -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'})
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 %#
|
||||
|
@ -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, {})
|
||||
|
@ -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,
|
||||
|
@ -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'
|
||||
|
@ -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',
|
||||
|
@ -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'
|
||||
|
@ -3,7 +3,7 @@ id: glance_#{idx}#
|
||||
resources:
|
||||
- id: glance_base_#{ idx }#
|
||||
from: templates/glance_db
|
||||
values:
|
||||
input:
|
||||
idx: '#{ idx }#'
|
||||
|
||||
db_name: '#{ db_name }#'
|
||||
|
@ -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'
|
||||
|
@ -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 }#'
|
||||
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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}#'
|
||||
|
@ -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'
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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'
|
||||
|
@ -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}#
|
||||
|
@ -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
|
||||
|
@ -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}#'
|
||||
|
@ -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'
|
||||
|
@ -3,6 +3,6 @@ resources:
|
||||
- id: sources#{index}#
|
||||
from: resources/sources
|
||||
location: #{node}#
|
||||
values:
|
||||
input:
|
||||
sources:
|
||||
- {src: /tmp/sources_test, dst: /tmp/sources_test}
|
||||
|
Loading…
Reference in New Issue
Block a user