Add tests for tasks ensurability

Change-Id: I102ff02542ede7ebf7de86b22aa8964b50a9eb60
Implements: blueprint test-granular-task-ensurability
This commit is contained in:
Dmitriy Kruglov 2016-04-25 09:17:18 +00:00
parent c9e6490bf2
commit d82fee7e9e
30 changed files with 3600 additions and 65 deletions

View File

@ -361,6 +361,11 @@ Test task idempotency
.. automodule:: fuelweb_test.tests.tests_lcm.test_idempotency .. automodule:: fuelweb_test.tests.tests_lcm.test_idempotency
:members: :members:
Test task ensurability
----------------------
.. automodule:: fuelweb_test.tests.tests_lcm.test_ensurability
:members:
Gating tests Gating tests
============ ============

View File

@ -2777,6 +2777,50 @@ class FuelWebClient29(object):
self.assert_task_success(latest_task, interval=interval, self.assert_task_success(latest_task, interval=interval,
timeout=timeout) timeout=timeout)
def deploy_cluster_changes_wait(
self, cluster_id, data=None,
timeout=help_data.DEPLOYMENT_TIMEOUT,
interval=30):
"""Redeploy cluster to apply changes in its settings
:param cluster_id: int, env ID to apply changes for
:param data: dict, changed env settings
:param timeout: int, time (in seconds) to wait for deployment end
:param interval: int, time (in seconds) between deployment
status queries
:return:
"""
logger.info('Re-deploy cluster {} to apply the changed '
'settings'.format(cluster_id))
if data is None:
data = {}
task = self.client.redeploy_cluster_changes(cluster_id, data)
self.assert_task_success(task, interval=interval, timeout=timeout)
def execute_task_on_node(self, task_name, node_id,
cluster_id, force_exc=False):
"""Execute deployment task against the corresponding node
:param task_name: str, name of a task to execute
:param node_id: int, node ID to execute task on
:param cluster_id: int, cluster ID
:param force_exc: bool, indication whether exceptions on task
execution are ignored
:return: None
"""
try:
logger.info("Trying to execute {!r} task on node {!r}"
.format(task_name, node_id))
task = self.client.put_deployment_tasks_for_cluster(
cluster_id=cluster_id,
data=[task_name],
node_id=node_id)
self.assert_task_success(task, timeout=30 * 60)
except (AssertionError, TimeoutError):
logger.exception("Failed to run task {!r}".format(task_name))
if force_exc:
raise
class FuelWebClient30(FuelWebClient29): class FuelWebClient30(FuelWebClient29):
"""FuelWebClient that works with fuel-devops 3.0 """FuelWebClient that works with fuel-devops 3.0

View File

@ -675,7 +675,7 @@ class NailgunClient(object):
:param node_id: an integer number of node id. :param node_id: an integer number of node id.
:return: a decoded JSON response. :return: a decoded JSON response.
""" """
url = '/api/v1/nodes/{}/attributes/'.format(node_id) url = '/api/nodes/{}/attributes/'.format(node_id)
return self.client.put(url, data=attributes) return self.client.put(url, data=attributes)
@logwrap @logwrap
@ -686,7 +686,7 @@ class NailgunClient(object):
:param node_id: an integer number of node id. :param node_id: an integer number of node id.
:return: a decoded JSON response. :return: a decoded JSON response.
""" """
url = '/api/v1/nodes/{}/attributes/'.format(node_id) url = '/api/nodes/{}/attributes/'.format(node_id)
return self.client.get(url) return self.client.get(url)
@logwrap @logwrap
@ -701,3 +701,18 @@ class NailgunClient(object):
url = '/api/transactions/{task_id}/deployment_history'.format( url = '/api/transactions/{task_id}/deployment_history'.format(
task_id=task_id) task_id=task_id)
return self.client.get(url) return self.client.get(url)
@logwrap
@json_parse
def redeploy_cluster_changes(self, cluster_id, data=None):
"""Deploy the changes of cluster settings
:param cluster_id: int, target cluster ID
:param data: dict, updated cluster attributes (if empty, the already
uploaded attributes will be (re)applied)
:return: a decoded JSON response
"""
if data is None:
data = {}
return self.client.put(
"/api/clusters/{}/changes/redeploy".format(cluster_id), data)

View File

