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/
|
.testrepository/
|
||||||
|
|
||||||
.solar_config_override
|
.solar_config_override
|
||||||
|
|
||||||
|
.ropeproject
|
||||||
|
@ -8,7 +8,7 @@ from solar.core import actions
|
|||||||
from solar.core import resource
|
from solar.core import resource
|
||||||
from solar.core import signals
|
from solar.core import signals
|
||||||
from solar.core import validation
|
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 import errors
|
||||||
from solar.dblayer.model import ModelMeta
|
from solar.dblayer.model import ModelMeta
|
||||||
|
|
||||||
@ -21,13 +21,13 @@ def main():
|
|||||||
def setup_resources():
|
def setup_resources():
|
||||||
ModelMeta.remove_all()
|
ModelMeta.remove_all()
|
||||||
|
|
||||||
node2 = vr.create('node2', 'resources/ro_node/', {
|
node2 = cr.create('node2', 'resources/ro_node/', {
|
||||||
'ip': '10.0.0.4',
|
'ip': '10.0.0.4',
|
||||||
'ssh_key': '/vagrant/.vagrant/machines/solar-dev2/virtualbox/private_key',
|
'ssh_key': '/vagrant/.vagrant/machines/solar-dev2/virtualbox/private_key',
|
||||||
'ssh_user': 'vagrant'
|
'ssh_user': 'vagrant'
|
||||||
})[0]
|
})[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)
|
signals.connect(node2, solar_bootstrap2)
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ import sys
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from solar.core import actions
|
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 resource
|
||||||
from solar.core import signals
|
from solar.core import signals
|
||||||
from solar.dblayer.model import ModelMeta
|
from solar.dblayer.model import ModelMeta
|
||||||
@ -55,7 +55,7 @@ def deploy():
|
|||||||
signals.connect(openstack_vhost, openstack_rabbitmq_user, {'vhost_name': 'vhost_name'})
|
signals.connect(openstack_vhost, openstack_rabbitmq_user, {'vhost_name': 'vhost_name'})
|
||||||
|
|
||||||
|
|
||||||
errors = vr.validate_resources()
|
errors = cr.validate_resources()
|
||||||
if errors:
|
if errors:
|
||||||
for r, error in errors:
|
for r, error in errors:
|
||||||
print 'ERROR: %s: %s' % (r.name, error)
|
print 'ERROR: %s: %s' % (r.name, error)
|
||||||
|
@ -3,14 +3,14 @@ import sys
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from solar.core import signals
|
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
|
from solar.dblayer.model import ModelMeta
|
||||||
|
|
||||||
|
|
||||||
def run():
|
def run():
|
||||||
ModelMeta.remove_all()
|
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')]
|
node1, node2 = [x for x in resources if x.name.startswith('node')]
|
||||||
hosts1, hosts2 = [x for x in resources
|
hosts1, hosts2 = [x for x in resources
|
||||||
|
@ -3,15 +3,15 @@ id: librarian_examples
|
|||||||
resources:
|
resources:
|
||||||
- id: rabbitmq_service1
|
- id: rabbitmq_service1
|
||||||
from: resources/rabbitmq_service
|
from: resources/rabbitmq_service
|
||||||
location: {{node}}
|
location: #{node}#
|
||||||
values:
|
input:
|
||||||
management_port: 15672
|
management_port: 15672
|
||||||
port: 5672
|
port: 5672
|
||||||
|
|
||||||
- id: librarian
|
- id: librarian
|
||||||
location: {{node}}
|
location: #{node}#
|
||||||
from: resources/librarian
|
from: resources/librarian
|
||||||
values:
|
input:
|
||||||
modules:
|
modules:
|
||||||
- rabbitmq_service1::module::NO_EVENTS
|
- rabbitmq_service1::module::NO_EVENTS
|
||||||
|
|
||||||
@ -19,4 +19,4 @@ events:
|
|||||||
- type: depends_on
|
- type: depends_on
|
||||||
parent_action: librarian.run
|
parent_action: librarian.run
|
||||||
state: success
|
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
|
from solar.dblayer.model import ModelMeta
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
@ -33,24 +33,24 @@ NETWORK_METADATA = yaml.load("""
|
|||||||
|
|
||||||
def deploy():
|
def deploy():
|
||||||
ModelMeta.remove_all()
|
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_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'))
|
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)
|
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)
|
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]
|
{'dest': '/var/lib/astute/'})[0]
|
||||||
second_node.connect(remote_file)
|
second_node.connect(remote_file)
|
||||||
keys.connect(remote_file, {'ip': 'remote_ip', 'path': 'remote_path'})
|
keys.connect(remote_file, {'ip': 'remote_ip', 'path': 'remote_path'})
|
||||||
first_transp.connect(remote_file, {'transports': 'remote'})
|
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,
|
{'storage': STORAGE,
|
||||||
'keystone': KEYSTONE,
|
'keystone': KEYSTONE,
|
||||||
'network_scheme': NETWORK_SCHEMA,
|
'network_scheme': NETWORK_SCHEMA,
|
||||||
@ -59,7 +59,7 @@ def deploy():
|
|||||||
'role': 'controller',
|
'role': 'controller',
|
||||||
})[0]
|
})[0]
|
||||||
|
|
||||||
managed_apt = vr.create(
|
managed_apt = cr.create(
|
||||||
'managed_apt1', 'templates/mos_repos',
|
'managed_apt1', 'templates/mos_repos',
|
||||||
{'node': first_node.name, 'index': 0})[-1]
|
{'node': first_node.name, 'index': 0})[-1]
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
import click
|
import click
|
||||||
|
|
||||||
from solar.core import signals
|
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.system_log import change
|
||||||
from solar.cli import orch
|
from solar.cli import orch
|
||||||
@ -45,10 +45,10 @@ def lxc_template(idx):
|
|||||||
def deploy():
|
def deploy():
|
||||||
ModelMeta.remove_all()
|
ModelMeta.remove_all()
|
||||||
|
|
||||||
node1 = vr.create('nodes', 'templates/nodes', {})[0]
|
node1 = cr.create('nodes', 'templates/nodes', {})[0]
|
||||||
seed = vr.create('nodes', 'templates/seed_node', {})[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',
|
'keys_dir': '/vagrant/.ssh',
|
||||||
'private_key': '/vagrant/.ssh/id_rsa',
|
'private_key': '/vagrant/.ssh/id_rsa',
|
||||||
'public_key': '/vagrant/.ssh/id_rsa.pub',
|
'public_key': '/vagrant/.ssh/id_rsa.pub',
|
||||||
@ -56,14 +56,14 @@ def deploy():
|
|||||||
})[0]
|
})[0]
|
||||||
signals.connect(seed, ssh_key)
|
signals.connect(seed, ssh_key)
|
||||||
|
|
||||||
cnets1 = vr.create('cnets1', 'resources/container_networks', {
|
cnets1 = cr.create('cnets1', 'resources/container_networks', {
|
||||||
'networks':
|
'networks':
|
||||||
{'mgmt': {
|
{'mgmt': {
|
||||||
'bridge': 'br-int53',
|
'bridge': 'br-int53',
|
||||||
'bridge_address': '172.18.11.254/24'
|
'bridge_address': '172.18.11.254/24'
|
||||||
}}
|
}}
|
||||||
})[0]
|
})[0]
|
||||||
cnets2 = vr.create('cnets2', 'resources/container_networks', {
|
cnets2 = cr.create('cnets2', 'resources/container_networks', {
|
||||||
'networks':
|
'networks':
|
||||||
{'mgmt': {
|
{'mgmt': {
|
||||||
'bridge': 'br-int53',
|
'bridge': 'br-int53',
|
||||||
@ -73,12 +73,12 @@ def deploy():
|
|||||||
signals.connect(seed, cnets1)
|
signals.connect(seed, cnets1)
|
||||||
signals.connect(node1, cnets2)
|
signals.connect(node1, cnets2)
|
||||||
|
|
||||||
vxlan_mesh1 = vr.create('vxlan_mesh1', 'resources/vxlan_mesh', {
|
vxlan_mesh1 = cr.create('vxlan_mesh1', 'resources/vxlan_mesh', {
|
||||||
'id': 53,
|
'id': 53,
|
||||||
'parent': 'eth1',
|
'parent': 'eth1',
|
||||||
'master': 'br-int53'
|
'master': 'br-int53'
|
||||||
})[0]
|
})[0]
|
||||||
vxlan_mesh2 = vr.create('vxlan_mesh2', 'resources/vxlan_mesh', {
|
vxlan_mesh2 = cr.create('vxlan_mesh2', 'resources/vxlan_mesh', {
|
||||||
'id': 53,
|
'id': 53,
|
||||||
'parent': 'eth1',
|
'parent': 'eth1',
|
||||||
'master': 'br-int53'
|
'master': 'br-int53'
|
||||||
@ -88,14 +88,14 @@ def deploy():
|
|||||||
signals.connect(seed, vxlan_mesh1)
|
signals.connect(seed, vxlan_mesh1)
|
||||||
signals.connect(node1, vxlan_mesh2)
|
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)
|
signals.connect(node1, lxc_infra1)
|
||||||
|
|
||||||
lxc_hosts = range(28, 35)
|
lxc_hosts = range(28, 35)
|
||||||
hosts_map = {}
|
hosts_map = {}
|
||||||
for idx in lxc_hosts:
|
for idx in lxc_hosts:
|
||||||
|
|
||||||
lxc_host_idx = vr.create(
|
lxc_host_idx = cr.create(
|
||||||
'lxc_host{}'.format(idx),
|
'lxc_host{}'.format(idx),
|
||||||
'resources/lxc_container', lxc_template(idx))[0]
|
'resources/lxc_container', lxc_template(idx))[0]
|
||||||
hosts_map[idx] = lxc_host_idx
|
hosts_map[idx] = lxc_host_idx
|
||||||
@ -112,15 +112,15 @@ def deploy():
|
|||||||
'private_key': 'user_key'})
|
'private_key': 'user_key'})
|
||||||
|
|
||||||
# RABBIT
|
# RABBIT
|
||||||
rabbitmq_service1 = vr.create('rabbitmq_service1', 'resources/rabbitmq_service/', {
|
rabbitmq_service1 = cr.create('rabbitmq_service1', 'resources/rabbitmq_service/', {
|
||||||
'management_port': 15672,
|
'management_port': 15672,
|
||||||
'port': 5672,
|
'port': 5672,
|
||||||
})[0]
|
})[0]
|
||||||
openstack_vhost = vr.create('openstack_vhost', 'resources/rabbitmq_vhost/', {
|
openstack_vhost = cr.create('openstack_vhost', 'resources/rabbitmq_vhost/', {
|
||||||
'vhost_name': 'openstack'
|
'vhost_name': 'openstack'
|
||||||
})[0]
|
})[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',
|
'user_name': 'openstack',
|
||||||
'password': 'openstack_password'
|
'password': 'openstack_password'
|
||||||
})[0]
|
})[0]
|
||||||
|
@ -6,7 +6,7 @@ import sys
|
|||||||
from solar.core import resource
|
from solar.core import resource
|
||||||
from solar.core import signals
|
from solar.core import signals
|
||||||
from solar.core import validation
|
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 import events as evapi
|
||||||
from solar.dblayer.model import ModelMeta
|
from solar.dblayer.model import ModelMeta
|
||||||
|
|
||||||
@ -40,9 +40,9 @@ def main():
|
|||||||
|
|
||||||
|
|
||||||
def prepare_nodes(nodes_count):
|
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')]
|
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')]
|
nodes_sdn = [x for x in resources if x.name.startswith('node')]
|
||||||
r = {}
|
r = {}
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ def prepare_nodes(nodes_count):
|
|||||||
r[node_sdn.name] = node_sdn
|
r[node_sdn.name] = node_sdn
|
||||||
|
|
||||||
# LIBRARIAN
|
# 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
|
r[librarian.name] = librarian
|
||||||
|
|
||||||
node.connect(librarian, {})
|
node.connect(librarian, {})
|
||||||
@ -70,7 +70,7 @@ def prepare_nodes(nodes_count):
|
|||||||
|
|
||||||
def setup_base(node, librarian):
|
def setup_base(node, librarian):
|
||||||
# MARIADB
|
# MARIADB
|
||||||
mariadb_service = vr.create('mariadb_service1', 'resources/mariadb_service', {
|
mariadb_service = cr.create('mariadb_service1', 'resources/mariadb_service', {
|
||||||
'image': 'mariadb',
|
'image': 'mariadb',
|
||||||
'port': 3306
|
'port': 3306
|
||||||
})[0]
|
})[0]
|
||||||
@ -78,15 +78,15 @@ def setup_base(node, librarian):
|
|||||||
node.connect(mariadb_service)
|
node.connect(mariadb_service)
|
||||||
|
|
||||||
# RABBIT
|
# RABBIT
|
||||||
rabbitmq_service = vr.create('rabbitmq_service1', 'resources/rabbitmq_service/', {
|
rabbitmq_service = cr.create('rabbitmq_service1', 'resources/rabbitmq_service/', {
|
||||||
'management_port': 15672,
|
'management_port': 15672,
|
||||||
'port': 5672,
|
'port': 5672,
|
||||||
})[0]
|
})[0]
|
||||||
openstack_vhost = vr.create('openstack_vhost', 'resources/rabbitmq_vhost/', {
|
openstack_vhost = cr.create('openstack_vhost', 'resources/rabbitmq_vhost/', {
|
||||||
'vhost_name': 'openstack'
|
'vhost_name': 'openstack'
|
||||||
})[0]
|
})[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',
|
'user_name': 'openstack',
|
||||||
'password': 'openstack_password'
|
'password': 'openstack_password'
|
||||||
})[0]
|
})[0]
|
||||||
@ -105,21 +105,21 @@ def setup_base(node, librarian):
|
|||||||
'openstack_rabbitmq_user': openstack_rabbitmq_user}
|
'openstack_rabbitmq_user': openstack_rabbitmq_user}
|
||||||
|
|
||||||
def setup_keystone(node, librarian, mariadb_service, 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'}, {})
|
keystone_puppet.connect_with_events(librarian, {'module': 'modules'}, {})
|
||||||
evapi.add_dep(librarian.name, keystone_puppet.name, actions=('run', 'update'))
|
evapi.add_dep(librarian.name, keystone_puppet.name, actions=('run', 'update'))
|
||||||
|
|
||||||
evapi.add_dep(openstack_rabbitmq_user.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',
|
'db_name': 'keystone_db',
|
||||||
'login_user': 'root'
|
'login_user': 'root'
|
||||||
})[0]
|
})[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_name': 'keystone',
|
||||||
'user_password': 'keystone',
|
'user_password': 'keystone',
|
||||||
})[0]
|
})[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',
|
'endpoint_name': 'keystone',
|
||||||
'adminurl': 'http://{{admin_ip}}:{{admin_port}}/v2.0',
|
'adminurl': 'http://{{admin_ip}}:{{admin_port}}/v2.0',
|
||||||
'internalurl': 'http://{{internal_ip}}:{{internal_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'
|
'type': 'identity'
|
||||||
})[0]
|
})[0]
|
||||||
|
|
||||||
admin_tenant = vr.create('admin_tenant', 'resources/keystone_tenant', {
|
admin_tenant = cr.create('admin_tenant', 'resources/keystone_tenant', {
|
||||||
'tenant_name': 'admin'
|
'tenant_name': 'admin'
|
||||||
})[0]
|
})[0]
|
||||||
admin_user = vr.create('admin_user', 'resources/keystone_user', {
|
admin_user = cr.create('admin_user', 'resources/keystone_user', {
|
||||||
'user_name': 'admin',
|
'user_name': 'admin',
|
||||||
'user_password': 'admin'
|
'user_password': 'admin'
|
||||||
})[0]
|
})[0]
|
||||||
admin_role = vr.create('admin_role', 'resources/keystone_role', {
|
admin_role = cr.create('admin_role', 'resources/keystone_role', {
|
||||||
'role_name': 'admin'
|
'role_name': 'admin'
|
||||||
})[0]
|
})[0]
|
||||||
services_tenant = vr.create('services_tenant', 'resources/keystone_tenant', {
|
services_tenant = cr.create('services_tenant', 'resources/keystone_tenant', {
|
||||||
'tenant_name': 'services'
|
'tenant_name': 'services'
|
||||||
})[0]
|
})[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'
|
'role_name': 'admin'
|
||||||
})[0]
|
})[0]
|
||||||
|
|
||||||
@ -212,7 +212,7 @@ def setup_keystone(node, librarian, mariadb_service, openstack_rabbitmq_user):
|
|||||||
|
|
||||||
def setup_openrc(node, keystone_puppet, admin_user):
|
def setup_openrc(node, keystone_puppet, admin_user):
|
||||||
# OPENRC
|
# OPENRC
|
||||||
openrc = vr.create('openrc_file', 'resources/openrc_file', {})[0]
|
openrc = cr.create('openrc_file', 'resources/openrc_file', {})[0]
|
||||||
|
|
||||||
node.connect(openrc)
|
node.connect(openrc)
|
||||||
keystone_puppet.connect(openrc, {'ip': 'keystone_host', 'admin_port':'keystone_port'})
|
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):
|
def setup_neutron(node, librarian, rabbitmq_service, openstack_rabbitmq_user, openstack_vhost):
|
||||||
# NEUTRON
|
# NEUTRON
|
||||||
# Deploy chain neutron -> (plugins) -> neutron_server -> ( agents )
|
# 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'
|
'core_plugin': 'neutron.plugins.ml2.plugin.Ml2Plugin'
|
||||||
})[0]
|
})[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):
|
def setup_neutron_api(node, mariadb_service, admin_user, keystone_puppet, services_tenant, neutron_puppet):
|
||||||
# NEUTRON PLUGIN AND NEUTRON API (SERVER)
|
# 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)
|
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,
|
'sync_db': True,
|
||||||
})[0]
|
})[0]
|
||||||
evapi.add_dep(neutron_puppet.name, neutron_server_puppet.name, actions=('run',))
|
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_plugins_ml2.name, neutron_server_puppet.name, actions=('run',))
|
||||||
evapi.add_dep(neutron_puppet.name, neutron_plugins_ml2.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]
|
'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]
|
'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_name': 'neutron',
|
||||||
'user_password': 'neutron'
|
'user_password': 'neutron'
|
||||||
})[0]
|
})[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'
|
'role_name': 'admin'
|
||||||
})[0]
|
})[0]
|
||||||
evapi.add_dep(neutron_keystone_role.name, neutron_server_puppet.name, actions=('run',))
|
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',
|
'endpoint_name': 'neutron',
|
||||||
'adminurl': 'http://{{admin_ip}}:{{admin_port}}',
|
'adminurl': 'http://{{admin_ip}}:{{admin_port}}',
|
||||||
'internalurl': 'http://{{internal_ip}}:{{internal_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):
|
def setup_neutron_agent(node, neutron_server_puppet):
|
||||||
# NEUTRON ML2 PLUGIN & ML2-OVS AGENT WITH GRE
|
# 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
|
# TODO(bogdando) these should come from the node network resource
|
||||||
'enable_tunneling': True,
|
'enable_tunneling': True,
|
||||||
'tunnel_types': ['gre'],
|
'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',))
|
evapi.add_dep(neutron_server_puppet.name, neutron_agents_ml2.name, actions=('run',))
|
||||||
|
|
||||||
# NEUTRON DHCP, L3, metadata agents
|
# 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)
|
node.connect(neutron_agents_dhcp)
|
||||||
evapi.add_dep(neutron_server_puppet.name, neutron_agents_dhcp.name, actions=('run',))
|
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
|
# TODO(bogdando) these should come from the node network resource
|
||||||
'metadata_port': 8775,
|
'metadata_port': 8775,
|
||||||
'external_network_bridge': 'br-floating',
|
'external_network_bridge': 'br-floating',
|
||||||
@ -345,7 +345,7 @@ def setup_neutron_agent(node, neutron_server_puppet):
|
|||||||
node.connect(neutron_agents_l3)
|
node.connect(neutron_agents_l3)
|
||||||
evapi.add_dep(neutron_server_puppet.name, neutron_agents_l3.name, actions=('run',))
|
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',
|
'sh2ared_secret': 'secret',
|
||||||
})[0]
|
})[0]
|
||||||
node.connect(neutron_agents_metadata)
|
node.connect(neutron_agents_metadata)
|
||||||
@ -361,7 +361,7 @@ def setup_neutron_compute(node, librarian, neutron_puppet, neutron_server_puppet
|
|||||||
# NEUTRON FOR COMPUTE (node1)
|
# NEUTRON FOR COMPUTE (node1)
|
||||||
# Deploy chain neutron -> (plugins) -> ( agents )
|
# Deploy chain neutron -> (plugins) -> ( agents )
|
||||||
name = node.name
|
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'}, {})
|
neutron_puppet2.connect_with_events(librarian, {'module': 'modules'}, {})
|
||||||
evapi.add_dep(librarian.name, neutron_puppet2.name, actions=('run', 'update'))
|
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 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)
|
node.connect(neutron_plugins_ml22)
|
||||||
evapi.add_dep(neutron_puppet2.name, neutron_plugins_ml22.name, actions=('run',))
|
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',))
|
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
|
# TODO(bogdando) these should come from the node network resource
|
||||||
'enable_tunneling': True,
|
'enable_tunneling': True,
|
||||||
'tunnel_types': ['gre'],
|
'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):
|
def setup_cinder(node, librarian, rabbitmq_service, mariadb_service, keystone_puppet, admin_user, openstack_vhost, openstack_rabbitmq_user, services_tenant):
|
||||||
# CINDER
|
# CINDER
|
||||||
cinder_puppet = vr.create('cinder_puppet', 'resources/cinder_puppet', {})[0]
|
cinder_puppet = cr.create('cinder_puppet', 'resources/cinder_puppet', {})[0]
|
||||||
cinder_db = vr.create('cinder_db', 'resources/mariadb_db/', {
|
cinder_db = cr.create('cinder_db', 'resources/mariadb_db/', {
|
||||||
'db_name': 'cinder_db', 'login_user': 'root'})[0]
|
'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]
|
'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]
|
'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]
|
'role_name': 'admin'})[0]
|
||||||
cinder_keystone_service_endpoint = vr.create(
|
cinder_keystone_service_endpoint = cr.create(
|
||||||
'cinder_keystone_service_endpoint',
|
'cinder_keystone_service_endpoint',
|
||||||
'resources/keystone_service_endpoint', {
|
'resources/keystone_service_endpoint', {
|
||||||
'endpoint_name': 'cinder',
|
'endpoint_name': 'cinder',
|
||||||
@ -454,7 +454,7 @@ def setup_cinder(node, librarian, rabbitmq_service, mariadb_service, keystone_pu
|
|||||||
|
|
||||||
# CINDER GLANCE
|
# CINDER GLANCE
|
||||||
# Deploy chain: cinder_puppet -> cinder_glance -> ( cinder_api, cinder_scheduler, cinder_volume )
|
# 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)
|
node.connect(cinder_glance_puppet)
|
||||||
evapi.add_dep(cinder_puppet.name, cinder_glance_puppet.name, actions=('run',))
|
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):
|
def setup_cinder_api(node, cinder_puppet):
|
||||||
# CINDER API
|
# 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)
|
node.connect(cinder_api_puppet)
|
||||||
cinder_puppet.connect(cinder_api_puppet, {
|
cinder_puppet.connect(cinder_api_puppet, {
|
||||||
'keystone_password', 'keystone_tenant', 'keystone_user'})
|
'keystone_password', 'keystone_tenant', 'keystone_user'})
|
||||||
@ -480,7 +480,7 @@ def setup_cinder_api(node, cinder_puppet):
|
|||||||
|
|
||||||
def setup_cinder_scheduler(node, cinder_puppet):
|
def setup_cinder_scheduler(node, cinder_puppet):
|
||||||
# CINDER SCHEDULER
|
# 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)
|
node.connect(cinder_scheduler_puppet)
|
||||||
cinder_puppet.connect(cinder_scheduler_puppet)
|
cinder_puppet.connect(cinder_scheduler_puppet)
|
||||||
evapi.add_react(cinder_puppet.name, cinder_scheduler_puppet.name, actions=('update',))
|
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):
|
def setup_cinder_volume(node, cinder_puppet):
|
||||||
# CINDER VOLUME
|
# 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]
|
{'path': '/root/cinder.img', 'volume_name': 'cinder-volume'})[0]
|
||||||
node.connect(cinder_volume)
|
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)
|
node.connect(cinder_volume_puppet)
|
||||||
cinder_puppet.connect(cinder_volume_puppet)
|
cinder_puppet.connect(cinder_volume_puppet)
|
||||||
evapi.add_react(cinder_puppet.name, cinder_volume_puppet.name, actions=('update',))
|
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):
|
def setup_nova(node, librarian, mariadb_service, rabbitmq_service, admin_user, openstack_vhost, services_tenant, keystone_puppet, openstack_rabbitmq_user):
|
||||||
# NOVA
|
# NOVA
|
||||||
nova_puppet = vr.create('nova_puppet', 'resources/nova_puppet', {})[0]
|
nova_puppet = cr.create('nova_puppet', 'resources/nova_puppet', {})[0]
|
||||||
nova_db = vr.create('nova_db', 'resources/mariadb_db/', {
|
nova_db = cr.create('nova_db', 'resources/mariadb_db/', {
|
||||||
'db_name': 'nova_db',
|
'db_name': 'nova_db',
|
||||||
'login_user': 'root'})[0]
|
'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_name': 'nova',
|
||||||
'user_password': 'nova',
|
'user_password': 'nova',
|
||||||
'login_user': 'root'})[0]
|
'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_name': 'nova',
|
||||||
'user_password': 'nova'})[0]
|
'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]
|
'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',
|
'endpoint_name': 'nova',
|
||||||
'adminurl': 'http://{{admin_ip}}:{{admin_port}}/v2/%(tenant_id)s',
|
'adminurl': 'http://{{admin_ip}}:{{admin_port}}/v2/%(tenant_id)s',
|
||||||
'internalurl': 'http://{{internal_ip}}:{{internal_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):
|
def setup_nova_api(node, nova_puppet, neutron_agents_metadata):
|
||||||
# NOVA API
|
# 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)
|
node.connect(nova_api_puppet)
|
||||||
nova_puppet.connect(nova_api_puppet, {
|
nova_puppet.connect(nova_api_puppet, {
|
||||||
'keystone_tenant': 'admin_tenant_name',
|
'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):
|
def setup_nova_conductor(node, nova_puppet, nova_api_puppet):
|
||||||
# NOVA CONDUCTOR
|
# 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)
|
node.connect(nova_conductor_puppet)
|
||||||
nova_puppet.connect(nova_conductor_puppet)
|
nova_puppet.connect(nova_conductor_puppet)
|
||||||
evapi.add_dep(nova_api_puppet.name, nova_conductor_puppet.name, actions=('run',))
|
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
|
# NOVA SCHEDULER
|
||||||
# NOTE(bogdando) Generic service is used. Package and service names for Ubuntu case
|
# 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
|
# 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',
|
'title' : 'scheduler', 'package_name': 'nova-scheduler', 'service_name': 'nova-scheduler',
|
||||||
})[0]
|
})[0]
|
||||||
node.connect(nova_scheduler_puppet)
|
node.connect(nova_scheduler_puppet)
|
||||||
@ -615,9 +615,9 @@ def setup_nova_compute(node, librarian, nova_puppet, nova_api_puppet, neutron_se
|
|||||||
# NOVA COMPUTE
|
# NOVA COMPUTE
|
||||||
# Deploy chain (nova, node_networking(TODO)) -> (nova_compute_libvirt, nova_neutron) -> nova_compute
|
# Deploy chain (nova, node_networking(TODO)) -> (nova_compute_libvirt, nova_neutron) -> nova_compute
|
||||||
name = node.name
|
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
|
# 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}}'
|
'glance_api_servers': '{{glance_api_servers_host}}:{{glance_api_servers_port}}'
|
||||||
})[0]
|
})[0]
|
||||||
nova_puppet.connect(nova_puppet2, {
|
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
|
# NOVA COMPUTE LIBVIRT, NOVA_NEUTRON
|
||||||
# NOTE(bogdando): changes nova config, so should notify nova compute service
|
# 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)
|
node.connect(nova_compute_libvirt_puppet)
|
||||||
evapi.add_dep(nova_puppet2.name, nova_compute_libvirt_puppet.name, actions=('run',))
|
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',))
|
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
|
# 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)
|
node.connect(nova_neutron_puppet)
|
||||||
evapi.add_dep(nova_puppet2.name, nova_neutron_puppet.name, actions=('run',))
|
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',))
|
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):
|
def setup_glance_api(node, librarian, mariadb_service, admin_user, keystone_puppet, services_tenant, cinder_glance_puppet):
|
||||||
# GLANCE (base and API)
|
# GLANCE (base and API)
|
||||||
glance_api_puppet = vr.create('glance_api_puppet', 'resources/glance_puppet', {})[0]
|
glance_api_puppet = cr.create('glance_api_puppet', 'resources/glance_puppet', {})[0]
|
||||||
glance_db_user = vr.create('glance_db_user', 'resources/mariadb_user/', {
|
glance_db_user = cr.create('glance_db_user', 'resources/mariadb_user/', {
|
||||||
'user_name': 'glance', 'user_password': 'glance', 'login_user': 'root'})[0]
|
'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]
|
'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]
|
'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]
|
'role_name': 'admin'})[0]
|
||||||
glance_keystone_service_endpoint = vr.create(
|
glance_keystone_service_endpoint = cr.create(
|
||||||
'glance_keystone_service_endpoint',
|
'glance_keystone_service_endpoint',
|
||||||
'resources/keystone_service_endpoint', {
|
'resources/keystone_service_endpoint', {
|
||||||
'endpoint_name': 'glance',
|
'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):
|
def setup_glance_registry(node, glance_api_puppet):
|
||||||
# GLANCE REGISTRY
|
# 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)
|
node.connect(glance_registry_puppet)
|
||||||
glance_api_puppet.connect(glance_registry_puppet)
|
glance_api_puppet.connect(glance_registry_puppet)
|
||||||
evapi.add_react(glance_api_puppet.name, glance_registry_puppet.name, actions=('update',))
|
evapi.add_react(glance_api_puppet.name, glance_registry_puppet.name, actions=('update',))
|
||||||
|
@ -4,14 +4,14 @@ resources:
|
|||||||
- id: rabbit_user
|
- id: rabbit_user
|
||||||
from: resources/rabbitmq_user
|
from: resources/rabbitmq_user
|
||||||
location: {{node}}
|
location: {{node}}
|
||||||
values:
|
input:
|
||||||
user_name: {{user_name}}
|
user_name: {{user_name}}
|
||||||
password: {{password}}
|
password: {{password}}
|
||||||
vhost_name: {{vhost_res}}::vhost_name
|
vhost_name: {{vhost_res}}::vhost_name
|
||||||
|
|
||||||
updates:
|
updates:
|
||||||
- id: {{for}}
|
- id: {{for}}
|
||||||
values:
|
input:
|
||||||
{{for_user}}: rabbit_user::user_name
|
{{for_user}}: rabbit_user::user_name
|
||||||
{{for_password}}: rabbit_user::password
|
{{for_password}}: rabbit_user::password
|
||||||
|
|
||||||
@ -19,4 +19,4 @@ events:
|
|||||||
- type: depends_on
|
- type: depends_on
|
||||||
parent_action: rabbit_user.run
|
parent_action: rabbit_user.run
|
||||||
state: success
|
state: success
|
||||||
depend_action: {{for}}.update
|
child_action: {{for}}.update
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
import requests
|
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.api import add_event
|
||||||
from solar.events.controls import React
|
from solar.events.controls import React
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ requests.post(bareon_sync)
|
|||||||
nodes_list = requests.get(discovery_service).json()
|
nodes_list = requests.get(discovery_service).json()
|
||||||
|
|
||||||
# Create slave node resources
|
# 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})
|
{'nodes': nodes_list})
|
||||||
|
|
||||||
# Get master node
|
# 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]
|
'resources/dnsmasq', {})[0]
|
||||||
master_node.connect(dnsmasq)
|
master_node.connect(dnsmasq)
|
||||||
node_resource.connect(dnsmasq, {'admin_mac': 'exclude_mac_pxe'})
|
node_resource.connect(dnsmasq, {'admin_mac': 'exclude_mac_pxe'})
|
||||||
|
@ -4,38 +4,38 @@ resources:
|
|||||||
- id: haproxy_riak_config_http
|
- id: haproxy_riak_config_http
|
||||||
from: resources/haproxy_service_config
|
from: resources/haproxy_service_config
|
||||||
tags: ['service=riak', 'protocol=http']
|
tags: ['service=riak', 'protocol=http']
|
||||||
values:
|
input:
|
||||||
listen_port: {{http_listen_port}}
|
listen_port: #{http_listen_port}#
|
||||||
protocol: 'http'
|
protocol: 'http'
|
||||||
name: 'riak_haproxy_http'
|
name: 'riak_haproxy_http'
|
||||||
backends:server:
|
backends:server:
|
||||||
{% for riak in riaks %}
|
#% for riak in riaks %#
|
||||||
- {{riak}}::riak_hostname
|
- #{riak}#::riak_hostname
|
||||||
{% endfor %}
|
#% endfor %#
|
||||||
backends:port:
|
backends:port:
|
||||||
{% for riak in riaks %}
|
#% for riak in riaks %#
|
||||||
- {{riak}}::riak_port_http
|
- #{riak}#::riak_port_http
|
||||||
{% endfor %}
|
#% endfor %#
|
||||||
|
|
||||||
- id: haproxy_riak_config_pb
|
- id: haproxy_riak_config_pb
|
||||||
from: resources/haproxy_service_config
|
from: resources/haproxy_service_config
|
||||||
tags: ['service=riak', 'protocol=tcp']
|
tags: ['service=riak', 'protocol=tcp']
|
||||||
values:
|
input:
|
||||||
listen_port: {{pb_listen_port}}
|
listen_port: #{pb_listen_port}#
|
||||||
protocol: 'tcp'
|
protocol: 'tcp'
|
||||||
name: 'riak_haproxy_pb'
|
name: 'riak_haproxy_pb'
|
||||||
backends:server:
|
backends:server:
|
||||||
{% for riak in riaks %}
|
#% for riak in riaks %#
|
||||||
- {{riak}}::riak_hostname
|
- #{riak}#::riak_hostname
|
||||||
{% endfor %}
|
#% endfor %#
|
||||||
backends:port:
|
backends:port:
|
||||||
{% for riak in riaks %}
|
#% for riak in riaks %#
|
||||||
- {{riak}}::riak_port_pb
|
- #{riak}#::riak_port_pb
|
||||||
{% endfor %}
|
#% endfor %#
|
||||||
|
|
||||||
updates:
|
updates:
|
||||||
- with_tags: ['resource=haproxy_config']
|
- with_tags: ['resource=haproxy_config']
|
||||||
values:
|
input:
|
||||||
config:protocol:
|
config:protocol:
|
||||||
- haproxy_riak_config_http::protocol
|
- haproxy_riak_config_http::protocol
|
||||||
- haproxy_riak_config_pb::protocol
|
- haproxy_riak_config_pb::protocol
|
||||||
|
@ -3,49 +3,49 @@ id: riak_cluster
|
|||||||
resources:
|
resources:
|
||||||
- id: riak_service1
|
- id: riak_service1
|
||||||
from: examples/riak/riak_service.yaml
|
from: examples/riak/riak_service.yaml
|
||||||
values:
|
input:
|
||||||
node: {{nodes[0]}}
|
node: #{nodes[0]}#
|
||||||
index: 1
|
index: 1
|
||||||
join_to: ''
|
join_to: ''
|
||||||
|
|
||||||
- id: riak_service2
|
- id: riak_service2
|
||||||
from: examples/riak/riak_service.yaml
|
from: examples/riak/riak_service.yaml
|
||||||
values:
|
input:
|
||||||
node: {{nodes[1]}}
|
node: #{nodes[1]}#
|
||||||
index: 2
|
index: 2
|
||||||
join_to: riak_service1
|
join_to: riak_service1
|
||||||
|
|
||||||
- id: riak_service3
|
- id: riak_service3
|
||||||
from: examples/riak/riak_service.yaml
|
from: examples/riak/riak_service.yaml
|
||||||
values:
|
input:
|
||||||
node: {{nodes[2]}}
|
node: #{nodes[2]}#
|
||||||
index: 3
|
index: 3
|
||||||
join_to: riak_service1
|
join_to: riak_service1
|
||||||
|
|
||||||
- id: haproxy_riak_config
|
- id: haproxy_riak_config
|
||||||
from: examples/riak/haproxy_riak_config.yaml
|
from: examples/riak/haproxy_riak_config.yaml
|
||||||
values:
|
input:
|
||||||
http_listen_port: 8098
|
http_listen_port: 8098
|
||||||
pb_listen_port: 8087
|
pb_listen_port: 8087
|
||||||
riaks: ['riak_service1', 'riak_service2', 'riak_service3']
|
riaks: ['riak_service1', 'riak_service2', 'riak_service3']
|
||||||
|
|
||||||
- id: haproxy1
|
- id: haproxy1
|
||||||
from: templates/haproxy
|
from: templates/haproxy
|
||||||
values:
|
input:
|
||||||
node: {{nodes[0]}}
|
node: #{nodes[0]}#
|
||||||
service_configs: ['haproxy_riak_config_pb', 'haproxy_riak_config_http']
|
service_configs: ['haproxy_riak_config_pb', 'haproxy_riak_config_http']
|
||||||
index: 1
|
index: 1
|
||||||
|
|
||||||
- id: haproxy2
|
- id: haproxy2
|
||||||
from: templates/haproxy
|
from: templates/haproxy
|
||||||
values:
|
input:
|
||||||
node: {{nodes[1]}}
|
node: #{nodes[1]}#
|
||||||
service_configs: ['haproxy_riak_config_pb', 'haproxy_riak_config_http']
|
service_configs: ['haproxy_riak_config_pb', 'haproxy_riak_config_http']
|
||||||
index: 2
|
index: 2
|
||||||
|
|
||||||
- id: haproxy3
|
- id: haproxy3
|
||||||
from: templates/haproxy
|
from: templates/haproxy
|
||||||
values:
|
input:
|
||||||
node: {{nodes[2]}}
|
node: #{nodes[2]}#
|
||||||
service_configs: ['haproxy_riak_config_pb', 'haproxy_riak_config_http']
|
service_configs: ['haproxy_riak_config_pb', 'haproxy_riak_config_http']
|
||||||
index: 3
|
index: 3
|
||||||
|
@ -1,61 +1,61 @@
|
|||||||
id: riak_service
|
id: riak_service
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- id: riak_service{{index}}
|
- id: riak_service#{index}#
|
||||||
from: resources/riak_node
|
from: resources/riak_node
|
||||||
location: {{node}}
|
location: #{node}#
|
||||||
values:
|
input:
|
||||||
riak_self_name: riak{{index}}
|
riak_self_name: riak#{index}#
|
||||||
riak_hostname: riak_server{{index}}.solar
|
riak_hostname: riak_server#{index}#.solar
|
||||||
riak_name: riak{{index}}@riak_server{{index}}.solar
|
riak_name: riak#{index}#@riak_server#{index}#.solar
|
||||||
{% if join_to %}
|
#% if join_to %#
|
||||||
join_to: {{join_to}}::riak_name
|
join_to: #{join_to}#::riak_name
|
||||||
{% endif %}
|
#% endif %#
|
||||||
ip: {{node}}::ip
|
ip: #{node}#::ip
|
||||||
|
|
||||||
updates:
|
updates:
|
||||||
- with_tags: 'resource=hosts_file'
|
- with_tags: 'resource=hosts_file'
|
||||||
values:
|
input:
|
||||||
hosts:name:
|
hosts:name:
|
||||||
- riak_service{{index}}::riak_hostname::NO_EVENTS
|
- riak_service#{index}#::riak_hostname::NO_EVENTS
|
||||||
hosts:ip:
|
hosts:ip:
|
||||||
- riak_service{{index}}::ip::NO_EVENTS
|
- riak_service#{index}#::ip::NO_EVENTS
|
||||||
|
|
||||||
- with_tags: 'resource=haproxy_service_config & service=riak & protocol=http'
|
- with_tags: 'resource=haproxy_service_config & service=riak & protocol=http'
|
||||||
values:
|
input:
|
||||||
backends:server:
|
backends:server:
|
||||||
- riak_service{{index}}::riak_hostname
|
- riak_service#{index}#::riak_hostname
|
||||||
backends:port:
|
backends:port:
|
||||||
- riak_service{{index}}::riak_port_http
|
- riak_service#{index}#::riak_port_http
|
||||||
|
|
||||||
- with_tags: 'resource=haproxy_service_config & service=riak & protocol=tcp'
|
- with_tags: 'resource=haproxy_service_config & service=riak & protocol=tcp'
|
||||||
values:
|
input:
|
||||||
backends:server:
|
backends:server:
|
||||||
- riak_service{{index}}::riak_hostname
|
- riak_service#{index}#::riak_hostname
|
||||||
backends:port:
|
backends:port:
|
||||||
- riak_service{{index}}::riak_port_pb
|
- riak_service#{index}#::riak_port_pb
|
||||||
|
|
||||||
events:
|
events:
|
||||||
- type: depends_on
|
- type: depends_on
|
||||||
parent:
|
parent:
|
||||||
with_tags: 'resource=hosts_file & location={{node}}'
|
with_tags: 'resource=hosts_file & location=#{node}#'
|
||||||
action: run
|
action: run
|
||||||
state: success
|
state: success
|
||||||
depend_action: riak_service{{index}}.run
|
child_action: riak_service#{index}#.run
|
||||||
|
|
||||||
{% if join_to %}
|
#% if join_to %#
|
||||||
- type: react_on
|
- type: react_on
|
||||||
parent_action: riak_service{{index}}.run
|
parent_action: riak_service#{index}#.run
|
||||||
state: success
|
state: success
|
||||||
depend_action: riak_service{{index}}.join
|
child_action: riak_service#{index}#.join
|
||||||
|
|
||||||
- type: react_on
|
- type: react_on
|
||||||
parent_action: riak_service{{index}}.leave
|
parent_action: riak_service#{index}#.leave
|
||||||
state: success
|
state: success
|
||||||
depend_action: riak_service{{index}}.join
|
child_action: riak_service#{index}#.join
|
||||||
|
|
||||||
- type: react_on
|
- type: react_on
|
||||||
parent_action: riak_service{{index}}.join
|
parent_action: riak_service#{index}#.join
|
||||||
state: success
|
state: success
|
||||||
depend_action: {{join_to}}.commit
|
child_action: #{join_to}#.commit
|
||||||
{% endif %}
|
#% endif %#
|
||||||
|
@ -17,7 +17,7 @@ import sys
|
|||||||
from solar.core import resource
|
from solar.core import resource
|
||||||
from solar.core import signals
|
from solar.core import signals
|
||||||
from solar.core import validation
|
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 import errors
|
||||||
|
|
||||||
from solar.dblayer.model import ModelMeta
|
from solar.dblayer.model import ModelMeta
|
||||||
@ -31,7 +31,7 @@ from solar.dblayer.solar_models import Resource
|
|||||||
def setup_riak():
|
def setup_riak():
|
||||||
|
|
||||||
ModelMeta.remove_all()
|
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')]
|
nodes = [x for x in resources if x.name.startswith('node')]
|
||||||
hosts_services = [x for x in resources if x.name.startswith('hosts_file')]
|
hosts_services = [x for x in resources if x.name.startswith('hosts_file')]
|
||||||
node1, node2, node3 = nodes
|
node1, node2, node3 = nodes
|
||||||
@ -41,7 +41,7 @@ def setup_riak():
|
|||||||
ips = '10.0.0.%d'
|
ips = '10.0.0.%d'
|
||||||
for i in xrange(3):
|
for i in xrange(3):
|
||||||
num = i + 1
|
num = i + 1
|
||||||
r = vr.create('riak_service%d' % num,
|
r = cr.create('riak_service%d' % num,
|
||||||
'resources/riak_node',
|
'resources/riak_node',
|
||||||
{'riak_self_name': 'riak%d' % num,
|
{'riak_self_name': 'riak%d' % num,
|
||||||
'storage_backend': 'leveldb',
|
'storage_backend': 'leveldb',
|
||||||
@ -113,18 +113,18 @@ def setup_haproxies():
|
|||||||
hpsc_pb = []
|
hpsc_pb = []
|
||||||
for i in xrange(3):
|
for i in xrange(3):
|
||||||
num = i + 1
|
num = i + 1
|
||||||
hps.append(vr.create('haproxy_service%d' % num,
|
hps.append(cr.create('haproxy_service%d' % num,
|
||||||
'resources/haproxy_service',
|
'resources/haproxy_service',
|
||||||
{})[0])
|
{})[0])
|
||||||
hpc.append(vr.create('haproxy_config%d' % num,
|
hpc.append(cr.create('haproxy_config%d' % num,
|
||||||
'resources/haproxy_config',
|
'resources/haproxy_config',
|
||||||
{})[0])
|
{})[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',
|
'resources/haproxy_service_config',
|
||||||
{'listen_port': 8098,
|
{'listen_port': 8098,
|
||||||
'protocol': 'http',
|
'protocol': 'http',
|
||||||
'name': 'riak_haproxy_http%d' % num})[0])
|
'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',
|
'resources/haproxy_service_config',
|
||||||
{'listen_port': 8087,
|
{'listen_port': 8087,
|
||||||
'protocol': 'tcp',
|
'protocol': 'tcp',
|
||||||
@ -208,12 +208,12 @@ def setup_haproxies():
|
|||||||
@click.command()
|
@click.command()
|
||||||
@click.argument('i', type=int, required=True)
|
@click.argument('i', type=int, required=True)
|
||||||
def add_solar_agent(i):
|
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_user': 'vagrant',
|
||||||
'solar_agent_password': 'password'})[0]
|
'solar_agent_password': 'password'})[0]
|
||||||
transports = resource.load('transports%s' % i)
|
transports = resource.load('transports%s' % i)
|
||||||
ssh_transport = resource.load('ssh_transport%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
|
# install solar_agent with ssh
|
||||||
signals.connect(transports_for_solar_agent, solar_agent_transport, {})
|
signals.connect(transports_for_solar_agent, solar_agent_transport, {})
|
||||||
|
@ -8,7 +8,7 @@ import sys
|
|||||||
from solar.core import resource
|
from solar.core import resource
|
||||||
from solar.core import signals
|
from solar.core import signals
|
||||||
from solar.core import validation
|
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 import errors
|
||||||
|
|
||||||
from solar.interfaces.db import get_db
|
from solar.interfaces.db import get_db
|
||||||
@ -28,7 +28,7 @@ def setup_riak(nodes_num=None, hosts_mapping=False):
|
|||||||
nodes_num = NODES
|
nodes_num = NODES
|
||||||
db.clear()
|
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')]
|
nodes = [x for x in resources if x.name.startswith('node')]
|
||||||
hosts_services = [x for x in resources if x.name.startswith('hosts_file')]
|
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'
|
ips = '10.0.0.%d'
|
||||||
for i in xrange(nodes_num):
|
for i in xrange(nodes_num):
|
||||||
num = i + 1
|
num = i + 1
|
||||||
r = vr.create('riak_service%d' % num,
|
r = cr.create('riak_service%d' % num,
|
||||||
'resources/riak_node',
|
'resources/riak_node',
|
||||||
{'riak_self_name': 'riak%d' % num,
|
{'riak_self_name': 'riak%d' % num,
|
||||||
'riak_hostname': 'riak_server%d.solar' % num,
|
'riak_hostname': 'riak_server%d.solar' % num,
|
||||||
|
@ -4,26 +4,26 @@ import time
|
|||||||
|
|
||||||
from solar.core import resource
|
from solar.core import resource
|
||||||
from solar.core import signals
|
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
|
from solar.dblayer.model import ModelMeta
|
||||||
|
|
||||||
|
|
||||||
def run():
|
def run():
|
||||||
ModelMeta.remove_all()
|
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',
|
'ip': '10.0.0.3',
|
||||||
'node_id': 'node1',
|
'node_id': 'node1',
|
||||||
})[0]
|
})[0]
|
||||||
|
|
||||||
transports = vr.create('transports_node1', 'resources/transports')[0]
|
transports = cr.create('transports_node1', 'resources/transports')[0]
|
||||||
transports_for_solar_agent = vr.create('transports_for_solar_agent', '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_key': '/vagrant/.vagrant/machines/solar-dev1/virtualbox/private_key',
|
||||||
'ssh_user': 'vagrant'})[0]
|
'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_user': 'vagrant',
|
||||||
'solar_agent_password': 'password'})[0]
|
'solar_agent_password': 'password'})[0]
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ def run():
|
|||||||
'name': 'transports:name'})
|
'name': 'transports:name'})
|
||||||
|
|
||||||
|
|
||||||
hosts = vr.create('hosts_file', 'resources/hosts_file', {})[0]
|
hosts = cr.create('hosts_file', 'resources/hosts_file', {})[0]
|
||||||
node.connect(hosts, {
|
node.connect(hosts, {
|
||||||
'ip': 'hosts:ip',
|
'ip': 'hosts:ip',
|
||||||
'name': 'hosts:name'
|
'name': 'hosts:name'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import time
|
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 import errors
|
||||||
from solar.dblayer.model import ModelMeta
|
from solar.dblayer.model import ModelMeta
|
||||||
|
|
||||||
@ -8,14 +8,14 @@ from solar.dblayer.model import ModelMeta
|
|||||||
def run():
|
def run():
|
||||||
ModelMeta.remove_all()
|
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',
|
'ip': '10.0.0.3',
|
||||||
'node_id': 'node1',
|
'node_id': 'node1',
|
||||||
})[0]
|
})[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_key': '/vagrant/.vagrant/machines/solar-dev1/virtualbox/private_key',
|
||||||
'ssh_user': 'vagrant'})[0]
|
'ssh_user': 'vagrant'})[0]
|
||||||
|
|
||||||
@ -27,17 +27,17 @@ def run():
|
|||||||
'ssh_port': 'transports:port',
|
'ssh_port': 'transports:port',
|
||||||
'name': 'transports:name'})
|
'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)
|
# 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',
|
'resources/transport_torrent',
|
||||||
{'trackers': ['udp://open.demonii.com:1337',
|
{'trackers': ['udp://open.demonii.com:1337',
|
||||||
'udp://tracker.openbittorrent.com:80']})[0]
|
'udp://tracker.openbittorrent.com:80']})[0]
|
||||||
# you could use any trackers as you want
|
# 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', 'resources/transports')[0]
|
||||||
|
|
||||||
transports_for_torrent.connect(torrent_transport, {})
|
transports_for_torrent.connect(torrent_transport, {})
|
||||||
@ -48,7 +48,7 @@ def run():
|
|||||||
'name': 'transports:name'},
|
'name': 'transports:name'},
|
||||||
events={})
|
events={})
|
||||||
|
|
||||||
transports_for_hosts = vr.create(
|
transports_for_hosts = cr.create(
|
||||||
'transports_for_hosts', 'resources/transports')[0]
|
'transports_for_hosts', 'resources/transports')[0]
|
||||||
|
|
||||||
torrent_transport.connect(transports_for_hosts, {'trackers': 'transports:trackers',
|
torrent_transport.connect(transports_for_hosts, {'trackers': 'transports:trackers',
|
||||||
|
@ -3,7 +3,7 @@ id: primary_controller
|
|||||||
resources:
|
resources:
|
||||||
- id: mariadb_service
|
- id: mariadb_service
|
||||||
from: resources/mariadb_service
|
from: resources/mariadb_service
|
||||||
values:
|
input:
|
||||||
port: 3306
|
port: 3306
|
||||||
root_password: mariadb
|
root_password: mariadb
|
||||||
image: mariadb
|
image: mariadb
|
||||||
@ -13,14 +13,14 @@ resources:
|
|||||||
|
|
||||||
- id: rabbitmq_service
|
- id: rabbitmq_service
|
||||||
from: resources/rabbitmq_service
|
from: resources/rabbitmq_service
|
||||||
values:
|
input:
|
||||||
ip: '#{ip}#'
|
ip: '#{ip}#'
|
||||||
ssh_user: '#{ssh_user}#'
|
ssh_user: '#{ssh_user}#'
|
||||||
ssh_key: '#{ssh_key}#'
|
ssh_key: '#{ssh_key}#'
|
||||||
|
|
||||||
- id: keystone_base
|
- id: keystone_base
|
||||||
from: templates/keystone_base
|
from: templates/keystone_base
|
||||||
values:
|
input:
|
||||||
login_user: root
|
login_user: root
|
||||||
login_password: 'mariadb_service::root_password'
|
login_password: 'mariadb_service::root_password'
|
||||||
login_port: 'mariadb_service::port'
|
login_port: 'mariadb_service::port'
|
||||||
@ -34,7 +34,7 @@ resources:
|
|||||||
|
|
||||||
- id: keystone_api_1
|
- id: keystone_api_1
|
||||||
from: templates/keystone_api
|
from: templates/keystone_api
|
||||||
values:
|
input:
|
||||||
idx: 1
|
idx: 1
|
||||||
db_password: 'keystone_db_user::user_password'
|
db_password: 'keystone_db_user::user_password'
|
||||||
db_user: 'keystone_db_user::user_name'
|
db_user: 'keystone_db_user::user_name'
|
||||||
@ -50,7 +50,7 @@ resources:
|
|||||||
|
|
||||||
- id: openstack_base
|
- id: openstack_base
|
||||||
from: templates/openstack_base
|
from: templates/openstack_base
|
||||||
values:
|
input:
|
||||||
ip: '#{ip}#'
|
ip: '#{ip}#'
|
||||||
ssh_user: '#{ssh_user}#'
|
ssh_user: '#{ssh_user}#'
|
||||||
ssh_key: '#{ssh_key}#'
|
ssh_key: '#{ssh_key}#'
|
||||||
@ -61,7 +61,7 @@ resources:
|
|||||||
|
|
||||||
- id: openrc_file
|
- id: openrc_file
|
||||||
from: resources/openrc_file
|
from: resources/openrc_file
|
||||||
values:
|
input:
|
||||||
keystone_host: 'keystone_service_1::ip'
|
keystone_host: 'keystone_service_1::ip'
|
||||||
keystone_port: 'keystone_service_1::admin_port'
|
keystone_port: 'keystone_service_1::admin_port'
|
||||||
tenant: 'admin_user::tenant_name'
|
tenant: 'admin_user::tenant_name'
|
||||||
|
@ -3,7 +3,7 @@ id: glance_#{idx}#
|
|||||||
resources:
|
resources:
|
||||||
- id: glance_base_#{ idx }#
|
- id: glance_base_#{ idx }#
|
||||||
from: templates/glance_db
|
from: templates/glance_db
|
||||||
values:
|
input:
|
||||||
idx: '#{ idx }#'
|
idx: '#{ idx }#'
|
||||||
|
|
||||||
db_name: '#{ db_name }#'
|
db_name: '#{ db_name }#'
|
||||||
|
@ -3,7 +3,7 @@ id: glance_base
|
|||||||
resources:
|
resources:
|
||||||
- id: glance_db
|
- id: glance_db
|
||||||
from: resources/mariadb_db
|
from: resources/mariadb_db
|
||||||
values:
|
input:
|
||||||
db_name: #{db_name}#
|
db_name: #{db_name}#
|
||||||
login_user: '#{login_user}#'
|
login_user: '#{login_user}#'
|
||||||
login_password: '#{login_password}#'
|
login_password: '#{login_password}#'
|
||||||
@ -14,7 +14,7 @@ resources:
|
|||||||
|
|
||||||
- id: glance_db_user
|
- id: glance_db_user
|
||||||
from: resources/mariadb_user
|
from: resources/mariadb_user
|
||||||
values:
|
input:
|
||||||
user_password: '#{user_password}#'
|
user_password: '#{user_password}#'
|
||||||
user_name: '#{user_name}#'
|
user_name: '#{user_name}#'
|
||||||
db_name: 'keystone_db::db_name'
|
db_name: 'keystone_db::db_name'
|
||||||
|
@ -3,7 +3,7 @@ id: glance_db_#{ idx }#
|
|||||||
resources:
|
resources:
|
||||||
- id: glance_db_db_#{ idx }#
|
- id: glance_db_db_#{ idx }#
|
||||||
from: resources/mariadb_db
|
from: resources/mariadb_db
|
||||||
values:
|
input:
|
||||||
db_name: '#{ db_name }#'
|
db_name: '#{ db_name }#'
|
||||||
login_user: '#{ db_login_user }#'
|
login_user: '#{ db_login_user }#'
|
||||||
login_password: '#{ db_login_password }#'
|
login_password: '#{ db_login_password }#'
|
||||||
@ -15,7 +15,7 @@ resources:
|
|||||||
|
|
||||||
- id: glance_db_user
|
- id: glance_db_user
|
||||||
from: resources/mariadb_user
|
from: resources/mariadb_user
|
||||||
values:
|
input:
|
||||||
user_password: '#{ db_password }#'
|
user_password: '#{ db_password }#'
|
||||||
user_name: '#{ db_user }#'
|
user_name: '#{ db_user }#'
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ id: glance_register_#{idx}#
|
|||||||
resources:
|
resources:
|
||||||
- id: glance_config_#{idx}#
|
- id: glance_config_#{idx}#
|
||||||
from: resources/glance_config
|
from: resources/glance_config
|
||||||
values:
|
input:
|
||||||
keystone_admin_port: '#{keystone_admin_port}#'
|
keystone_admin_port: '#{keystone_admin_port}#'
|
||||||
keystone_ip: '#{keystone_ip}#'
|
keystone_ip: '#{keystone_ip}#'
|
||||||
mysql_password: '#{mysql_password}#'
|
mysql_password: '#{mysql_password}#'
|
||||||
@ -17,7 +17,7 @@ resources:
|
|||||||
|
|
||||||
- id: glance_registry_#{idx}#
|
- id: glance_registry_#{idx}#
|
||||||
from: resources/glance_registry_service
|
from: resources/glance_registry_service
|
||||||
values:
|
input:
|
||||||
ip: 'keystone_config_#{idx}#::ip'
|
ip: 'keystone_config_#{idx}#::ip'
|
||||||
ssh_user: 'keystone_config_#{idx}#::ssh_user'
|
ssh_user: 'keystone_config_#{idx}#::ssh_user'
|
||||||
ssh_key: 'keystone_config_#{idx}#::ssh_key'
|
ssh_key: 'keystone_config_#{idx}#::ssh_key'
|
||||||
|
@ -4,7 +4,7 @@ resources:
|
|||||||
- id: haproxy_config#{index}#
|
- id: haproxy_config#{index}#
|
||||||
from: resources/haproxy_config
|
from: resources/haproxy_config
|
||||||
location: #{node}#
|
location: #{node}#
|
||||||
values:
|
input:
|
||||||
ip: '#{node}#::ip'
|
ip: '#{node}#::ip'
|
||||||
config:protocol:
|
config:protocol:
|
||||||
#% for config in service_configs %#
|
#% for config in service_configs %#
|
||||||
@ -26,21 +26,21 @@ resources:
|
|||||||
- id: haproxy_service#{index}#
|
- id: haproxy_service#{index}#
|
||||||
location: #{node}#
|
location: #{node}#
|
||||||
from: resources/haproxy_service
|
from: resources/haproxy_service
|
||||||
values:
|
input:
|
||||||
ip: '#{node}#::ip'
|
ip: '#{node}#::ip'
|
||||||
|
|
||||||
events:
|
events:
|
||||||
- type: depends_on
|
- type: depends_on
|
||||||
parent_action: 'haproxy_service#{index}#.run'
|
parent_action: 'haproxy_service#{index}#.run'
|
||||||
state: 'success'
|
state: 'success'
|
||||||
depend_action: 'haproxy_config#{index}#.run'
|
child_action: 'haproxy_config#{index}#.run'
|
||||||
|
|
||||||
- type: react_on
|
- type: react_on
|
||||||
parent_action: 'haproxy_config#{index}#.run'
|
parent_action: 'haproxy_config#{index}#.run'
|
||||||
state: 'success'
|
state: 'success'
|
||||||
depend_action: 'haproxy_service#{index}#.apply_config'
|
child_action: 'haproxy_service#{index}#.apply_config'
|
||||||
|
|
||||||
- type: react_on
|
- type: react_on
|
||||||
parent_action: 'haproxy_config#{index}#.update'
|
parent_action: 'haproxy_config#{index}#.update'
|
||||||
state: 'success'
|
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:
|
resources:
|
||||||
- id: keystone_service_#{idx}#
|
- id: keystone_service_#{idx}#
|
||||||
from: resources/keystone_puppet
|
from: resources/keystone_puppet
|
||||||
values:
|
input:
|
||||||
admin_token: '#{admin_token}#'
|
admin_token: '#{admin_token}#'
|
||||||
db_host: '#{db_host}#'
|
db_host: '#{db_host}#'
|
||||||
db_name: '#{db_name}#'
|
db_name: '#{db_name}#'
|
||||||
|
@ -3,7 +3,7 @@ id: keystone_base
|
|||||||
resources:
|
resources:
|
||||||
- id: keystone_db
|
- id: keystone_db
|
||||||
from: resources/mariadb_db
|
from: resources/mariadb_db
|
||||||
values:
|
input:
|
||||||
db_name: '#{db_name}#'
|
db_name: '#{db_name}#'
|
||||||
db_host: '#{db_host}#'
|
db_host: '#{db_host}#'
|
||||||
login_user: '#{login_user}#'
|
login_user: '#{login_user}#'
|
||||||
@ -15,7 +15,7 @@ resources:
|
|||||||
|
|
||||||
- id: keystone_db_user
|
- id: keystone_db_user
|
||||||
from: resources/mariadb_user
|
from: resources/mariadb_user
|
||||||
values:
|
input:
|
||||||
user_password: '#{user_password}#'
|
user_password: '#{user_password}#'
|
||||||
user_name: '#{user_name}#'
|
user_name: '#{user_name}#'
|
||||||
db_name: 'keystone_db::db_name'
|
db_name: 'keystone_db::db_name'
|
||||||
|
@ -3,7 +3,7 @@ resources:
|
|||||||
- id: mos_holdback_#{index}#
|
- id: mos_holdback_#{index}#
|
||||||
from: resources/apt_repo
|
from: resources/apt_repo
|
||||||
location: #{node}#
|
location: #{node}#
|
||||||
values:
|
input:
|
||||||
name: mos-holdback
|
name: mos-holdback
|
||||||
package: '*'
|
package: '*'
|
||||||
repo: deb http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0/ mos8.0-holdback main restricted
|
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}#
|
- id: mos_security_#{index}#
|
||||||
from: resources/apt_repo
|
from: resources/apt_repo
|
||||||
location: #{node}#
|
location: #{node}#
|
||||||
values:
|
input:
|
||||||
name: mos
|
name: mos
|
||||||
package: '*'
|
package: '*'
|
||||||
repo: deb http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0/ mos8.0-security main restricted
|
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}#
|
- id: mos_updates_#{index}#
|
||||||
from: resources/apt_repo
|
from: resources/apt_repo
|
||||||
location: #{node}#
|
location: #{node}#
|
||||||
values:
|
input:
|
||||||
name: mos_update
|
name: mos_update
|
||||||
package: '*'
|
package: '*'
|
||||||
repo: deb http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0/ mos8.0-updates main restricted
|
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}#
|
- id: managed_apt_#{index}#
|
||||||
from: resources/managed_apt
|
from: resources/managed_apt
|
||||||
location: #{node}#
|
location: #{node}#
|
||||||
values:
|
input:
|
||||||
names:
|
names:
|
||||||
- mos_holdback_#{index}#::name
|
- mos_holdback_#{index}#::name
|
||||||
- mos_security_#{index}#::name
|
- mos_security_#{index}#::name
|
||||||
|
@ -4,17 +4,17 @@ resources:
|
|||||||
#% set j = i +1 %#
|
#% set j = i +1 %#
|
||||||
- id: ssh_transport#{j}#
|
- id: ssh_transport#{j}#
|
||||||
from: resources/transport_ssh
|
from: resources/transport_ssh
|
||||||
values:
|
input:
|
||||||
ssh_user: 'vagrant'
|
ssh_user: 'vagrant'
|
||||||
ssh_key: '/vagrant/.vagrant/machines/solar-dev#{j}#/virtualbox/private_key'
|
ssh_key: '/vagrant/.vagrant/machines/solar-dev#{j}#/virtualbox/private_key'
|
||||||
- id: rsync#{j}#
|
- id: rsync#{j}#
|
||||||
from: resources/transport_rsync
|
from: resources/transport_rsync
|
||||||
values:
|
input:
|
||||||
user: vagrant
|
user: vagrant
|
||||||
key: /vagrant/.vagrant/machines/solar-dev#{j}#/virtualbox/private_key
|
key: /vagrant/.vagrant/machines/solar-dev#{j}#/virtualbox/private_key
|
||||||
- id: transports#{j}#
|
- id: transports#{j}#
|
||||||
from: resources/transports
|
from: resources/transports
|
||||||
values:
|
input:
|
||||||
transports:
|
transports:
|
||||||
- key: ssh_transport#{j}#::ssh_key
|
- key: ssh_transport#{j}#::ssh_key
|
||||||
user: ssh_transport#{j}#::ssh_user
|
user: ssh_transport#{j}#::ssh_user
|
||||||
@ -26,7 +26,7 @@ resources:
|
|||||||
port: rsync#{j}#::port
|
port: rsync#{j}#::port
|
||||||
- id: node#{j}#
|
- id: node#{j}#
|
||||||
from: resources/ro_node
|
from: resources/ro_node
|
||||||
values:
|
input:
|
||||||
name: node#{j}#
|
name: node#{j}#
|
||||||
ip: '10.0.0.#{i + 3}#'
|
ip: '10.0.0.#{i + 3}#'
|
||||||
transports_id: transports#{j}#::transports_id
|
transports_id: transports#{j}#::transports_id
|
||||||
|
@ -6,7 +6,7 @@ resources:
|
|||||||
#% for i in range(count|int) %#
|
#% for i in range(count|int) %#
|
||||||
- id: node#{i}#_sdn
|
- id: node#{i}#_sdn
|
||||||
from: resources/node_network_puppet
|
from: resources/node_network_puppet
|
||||||
values:
|
input:
|
||||||
use_ovs: true
|
use_ovs: true
|
||||||
network_scheme:
|
network_scheme:
|
||||||
version: '1.1'
|
version: '1.1'
|
||||||
|
@ -3,17 +3,17 @@ resources:
|
|||||||
#% for i in range(count|int) %#
|
#% for i in range(count|int) %#
|
||||||
- id: ssh_transport#{i}#
|
- id: ssh_transport#{i}#
|
||||||
from: resources/transport_ssh
|
from: resources/transport_ssh
|
||||||
values:
|
input:
|
||||||
ssh_user: 'vagrant'
|
ssh_user: 'vagrant'
|
||||||
ssh_key: '/vagrant/.vagrant/machines/solar-dev#{i + 1}#/virtualbox/private_key'
|
ssh_key: '/vagrant/.vagrant/machines/solar-dev#{i + 1}#/virtualbox/private_key'
|
||||||
- id: rsync#{i}#
|
- id: rsync#{i}#
|
||||||
from: resources/transport_rsync
|
from: resources/transport_rsync
|
||||||
values:
|
input:
|
||||||
user: vagrant
|
user: vagrant
|
||||||
key: /vagrant/.vagrant/machines/solar-dev#{i + 1}#/virtualbox/private_key
|
key: /vagrant/.vagrant/machines/solar-dev#{i + 1}#/virtualbox/private_key
|
||||||
- id: transports#{i}#
|
- id: transports#{i}#
|
||||||
from: resources/transports
|
from: resources/transports
|
||||||
values:
|
input:
|
||||||
transports:
|
transports:
|
||||||
- key: ssh_transport#{i}#::ssh_key
|
- key: ssh_transport#{i}#::ssh_key
|
||||||
user: ssh_transport#{i}#::ssh_user
|
user: ssh_transport#{i}#::ssh_user
|
||||||
@ -25,7 +25,7 @@ resources:
|
|||||||
port: rsync#{i}#::port
|
port: rsync#{i}#::port
|
||||||
- id: node#{i}#
|
- id: node#{i}#
|
||||||
from: resources/ro_node
|
from: resources/ro_node
|
||||||
values:
|
input:
|
||||||
ip: '10.0.0.#{i + 3}#'
|
ip: '10.0.0.#{i + 3}#'
|
||||||
transports_id: transports#{i}#::transports_id
|
transports_id: transports#{i}#::transports_id
|
||||||
name: node#{i}#
|
name: node#{i}#
|
||||||
|
@ -4,19 +4,19 @@ resources:
|
|||||||
#% set id = node.id | replace(':', '_') %#
|
#% set id = node.id | replace(':', '_') %#
|
||||||
- id: ssh_transport#{ id }#
|
- id: ssh_transport#{ id }#
|
||||||
from: resources/transport_ssh
|
from: resources/transport_ssh
|
||||||
values:
|
input:
|
||||||
ssh_user: 'root'
|
ssh_user: 'root'
|
||||||
ssh_key: '/vagrant/tmp/keys/ssh_private'
|
ssh_key: '/vagrant/tmp/keys/ssh_private'
|
||||||
- id: transports#{id}#
|
- id: transports#{id}#
|
||||||
from: resources/transports
|
from: resources/transports
|
||||||
values:
|
input:
|
||||||
transports:key: ssh_transport#{id}#::ssh_key
|
transports:key: ssh_transport#{id}#::ssh_key
|
||||||
transports:user: ssh_transport#{id}#::ssh_user
|
transports:user: ssh_transport#{id}#::ssh_user
|
||||||
transports:port: ssh_transport#{id}#::ssh_port
|
transports:port: ssh_transport#{id}#::ssh_port
|
||||||
transports:name: ssh_transport#{id}#::name
|
transports:name: ssh_transport#{id}#::name
|
||||||
- id: node_#{id}#
|
- id: node_#{id}#
|
||||||
from: resources/not_provisioned_node
|
from: resources/not_provisioned_node
|
||||||
values:
|
input:
|
||||||
ip: #{node.ip}#
|
ip: #{node.ip}#
|
||||||
transports_id: transports#{id}#::transports_id
|
transports_id: transports#{id}#::transports_id
|
||||||
name: node_#{id}#
|
name: node_#{id}#
|
||||||
@ -25,19 +25,19 @@ resources:
|
|||||||
|
|
||||||
- id: ssh_transport_master
|
- id: ssh_transport_master
|
||||||
from: resources/transport_ssh
|
from: resources/transport_ssh
|
||||||
values:
|
input:
|
||||||
ssh_user: 'vagrant'
|
ssh_user: 'vagrant'
|
||||||
ssh_key: '/vagrant/.vagrant/machines/solar-dev/virtualbox/private_key'
|
ssh_key: '/vagrant/.vagrant/machines/solar-dev/virtualbox/private_key'
|
||||||
- id: transports_master
|
- id: transports_master
|
||||||
from: resources/transports
|
from: resources/transports
|
||||||
values:
|
input:
|
||||||
transports:key: ssh_transport_master::ssh_key
|
transports:key: ssh_transport_master::ssh_key
|
||||||
transports:user: ssh_transport_master::ssh_user
|
transports:user: ssh_transport_master::ssh_user
|
||||||
transports:port: ssh_transport_master::ssh_port
|
transports:port: ssh_transport_master::ssh_port
|
||||||
transports:name: ssh_transport_master::name
|
transports:name: ssh_transport_master::name
|
||||||
- id: node_master
|
- id: node_master
|
||||||
from: resources/ro_node
|
from: resources/ro_node
|
||||||
values:
|
input:
|
||||||
name: node_master
|
name: node_master
|
||||||
ip: '10.0.2.15'
|
ip: '10.0.2.15'
|
||||||
transports_id: transports_master::transports_id
|
transports_id: transports_master::transports_id
|
||||||
|
@ -3,7 +3,7 @@ id: openstack_base
|
|||||||
resources:
|
resources:
|
||||||
- id: admin_tenant
|
- id: admin_tenant
|
||||||
from: resources/keystone_tenant
|
from: resources/keystone_tenant
|
||||||
values:
|
input:
|
||||||
tenant_name: admin
|
tenant_name: admin
|
||||||
keystone_port: '#{keystone_admin_port}#'
|
keystone_port: '#{keystone_admin_port}#'
|
||||||
keystone_host: '#{keystone_ip}#'
|
keystone_host: '#{keystone_ip}#'
|
||||||
@ -14,7 +14,7 @@ resources:
|
|||||||
|
|
||||||
- id: admin_user
|
- id: admin_user
|
||||||
from: resources/keystone_user
|
from: resources/keystone_user
|
||||||
values:
|
input:
|
||||||
user_name: 'admin'
|
user_name: 'admin'
|
||||||
user_password: 'admin'
|
user_password: 'admin'
|
||||||
tenant_name: 'admin_tenant::tenant_name'
|
tenant_name: 'admin_tenant::tenant_name'
|
||||||
@ -27,7 +27,7 @@ resources:
|
|||||||
|
|
||||||
- id: admin_role
|
- id: admin_role
|
||||||
from: resources/keystone_role
|
from: resources/keystone_role
|
||||||
values:
|
input:
|
||||||
role_name: 'admin'
|
role_name: 'admin'
|
||||||
user_name: 'admin_user::user_name'
|
user_name: 'admin_user::user_name'
|
||||||
tenant_name: 'admin_user::tenant_name'
|
tenant_name: 'admin_user::tenant_name'
|
||||||
@ -40,7 +40,7 @@ resources:
|
|||||||
|
|
||||||
- id: keystone_service_endpoint
|
- id: keystone_service_endpoint
|
||||||
from: resources/keystone_service_endpoint
|
from: resources/keystone_service_endpoint
|
||||||
values:
|
input:
|
||||||
#% raw %#
|
#% raw %#
|
||||||
adminurl: 'http://#{admin_ip}#:#{admin_port}#/v2.0'
|
adminurl: 'http://#{admin_ip}#:#{admin_port}#/v2.0'
|
||||||
internalurl: 'http://#{internal_ip}#:#{internal_port}#/v2.0'
|
internalurl: 'http://#{internal_ip}#:#{internal_port}#/v2.0'
|
||||||
@ -64,7 +64,7 @@ resources:
|
|||||||
|
|
||||||
- id: service_tenant
|
- id: service_tenant
|
||||||
from: resources/keystone_tenant
|
from: resources/keystone_tenant
|
||||||
values:
|
input:
|
||||||
tenant_name: services
|
tenant_name: services
|
||||||
keystone_port: '#{keystone_admin_port}#'
|
keystone_port: '#{keystone_admin_port}#'
|
||||||
keystone_host: '#{keystone_ip}#'
|
keystone_host: '#{keystone_ip}#'
|
||||||
|
@ -2,7 +2,7 @@ id: seed_node
|
|||||||
resources:
|
resources:
|
||||||
- id: seed_node
|
- id: seed_node
|
||||||
from: resources/ro_node
|
from: resources/ro_node
|
||||||
values:
|
input:
|
||||||
ip: '10.0.0.2'
|
ip: '10.0.0.2'
|
||||||
ssh_key: '/vagrant/.vagrant/machines/solar-dev/virtualbox/private_key'
|
ssh_key: '/vagrant/.vagrant/machines/solar-dev/virtualbox/private_key'
|
||||||
ssh_user: 'vagrant'
|
ssh_user: 'vagrant'
|
||||||
|
@ -3,6 +3,6 @@ resources:
|
|||||||
- id: sources#{index}#
|
- id: sources#{index}#
|
||||||
from: resources/sources
|
from: resources/sources
|
||||||
location: #{node}#
|
location: #{node}#
|
||||||
values:
|
input:
|
||||||
sources:
|
sources:
|
||||||
- {src: /tmp/sources_test, dst: /tmp/sources_test}
|
- {src: /tmp/sources_test, dst: /tmp/sources_test}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user