@ -15,7 +15,6 @@
import fileinput import fileinput
import os import os
from devops.helpers.helpers import TimeoutError
from proboscis import asserts from proboscis import asserts
from proboscis import test from proboscis import test
import yaml import yaml
@ -45,13 +44,18 @@ TASKS_BLACKLIST = [
"reboot_provisioned_nodes", "reboot_provisioned_nodes",
"hiera", "hiera",
"configure_default_route", "configure_default_route",
"netconfig"] "netconfig",
"upload_provision_data"]
SETTINGS_SKIPLIST = (
"dns_list",
"ntp_list",
"repo_setup"
)
class DeprecatedFixture(Exception): class DeprecatedFixture(Exception):
def __init__(self): def __init__(self, msg):
msg = ('Please update fixtires in the fuel-qa repo with '
'according to generated fixtures')
super(DeprecatedFixture, self).__init__(msg) super(DeprecatedFixture, self).__init__(msg)
@ -63,6 +67,15 @@ class LCMTestBasic(TestBasic):
yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object) yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object)
yaml.add_constructor(u"!ruby/sym", construct_ruby_sym) yaml.add_constructor(u"!ruby/sym", construct_ruby_sym)
@staticmethod
def node_roles(node):
"""Compose a string that represents all roles assigned to given node
:param node: dict, node data
:return: str
"""
return "_".join(sorted(node["roles"]))
# FIXME: after implementation of the main functional of PROD-2510 # FIXME: after implementation of the main functional of PROD-2510
@staticmethod @staticmethod
def get_nodes_tasks(node_id): def get_nodes_tasks(node_id):
@ -129,16 +142,19 @@ class LCMTestBasic(TestBasic):
return data return data
@staticmethod @staticmethod
def load_fixture(deployment_type, role): def load_fixture(deployment_type, role, idmp=True):
"""Load fixture for corresponding kind of deployment """Load fixture for corresponding kind of deployment
:param deployment_type: a string, name of the deployment kind :param deployment_type: a string, name of the deployment kind
:param role: a string, node role :param role: a string, node role
:param idmp: bool, indicates whether idempotency or ensurability
fixture is loaded
:return: a dictionary with loaded fixture data :return: a dictionary with loaded fixture data
""" """
subdir = "" if idmp else "ensurability"
fixture_path = os.path.join( fixture_path = os.path.join(
os.path.dirname(__file__), "fixtures", os.path.dirname(__file__), "fixtures",
deployment_type, "{}.yaml".format(role)) deployment_type, subdir, "{}.yaml".format(role))
with open(fixture_path) as f: with open(fixture_path) as f:
fixture = yaml.load(f) fixture = yaml.load(f)
@ -194,12 +210,14 @@ class LCMTestBasic(TestBasic):
return extra_actual_tasks, extra_fixture_tasks, wrong_types return extra_actual_tasks, extra_fixture_tasks, wrong_types
def check_extra_tasks(self, slave_nodes, deployment): def check_extra_tasks(self, slave_nodes, deployment, idmp=True):
"""Check existing extra tasks regarding to fixture and actual task """Check existing extra tasks regarding to fixture and actual task
or tasks with a wrong type or tasks with a wrong type
:param slave_nodes: a list of nailgun nodes :param slave_nodes: a list of nailgun nodes
:param deployment: a string, name of the deployment kind :param deployment: a string, name of the deployment kind
:param idmp: bool, indicates whether idempotency or ensurability
fixture is checked
:return: a list with nodes for which extra tasks regarding to fixture :return: a list with nodes for which extra tasks regarding to fixture
and actual task or tasks with a wrong type were found and actual task or tasks with a wrong type were found
""" """
@ -208,9 +226,9 @@ class LCMTestBasic(TestBasic):
'wrong_types': {}, 'wrong_types': {},
'failed_tasks': {}} 'failed_tasks': {}}
for node in slave_nodes: for node in slave_nodes:
node_roles = "_".join(sorted(node["roles"])) node_roles = self.node_roles(node)
node_ref = "{}_{}".format(node["id"], node_roles) node_ref = "{}_{}".format(node["id"], node_roles)
fixture = self.load_fixture(deployment, node_roles) fixture = self.load_fixture(deployment, node_roles, idmp)
node_tasks = self.get_nodes_tasks(node["id"]) node_tasks = self.get_nodes_tasks(node["id"])
extra_actual_tasks, extra_fixture_tasks, wrong_types = \ extra_actual_tasks, extra_fixture_tasks, wrong_types = \
self.get_fixture_relevance(node_tasks, fixture) self.get_fixture_relevance(node_tasks, fixture)
@ -230,26 +248,6 @@ class LCMTestBasic(TestBasic):
if failed_tasks] if failed_tasks]
return failed_nodes return failed_nodes
def execute_task_on_node(self, task, node, cluster_id):
"""Execute deployment task against the corresponding node
:param task: a string of task name
:param node: a dictionary with node description
:param cluster_id: an integer, number of cluster id
:return: None
"""
try:
logger.info("Trying to execute {!r} task on node {!r}"
.format(task, node['id']))
tsk = self.fuel_web.client.put_deployment_tasks_for_cluster(
cluster_id=cluster_id,
data=[task],
node_id=node['id'])
self.fuel_web.assert_task_success(tsk, timeout=30 * 60)
except (AssertionError, TimeoutError) as e:
logger.exception("Failed to run task {!r}\n"
"Exception:\n{}".format(task, e))
def generate_fixture(self, node_refs, cluster_id, slave_nodes): def generate_fixture(self, node_refs, cluster_id, slave_nodes):
"""Generate fixture with description of task idempotency """Generate fixture with description of task idempotency
@ -260,7 +258,7 @@ class LCMTestBasic(TestBasic):
""" """
result = {} result = {}
for node in slave_nodes: for node in slave_nodes:
node_roles = "_".join(sorted(node["roles"])) node_roles = self.node_roles(node)
node_ref = "{}_{}".format(node["id"], node_roles) node_ref = "{}_{}".format(node["id"], node_roles)
if node_ref not in node_refs: if node_ref not in node_refs:
logger.debug('Node {!r} was skipped because the current ' logger.debug('Node {!r} was skipped because the current '
@ -279,7 +277,8 @@ class LCMTestBasic(TestBasic):
tasks.append({task: {"type": task_type}}) tasks.append({task: {"type": task_type}})
continue continue
self.execute_task_on_node(task, node, cluster_id) self.fuel_web.execute_task_on_node(task, node["id"],
cluster_id)
try: try:
report = self.get_puppet_report(node) report = self.get_puppet_report(node)
@ -327,6 +326,207 @@ class LCMTestBasic(TestBasic):
logger.info("Generated fixture:\n{}" logger.info("Generated fixture:\n{}"
.format(yaml.dump(result, default_flow_style=False))) .format(yaml.dump(result, default_flow_style=False)))
@staticmethod
def _parse_settings(settings):
"""Select only values and their types from settings
:param settings: dict, (env or node) settings
:return: dict, settings in short format
"""
parsed = {}
for group in settings:
if group in SETTINGS_SKIPLIST:
continue
parsed[group] = {}
for attr, params in settings[group].items():
if attr in SETTINGS_SKIPLIST:
continue
try:
parsed[group][attr] = {
'value': params['value'],
'type': params['type']
}
except KeyError:
logger.debug("Do not include {} setting as it doesn't "
"have value".format(params['label']))
if not parsed[group]:
logger.debug("Do not include {} group as it doesn't have "
"settings with values".format(group))
del parsed[group]
return parsed
@staticmethod
def _get_settings_difference(settings1, settings2):
"""Select values and/or groups of set1 that are not present in set2
:param settings1: dict, group of dicts
:param settings2: dict, group of dicts
:return: dict, set1 items not present in set2
"""
diff = {}
new_groups = set(settings1) - set(settings2)
if new_groups:
diff.update([(g, settings1[g]) for g in new_groups])
for group in settings1:
if group in new_groups:
continue
new_params = set(settings1[group]) - set(settings2[group])
if new_params:
diff[group] = {}
diff[group].update(
[(s, settings1[group][s]) for s in new_params])
return diff
def _cmp_settings(self, settings, fixtures):
"""Compare current and stored settings
Return values and/or groups of settings that are new, comparing to
what is stored in fixtures.
Return values and/or groups of settings in fixtures that are outdated,
comparing to what is available in the cluster under test.
:param settings: dict, current settings in short format
:param fixtures: dict, stored settings in short format
:return: tuple, (new settings, outdated settings) pair
"""
new_s = self._get_settings_difference(settings, fixtures)
outdated_f = self._get_settings_difference(fixtures, settings)
return new_s, outdated_f
def get_cluster_settings(self, cluster_id):
"""Get cluster settings and return them in short format
:param cluster_id: int, ID of the cluster under test
:return: dict, cluster settings in short format
"""
settings = self.fuel_web.client.get_cluster_attributes(
cluster_id)['editable']
return self._parse_settings(settings)
def get_nodes_settings(self, cluster_id):
"""Get node settings and return them in short format
:param cluster_id: int, ID of the cluster under test
:return: dict, node settings in short format
"""
nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
node_settings = {}
for node in nodes:
node_attrs = self.fuel_web.client.get_node_attributes(node['id'])
roles = self.node_roles(node)
node_settings[roles] = self._parse_settings(node_attrs)
return node_settings
@staticmethod
def load_settings_fixtures(deployment):
"""Load stored settings for the given cluster configuration
:param deployment: str, name of cluster configuration
(e.g. 1_ctrl_1_cmp_1_cinder)
:return: tuple, (cluster, nodes) pair of stored settings
"""
f_path = os.path.join(os.path.dirname(__file__), "fixtures",
deployment, "ensurability", "{}")
with open(f_path.format("cluster_settings.yaml")) as f:
cluster_fixture = yaml.load(f)
with open(f_path.format("nodes_settings.yaml")) as f:
nodes_fixture = yaml.load(f)
return cluster_fixture, nodes_fixture
def check_cluster_settings_consistency(self, settings, fixtures):
"""Check if stored cluster settings require update
:param settings: dict, settings of the cluster under test
:param fixtures: dict, stored cluster settings
:return: tuple, (new settings, outdated settings) pair; this indicates
whether fixtures require update
"""
return self._cmp_settings(settings, fixtures)
def check_nodes_settings_consistency(self, settings, fixtures):
"""Check if stored node settings require update
:param settings: dict, node settings of the cluster under test
:param fixtures: dict, stored node settings
:return: tuple, (new settings, outdated settings) pair; this indicates
whether fixtures require update
"""
new_settings = {}
outdated_fixtures = {}
for node in fixtures:
new_s, outdated_f = self._cmp_settings(
settings[node], fixtures[node])
if new_s:
new_settings[node] = new_s
if outdated_f:
outdated_fixtures[node] = outdated_f
return new_settings, outdated_fixtures
def check_settings_consistency(self, deployment, cluster_id):
"""Check if settings fixtures are up to date.
:param cluster_id: int, env under test
:param deployment: str, name of env configuration under test
:return: None
"""
cluster_f, nodes_f = self.load_settings_fixtures(deployment)
cluster_s = self.get_cluster_settings(cluster_id)
nodes_s = self.get_nodes_settings(cluster_id)
consistency = {}
new_cluster_s, old_cluster_f = \
self.check_cluster_settings_consistency(cluster_s, cluster_f)
new_nodes_s, old_nodes_f = \
self.check_nodes_settings_consistency(nodes_s, nodes_f)
consistency["fixtures"] = {
'old_cluster_fixtures': old_cluster_f,
'old_nodes_fixtures': old_nodes_f
}
consistency["settings"] = {
'new_cluster_settings': new_cluster_s,
'new_nodes_settings': new_nodes_s
}
nonconsistent = False
if new_cluster_s or new_nodes_s.values():
logger.info(
"Settings fixtures require update as new options are "
"available now for configuring an environment\n{}".format(
yaml.safe_dump(consistency["settings"],
default_flow_style=False))
)
nonconsistent = True
if old_cluster_f or old_nodes_f.values():
logger.info(
"Settings fixtures require update as some options are no "
"longer available for configuring an environment\n{}".format(
yaml.safe_dump(consistency["fixtures"],
default_flow_style=False))
)
nonconsistent = True
if nonconsistent:
self.generate_settings_fixture(cluster_id)
msg = ('Please update setting fixtures in the repo '
'according to generated data')
raise DeprecatedFixture(msg)
def generate_settings_fixture(self, cluster_id):
"""Get environment and nodes settings, and print them to console.
:return: None
"""
cluster_s = self.get_cluster_settings(cluster_id)
nodes_s = self.get_nodes_settings(cluster_id)
logger.info("Generated environment settings fixture:\n{}".format(
yaml.safe_dump(cluster_s, default_flow_style=False)))
logger.info("Generated nodes settings fixture:\n{}".format(
yaml.safe_dump(nodes_s, default_flow_style=False)))
@test(groups=['deploy_lcm_environment']) @test(groups=['deploy_lcm_environment'])
class SetupLCMEnvironment(LCMTestBasic): class SetupLCMEnvironment(LCMTestBasic):
@ -384,7 +584,9 @@ class SetupLCMEnvironment(LCMTestBasic):
if node_refs: if node_refs:
self.show_step(8) self.show_step(8)
self.generate_fixture(node_refs, cluster_id, slave_nodes) self.generate_fixture(node_refs, cluster_id, slave_nodes)
raise DeprecatedFixture msg = ('Please update idempotency fixtures in the repo '
'according to generated fixtures')
raise DeprecatedFixture(msg)
self.env.make_snapshot(snapshotname, is_make=True) self.env.make_snapshot(snapshotname, is_make=True)
@test(depends_on=[SetupEnvironment.prepare_slaves_3], @test(depends_on=[SetupEnvironment.prepare_slaves_3],
@ -442,7 +644,9 @@ class SetupLCMEnvironment(LCMTestBasic):
if node_refs: if node_refs:
self.show_step(8) self.show_step(8)
self.generate_fixture(node_refs, cluster_id, slave_nodes) self.generate_fixture(node_refs, cluster_id, slave_nodes)
raise DeprecatedFixture msg = ('Please update idempotency fixtures in the repo '
'according to generated fixtures')
raise DeprecatedFixture(msg)
self.env.make_snapshot(snapshotname, is_make=True) self.env.make_snapshot(snapshotname, is_make=True)
@test(depends_on=[SetupEnvironment.prepare_slaves_5], @test(depends_on=[SetupEnvironment.prepare_slaves_5],
@ -505,5 +709,7 @@ class SetupLCMEnvironment(LCMTestBasic):
if node_refs: if node_refs:
self.show_step(8) self.show_step(8)
self.generate_fixture(node_refs, cluster_id, slave_nodes) self.generate_fixture(node_refs, cluster_id, slave_nodes)
raise DeprecatedFixture msg = ('Please update idempotency fixtures in the repo '
'according to generated fixtures')
raise DeprecatedFixture(msg)
self.env.make_snapshot(snapshotname, is_make=True) self.env.make_snapshot(snapshotname, is_make=True)

View File

@ -3,7 +3,7 @@ roles:
tasks: tasks:
- update_hosts: null - update_hosts: null
- clear_nodes_info: - clear_nodes_info:
type: shell type: skipped
- copy_keys_ceph: - copy_keys_ceph:
type: copy_files type: copy_files
- globals: null - globals: null
@ -22,8 +22,6 @@ tasks:
- dns-client: null - dns-client: null
- allocate_hugepages: null - allocate_hugepages: null
- plugins_setup_repositories: null - plugins_setup_repositories: null
- upload_provision_data:
type: false
- ssl-keys-saving: null - ssl-keys-saving: null
- upload_configuration: - upload_configuration:
type: upload_file type: upload_file

View File

@ -6,7 +6,7 @@ tasks:
type: skipped type: skipped
- openstack-network-common-config: null - openstack-network-common-config: null
- clear_nodes_info: - clear_nodes_info:
type: shell type: skipped
- openstack-network-agents-sriov: null - openstack-network-agents-sriov: null
- copy_keys_ceph: - copy_keys_ceph:
type: copy_files type: copy_files
@ -29,8 +29,6 @@ tasks:
- openstack-network-plugins-l2: null - openstack-network-plugins-l2: null
- allocate_hugepages: null - allocate_hugepages: null
- plugins_setup_repositories: null - plugins_setup_repositories: null
- upload_provision_data:
type: false
- ceph-compute: - ceph-compute:
no_puppet_run: true no_puppet_run: true
- ssl-keys-saving: null - ssl-keys-saving: null

View File

@ -137,7 +137,7 @@ tasks:
- openstack-network-start: - openstack-network-start:
type: skipped type: skipped
- clear_nodes_info: - clear_nodes_info:
type: shell type: skipped
- murano-db: - murano-db:
no_puppet_run: true no_puppet_run: true
- copy_keys_ceph: - copy_keys_ceph:
@ -157,8 +157,6 @@ tasks:
- enable_quorum: - enable_quorum:
type: shell type: shell
- openstack-haproxy-nova: null - openstack-haproxy-nova: null
- upload_provision_data:
type: false
- openstack-network-server-config: null - openstack-network-server-config: null
- primary-database: - primary-database:
skip: skip:

View File

@ -0,0 +1,63 @@
tasks:
- update_hosts:
resources: []
- clear_nodes_info:
type: skipped
- copy_keys_ceph:
type: copy_files
- globals:
resources: []
- fuel_pkgs:
resources: []
- tools:
resources: []
- enable_cinder_volume_service:
resources: []
- rsync_core_puppet:
type: sync
- cgroups:
resources: []
- upload_nodes_info:
type: skipped
- copy_keys:
type: copy_files
- override_configuration:
resources: []
- setup_repositories:
resources: []
- dns-client:
resources: []
- allocate_hugepages:
resources: []
- plugins_setup_repositories:
no_puppet_run: true
- ssl-keys-saving:
no_puppet_run: true
- upload_configuration:
type: upload_file
- firewall:
resources: []
- top-role-cinder:
resources:
- Service[cinder-volume]
- logging:
resources: []
- sync_time:
type: shell
- plugins_rsync:
resources:
- Exec[sync_time_shell]
- connectivity_tests:
resources: []
- configuration_symlink:
type: shell
- hosts:
resources: []
- copy_haproxy_keys:
type: copy_files
- ntp-client:
resources: []
- ssl-add-trust-chain:
no_puppet_run: true
- reserved_ports:
resources: []

View File

@ -0,0 +1,427 @@
access:
email:
type: text
value: admin_upd@localhost
password:
type: password
value: admin
tenant:
type: text
value: admin
user:
type: text
value: admin
additional_components:
ceilometer:
type: checkbox
value: false
heat:
type: hidden
value: false
ironic:
type: checkbox
value: false
mongo:
type: checkbox
value: false
murano:
type: checkbox
value: false
murano-cfapi:
type: checkbox
value: false
murano_glance_artifacts_plugin:
type: checkbox
value: false
sahara:
type: checkbox
value: false
common:
auth_key:
type: hidden
value: ''
auto_assign_floating_ip:
type: checkbox
value: true
debug:
type: checkbox
value: false
libvirt_type:
type: radio
value: qemu
nova_quota:
type: checkbox
value: true
propagate_task_deploy:
type: hidden
value: false
puppet_debug:
type: checkbox
value: false
resume_guests_state_on_host_boot:
type: checkbox
value: false
task_deploy:
type: hidden
value: true
use_cow_images:
type: checkbox
value: true
use_vcenter:
type: hidden
value: false
corosync:
group:
type: text
value: 226.94.1.1
port:
type: text
value: '12000'
verified:
type: checkbox
value: false
external_mongo:
hosts_ip:
type: text
value: ''
mongo_db_name:
type: text
value: ceilometer
mongo_password:
type: password
value: ceilometer
mongo_replset:
type: text
value: ''
mongo_user:
type: text
value: ceilometer
kernel_params:
kernel:
type: text
value: console=tty0 net.ifnames=0 biosdevname=0 rootdelay=90 nomodeset
murano_settings:
murano_repo_url:
type: text
value: http://storage.apps.openstack.org/
neutron_advanced_configuration:
neutron_dvr:
type: checkbox
value: false
neutron_l2_pop:
type: checkbox
value: false
neutron_l3_ha:
type: checkbox
value: false
neutron_qos:
type: checkbox
value: false
operator_user:
authkeys:
type: textarea
value: ''
homedir:
type: text
value: /home/fueladmin
name:
type: text
value: fueladmin
password:
type: password
value: xalFdhQSGrB7xgdPrPiM3vZm
sudo:
type: textarea
value: 'ALL=(ALL) NOPASSWD: ALL'
provision:
method:
type: hidden
value: image
packages:
type: textarea
value: 'acl
anacron
bash-completion
bridge-utils
bsdmainutils
build-essential
cloud-init
curl
daemonize
debconf-utils
gdisk
grub-pc
hpsa-dkms
hwloc
i40e-dkms
linux-firmware
linux-firmware-nonfree
linux-headers-generic-lts-trusty
linux-image-generic-lts-trusty
lvm2
mcollective
mdadm
multipath-tools
multipath-tools-boot
nailgun-agent
nailgun-mcagents
network-checker
ntp
openssh-client
openssh-server
puppet
python-amqp
ruby-augeas
ruby-ipaddress
ruby-json
ruby-netaddr
ruby-openstack
ruby-shadow
ruby-stomp
telnet
ubuntu-minimal
ubuntu-standard
uuid-runtime
vim
virt-what
vlan
'
public_network_assignment:
assign_to_all_nodes:
type: checkbox
value: false
public_ssl:
cert_data:
type: file
value:
content: '-----BEGIN CERTIFICATE-----
MIIC7TCCAdUCAgPoMA0GCSqGSIb3DQEBBQUAMDwxHjAcBgNVBAsMFU1pcmFudGlz
IEZ1ZWwtUUEgVGVhbTEaMBgGA1UEAwwRcHVibGljLmZ1ZWwubG9jYWwwHhcNMTYw
NDE5MTkxMTU1WhcNMjYwNDE3MTkxMTU1WjA8MR4wHAYDVQQLDBVNaXJhbnRpcyBG
dWVsLVFBIFRlYW0xGjAYBgNVBAMMEXB1YmxpYy5mdWVsLmxvY2FsMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZBouZH+0S1jPYy+FxvNAkdGxsNVzsOI
g7OybWx+DIskdRvONwrCFFtvP2InKJowPCebGcCqDqGF2zgFLmA9yQN/05A9f8bX
hFrtjfNb/YYJxDE4itSYNgSzSfnitii7AJme9UBw94s0p3749irGTB++ZhcPzwdg
Nx0Ymk2uFFNU18YxSx8PAk2w73a36t61E0P++MT6sYIM1GAx+9pm9Ddrj5r0b/M7
ikHGIUuB7M6t3mNHUveld+ZyXjaONMHZI5WQ16AMZwtHunUu/42k+o6RSS4h+zT8
ZiWW5cxZVLn6xqJkDkXMDdsS7PrveSuODq3LuaG4fwRpf1u2hqvyuwIDAQABMA0G
CSqGSIb3DQEBBQUAA4IBAQBfAjtVxKItKMFAQl/EufHjk4rBpRiaHGLH2CIJHWJ1
i+z7gI5XazzwMCprOxsCUrJUpr8ChobenyebNPJSnDI0R0z8ZTX6kTNk7A2ZFVrp
lL5TlpwhdtUjWxF3Coi+w694MbyLmJ4pA6QZTYVqSilZZ1cncLNA+Fc97STfLukK
wqjwCYovRVjUn4jLRjy2kcw89060xxZopVpkY9cPfg0P+PICo/eS4EunQ5rd/EDV
7DBfCbzthArBjF8/72J8PYhqwEc+i5PDkn2CNIXoT0coxC9YAHJ+zFHgxHnKa0/q
TPlvi+wJKrrSnXb5Oc34tVOxDF/WQjNuve8vHg7hvaIM
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQChkGi5kf7RLWM9
jL4XG80CR0bGw1XOw4iDs7JtbH4MiyR1G843CsIUW28/YicomjA8J5sZwKoOoYXb
OAUuYD3JA3/TkD1/xteEWu2N81v9hgnEMTiK1Jg2BLNJ+eK2KLsAmZ71QHD3izSn
fvj2KsZMH75mFw/PB2A3HRiaTa4UU1TXxjFLHw8CTbDvdrfq3rUTQ/74xPqxggzU
YDH72mb0N2uPmvRv8zuKQcYhS4Hszq3eY0dS96V35nJeNo40wdkjlZDXoAxnC0e6
dS7/jaT6jpFJLiH7NPxmJZblzFlUufrGomQORcwN2xLs+u95K44Orcu5obh/BGl/
W7aGq/K7AgMBAAECggEAI6RyFg5JQuhabmewP/TYI1qKGKtbMMQeR7/K6yz2GdpQ
bq11rtrmugr53efPb7ukTIEITIQegB/OIfCX5AVDXCczef7mMlwxi3dr1NcNQj7h
xLB/ItGHytL6oqVICJuvtZAuaziOM244bYMrdVM2b/DI1kjcKfYcmcwHc3MTplPq
Nh+L5u2ue6bYvT+XRF4KrwuKmKuyJghyMeoiLI9JupkKw79ZB/l0Mh8vmxKMPj8g
MNxoJbwoTkjQxuJELmet+ysBg2KT+gJEirfRmZiouDxx8Zukd8O6YvnlsOiRFokX
05r33fna1z5IBpGnwe+rn6pQaeXflSd6dqotoBp4QQKBgQDLrhAdsZnDXDpYuOv+
ITMpc33J4NW7yE+26ebzWkLYRUW5i7YDCtJdFi5pHCeA3+QD3RlYiinQlzcy3i3R
4Uv4riuKyDbgaw9sYOhmgluhPKDuznEWXomloEVu8jFrHg3TKY2v/GCcv99N5grQ
Jg9rScFpZXkTj23KzqHf23uTEQKBgQDLENH7QzoNsBv6eS7kElBx3BQWNa0dhXab
kRXo62/++tIDGMkzaq38hsjcAZi8uZDZY0QJTmBMdZN3LLBln5C2g8Y6Eym5ITvf
pxkMUK0++MygbK/Vwmp+xu7XMiPNMG/E8NqQkca3F/6Ld08PAauZ8gpgoAsnjlNg
pPUdWRCRCwKBgEiEB17bDXidjHRsGjFXVqTKZp2Ke+4oaiEgc8Zue2AOgb2GvV2l
67GSpSFtEa9zhvXNMSnxvuNyAwgMTFnuEaNPN1do4wjRdSNL+VIN1Vu5fz6mp2Kk
c/NQ9YeDmQ6fG6Lzp2thum/0bCeK4IytEE5NaxwAMbRCG3/aQ4200fFRAoGAMwg5
HSIZ9tKpVVsbE6oemV6rlaFLrj2aPyJJFU4FyViTar/R4KAQtYPR+qhUECm6Y0d1
E7mkrdJmiu6qLf/ZyGR5bqLeO25Es8I0o0mrIEY6dp6Z2eiQBuhLob0yDiD8FcxJ
wUdBX0YibD5Bmg3baEbRoNLXussj3QfXqdZ2OV0CgYEAyovcXc1ibwrwNO59yw99
7zCoMFjXzZgtxn5JQDwMsdt9UKd/4nOPbbiRPL3ynr5zboDZzRxihXB5zzKjrYlE
o4QZIWV0VgGS2eQSni3CGOsG4VhE4/9EFF7UqeA0hYkGAZMS+EKSdPpIujStD/ck
sQ/BZiYxMSE8+synlzp3gss=
-----END PRIVATE KEY-----
'
name: ca.pem
cert_source:
type: radio
value: user_uploaded
horizon:
type: checkbox
value: false
hostname:
type: text
value: public.fuel.local
services:
type: checkbox
value: false
service_user:
homedir:
type: hidden
value: /var/lib/fuel
name:
type: hidden
value: fuel
password:
type: hidden
value: WEwz5aKA0hYDrcERjX7irQzS
root_password:
type: hidden
value: r00tme
sudo:
type: hidden
value: 'ALL=(ALL) NOPASSWD: ALL'
storage:
admin_key:
type: hidden
value: AQDzghZXAAAAABAA7obspvgNjPa/HBWSOUzI1w==
bootstrap_osd_key:
type: hidden
value: AQDzghZXAAAAABAAWaiWslWwse+hsaKLzbtQFw==
ephemeral_ceph:
type: checkbox
value: false
fsid:
type: hidden
value: 4b0ab6f5-b82b-44e4-ac3a-15c76f960b82
images_ceph:
type: checkbox
value: false
images_vcenter:
type: checkbox
value: false
mon_key:
type: hidden
value: AQDzghZXAAAAABAAVi1udBHvkQbZbDgNnT7gXA==
objects_ceph:
type: checkbox
value: false
osd_pool_size:
type: text
value: '3'
radosgw_key:
type: hidden
value: AQDzghZXAAAAABAA8jY8KftsCK4l726rNdu/Zg==
volumes_block_device:
type: checkbox
value: true
volumes_ceph:
type: checkbox
value: false
volumes_lvm:
type: checkbox
value: false
syslog:
syslog_port:
type: text
value: '514'
syslog_server:
type: text
value: ''
syslog_transport:
type: radio
value: tcp
workloads_collector:
enabled:
type: hidden
value: false
password:
type: password
value: 8qtWdXhhY84wFoxwBbZcpq3P
tenant:
type: text
value: services
user:
type: text
value: fuel_stats_user

View File

@ -0,0 +1,89 @@
tasks:
- update_hosts:
resources: []
- openstack-network-start:
type: skipped
- openstack-network-common-config:
resources: []
- clear_nodes_info:
type: skipped
- openstack-network-agents-sriov:
resources: []
- copy_keys_ceph:
type: copy_files
- globals:
resources: []
- fuel_pkgs:
resources: []
- openstack-network-agents-l3:
resources: []
- openstack-network-agents-metadata:
resources: []
- tools:
resources: []
- rsync_core_puppet:
type: sync
- enable_nova_compute_service:
resources: []
- cgroups:
resources: []
- upload_nodes_info:
type: skipped
- copy_keys:
type: copy_files
- override_configuration:
resources: []
- setup_repositories:
resources: []
- dns-client:
resources: []
- openstack-network-plugins-l2:
resources: []
- allocate_hugepages:
resources: []
- plugins_setup_repositories:
no_puppet_run: true
- ceph-compute:
no_puppet_run: true
- ssl-keys-saving:
no_puppet_run: true
- sriov_iommu_check:
resources:
- Exec[sriov_iommu_check]
- openstack-network-end:
type: skipped
- ceilometer-compute:
no_puppet_run: true
- upload_configuration:
type: upload_file
- firewall:
resources: []
- logging:
resources: []
- top-role-compute:
resources:
- Notify[Module openstack_tasks cannot notify service nova-compute on packages
update]
- Nova_config[DEFAULT/resume_guests_state_on_host_boot]
- Nova_config[vnc/novncproxy_base_url]
- Service[nova-compute]
- sync_time:
type: shell
- openstack-network-compute-nova:
resources: []
- plugins_rsync:
no_puppet_run: true
- connectivity_tests:
resources: []
- configuration_symlink:
type: shell
- hosts:
resources: []
- copy_haproxy_keys:
type: copy_files
- ntp-client:
resources: []
- ssl-add-trust-chain:
no_puppet_run: true
- reserved_ports:
resources: []

View File

@ -0,0 +1,326 @@
tasks:
- ironic_post_swift_key:
type: shell
- openstack-haproxy-mysqld:
resources: []
- cinder-db:
resources: []
- dump_rabbitmq_definitions:
resources: []
- rsync_core_puppet:
type: sync
- ssl-dns-setup:
resources:
- Exec[rsync_core_puppet_shell]
- ceilometer-controller:
no_puppet_run: true
- override_configuration:
resources: []
- ceilometer-keystone:
no_puppet_run: true
- nova-db:
resources: []
- workloads_collector_add:
resources: []
- primary-openstack-network-plugins-l2:
resources: []
- radosgw-keystone:
resources: []
- virtual_ips:
resources: []
- primary-dns-server:
resources: []
- openstack-haproxy-murano:
resources: []
- openstack-network-end:
type: skipped
- openstack-haproxy-radosgw:
resources: []
- openstack-haproxy-swift:
resources: []
- heat-db:
resources: []
- openstack-haproxy-neutron:
resources: []
- updatedb:
no_puppet_run: true
- ironic-db:
no_puppet_run: true
- plugins_rsync:
no_puppet_run: true
- ceilometer-radosgw-user:
no_puppet_run: true
- openstack-haproxy-keystone:
resources: []
- hosts:
resources: []
- primary-rabbitmq:
resources: []
- primary-cluster-haproxy:
resources: []
- openstack-network-routers:
resources: []
- reserved_ports:
resources: []
- controller_remaining_tasks:
resources: []
- glance-keystone:
resources: []
- openstack-haproxy-aodh:
resources: []
- murano-cfapi:
no_puppet_run: true
- vmware-vcenter:
no_puppet_run: true
- ironic-compute:
no_puppet_run: true
- primary-openstack-network-agents-metadata:
resources: []
- cinder-keystone:
resources: []
- copy_keys:
type: copy_files
- enable_rados:
no_puppet_run: true
- ntp-check:
resources: []
- aodh-db:
no_puppet_run: true
- disable_keystone_service_token:
resources: []
- umm:
resources: []
- memcached:
resources: []
- allocate_hugepages:
resources: []
- openrc-delete:
resources:
- File[/root/openrc]
- plugins_setup_repositories:
no_puppet_run: true
- sahara-keystone:
no_puppet_run: true
- openstack-haproxy-sahara:
resources: []
- ssl-keys-saving:
no_puppet_run: true
- primary-cluster:
resources: []
- upload_cirros:
type: shell
- primary-keystone:
resources:
- File[/root/openrc]
- primary-openstack-network-agents-l3:
resources: []
- upload_configuration:
type: upload_file
- create-cinder-types:
resources: []
- neutron-keystone:
resources:
- Keystone_endpoint[RegionOne/neutron::network]
- logging:
resources: []
- nova-keystone:
resources:
- Keystone_endpoint[RegionOne/nova::compute]
- Keystone_endpoint[RegionOne/novav3::computev3]
- update_hosts:
resources: []
- ironic-keystone:
no_puppet_run: true
- connectivity_tests:
resources: []
- swift-storage:
resources: []
- primary-heat:
resources:
- Heat_config[keystone_authtoken/auth_uri]
- conntrackd:
resources: []
- sahara-db:
no_puppet_run: true
- horizon:
resources:
- File[/var/lib/puppet/concat/_etc_openstack-dashboard_local_settings.py/fragments/50_local_settings.py]
- File[/etc/openstack-dashboard/local_settings.py]
- Exec[concat_/etc/openstack-dashboard/local_settings.py]
- openstack-haproxy-ceilometer:
resources: []
- openstack-network-common-config:
resources: []
- firewall:
resources: []
- apache:
resources: []
- globals:
resources:
- File[/etc/hiera/globals.yaml]
- aodh-keystone:
no_puppet_run: true
- glance:
resources:
- Glance_glare_config[DEFAULT/default_log_levels]
- Glance_registry_config[DEFAULT/default_log_levels]
- Glance_api_config[DEFAULT/default_log_levels]
- Glance_cache_config[DEFAULT/debug]
- Glance_api_config[DEFAULT/debug]
- Glance_glare_config[DEFAULT/debug]
- Glance_registry_config[DEFAULT/debug]
- tools:
resources: []
- openstack-haproxy:
resources: []
- cgroups:
resources: []
- murano-cfapi-keystone:
no_puppet_run: true
- aodh:
no_puppet_run: true
- ceph_create_pools:
no_puppet_run: true
- openstack-haproxy-ironic:
no_puppet_run: true
- setup_repositories:
resources: []
- openstack-network-routers-ha:
no_puppet_run: true
- glance-db:
resources: []
- neutron-db:
resources: []
- ironic_upload_images:
type: shell
- swift-rebalance-cron:
resources: []
- primary-ceph-mon:
resources: []
- openstack-haproxy-stats:
resources: []
- ironic-api:
no_puppet_run: true
- primary-ceph-radosgw:
resources: []
- dns-client:
resources: []
- cluster-vrouter:
resources: []
- murano-rabbitmq:
no_puppet_run: true
- api-proxy:
resources: []
- cluster_health:
resources: []
- heat-keystone:
resources:
- Keystone_endpoint[RegionOne/heat-cfn::cloudformation]
- Keystone_endpoint[RegionOne/heat::orchestration]
- openstack-haproxy-horizon:
resources:
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/00_horizon_listen_block]
- File[/etc/haproxy/conf.d/015-horizon.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/01-horizon_horizon_balancermember_horizon]
- Exec[concat_/etc/haproxy/conf.d/015-horizon.cfg]
- openstack-network-start:
type: skipped
- clear_nodes_info:
type: skipped
- murano-db:
resources:
- Exec[clear_nodes_info_shell]
- copy_keys_ceph:
type: copy_files
- sahara:
no_puppet_run: true
- fuel_pkgs:
resources: []
- swift-keystone:
resources:
- Keystone_endpoint[RegionOne/swift::object-store]
- Keystone_endpoint[RegionOne/swift_s3::s3]
- public_vip_ping:
resources: []
- upload_nodes_info:
type: skipped
- openstack-haproxy-glance:
resources:
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_080-glance-api.cfg/fragments/00_glance-api_listen_block]
- Exec[concat_/etc/haproxy/conf.d/080-glance-api.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_081-glance-glare.cfg/fragments/00_glance-glare_listen_block]
- File[/etc/haproxy/conf.d/080-glance-api.cfg]
- Exec[concat_/etc/haproxy/conf.d/081-glance-glare.cfg]
- File[/etc/haproxy/conf.d/081-glance-glare.cfg]
- murano:
no_puppet_run: true
- ceph_ready_check:
type: shell
- enable_quorum:
type: shell
- openstack-haproxy-nova:
resources:
- File[/etc/haproxy/conf.d/040-nova-api.cfg]
- File[/etc/haproxy/conf.d/170-nova-novncproxy.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_040-nova-api.cfg/fragments/00_nova-api_listen_block]
- Exec[concat_/etc/haproxy/conf.d/040-nova-api.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_170-nova-novncproxy.cfg/fragments/00_nova-novncproxy_listen_block]
- Exec[concat_/etc/haproxy/conf.d/170-nova-novncproxy.cfg]
- openstack-network-server-config:
resources: []
- primary-database:
resources:
- File[/root/.my.cnf]
- vcenter_compute_zones_create:
type: shell
- openstack-haproxy-cinder:
resources:
- File[/etc/haproxy/conf.d/070-cinder-api.cfg]
- Exec[concat_/etc/haproxy/conf.d/070-cinder-api.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_070-cinder-api.cfg/fragments/00_cinder-api_listen_block]
- ntp-server:
resources: []
- murano-keystone:
no_puppet_run: true
- primary-openstack-network-agents-dhcp:
resources:
- Neutron_dhcp_agent_config[DEFAULT/debug]
- openstack-haproxy-heat:
resources: []
- primary-openstack-controller:
resources:
- Nova_config[DEFAULT/quota_driver]
- Nova_config[DEFAULT/debug]
- Nova_config[DEFAULT/default_log_levels]
- openstack-cinder:
resources:
- Cinder_config[DEFAULT/scheduler_default_filters]
- Cinder_config[DEFAULT/default_log_levels]
- Cinder_config[DEFAULT/debug]
- keystone-db:
resources:
- File[/root/.my.cnf]
- sync_time:
type: shell
- configuration_symlink:
type: shell
- openstack-network-server-nova:
resources: []
- copy_haproxy_keys:
type: copy_files
- primary-swift-proxy:
resources:
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_account_frag-account]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/00_swift_proxy]
- File[/etc/swift/proxy-server.conf]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_object_frag-object]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_server_frag-swift_server]
- Exec[concat_/etc/swift/proxy-server.conf]
- Exec[concat_/etc/rsyncd.conf]
- File[/etc/rsyncd.conf]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_container_frag-container]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_backups_frag-swift_backups]
- openstack-network-networks:
resources: []
- ssl-add-trust-chain:
no_puppet_run: true

View File

@ -0,0 +1,51 @@
controller:
cpu_pinning:
dpdk:
type: number
value: 1
nova:
type: number
value: 1
hugepages:
dpdk:
type: number
value: 128
nova:
type: custom_hugepages
value:
'1048576': 1
'2048': 550
cinder:
cpu_pinning:
dpdk:
type: number
value: 1
nova:
type: number
value: 1
hugepages:
dpdk:
type: number
value: 128
nova:
type: custom_hugepages
value:
'1048576': 1
'2048': 550
compute:
cpu_pinning:
dpdk:
type: number
value: 1
nova:
type: number
value: 1
hugepages:
dpdk:
type: number
value: 128
nova:
type: custom_hugepages
value:
'1048576': 1
'2048': 550

View File

@ -6,7 +6,7 @@ tasks:
type: skipped type: skipped
- openstack-network-common-config: null - openstack-network-common-config: null
- clear_nodes_info: - clear_nodes_info:
type: shell type: skipped
- openstack-network-agents-sriov: null - openstack-network-agents-sriov: null
- copy_keys_ceph: - copy_keys_ceph:
type: copy_files type: copy_files
@ -30,8 +30,6 @@ tasks:
- allocate_hugepages: null - allocate_hugepages: null
- plugins_setup_repositories: - plugins_setup_repositories:
no_puppet_run: true no_puppet_run: true
- upload_provision_data:
type: false
- ceph-compute: - ceph-compute:
no_puppet_run: true no_puppet_run: true
- ssl-keys-saving: null - ssl-keys-saving: null

View File

@ -132,7 +132,7 @@ tasks:
- openstack-network-start: - openstack-network-start:
type: skipped type: skipped
- clear_nodes_info: - clear_nodes_info:
type: shell type: skipped
- murano-db: - murano-db:
no_puppet_run: true no_puppet_run: true
- copy_keys_ceph: - copy_keys_ceph:
@ -152,8 +152,6 @@ tasks:
- enable_quorum: - enable_quorum:
type: shell type: shell
- openstack-haproxy-nova: null - openstack-haproxy-nova: null
- upload_provision_data:
type: false
- openstack-network-server-config: null - openstack-network-server-config: null
- primary-database: - primary-database:
skip: skip:

View File

@ -0,0 +1,427 @@
access:
email:
type: text
value: admin_upd@localhost
password:
type: password
value: admin
tenant:
type: text
value: admin
user:
type: text
value: admin
additional_components:
ceilometer:
type: checkbox
value: false
heat:
type: hidden
value: false
ironic:
type: checkbox
value: false
mongo:
type: checkbox
value: false
murano:
type: checkbox
value: false
murano-cfapi:
type: checkbox
value: false
murano_glance_artifacts_plugin:
type: checkbox
value: false
sahara:
type: checkbox
value: false
common:
auth_key:
type: hidden
value: ''
auto_assign_floating_ip:
type: checkbox
value: true
debug:
type: checkbox
value: false
libvirt_type:
type: radio
value: qemu
nova_quota:
type: checkbox
value: true
propagate_task_deploy:
type: hidden
value: false
puppet_debug:
type: checkbox
value: false
resume_guests_state_on_host_boot:
type: checkbox
value: false
task_deploy:
type: hidden
value: true
use_cow_images:
type: checkbox
value: true
use_vcenter:
type: hidden
value: false
corosync:
group:
type: text
value: 226.94.1.1
port:
type: text
value: '12000'
verified:
type: checkbox
value: false
external_mongo:
hosts_ip:
type: text
value: ''
mongo_db_name:
type: text
value: ceilometer
mongo_password:
type: password
value: ceilometer
mongo_replset:
type: text
value: ''
mongo_user:
type: text
value: ceilometer
kernel_params:
kernel:
type: text
value: console=tty0 net.ifnames=0 biosdevname=0 rootdelay=90 nomodeset
murano_settings:
murano_repo_url:
type: text
value: http://storage.apps.openstack.org/
neutron_advanced_configuration:
neutron_dvr:
type: checkbox
value: false
neutron_l2_pop:
type: checkbox
value: false
neutron_l3_ha:
type: checkbox
value: false
neutron_qos:
type: checkbox
value: false
operator_user:
authkeys:
type: textarea
value: ''
homedir:
type: text
value: /home/fueladmin
name:
type: text
value: fueladmin
password:
type: password
value: xalFdhQSGrB7xgdPrPiM3vZm
sudo:
type: textarea
value: 'ALL=(ALL) NOPASSWD: ALL'
provision:
method:
type: hidden
value: image
packages:
type: textarea
value: 'acl
anacron
bash-completion
bridge-utils
bsdmainutils
build-essential
cloud-init
curl
daemonize
debconf-utils
gdisk
grub-pc
hpsa-dkms
hwloc
i40e-dkms
linux-firmware
linux-firmware-nonfree
linux-headers-generic-lts-trusty
linux-image-generic-lts-trusty
lvm2
mcollective
mdadm
multipath-tools
multipath-tools-boot
nailgun-agent
nailgun-mcagents
network-checker
ntp
openssh-client
openssh-server
puppet
python-amqp
ruby-augeas
ruby-ipaddress
ruby-json
ruby-netaddr
ruby-openstack
ruby-shadow
ruby-stomp
telnet
ubuntu-minimal
ubuntu-standard
uuid-runtime
vim
virt-what
vlan
'
public_network_assignment:
assign_to_all_nodes:
type: checkbox
value: false
public_ssl:
cert_data:
type: file
value:
content: '-----BEGIN CERTIFICATE-----
MIIC7TCCAdUCAgPoMA0GCSqGSIb3DQEBBQUAMDwxHjAcBgNVBAsMFU1pcmFudGlz
IEZ1ZWwtUUEgVGVhbTEaMBgGA1UEAwwRcHVibGljLmZ1ZWwubG9jYWwwHhcNMTYw
NDE5MTkxMTU1WhcNMjYwNDE3MTkxMTU1WjA8MR4wHAYDVQQLDBVNaXJhbnRpcyBG
dWVsLVFBIFRlYW0xGjAYBgNVBAMMEXB1YmxpYy5mdWVsLmxvY2FsMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZBouZH+0S1jPYy+FxvNAkdGxsNVzsOI
g7OybWx+DIskdRvONwrCFFtvP2InKJowPCebGcCqDqGF2zgFLmA9yQN/05A9f8bX
hFrtjfNb/YYJxDE4itSYNgSzSfnitii7AJme9UBw94s0p3749irGTB++ZhcPzwdg
Nx0Ymk2uFFNU18YxSx8PAk2w73a36t61E0P++MT6sYIM1GAx+9pm9Ddrj5r0b/M7
ikHGIUuB7M6t3mNHUveld+ZyXjaONMHZI5WQ16AMZwtHunUu/42k+o6RSS4h+zT8
ZiWW5cxZVLn6xqJkDkXMDdsS7PrveSuODq3LuaG4fwRpf1u2hqvyuwIDAQABMA0G
CSqGSIb3DQEBBQUAA4IBAQBfAjtVxKItKMFAQl/EufHjk4rBpRiaHGLH2CIJHWJ1
i+z7gI5XazzwMCprOxsCUrJUpr8ChobenyebNPJSnDI0R0z8ZTX6kTNk7A2ZFVrp
lL5TlpwhdtUjWxF3Coi+w694MbyLmJ4pA6QZTYVqSilZZ1cncLNA+Fc97STfLukK
wqjwCYovRVjUn4jLRjy2kcw89060xxZopVpkY9cPfg0P+PICo/eS4EunQ5rd/EDV
7DBfCbzthArBjF8/72J8PYhqwEc+i5PDkn2CNIXoT0coxC9YAHJ+zFHgxHnKa0/q
TPlvi+wJKrrSnXb5Oc34tVOxDF/WQjNuve8vHg7hvaIM
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQChkGi5kf7RLWM9
jL4XG80CR0bGw1XOw4iDs7JtbH4MiyR1G843CsIUW28/YicomjA8J5sZwKoOoYXb
OAUuYD3JA3/TkD1/xteEWu2N81v9hgnEMTiK1Jg2BLNJ+eK2KLsAmZ71QHD3izSn
fvj2KsZMH75mFw/PB2A3HRiaTa4UU1TXxjFLHw8CTbDvdrfq3rUTQ/74xPqxggzU
YDH72mb0N2uPmvRv8zuKQcYhS4Hszq3eY0dS96V35nJeNo40wdkjlZDXoAxnC0e6
dS7/jaT6jpFJLiH7NPxmJZblzFlUufrGomQORcwN2xLs+u95K44Orcu5obh/BGl/
W7aGq/K7AgMBAAECggEAI6RyFg5JQuhabmewP/TYI1qKGKtbMMQeR7/K6yz2GdpQ
bq11rtrmugr53efPb7ukTIEITIQegB/OIfCX5AVDXCczef7mMlwxi3dr1NcNQj7h
xLB/ItGHytL6oqVICJuvtZAuaziOM244bYMrdVM2b/DI1kjcKfYcmcwHc3MTplPq
Nh+L5u2ue6bYvT+XRF4KrwuKmKuyJghyMeoiLI9JupkKw79ZB/l0Mh8vmxKMPj8g
MNxoJbwoTkjQxuJELmet+ysBg2KT+gJEirfRmZiouDxx8Zukd8O6YvnlsOiRFokX
05r33fna1z5IBpGnwe+rn6pQaeXflSd6dqotoBp4QQKBgQDLrhAdsZnDXDpYuOv+
ITMpc33J4NW7yE+26ebzWkLYRUW5i7YDCtJdFi5pHCeA3+QD3RlYiinQlzcy3i3R
4Uv4riuKyDbgaw9sYOhmgluhPKDuznEWXomloEVu8jFrHg3TKY2v/GCcv99N5grQ
Jg9rScFpZXkTj23KzqHf23uTEQKBgQDLENH7QzoNsBv6eS7kElBx3BQWNa0dhXab
kRXo62/++tIDGMkzaq38hsjcAZi8uZDZY0QJTmBMdZN3LLBln5C2g8Y6Eym5ITvf
pxkMUK0++MygbK/Vwmp+xu7XMiPNMG/E8NqQkca3F/6Ld08PAauZ8gpgoAsnjlNg
pPUdWRCRCwKBgEiEB17bDXidjHRsGjFXVqTKZp2Ke+4oaiEgc8Zue2AOgb2GvV2l
67GSpSFtEa9zhvXNMSnxvuNyAwgMTFnuEaNPN1do4wjRdSNL+VIN1Vu5fz6mp2Kk
c/NQ9YeDmQ6fG6Lzp2thum/0bCeK4IytEE5NaxwAMbRCG3/aQ4200fFRAoGAMwg5
HSIZ9tKpVVsbE6oemV6rlaFLrj2aPyJJFU4FyViTar/R4KAQtYPR+qhUECm6Y0d1
E7mkrdJmiu6qLf/ZyGR5bqLeO25Es8I0o0mrIEY6dp6Z2eiQBuhLob0yDiD8FcxJ
wUdBX0YibD5Bmg3baEbRoNLXussj3QfXqdZ2OV0CgYEAyovcXc1ibwrwNO59yw99
7zCoMFjXzZgtxn5JQDwMsdt9UKd/4nOPbbiRPL3ynr5zboDZzRxihXB5zzKjrYlE
o4QZIWV0VgGS2eQSni3CGOsG4VhE4/9EFF7UqeA0hYkGAZMS+EKSdPpIujStD/ck
sQ/BZiYxMSE8+synlzp3gss=
-----END PRIVATE KEY-----
'
name: ca.pem
cert_source:
type: radio
value: user_uploaded
horizon:
type: checkbox
value: false
hostname:
type: text
value: public.fuel.local
services:
type: checkbox
value: false
service_user:
homedir:
type: hidden
value: /var/lib/fuel
name:
type: hidden
value: fuel
password:
type: hidden
value: WEwz5aKA0hYDrcERjX7irQzS
root_password:
type: hidden
value: r00tme
sudo:
type: hidden
value: 'ALL=(ALL) NOPASSWD: ALL'
storage:
admin_key:
type: hidden
value: AQDzghZXAAAAABAA7obspvgNjPa/HBWSOUzI1w==
bootstrap_osd_key:
type: hidden
value: AQDzghZXAAAAABAAWaiWslWwse+hsaKLzbtQFw==
ephemeral_ceph:
type: checkbox
value: false
fsid:
type: hidden
value: 4b0ab6f5-b82b-44e4-ac3a-15c76f960b82
images_ceph:
type: checkbox
value: false
images_vcenter:
type: checkbox
value: false
mon_key:
type: hidden
value: AQDzghZXAAAAABAAVi1udBHvkQbZbDgNnT7gXA==
objects_ceph:
type: checkbox
value: false
osd_pool_size:
type: text
value: '3'
radosgw_key:
type: hidden
value: AQDzghZXAAAAABAA8jY8KftsCK4l726rNdu/Zg==
volumes_block_device:
type: checkbox
value: true
volumes_ceph:
type: checkbox
value: false
volumes_lvm:
type: checkbox
value: false
syslog:
syslog_port:
type: text
value: '514'
syslog_server:
type: text
value: ''
syslog_transport:
type: radio
value: tcp
workloads_collector:
enabled:
type: hidden
value: false
password:
type: password
value: 8qtWdXhhY84wFoxwBbZcpq3P
tenant:
type: text
value: services
user:
type: text
value: fuel_stats_user

View File

@ -0,0 +1,89 @@
tasks:
- update_hosts:
resources: []
- openstack-network-start:
type: skipped
- openstack-network-common-config:
resources: []
- clear_nodes_info:
type: skipped
- openstack-network-agents-sriov:
resources: []
- copy_keys_ceph:
type: copy_files
- globals:
resources: []
- fuel_pkgs:
resources: []
- openstack-network-agents-l3:
resources: []
- openstack-network-agents-metadata:
resources: []
- tools:
resources: []
- rsync_core_puppet:
type: sync
- enable_nova_compute_service:
resources: []
- cgroups:
resources: []
- upload_nodes_info:
type: skipped
- copy_keys:
type: copy_files
- override_configuration:
resources: []
- setup_repositories:
resources: []
- dns-client:
resources: []
- openstack-network-plugins-l2:
resources: []
- allocate_hugepages:
resources: []
- plugins_setup_repositories:
no_puppet_run: true
- ceph-compute:
no_puppet_run: true
- ssl-keys-saving:
no_puppet_run: true
- sriov_iommu_check:
resources:
- Exec[sriov_iommu_check]
- openstack-network-end:
type: skipped
- ceilometer-compute:
no_puppet_run: true
- upload_configuration:
type: upload_file
- firewall:
resources: []
- logging:
resources: []
- top-role-compute:
resources:
- Notify[Module openstack_tasks cannot notify service nova-compute on packages
update]
- Nova_config[DEFAULT/resume_guests_state_on_host_boot]
- Nova_config[vnc/novncproxy_base_url]
- Service[nova-compute]
- sync_time:
type: shell
- openstack-network-compute-nova:
resources: []
- plugins_rsync:
no_puppet_run: true
- connectivity_tests:
resources: []
- configuration_symlink:
type: shell
- hosts:
resources: []
- copy_haproxy_keys:
type: copy_files
- ntp-client:
resources: []
- ssl-add-trust-chain:
no_puppet_run: true
- reserved_ports:
resources: []

View File

@ -0,0 +1,336 @@
tasks:
- ironic_post_swift_key:
type: shell
- openstack-haproxy-mysqld:
resources: []
- cinder-db:
resources: []
- dump_rabbitmq_definitions:
resources: []
- rsync_core_puppet:
type: sync
- ssl-dns-setup:
resources:
- Exec[rsync_core_puppet_shell]
- ceilometer-controller:
no_puppet_run: true
- override_configuration:
resources: []
- ceilometer-keystone:
no_puppet_run: true
- nova-db:
resources: []
- workloads_collector_add:
resources: []
- primary-openstack-network-plugins-l2:
resources: []
- radosgw-keystone:
resources: []
- virtual_ips:
resources: []
- primary-dns-server:
resources: []
- openstack-haproxy-murano:
resources: []
- openstack-network-end:
type: skipped
- openstack-haproxy-radosgw:
resources: []
- openstack-haproxy-swift:
resources: []
- heat-db:
resources: []
- openstack-haproxy-neutron:
resources: []
- updatedb:
no_puppet_run: true
- ironic-db:
no_puppet_run: true
- plugins_rsync:
no_puppet_run: true
- ceilometer-radosgw-user:
no_puppet_run: true
- openstack-haproxy-keystone:
resources: []
- hosts:
resources: []
- primary-rabbitmq:
resources: []
- primary-cluster-haproxy:
resources: []
- openstack-network-routers:
resources: []
- reserved_ports:
resources: []
- controller_remaining_tasks:
resources: []
- glance-keystone:
resources: []
- openstack-haproxy-aodh:
resources: []
- murano-cfapi:
no_puppet_run: true
- vmware-vcenter:
no_puppet_run: true
- ironic-compute:
no_puppet_run: true
- primary-openstack-network-agents-metadata:
resources: []
- cinder-keystone:
resources: []
- copy_keys:
type: copy_files
- enable_rados:
no_puppet_run: true
- ntp-check:
resources: []
- aodh-db:
no_puppet_run: true
- disable_keystone_service_token:
resources: []
- umm:
resources: []
- memcached:
resources: []
- allocate_hugepages:
resources: []
- openrc-delete:
resources:
- File[/root/openrc]
- plugins_setup_repositories:
no_puppet_run: true
- sahara-keystone:
no_puppet_run: true
- openstack-haproxy-sahara:
resources: []
- ssl-keys-saving:
no_puppet_run: true
- primary-cluster:
resources: []
- upload_cirros:
type: shell
- primary-keystone:
resources:
- File[/root/openrc]
- primary-openstack-network-agents-l3:
resources: []
- upload_configuration:
type: upload_file
- create-cinder-types:
resources: []
- neutron-keystone:
resources:
- Keystone_endpoint[RegionOne/neutron::network]
- logging:
resources: []
- nova-keystone:
resources:
- Keystone_endpoint[RegionOne/nova::compute]
- Keystone_endpoint[RegionOne/novav3::computev3]
- update_hosts:
resources: []
- ironic-keystone:
no_puppet_run: true
- connectivity_tests:
resources: []
- swift-storage:
resources: []
- primary-heat:
resources:
- Heat_config[keystone_authtoken/auth_uri]
- conntrackd:
resources: []
- sahara-db:
no_puppet_run: true
- horizon:
resources:
- File[/var/lib/puppet/concat/_etc_openstack-dashboard_local_settings.py/fragments/50_local_settings.py]
- File[/etc/openstack-dashboard/local_settings.py]
- Exec[concat_/etc/openstack-dashboard/local_settings.py]
- openstack-haproxy-ceilometer:
resources:
- Exec[concat_/etc/haproxy/conf.d/140-ceilometer.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_140-ceilometer.cfg/fragments/00_ceilometer_listen_block]
- File[/etc/haproxy/conf.d/140-ceilometer.cfg]
- openstack-network-common-config:
resources:
- Neutron_config[DEFAULT/service_plugins]
- firewall:
resources: []
- apache:
resources: []
- globals:
resources:
- File[/etc/hiera/globals.yaml]
- aodh-keystone:
no_puppet_run: true
- glance:
resources:
- Glance_glare_config[DEFAULT/default_log_levels]
- Glance_registry_config[DEFAULT/default_log_levels]
- Glance_api_config[DEFAULT/notification_driver]
- Glance_api_config[DEFAULT/default_log_levels]
- Glance_cache_config[DEFAULT/debug]
- Glance_api_config[DEFAULT/debug]
- Glance_glare_config[DEFAULT/debug]
- Glance_registry_config[DEFAULT/debug]
- tools:
resources: []
- openstack-haproxy:
resources: []
- cgroups:
resources: []
- murano-cfapi-keystone:
no_puppet_run: true
- aodh:
no_puppet_run: true
- ceph_create_pools:
no_puppet_run: true
- openstack-haproxy-ironic:
no_puppet_run: true
- setup_repositories:
resources: []
- openstack-network-routers-ha:
no_puppet_run: true
- glance-db:
resources: []
- neutron-db:
resources: []
- ironic_upload_images:
type: shell
- swift-rebalance-cron:
resources: []
- primary-ceph-mon:
resources: []
- openstack-haproxy-stats:
resources: []
- ironic-api:
no_puppet_run: true
- primary-ceph-radosgw:
resources: []
- dns-client:
resources: []
- cluster-vrouter:
resources: []
- murano-rabbitmq:
no_puppet_run: true
- api-proxy:
resources: []
- cluster_health:
resources: []
- heat-keystone:
resources:
- Keystone_endpoint[RegionOne/heat-cfn::cloudformation]
- Keystone_endpoint[RegionOne/heat::orchestration]
- openstack-haproxy-horizon:
resources:
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/00_horizon_listen_block]
- File[/etc/haproxy/conf.d/015-horizon.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/01-horizon_horizon_balancermember_horizon]
- Exec[concat_/etc/haproxy/conf.d/015-horizon.cfg]
- openstack-network-start:
type: skipped
- clear_nodes_info:
type: skipped
- murano-db:
resources:
- Exec[clear_nodes_info_shell]
- copy_keys_ceph:
type: copy_files
- sahara:
no_puppet_run: true
- fuel_pkgs:
resources: []
- swift-keystone:
resources:
- Keystone_endpoint[RegionOne/swift::object-store]
- Keystone_endpoint[RegionOne/swift_s3::s3]
- public_vip_ping:
resources: []
- upload_nodes_info:
type: skipped
- openstack-haproxy-glance:
resources:
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_080-glance-api.cfg/fragments/00_glance-api_listen_block]
- Exec[concat_/etc/haproxy/conf.d/080-glance-api.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_081-glance-glare.cfg/fragments/00_glance-glare_listen_block]
- File[/etc/haproxy/conf.d/080-glance-api.cfg]
- Exec[concat_/etc/haproxy/conf.d/081-glance-glare.cfg]
- File[/etc/haproxy/conf.d/081-glance-glare.cfg]
- murano:
no_puppet_run: true
- ceph_ready_check:
type: shell
- enable_quorum:
type: shell
- openstack-haproxy-nova:
resources:
- File[/etc/haproxy/conf.d/040-nova-api.cfg]
- File[/etc/haproxy/conf.d/170-nova-novncproxy.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_040-nova-api.cfg/fragments/00_nova-api_listen_block]
- Exec[concat_/etc/haproxy/conf.d/040-nova-api.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_170-nova-novncproxy.cfg/fragments/00_nova-novncproxy_listen_block]
- Exec[concat_/etc/haproxy/conf.d/170-nova-novncproxy.cfg]
- openstack-network-server-config:
resources:
- Neutron_config[DEFAULT/router_distributed]
- Neutron_config[qos/notification_drivers]
- Neutron_plugin_ml2[ml2/mechanism_drivers]
- Neutron_plugin_ml2[ml2/extension_drivers]
- primary-database:
resources:
- File[/root/.my.cnf]
- vcenter_compute_zones_create:
type: shell
- openstack-haproxy-cinder:
resources:
- File[/etc/haproxy/conf.d/070-cinder-api.cfg]
- Exec[concat_/etc/haproxy/conf.d/070-cinder-api.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_070-cinder-api.cfg/fragments/00_cinder-api_listen_block]
- ntp-server:
resources: []
- murano-keystone:
no_puppet_run: true
- primary-openstack-network-agents-dhcp:
resources:
- Neutron_dhcp_agent_config[DEFAULT/debug]
- openstack-haproxy-heat:
resources: []
- primary-openstack-controller:
resources:
- Nova_config[DEFAULT/quota_driver]
- Nova_config[DEFAULT/debug]
- Nova_config[DEFAULT/default_log_levels]
- openstack-cinder:
resources:
- Cinder_config[DEFAULT/scheduler_default_filters]
- Cinder_config[DEFAULT/default_log_levels]
- Cinder_config[DEFAULT/debug]
- keystone-db:
resources:
- File[/root/.my.cnf]
- sync_time:
type: shell
- configuration_symlink:
type: shell
- openstack-network-server-nova:
resources: []
- copy_haproxy_keys:
type: copy_files
- primary-swift-proxy:
resources:
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_account_frag-account]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/00_swift_proxy]
- File[/etc/swift/proxy-server.conf]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_object_frag-object]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_server_frag-swift_server]
- Exec[concat_/etc/swift/proxy-server.conf]
- Exec[concat_/etc/rsyncd.conf]
- File[/etc/rsyncd.conf]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_container_frag-container]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_backups_frag-swift_backups]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/33_swift_ceilometer]
- openstack-network-networks:
resources: []
- ssl-add-trust-chain:
no_puppet_run: true

View File

@ -0,0 +1,60 @@
tasks:
- update_hosts:
resources: []
- clear_nodes_info:
type: skipped
- top-role-primary-mongo:
resources: []
- copy_keys_ceph:
type: copy_files
- globals:
resources: []
- fuel_pkgs:
resources: []
- tools:
resources: []
- rsync_core_puppet:
type: sync
- cgroups:
resources: []
- upload_nodes_info:
type: skipped
- copy_keys:
type: copy_files
- override_configuration:
resources: []
- setup_repositories:
resources: []
- dns-client:
resources: []
- allocate_hugepages:
resources: []
- plugins_setup_repositories:
no_puppet_run: true
- ssl-keys-saving:
no_puppet_run: true
- upload_configuration:
type: upload_file
- firewall:
resources: []
- logging:
resources: []
- sync_time:
type: shell
- plugins_rsync:
resources:
- Exec[sync_time_shell]
- connectivity_tests:
resources: []
- configuration_symlink:
type: shell
- hosts:
resources: []
- copy_haproxy_keys:
type: copy_files
- ntp-client:
resources: []
- ssl-add-trust-chain:
no_puppet_run: true
- reserved_ports:
resources: []

View File

@ -0,0 +1,51 @@
controller:
cpu_pinning:
dpdk:
type: number
value: 1
nova:
type: number
value: 1
hugepages:
dpdk:
type: number
value: 128
nova:
type: custom_hugepages
value:
'1048576': 1
'2048': 550
mongo:
cpu_pinning:
dpdk:
type: number
value: 1
nova:
type: number
value: 1
hugepages:
dpdk:
type: number
value: 128
nova:
type: custom_hugepages
value:
'1048576': 1
'2048': 550
compute:
cpu_pinning:
dpdk:
type: number
value: 1
nova:
type: number
value: 1
hugepages:
dpdk:
type: number
value: 128
nova:
type: custom_hugepages
value:
'1048576': 1
'2048': 550

View File

@ -3,7 +3,7 @@ roles:
tasks: tasks:
- update_hosts: null - update_hosts: null
- clear_nodes_info: - clear_nodes_info:
type: shell type: skipped
- top-role-primary-mongo: null - top-role-primary-mongo: null
- copy_keys_ceph: - copy_keys_ceph:
type: copy_files type: copy_files
@ -22,8 +22,6 @@ tasks:
- dns-client: null - dns-client: null
- allocate_hugepages: null - allocate_hugepages: null
- plugins_setup_repositories: null - plugins_setup_repositories: null
- upload_provision_data:
type: false
- ssl-keys-saving: null - ssl-keys-saving: null
- upload_configuration: - upload_configuration:
type: upload_file type: upload_file

View File

@ -3,7 +3,7 @@ roles:
tasks: tasks:
- update_hosts: null - update_hosts: null
- clear_nodes_info: - clear_nodes_info:
type: shell type: skipped
- copy_keys_ceph: - copy_keys_ceph:
type: copy_files type: copy_files
- globals: null - globals: null
@ -21,8 +21,6 @@ tasks:
- dns-client: null - dns-client: null
- allocate_hugepages: null - allocate_hugepages: null
- plugins_setup_repositories: null - plugins_setup_repositories: null
- upload_provision_data:
type: false
- ssl-keys-saving: null - ssl-keys-saving: null
- upload_configuration: - upload_configuration:
type: upload_file type: upload_file

View File

@ -6,7 +6,7 @@ tasks:
type: skipped type: skipped
- openstack-network-common-config: null - openstack-network-common-config: null
- clear_nodes_info: - clear_nodes_info:
type: shell type: skipped
- openstack-network-agents-sriov: null - openstack-network-agents-sriov: null
- copy_keys_ceph: - copy_keys_ceph:
type: copy_files type: copy_files
@ -29,8 +29,6 @@ tasks:
- openstack-network-plugins-l2: null - openstack-network-plugins-l2: null
- allocate_hugepages: null - allocate_hugepages: null
- plugins_setup_repositories: null - plugins_setup_repositories: null
- upload_provision_data:
type: false
- ceph-compute: null - ceph-compute: null
- ssl-keys-saving: null - ssl-keys-saving: null
- sriov_iommu_check: null - sriov_iommu_check: null

View File

@ -136,7 +136,7 @@ tasks:
- openstack-network-start: - openstack-network-start:
type: skipped type: skipped
- clear_nodes_info: - clear_nodes_info:
type: shell type: skipped
- murano-db: - murano-db:
no_puppet_run: true no_puppet_run: true
- copy_keys_ceph: - copy_keys_ceph:
@ -157,8 +157,6 @@ tasks:
- enable_quorum: - enable_quorum:
type: shell type: shell
- openstack-haproxy-nova: null - openstack-haproxy-nova: null
- upload_provision_data:
type: false
- openstack-network-server-config: null - openstack-network-server-config: null
- primary-database: - primary-database:
skip: skip:

View File

@ -0,0 +1,62 @@
tasks:
- update_hosts:
resources: []
- clear_nodes_info:
type: skipped
- copy_keys_ceph:
type: copy_files
- globals:
resources: []
- fuel_pkgs:
resources: []
- tools:
resources: []
- rsync_core_puppet:
type: sync
- cgroups:
resources: []
- upload_nodes_info:
type: skipped
- copy_keys:
type: copy_files
- override_configuration:
resources: []
- setup_repositories:
resources: []
- dns-client:
resources: []
- allocate_hugepages:
resources: []
- plugins_setup_repositories:
no_puppet_run: true
- ssl-keys-saving:
no_puppet_run: true
- upload_configuration:
type: upload_file
- firewall:
resources: []
- top-role-ceph-osd:
resources: []
- logging:
resources: []
- updatedb:
no_puppet_run: true
- sync_time:
type: shell
- plugins_rsync:
resources:
- Exec[sync_time_shell]
- connectivity_tests:
resources: []
- configuration_symlink:
type: shell
- hosts:
resources: []
- copy_haproxy_keys:
type: copy_files
- ntp-client:
resources: []
- ssl-add-trust-chain:
no_puppet_run: true
- reserved_ports:
resources: []

View File

@ -0,0 +1,427 @@
access:
email:
type: text
value: admin_upd@localhost
password:
type: password
value: admin
tenant:
type: text
value: admin
user:
type: text
value: admin
additional_components:
ceilometer:
type: checkbox
value: false
heat:
type: hidden
value: false
ironic:
type: checkbox
value: false
mongo:
type: checkbox
value: false
murano:
type: checkbox
value: false
murano-cfapi:
type: checkbox
value: false
murano_glance_artifacts_plugin:
type: checkbox
value: false
sahara:
type: checkbox
value: false
common:
auth_key:
type: hidden
value: ''
auto_assign_floating_ip:
type: checkbox
value: true
debug:
type: checkbox
value: false
libvirt_type:
type: radio
value: qemu
nova_quota:
type: checkbox
value: true
propagate_task_deploy:
type: hidden
value: false
puppet_debug:
type: checkbox
value: false
resume_guests_state_on_host_boot:
type: checkbox
value: false
task_deploy:
type: hidden
value: true
use_cow_images:
type: checkbox
value: true
use_vcenter:
type: hidden
value: false
corosync:
group:
type: text
value: 226.94.1.1
port:
type: text
value: '12000'
verified:
type: checkbox
value: false
external_mongo:
hosts_ip:
type: text
value: ''
mongo_db_name:
type: text
value: ceilometer
mongo_password:
type: password
value: ceilometer
mongo_replset:
type: text
value: ''
mongo_user:
type: text
value: ceilometer
kernel_params:
kernel:
type: text
value: console=tty0 net.ifnames=0 biosdevname=0 rootdelay=90 nomodeset
murano_settings:
murano_repo_url:
type: text
value: http://storage.apps.openstack.org/
neutron_advanced_configuration:
neutron_dvr:
type: checkbox
value: false
neutron_l2_pop:
type: checkbox
value: false
neutron_l3_ha:
type: checkbox
value: false
neutron_qos:
type: checkbox
value: false
operator_user:
authkeys:
type: textarea
value: ''
homedir:
type: text
value: /home/fueladmin
name:
type: text
value: fueladmin
password:
type: password
value: xalFdhQSGrB7xgdPrPiM3vZm
sudo:
type: textarea
value: 'ALL=(ALL) NOPASSWD: ALL'
provision:
method:
type: hidden
value: image
packages:
type: textarea
value: 'acl
anacron
bash-completion
bridge-utils
bsdmainutils
build-essential
cloud-init
curl
daemonize
debconf-utils
gdisk
grub-pc
hpsa-dkms
hwloc
i40e-dkms
linux-firmware
linux-firmware-nonfree
linux-headers-generic-lts-trusty
linux-image-generic-lts-trusty
lvm2
mcollective
mdadm
multipath-tools
multipath-tools-boot
nailgun-agent
nailgun-mcagents
network-checker
ntp
openssh-client
openssh-server
puppet
python-amqp
ruby-augeas
ruby-ipaddress
ruby-json
ruby-netaddr
ruby-openstack
ruby-shadow
ruby-stomp
telnet
ubuntu-minimal
ubuntu-standard
uuid-runtime
vim
virt-what
vlan
'
public_network_assignment:
assign_to_all_nodes:
type: checkbox
value: false
public_ssl:
cert_data:
type: file
value:
content: '-----BEGIN CERTIFICATE-----
MIIC7TCCAdUCAgPoMA0GCSqGSIb3DQEBBQUAMDwxHjAcBgNVBAsMFU1pcmFudGlz
IEZ1ZWwtUUEgVGVhbTEaMBgGA1UEAwwRcHVibGljLmZ1ZWwubG9jYWwwHhcNMTYw
NDE5MTkxMTU1WhcNMjYwNDE3MTkxMTU1WjA8MR4wHAYDVQQLDBVNaXJhbnRpcyBG
dWVsLVFBIFRlYW0xGjAYBgNVBAMMEXB1YmxpYy5mdWVsLmxvY2FsMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZBouZH+0S1jPYy+FxvNAkdGxsNVzsOI
g7OybWx+DIskdRvONwrCFFtvP2InKJowPCebGcCqDqGF2zgFLmA9yQN/05A9f8bX
hFrtjfNb/YYJxDE4itSYNgSzSfnitii7AJme9UBw94s0p3749irGTB++ZhcPzwdg
Nx0Ymk2uFFNU18YxSx8PAk2w73a36t61E0P++MT6sYIM1GAx+9pm9Ddrj5r0b/M7
ikHGIUuB7M6t3mNHUveld+ZyXjaONMHZI5WQ16AMZwtHunUu/42k+o6RSS4h+zT8
ZiWW5cxZVLn6xqJkDkXMDdsS7PrveSuODq3LuaG4fwRpf1u2hqvyuwIDAQABMA0G
CSqGSIb3DQEBBQUAA4IBAQBfAjtVxKItKMFAQl/EufHjk4rBpRiaHGLH2CIJHWJ1
i+z7gI5XazzwMCprOxsCUrJUpr8ChobenyebNPJSnDI0R0z8ZTX6kTNk7A2ZFVrp
lL5TlpwhdtUjWxF3Coi+w694MbyLmJ4pA6QZTYVqSilZZ1cncLNA+Fc97STfLukK
wqjwCYovRVjUn4jLRjy2kcw89060xxZopVpkY9cPfg0P+PICo/eS4EunQ5rd/EDV
7DBfCbzthArBjF8/72J8PYhqwEc+i5PDkn2CNIXoT0coxC9YAHJ+zFHgxHnKa0/q
TPlvi+wJKrrSnXb5Oc34tVOxDF/WQjNuve8vHg7hvaIM
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQChkGi5kf7RLWM9
jL4XG80CR0bGw1XOw4iDs7JtbH4MiyR1G843CsIUW28/YicomjA8J5sZwKoOoYXb
OAUuYD3JA3/TkD1/xteEWu2N81v9hgnEMTiK1Jg2BLNJ+eK2KLsAmZ71QHD3izSn
fvj2KsZMH75mFw/PB2A3HRiaTa4UU1TXxjFLHw8CTbDvdrfq3rUTQ/74xPqxggzU
YDH72mb0N2uPmvRv8zuKQcYhS4Hszq3eY0dS96V35nJeNo40wdkjlZDXoAxnC0e6
dS7/jaT6jpFJLiH7NPxmJZblzFlUufrGomQORcwN2xLs+u95K44Orcu5obh/BGl/
W7aGq/K7AgMBAAECggEAI6RyFg5JQuhabmewP/TYI1qKGKtbMMQeR7/K6yz2GdpQ
bq11rtrmugr53efPb7ukTIEITIQegB/OIfCX5AVDXCczef7mMlwxi3dr1NcNQj7h
xLB/ItGHytL6oqVICJuvtZAuaziOM244bYMrdVM2b/DI1kjcKfYcmcwHc3MTplPq
Nh+L5u2ue6bYvT+XRF4KrwuKmKuyJghyMeoiLI9JupkKw79ZB/l0Mh8vmxKMPj8g
MNxoJbwoTkjQxuJELmet+ysBg2KT+gJEirfRmZiouDxx8Zukd8O6YvnlsOiRFokX
05r33fna1z5IBpGnwe+rn6pQaeXflSd6dqotoBp4QQKBgQDLrhAdsZnDXDpYuOv+
ITMpc33J4NW7yE+26ebzWkLYRUW5i7YDCtJdFi5pHCeA3+QD3RlYiinQlzcy3i3R
4Uv4riuKyDbgaw9sYOhmgluhPKDuznEWXomloEVu8jFrHg3TKY2v/GCcv99N5grQ
Jg9rScFpZXkTj23KzqHf23uTEQKBgQDLENH7QzoNsBv6eS7kElBx3BQWNa0dhXab
kRXo62/++tIDGMkzaq38hsjcAZi8uZDZY0QJTmBMdZN3LLBln5C2g8Y6Eym5ITvf
pxkMUK0++MygbK/Vwmp+xu7XMiPNMG/E8NqQkca3F/6Ld08PAauZ8gpgoAsnjlNg
pPUdWRCRCwKBgEiEB17bDXidjHRsGjFXVqTKZp2Ke+4oaiEgc8Zue2AOgb2GvV2l
67GSpSFtEa9zhvXNMSnxvuNyAwgMTFnuEaNPN1do4wjRdSNL+VIN1Vu5fz6mp2Kk
c/NQ9YeDmQ6fG6Lzp2thum/0bCeK4IytEE5NaxwAMbRCG3/aQ4200fFRAoGAMwg5
HSIZ9tKpVVsbE6oemV6rlaFLrj2aPyJJFU4FyViTar/R4KAQtYPR+qhUECm6Y0d1
E7mkrdJmiu6qLf/ZyGR5bqLeO25Es8I0o0mrIEY6dp6Z2eiQBuhLob0yDiD8FcxJ
wUdBX0YibD5Bmg3baEbRoNLXussj3QfXqdZ2OV0CgYEAyovcXc1ibwrwNO59yw99
7zCoMFjXzZgtxn5JQDwMsdt9UKd/4nOPbbiRPL3ynr5zboDZzRxihXB5zzKjrYlE
o4QZIWV0VgGS2eQSni3CGOsG4VhE4/9EFF7UqeA0hYkGAZMS+EKSdPpIujStD/ck
sQ/BZiYxMSE8+synlzp3gss=
-----END PRIVATE KEY-----
'
name: ca.pem
cert_source:
type: radio
value: user_uploaded
horizon:
type: checkbox
value: false
hostname:
type: text
value: public.fuel.local
services:
type: checkbox
value: false
service_user:
homedir:
type: hidden
value: /var/lib/fuel
name:
type: hidden
value: fuel
password:
type: hidden
value: WEwz5aKA0hYDrcERjX7irQzS
root_password:
type: hidden
value: r00tme
sudo:
type: hidden
value: 'ALL=(ALL) NOPASSWD: ALL'
storage:
admin_key:
type: hidden
value: AQDzghZXAAAAABAA7obspvgNjPa/HBWSOUzI1w==
bootstrap_osd_key:
type: hidden
value: AQDzghZXAAAAABAAWaiWslWwse+hsaKLzbtQFw==
ephemeral_ceph:
type: checkbox
value: false
fsid:
type: hidden
value: 4b0ab6f5-b82b-44e4-ac3a-15c76f960b82
images_ceph:
type: checkbox
value: false
images_vcenter:
type: checkbox
value: false
mon_key:
type: hidden
value: AQDzghZXAAAAABAAVi1udBHvkQbZbDgNnT7gXA==
objects_ceph:
type: checkbox
value: false
osd_pool_size:
type: text
value: '3'
radosgw_key:
type: hidden
value: AQDzghZXAAAAABAA8jY8KftsCK4l726rNdu/Zg==
volumes_block_device:
type: checkbox
value: true
volumes_ceph:
type: checkbox
value: false
volumes_lvm:
type: checkbox
value: true
syslog:
syslog_port:
type: text
value: '514'
syslog_server:
type: text
value: ''
syslog_transport:
type: radio
value: tcp
workloads_collector:
enabled:
type: hidden
value: false
password:
type: password
value: 8qtWdXhhY84wFoxwBbZcpq3P
tenant:
type: text
value: services
user:
type: text
value: fuel_stats_user

View File

@ -0,0 +1,89 @@
tasks:
- update_hosts:
resources: []
- openstack-network-start:
type: skipped
- openstack-network-common-config:
resources: []
- clear_nodes_info:
type: skipped
- openstack-network-agents-sriov:
resources: []
- copy_keys_ceph:
type: copy_files
- globals:
resources: []
- fuel_pkgs:
resources: []
- openstack-network-agents-l3:
resources: []
- openstack-network-agents-metadata:
resources: []
- tools:
resources: []
- rsync_core_puppet:
type: sync
- enable_nova_compute_service:
resources: []
- cgroups:
resources: []
- upload_nodes_info:
type: skipped
- copy_keys:
type: copy_files
- override_configuration:
resources: []
- setup_repositories:
resources: []
- dns-client:
resources: []
- openstack-network-plugins-l2:
resources: []
- allocate_hugepages:
resources: []
- plugins_setup_repositories:
no_puppet_run: true
- ceph-compute:
no_puppet_run: true
- ssl-keys-saving:
no_puppet_run: true
- sriov_iommu_check:
resources:
- Exec[sriov_iommu_check]
- openstack-network-end:
type: skipped
- ceilometer-compute:
no_puppet_run: true
- upload_configuration:
type: upload_file
- firewall:
resources: []
- logging:
resources: []
- top-role-compute:
resources:
- Notify[Module openstack_tasks cannot notify service nova-compute on packages
update]
- Nova_config[DEFAULT/resume_guests_state_on_host_boot]
- Nova_config[vnc/novncproxy_base_url]
- Service[nova-compute]
- sync_time:
type: shell
- openstack-network-compute-nova:
resources: []
- plugins_rsync:
no_puppet_run: true
- connectivity_tests:
resources: []
- configuration_symlink:
type: shell
- hosts:
resources: []
- copy_haproxy_keys:
type: copy_files
- ntp-client:
resources: []
- ssl-add-trust-chain:
no_puppet_run: true
- reserved_ports:
resources: []

View File

@ -0,0 +1,410 @@
tasks:
- ironic_post_swift_key:
type: shell
- openstack-haproxy-mysqld:
resources: []
- cinder-db:
resources: []
- dump_rabbitmq_definitions:
resources:
- Dump_rabbitmq_definitions[/etc/rabbitmq/definitions.full]
- rsync_core_puppet:
type: sync
- ssl-dns-setup:
resources:
- Exec[rsync_core_puppet_shell]
- ceilometer-controller:
no_puppet_run: true
- override_configuration:
resources: []
- ceilometer-keystone:
no_puppet_run: true
- nova-db:
resources: []
- workloads_collector_add:
resources: []
- primary-openstack-network-plugins-l2:
resources: []
- radosgw-keystone:
resources: []
- virtual_ips:
resources: []
- primary-dns-server:
resources: []
- openstack-haproxy-murano:
resources: []
- openstack-network-end:
type: skipped
- openstack-haproxy-radosgw:
resources: []
- openstack-haproxy-swift:
resources: []
- heat-db:
resources: []
- openstack-haproxy-neutron:
resources: []
- updatedb:
no_puppet_run: true
- ironic-db:
no_puppet_run: true
- plugins_rsync:
no_puppet_run: true
- ceilometer-radosgw-user:
no_puppet_run: true
- openstack-haproxy-keystone:
resources: []
- hosts:
resources: []
- primary-rabbitmq:
resources: []
- primary-cluster-haproxy:
resources: []
- openstack-network-routers:
resources: []
- reserved_ports:
resources: []
- controller_remaining_tasks:
resources: []
- glance-keystone:
resources: []
- openstack-haproxy-aodh:
resources: []
- murano-cfapi:
no_puppet_run: true
- vmware-vcenter:
no_puppet_run: true
- ironic-compute:
no_puppet_run: true
- primary-openstack-network-agents-metadata:
resources: []
- cinder-keystone:
resources: []
- copy_keys:
type: copy_files
- enable_rados:
no_puppet_run: true
- ntp-check:
resources: []
- aodh-db:
no_puppet_run: true
- disable_keystone_service_token:
resources: []
- umm:
resources: []
- memcached:
resources: []
- allocate_hugepages:
resources: []
- openrc-delete:
resources:
- File[/root/openrc]
- plugins_setup_repositories:
no_puppet_run: true
- sahara-keystone:
no_puppet_run: true
- openstack-haproxy-sahara:
resources: []
- ssl-keys-saving:
no_puppet_run: true
- primary-cluster:
resources: []
- upload_cirros:
type: shell
- primary-keystone:
resources:
- File[/root/openrc]
- primary-openstack-network-agents-l3:
resources: []
- upload_configuration:
type: upload_file
- create-cinder-types:
resources: []
- neutron-keystone:
resources:
- Keystone_endpoint[RegionOne/neutron::network]
- logging:
resources: []
- nova-keystone:
resources:
- Keystone_endpoint[RegionOne/nova::compute]
- Keystone_endpoint[RegionOne/novav3::computev3]
- update_hosts:
resources: []
- ironic-keystone:
no_puppet_run: true
- connectivity_tests:
resources: []
- swift-storage:
resources: []
- primary-heat:
resources:
- Heat_config[keystone_authtoken/auth_uri]
- conntrackd:
resources: []
- sahara-db:
no_puppet_run: true
- horizon:
resources:
- File[/var/lib/puppet/concat/_etc_openstack-dashboard_local_settings.py/fragments/50_local_settings.py]
- File[/etc/openstack-dashboard/local_settings.py]
- Exec[concat_/etc/openstack-dashboard/local_settings.py]
- openstack-haproxy-ceilometer:
resources: []
- openstack-network-common-config:
resources: []
- firewall:
resources: []
- apache:
resources: []
- globals:
resources:
- File[/etc/hiera/globals.yaml]
- aodh-keystone:
no_puppet_run: true
- glance:
resources:
- Glance_swift_config[ref1/user]
- Glance_glare_config[glance_store/swift_store_create_container_on_put]
- Glance_glare_config[glance_store/swift_store_config_file]
- Package[swift]
- Glance_api_config[glance_store/default_store]
- Glance_api_config[glance_store/swift_store_create_container_on_put]
- Glance_swift_config[ref1/auth_address]
- Glance_api_config[glance_store/swift_store_endpoint_type]
- Glance_glare_config[DEFAULT/default_log_levels]
- Glance_api_config[glance_store/stores]
- Glance_cache_config[DEFAULT/image_cache_max_size]
- Glance_glare_config[glance_store/default_store]
- Glance_registry_config[DEFAULT/default_log_levels]
- Glance_api_config[DEFAULT/default_log_levels]
- Glance_glare_config[glance_store/swift_store_region]
- Glance_cache_config[DEFAULT/debug]
- Glance_glare_config[glance_store/swift_store_endpoint_type]
- Glance_api_config[DEFAULT/debug]
- Glance_glare_config[DEFAULT/debug]
- Glance_api_config[glance_store/swift_store_config_file]
- Glance_api_config[DEFAULT/show_image_direct_url]
- Glance_glare_config[glance_store/stores]
- Glance_api_config[glance_store/default_swift_reference]
- Glance_glare_config[glance_store/swift_store_large_object_size]
- Glance_registry_config[DEFAULT/debug]
- Glance_api_config[glance_store/swift_store_large_object_size]
- Glance_glare_config[glance_store/default_swift_reference]
- Glance_swift_config[ref1/key]
- Glance_glare_config[glance_store/swift_store_container]
- Glance_api_config[glance_store/swift_store_container]
- Glance_api_config[glance_store/swift_store_region]
- tools:
resources: []
- openstack-haproxy:
resources: []
- cgroups:
resources: []
- murano-cfapi-keystone:
no_puppet_run: true
- aodh:
no_puppet_run: true
- ceph_create_pools:
no_puppet_run: true
- openstack-haproxy-ironic:
no_puppet_run: true
- setup_repositories:
resources: []
- openstack-network-routers-ha:
no_puppet_run: true
- glance-db:
resources: []
- neutron-db:
resources: []
- ironic_upload_images:
type: shell
- swift-rebalance-cron:
resources:
- File[/usr/local/bin/swift-rings-rebalance.sh]
- Cron[swift-rings-rebalance]
- primary-ceph-mon:
resources: []
- openstack-haproxy-stats:
resources: []
- ironic-api:
no_puppet_run: true
- primary-ceph-radosgw:
resources: []
- dns-client:
resources: []
- cluster-vrouter:
resources: []
- murano-rabbitmq:
no_puppet_run: true
- api-proxy:
resources: []
- cluster_health:
resources: []
- heat-keystone:
resources:
- Keystone_endpoint[RegionOne/heat-cfn::cloudformation]
- Keystone_endpoint[RegionOne/heat::orchestration]
- openstack-haproxy-horizon:
resources:
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/00_horizon_listen_block]
- File[/etc/haproxy/conf.d/015-horizon.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/01-horizon_horizon_balancermember_horizon]
- Exec[concat_/etc/haproxy/conf.d/015-horizon.cfg]
- openstack-network-start:
type: skipped
- clear_nodes_info:
type: skipped
- murano-db:
resources:
- Exec[clear_nodes_info_shell]
- copy_keys_ceph:
type: copy_files
- sahara:
no_puppet_run: true
- fuel_pkgs:
resources: []
- swift-keystone:
resources:
- Keystone_role[SwiftOperator]
- Keystone_user[swift]
- Keystone_endpoint[RegionOne/swift::object-store]
- Keystone_user_role[swift@services]
- Keystone_service[swift_s3::s3]
- Keystone_endpoint[RegionOne/swift_s3::s3]
- public_vip_ping:
resources: []
- upload_nodes_info:
type: skipped
- openstack-haproxy-glance:
resources:
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_080-glance-api.cfg/fragments/00_glance-api_listen_block]
- Exec[concat_/etc/haproxy/conf.d/080-glance-api.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_081-glance-glare.cfg/fragments/00_glance-glare_listen_block]
- File[/etc/haproxy/conf.d/080-glance-api.cfg]
- Exec[concat_/etc/haproxy/conf.d/081-glance-glare.cfg]
- File[/etc/haproxy/conf.d/081-glance-glare.cfg]
- murano:
no_puppet_run: true
- ceph_ready_check:
type: shell
- enable_quorum:
type: shell
- openstack-haproxy-nova:
resources:
- File[/etc/haproxy/conf.d/040-nova-api.cfg]
- File[/etc/haproxy/conf.d/170-nova-novncproxy.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_040-nova-api.cfg/fragments/00_nova-api_listen_block]
- Exec[concat_/etc/haproxy/conf.d/040-nova-api.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_170-nova-novncproxy.cfg/fragments/00_nova-novncproxy_listen_block]
- Exec[concat_/etc/haproxy/conf.d/170-nova-novncproxy.cfg]
- openstack-network-server-config:
resources: []
- primary-database:
resources:
- File[/root/.my.cnf]
- vcenter_compute_zones_create:
type: shell
- openstack-haproxy-cinder:
resources:
- File[/etc/haproxy/conf.d/070-cinder-api.cfg]
- Exec[concat_/etc/haproxy/conf.d/070-cinder-api.cfg]
- File[/var/lib/puppet/concat/_etc_haproxy_conf.d_070-cinder-api.cfg/fragments/00_cinder-api_listen_block]
- ntp-server:
resources: []
- murano-keystone:
no_puppet_run: true
- primary-openstack-network-agents-dhcp:
resources:
- Neutron_dhcp_agent_config[DEFAULT/debug]
- openstack-haproxy-heat:
resources: []
- primary-openstack-controller:
resources:
- Nova_config[DEFAULT/quota_driver]
- Nova_config[DEFAULT/debug]
- Nova_config[DEFAULT/default_log_levels]
- openstack-cinder:
resources:
- Cinder_config[DEFAULT/scheduler_default_filters]
- Cinder_config[DEFAULT/default_log_levels]
- Cinder_config[DEFAULT/debug]
- keystone-db:
resources:
- File[/root/.my.cnf]
- sync_time:
type: shell
- configuration_symlink:
type: shell
- openstack-network-server-nova:
resources: []
- copy_haproxy_keys:
type: copy_files
- primary-swift-proxy:
resources:
- Swift_dispersion_config[dispersion/dispersion_coverage]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/81_swift_container_quotas]
- Ring_account_device[10.109.2.2:6002/1]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf]
- File[/etc/swift/dispersion.conf]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/31_swift-proxy-formpost]
- Package[swift-proxy]
- Exec[create_account]
- Swift_dispersion_config[dispersion/auth_url]
- Swift_dispersion_config[dispersion/dump_json]
- Ring_container_device[10.109.2.2:6001/2]
- File[/var/lib/swift]
- File[/etc/xinetd.d/rsync]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/00_swift_proxy]
- Swift_dispersion_config[dispersion/concurrency]
- File[/etc/swift/swift.conf]
- Swift_config[swift-hash/swift_hash_path_suffix]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/25_swift_healthcheck]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/80_swift_account_quotas]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/35_swift_slo]
- Swift_dispersion_config[dispersion/retries]
- File[/var/cache/swift]
- File[/etc/swift/proxy-server.conf]
- Package[swift-plugin-s3]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_server_frag-swift_server]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/24_swift_catch_errors]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/28_swift_s3token]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/35_swift_crossdomain]
- File[/var/run/swift]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments.concat]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/29_swift-proxy-tempurl]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/26_swift_ratelimit]
- Swift_dispersion_config[dispersion/auth_user]
- Swift_dispersion_config[dispersion/endpoint_type]
- Exec[create_object]
- Ring_object_device[10.109.2.2:6000/1]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf]
- Swift_dispersion_config[dispersion/auth_key]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments.concat.out]
- Exec[create_container]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/23_swift_cache]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/32_swift-proxy-staticweb]
- Swift_dispersion_config[dispersion/auth_version]
- Exec[concat_/etc/swift/proxy-server.conf]
- Ring_object_device[10.109.2.2:6000/2]
- Exec[concat_/etc/rsyncd.conf]
- Service[swift-proxy-server]
- Swift_dispersion_config[dispersion/swift_dir]
- File[/etc/rsyncd.conf]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/79_swift_keystone]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/00_header_rsyncd_conf_header]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/27_swift_swift3]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments.concat]
- Ring_account_device[10.109.2.2:6002/2]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/22_swift_authtoken]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments]
- Ring_container_device[10.109.2.2:6001/1]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_backups_frag-swift_backups]
- Swift_config[swift-constraints/max_header_size]
- File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments.concat.out]
- File[/etc/swift]
- File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/21_swift_bulk]
- openstack-network-networks:
resources: []
- ssl-add-trust-chain:
no_puppet_run: true

View File

@ -0,0 +1,51 @@
controller:
cpu_pinning:
dpdk:
type: number
value: 1
nova:
type: number
value: 1
hugepages:
dpdk:
type: number
value: 128
nova:
type: custom_hugepages
value:
'1048576': 1
'2048': 550
ceph-osd:
cpu_pinning:
dpdk:
type: number
value: 1
nova:
type: number
value: 1
hugepages:
dpdk:
type: number
value: 128
nova:
type: custom_hugepages
value:
'1048576': 1
'2048': 550
compute:
cpu_pinning:
dpdk:
type: number
value: 1
nova:
type: number
value: 1
hugepages:
dpdk:
type: number
value: 128
nova:
type: custom_hugepages
value:
'1048576': 1
'2048': 550

View File

@ -0,0 +1,324 @@
# Copyright 2016 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import yaml
from proboscis.asserts import assert_true
from proboscis import test
from fuelweb_test.helpers.decorators import log_snapshot_after_test
from fuelweb_test.helpers.ssh_manager import SSHManager
from fuelweb_test import logger
from fuelweb_test.tests.tests_lcm.base_lcm_test import DeprecatedFixture
from fuelweb_test.tests.tests_lcm.base_lcm_test import LCMTestBasic
from fuelweb_test.tests.tests_lcm.base_lcm_test import SetupLCMEnvironment
@test(groups=['test_ensurability'])
class TaskEnsurability(LCMTestBasic):
"""Test suite for verification of deployment tasks ensurability."""
@staticmethod
def delete_astute_log():
"""Delete astute.log file(s) on master node.
This is to ensure that no unwanted tasks are used by tests (e.g. from
previous deployments).
:return: None
"""
ssh = SSHManager()
ssh.execute_on_remote(ssh.admin_ip, "rm /var/log/astute/astute*")
ssh.execute_on_remote(ssh.admin_ip, "systemctl restart astute.service")
def deploy_fixtures(self, deployment, cluster_id, slave_nodes):
"""Apply stored settings and deploy the changes
:param deployment: str, name of cluster configuration under test
:param cluster_id: int, cluster ID
:param slave_nodes: list, cluster nodes data
:return: None
"""
self.delete_astute_log()
cluster_f, nodes_f = self.load_settings_fixtures(deployment)
self.fuel_web.client.update_cluster_attributes(
cluster_id, {'editable': cluster_f})
for node in slave_nodes:
self.fuel_web.client.upload_node_attributes(
nodes_f[self.node_roles(node)], node["id"])
self.fuel_web.deploy_cluster_changes_wait(cluster_id)
def generate_tasks_fixture(self, deployment, cluster_id, slave_nodes):
"""Collect per-node fixtures for tasks executed on deploying changes
:param deployment: str, name of env configuration under test
:param cluster_id: int, cluster ID
:param slave_nodes: list, cluster nodes data
:return: None
"""
# For each node get list of tasks executed during end-to-end redeploy
tasks = {}
for node in slave_nodes:
tasks[self.node_roles(node)] = self.get_nodes_tasks(node["id"])
# Revert snapshot and collect fixtures for the executed tasks
# by running each one separately
self.env.revert_snapshot('lcm_deploy_{}'.format(deployment))
cluster_f, _ = self.load_settings_fixtures(deployment)
self.fuel_web.client.update_cluster_attributes(
cluster_id, {'editable': cluster_f})
result = {}
tasks_description = self.env.admin_actions.get_tasks_description()
for node in slave_nodes:
task_fixture = []
node_ref = self.node_roles(node)
for task in tasks[node_ref]:
self.fuel_web.execute_task_on_node(
task, node['id'], cluster_id)
task_type = self.get_task_type(tasks_description, task)
if task_type != "puppet":
logger.info(
"Executed non-puppet {0} task on node {1}; skip "
"collecting fixture for it".format(task, node['id']))
task_fixture.append({task: {"type": task_type}})
continue
try:
report = self.get_puppet_report(node)
except AssertionError:
task_fixture.append({task: {"no_puppet_run": True}})
logger.info("Unexpected no_puppet_run for task: "
"{}".format(task))
continue
# Remember resources that were changed by the task
task_resources = []
for res_name, res_stats in report['resource_statuses'].items():
if res_stats['changed']:
logger.info("Task {} changed resource(s): "
"{}".format(task, res_name))
task_resources.append(res_name)
task_fixture.append({task: {"resources": task_resources}})
logger.info("Task {} on node {} was executed "
"successfully".format(task, node['id']))
result.update({
node_ref: {
"tasks": task_fixture
}
})
logger.info("Generated tasks fixture:\n{}".format(
yaml.safe_dump(result, default_flow_style=False)))
def check_ensurability(self, deployment, cluster_id, slave_nodes):
"""Check ensurability of tasks for the given env configuration.
:param deployment: str, name of env configuration under test
:param cluster_id: int, cluster ID
:param slave_nodes: list, cluster nodes data
:return: None
"""
# Revert snapshot to run each task separately
self.env.revert_snapshot('lcm_deploy_{}'.format(deployment))
# Apply the stored settings
cluster_f, nodes_f = self.load_settings_fixtures(deployment)
for node in slave_nodes:
self.fuel_web.client.upload_node_attributes(
nodes_f[self.node_roles(node)], node["id"])
self.fuel_web.client.update_cluster_attributes(
cluster_id, {'editable': cluster_f})
result = {}
ensurable = True
for node in slave_nodes:
fixture = self.load_fixture(
deployment, self.node_roles(node), idmp=False)
nonensurable_tasks = {}
for task in fixture["tasks"]:
task_name, task_data = task.items()[0]
self.fuel_web.execute_task_on_node(
task_name, node['id'], cluster_id)
if task_data["type"] != "puppet":
logger.info(
"Executed non-puppet {0} task on node {1}; skip "
"checks for it".format(task_name, node['id']))
continue
try:
report = self.get_puppet_report(node)
except AssertionError:
if not task_data.get("no_puppet_run"):
logger.info("Unexpected no_puppet_run for task: "
"{}".format(task_name))
continue
task_resources = []
for res_name, res_stats in report['resource_statuses'].items():
if res_stats['changed']:
logger.info("Task {} changed resource: "
"{}".format(task_name, res_name))
task_resources.append(res_name)
expected_resources = task_data["resources"]
if sorted(task_resources) != sorted(expected_resources):
ensurable = False
logger.info("Task {} was executed on node {} and is not "
"ensurable".format(task_name, node['id']))
nonensurable_tasks.update({
task_name: {
"actual": task_resources,
"expected": expected_resources
}
})
else:
logger.info("Task {} on node {} was executed "
"successfully".format(task_name, node['id']))
result[self.node_roles(node)] = nonensurable_tasks
logger.info('Non-ensurable tasks:\n{}'.format(
yaml.safe_dump(result, default_flow_style=False)))
return ensurable
@test(depends_on=[SetupLCMEnvironment.lcm_deploy_1_ctrl_1_cmp_1_cinder],
groups=['ensurability_1_ctrl_1_cmp_1_cinder'])
@log_snapshot_after_test
def ensurability_1_ctrl_1_cmp_1_cinder(self):
"""Test ensurability for cluster with cinder
Scenario:
1. Revert the snapshot 'lcm_deploy_1_ctrl_1_cmp_1_cinder'
2. Check that stored setting fixtures are up to date
3. Check that stored task fixtures are up to date
4. Check ensurability of the tasks
Snapshot: "ensurability_1_ctrl_1_cmp_1_cinder"
"""
self.show_step(1)
deployment = "1_ctrl_1_cmp_1_cinder"
self.env.revert_snapshot('lcm_deploy_{}'.format(deployment))
cluster_id = self.fuel_web.get_last_created_cluster()
slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
self.show_step(2)
self.check_settings_consistency(deployment, cluster_id)
self.show_step(3)
self.deploy_fixtures(deployment, cluster_id, slave_nodes)
node_refs = self.check_extra_tasks(slave_nodes, deployment, idmp=False)
if node_refs:
self.generate_tasks_fixture(deployment, cluster_id, slave_nodes)
msg = ('Please update ensurability fixtures in the repo '
'according to generated fixtures')
raise DeprecatedFixture(msg)
self.show_step(4)
assert_true(
self.check_ensurability(deployment, cluster_id, slave_nodes),
"There are not ensurable tasks. "
"Please take a look at the output above!")
self.env.make_snapshot('ensurability_{}'.format(deployment))
@test(depends_on=[SetupLCMEnvironment.lcm_deploy_1_ctrl_1_cmp_1_mongo],
groups=['ensurability_1_ctrl_1_cmp_1_mongo'])
@log_snapshot_after_test
def ensurability_1_ctrl_1_cmp_1_mongo(self):
"""Test ensurability for cluster with mongo
Scenario:
1. Revert the snapshot 'lcm_deploy_1_ctrl_1_cmp_1_mongo'
2. Check that stored setting fixtures are up to date
3. Check that stored task fixtures are up to date
4. Check ensurability of the tasks
Snapshot: "ensurability_1_ctrl_1_cmp_1_mongo"
"""
self.show_step(1)
deployment = "1_ctrl_1_cmp_1_mongo"
self.env.revert_snapshot('lcm_deploy_{}'.format(deployment))
cluster_id = self.fuel_web.get_last_created_cluster()
slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
self.show_step(2)
self.check_settings_consistency(deployment, cluster_id)
self.show_step(3)
self.deploy_fixtures(deployment, cluster_id, slave_nodes)
node_refs = self.check_extra_tasks(slave_nodes, deployment, idmp=False)
if node_refs:
self.generate_tasks_fixture(deployment, cluster_id, slave_nodes)
msg = ('Please update ensurability fixtures in the repo '
'according to generated fixtures')
raise DeprecatedFixture(msg)
self.show_step(4)
assert_true(
self.check_ensurability(deployment, cluster_id, slave_nodes),
"There are not ensurable tasks. "
"Please take a look at the output above!")
self.env.make_snapshot('ensurability_{}'.format(deployment))
@test(depends_on=[SetupLCMEnvironment.lcm_deploy_1_ctrl_1_cmp_3_ceph],
groups=['ensurability_1_ctrl_1_cmp_3_ceph'])
@log_snapshot_after_test
def ensurability_1_ctrl_1_cmp_3_ceph(self):
"""Test ensurability for cluster with ceph
Scenario:
1. Revert the snapshot 'lcm_deploy_1_ctrl_1_cmp_3_ceph'
2. Check that stored setting fixtures are up to date
3. Check that stored task fixtures are up to date
4. Check ensurability of the tasks
Snapshot: "ensurability_1_ctrl_1_cmp_3_ceph"
"""
self.show_step(1)
deployment = "1_ctrl_1_cmp_3_ceph"
self.env.revert_snapshot('lcm_deploy_{}'.format(deployment))
cluster_id = self.fuel_web.get_last_created_cluster()
slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
self.show_step(2)
self.check_settings_consistency(deployment, cluster_id)
self.show_step(3)
self.deploy_fixtures(deployment, cluster_id, slave_nodes)
node_refs = self.check_extra_tasks(slave_nodes, deployment, idmp=False)
if node_refs:
self.generate_tasks_fixture(deployment, cluster_id, slave_nodes)
msg = ('Please update ensurability fixtures in the repo '
'according to generated fixtures')
raise DeprecatedFixture(msg)
self.show_step(4)
assert_true(
self.check_ensurability(deployment, cluster_id, slave_nodes),
"There are not ensurable tasks. "
"Please take a look at the output above!")
self.env.make_snapshot('ensurability_{}'.format(deployment))

View File

@ -56,7 +56,8 @@ class TaskIdempotency(LCMTestBasic):
.format(task_name)) .format(task_name))
continue continue
self.execute_task_on_node(task_name, node, cluster_id) self.fuel_web.execute_task_on_node(task_name, node["id"],
cluster_id)
try: try:
report = self.get_puppet_report(node) report = self.get_puppet_report(node)