Commit Graph

50 Commits

Author SHA1 Message Date
Steven Hardy d8e2531820 Convert compute-role.yaml to role.role.j2.yaml
Add some special-casing for backwards compatibility, such that the
Compute role can be rendered via j2 for support of composable networks.

Change-Id: Ieee446583f77bb9423609d444c576788cf930121
Partially-Implements: blueprint composable-networks
2017-08-11 15:06:34 +01:00
Ben Nemec 4502b7cba6 Make RoleParameters and key_name descriptions consistent
The key_name default is ignored because the parameter is used in
some mutually exclusive environments where the default doesn't
need to be the same.

Change-Id: I77c1a1159fae38d03b0e59b80ae6bee491d734d7
Partial-Bug: 1700664
2017-08-02 16:18:25 -05:00
Jenkins 7d07abf682 Merge "Revert "Revert "Blacklist support for ExtraConfig""" 2017-07-13 04:08:30 +00:00
James Slagle 11b3cb25a9 Revert "Revert "Blacklist support for ExtraConfig""
There is a Heat patch posted (via Depends-On) that resolves the issue
that caused this to be reverted. This reverts the revert and we need to
make sure all the upgrades jobs pass before we merge this patch.

This reverts commit 69936229f4.
Closes-Bug: #1699463
implements blueprint disable-deployments

Change-Id: Iedf680fddfbfc020d301bec8837a0cb98d481eb5
2017-07-10 17:39:57 +00:00
James Slagle d0acf56606 Add DeployedServerEnvironmentOutput
Add a new output, DeployedServerEnvionmentOutput, that can be used as
the contents of an environment file to input into a services only stack
when using split-stack. The parameter simplifies the manual steps needed
to deploy split-stack.

By default, the resource that generates the output is mapped to
OS::Heat::None.

implements blueprint split-stack-default
Change-Id: I6004cd3f56778f078a69a20e93a0eba0c574b3db
2017-07-10 09:36:22 -04:00
Ben Nemec c834dce5f2 Re-enable default for RoleParameters
I471037de35e7f349d900462ec3ffb16fe2d6ebd9 accidentally removed the
default from the RoleParameters parameter.  This change just puts
it back.

Change-Id: I29b472897e07229715fc2fea3b55e90473eb0069
2017-06-27 11:38:26 -05:00
Jenkins eaa8092211 Merge "Enable DPDK on boot using PreNetworkConfig" 2017-06-27 02:25:22 +00:00
Jenkins 5dc466725b Merge "Add DeploymentSwiftDataMap parameter" 2017-06-26 23:58:58 +00:00
Jenkins eda12ae632 Merge "Add os-collect-config data as an output" 2017-06-26 23:58:51 +00:00
Jenkins bfa407249e Merge "Replace hardcoded 'br-ex' with NeutronPhysicalBridge parameter." 2017-06-24 00:36:01 +00:00
Dan Sneddon 479edff423 Replace hardcoded 'br-ex' with NeutronPhysicalBridge parameter.
This change uses the NeutronPhysicalBridge parameter on all roles,
rather than hard-coding the "br-ex" name. Previously, there were
different parameters for controller and compute roles, but since
we use a unified bridge name with OVS, this is unnecessary.

Change-Id: I6d9189404fae67bcc33ddc2ba3ce1b0385dd989d
Closes-bug: 1669130
2017-06-23 20:32:37 +00:00
Saravanan KR 4e19c7a13e Enable DPDK on boot using PreNetworkConfig
DPDK has to be enabled on openvswitch on the boot before
configuring the network as when the network uses DPDK ports
OvS should be ready to handle DPDK. Enabled DPDK via
PreNetworkConfig by checking if ServiceNames contains
DPDK service.
Implements: blueprint ovs-2-6-dpdk
Closes-Bug: #1654975

Depends-On: I83a540336c01a696780621fb2b39486a6abf0917
Change-Id: I7af4534d91e67c94ba559b78b9ac6a001e639db3
2017-06-23 11:19:23 +05:30
Jenkins 7b60e56c0e Merge "Revert "Blacklist support for ExtraConfig"" 2017-06-22 21:22:02 +00:00
Alex Schultz 69936229f4 Revert "Blacklist support for ExtraConfig"
This reverts commit d6c0979eb3.

This seems to be causing issues in Heat in upgrades.

Change-Id: I379fb2133358ba9c3c989c98a2dd399ad064f706
Related-Bug: #1699463
2017-06-22 13:35:19 +00:00
Jenkins 27a92d279e Merge "Blacklist support for ExtraConfig" 2017-06-19 21:22:45 +00:00
James Slagle d6c0979eb3 Blacklist support for ExtraConfig
Commit I46941e54a476c7cc8645cd1aff391c9c6c5434de added support for
blacklisting servers from triggered Heat deployments.

This commit adds that functionality to the remaining Deployments in
tripleo-heat-templates for the ExtraConfig interfaces.

Since we can not (should not) change the interface to ExtraConfig, Heat
conditions are used on the actual <role>ExtraConfigPre and
NodeExtraConfig resources instead of using the actions approach on
Deployments.

Change-Id: I38fdb50d1d966a6c3651980c52298317fa3bece4
2017-06-16 11:13:25 -04:00
James Slagle c47ca9c3a1 Add DeploymentSwiftDataMap parameter
The DeploymentSwiftDataMap parameter is used to set the
deployment_swift_data property on the Server resoures. The parameter is
a map of role names and node indexes to Swift container and object names
to be used for storing deployment data.

The parameter allows for using predefined Swift objects for storing
deployment data instead of container/object names with generated uuid's
from Heat.

implements blueprint split-stack-default
Depends-On: Ia07e9374a4b95bd0e74fc47fb9df4bf6ad096715

Change-Id: I471037de35e7f349d900462ec3ffb16fe2d6ebd9
2017-06-15 14:45:11 -04:00
James Slagle c8a266d99e Add os-collect-config data as an output
Adds a new output, ServerOsCollectConfigData, which is the
os-collect-config configuration associated with each server resource.
This can be used to [pre]configure the os-collect-config agents on
deployed-server's.

Having the data available as a stack output is more user friendly than
having to query several nested levels of stack resources, and then
inspect resource metadata.

implements blueprint split-stack-default
Change-Id: Iaf062f1a72e2a9e4d97f84c67f72408a6b5cebfc
Depends-On: I8acfd67cd8138d587cc362184c84a08134bf3157
2017-06-15 14:43:11 -04:00
Ben Nemec 4f58243952 Update CloudDomain description
First, this parameter must match what is configured on the
undercloud, so strengthen that language.

There is also now an undercloud.conf parameter that can be used to
set the requisite options on the undercloud services, so just point
users at that rather than trying to explain how to configure the
services manually (which is error-prone and doesn't survive
undercloud updates).

Change-Id: I002cce176e3430473a29e79efde3464bddb24cc7
2017-06-15 11:56:16 -05:00
Jenkins cea62f129c Merge "Modify PreNetworkConfig config inline with role-specific parameters" 2017-06-15 13:05:28 +00:00
Alex Schultz 426de20288 Add fqdn_external
In newton, we used to construct the fqdn_$NETWORK in puppet-tripleo for
external, internal_api, storage, storage_mgmt, tenant, management, and
ctrlplane. When this was moved into THT, we accidently dropped external
which leads to deployment failures if a service is moved to the external
network and the configuration consumes the fqdn_external hiera key.
Specifically this is reproduced if the MysqlNetwork is switch to to
exernal, then the deployment fails because the bind address which is set
to use fqdn_external is blank.

Change-Id: I01ad0c14cb3dc38aad7528345c928b86628433c1
Closes-Bug: #1697722
2017-06-13 09:39:11 -06:00
Saravanan KR 0c66118b10 Modify PreNetworkConfig config inline with role-specific parameters
Existing host_config_and_reboot.role.j2.yaml is done in ocata to
configure kernel args. This can be enhanced with use of role-specific
parameters, which is done in the current patch. The earlier method is
deprecated and will be removed in Q releae.
Implements: blueprint ovs-2-6-dpdk

Change-Id: Ib864f065527167a49a0f60812d7ad4ad12c836d1
2017-06-13 11:02:33 +05:30
Jenkins d21ef0d91c Merge "Use Deployment actions for blacklist" 2017-06-08 19:53:26 +00:00
James Slagle d48299cb50 Use Deployment actions for blacklist
Instead of using the Heat condition directly on the Deployment
resources, use it to set the action list to an empty list when the
server is blacklisted.

This has a couple advantages over the previous approach in that the
actual resources are not deleted and recreated when servers are added
and removed from the blacklist.

Recreating the resources can be problematic, as it would then force the
Deployments to re-run when a server is removed from the blacklist. That
is likely not always desirable, especially in the case of
NetworkDeloyment.

Additionally, you will still see the resources for a blacklisted server
in the stack, just with an empty set of actions. This has the benefit of
preserving the history of the previous time the Deployment was
triggered.

implements blueprint disable-deployments

Change-Id: I3d0263a6319ae4871b1ae11383ae838bd2540d36
2017-06-07 14:03:38 -04:00
Steven Hardy 03811f176a Convert puppet and docker steps to ansible
Replace the multiple SoftwareDeployment resources with a common
playbook that runs on all roles, consuming the configuration data
written via the HostPrepAnsible tasks.

This hopefully simplifies things, and will enable re-running the
deploy steps for minor updates (we'll need some way to detect
a container should be replaced, but that will be done via a
follow-up patch).

Change-Id: I674a4d9d2c77d1f6fbdb0996f6c9321848e32662
2017-06-06 15:44:01 +01:00
James Slagle e3c8803295 Server blacklist support
Adds the ability to blacklist servers from all SoftwareDeployment
resources. The servers are specified in a new list parameter,
DeploymentServerBlacklist by the Heat assigned name
(overcloud-compute-0, etc).

implements blueprint disable-deployments

Change-Id: I46941e54a476c7cc8645cd1aff391c9c6c5434de
2017-05-31 20:23:58 -04:00
Carlos Camacho 0a0e2ee629 Update the template_version alias for all the templates to pike.
Master is now the development branch for pike
changing the release alias name.

Change-Id: I938e4a983e361aefcaa0bd9a4226c296c5823127
2017-05-19 09:58:07 +02:00
Jenkins eabb6d7c30 Merge "Enable splay for os-collect-config" 2017-05-18 18:34:35 +00:00
Alex Schultz 0d59488780 Enable splay for os-collect-config
At scale, having the os-collect-config instances all check in at the
same time can cause performance problems. This change enables splay and
sets it to a default maximum random sleep of 30 seconds prior to the
os-collect-config polling.

Change-Id: Iab8b51f4e5fb4727b8aa7e081f5cbfcbf11f7fcb
Depends-On: I88f623c9e8db9ed4a186918206a63faec8f7f673
Closes-Bug: #1677314
2017-05-01 16:16:31 -06:00
Jenkins ef82c3a010 Merge "Pluggable server type per Role" 2017-04-20 09:26:59 +00:00
Oliver Walsh 7d3552a105 SSH known_hosts config
Fetch the host public keys from each node, combine them all and write to the
system-wide ssh known hosts. The alternative of disabling host key
 verification is vulnerable to a MITM attack.

Change-Id: Ib572b5910720b1991812256e68c975f7fbe2239c
2017-04-13 21:53:59 +01:00
James Slagle 87ce5d4574 Pluggable server type per Role
The server resource type, OS::TripleO::Server can now be mapped per role
instead of globally. This allows users to mix baremetal
(OS::Nova::Server) and deployed-server (OS::Heat::DeployedServer) server
resources in the same deployment.

blueprint pluggable-server-type-per-role

Change-Id: Ib9e9abe2ba5103db221f0b485c46704b1e260dbf
2017-04-13 15:38:44 -04:00
Steven Hardy 626b820b57 Make UpdateDeployment depend on NetworkDeployment
Prior to https://review.openstack.org/#/c/271450/ os-net-config was
applied via os-refresh-config directly, which meant that even though
UpdateDeployment and NetworkDeployment can be created concurrently,
we'd always do the os-net-config step first.

However now that we apply both steps via scripts (which are both handled
via the same heat-config hook) we should add an explicit dependency to
ensure the network is always fully configured before attempting to run
any update.  This should avoid the risk of e.g running an update on
initial deployment before the network connectivity to access yum repos
is in place.

Change-Id: Idff7a95afe7b49b6384b1d0c78e76522fb1f8eb7
Related-Bug: #1666227
2017-03-01 09:51:20 +00:00
marios 01a91d3719 Add Newton to Ocata UpgradeInitCommonCommand
This adds the UpgradeInitCommonCommand for newton..ocata common
UpgradeInit commands. This comes before the ansible upgrade steps
so we need to do things like remove the old newton hieradata and
install the ansible-pacemaker module and ansible heat-agent plugin

This defaults to '' and is set in the major-upgrade-composable-steps
and unset in the major-upgrade-converge environment files.

Change-Id: I0c7a32194c0069b63a501a913c17907b47c9cc16
2017-02-16 10:50:12 +00:00
Jenkins 4a02aeb22e Merge "Add pre-network hook and example showing config-then-reboot" 2017-01-04 19:34:27 +00:00
Steven Hardy 3c6ec654b4 Bump template version for all templates to "ocata"
Heat now supports release name aliases, so we can replace
the inconsistent mix of date related versions with one consistent
version that aligns with the supported version of heat for this
t-h-t branch.

This should also help new users who sometimes copy/paste old templates
and discover intrinsic functions in the t-h-t docs don't work because
their template version is too old.

Change-Id: Ib415e7290fea27447460baa280291492df197e54
2016-12-23 11:43:39 +00:00
Jenkins 2a6df57475 Merge "Introduce role-specific NodeUserData, use for docker" 2016-12-22 23:41:08 +00:00
Juan Antonio Osorio Robles d2da59065d Add hook to generate metadata from service profiles
This enables the deployer to dynamically add nova metadata to the
servers based on the output of service profiles that implement the
metadata_settings key in the role_data output for the profiles.

One can set an implementation via the OS::TripleO::ServerMetadataHook
resource, which currently is set as OS::Heat::None. So, because of
the default implementation, if left untouched it actually does
nothing.

Currently, besides the list, which is metadata_settings, this hook also
takes the name of the node that it's setting the metadata for.

This is useful for nova vendordata plugins that can parse said metadata.

Change-Id: I8a937f711f0b90156fbb6c4632760435ef846474
2016-12-22 10:06:17 +00:00
Steve Baker d5cd18d3c5 Introduce role-specific NodeUserData, use for docker
Currently when the docker environments are invoked, every node has the
boot script run which replaces os-collect-config with the heat-agents
container. This should only be happening on Compute nodes currently,
and each role will be converted to heat-agents one at a time.

This change implements a role-specific NodeUserData resource and uses
that mechanism to run docker/firstboot/install_docker_agents.yaml only
on Compute nodes.

Change-Id: Id81811dbcaf0e661c3980aa25f3ca80db5ef0954
2016-12-19 18:13:57 +01:00
Steven Hardy c568891000 Move UpgradeInitCommand to role templates
We can't run this during the upgrade steps, because there are things
which need to happen before any role configuration happens, e.g
installing the new hiera heat-config hook, which must be done before
e.g "ControllerDeployment" runs or the stack update hangs.

Partially-Implements: blueprint overcloud-upgrades-per-service
Change-Id: I365b57513590662c3f78a33dc625747f457c48c5
2016-12-19 11:04:47 +00:00
Juan Antonio Osorio Robles 3078533eef Introduce role-specific nova-server-metadata
We could already pass metadata to the nova server instances (on
creation) via the ServerMetadata parameter, however, there was no
way of doing this per-role. This introduces that by adding a
{{role}}ServerMetadata parameter for each role. This parameter gets
merged with the ServerMetadata parameter and allows this
functionality.

Note that both default to {}, and so does the result of merging those
parameters with their default values. So nothing changes for the
default settings.

Change-Id: I334edcc51ce7ee82fc13b6cf4c0d74ccb7db099c
2016-12-16 13:46:15 +02:00
Steven Hardy f1cc214384 Add pre-network hook and example showing config-then-reboot
There are some requirements for early configuration that involves
e.g setting kernel parameters then rebooting.  Currently this can
be done via cloud-init, e.g firstboot templates, but there's been
discussion around enabling a SoftwareDeployment approach instead.

The main advantage of doing it this way is there's an error path
if something goes wrong with the config (except triggering the
reboot as we have to use NO_SIGNAL for that).

Change-Id: Ia54ee654f755631b8062eb5c209a60c6f9161500
2016-12-15 11:12:37 +00:00
Juan Antonio Osorio Robles d7060322ee Move nodes' fqdns to a map to remove clutter
There were several instances where the short-names/FQDNs where being
gotten in the same way in the role's templates. So this introduces a
mapping to get these values in order to reduce clutter.

Change-Id: Ie7df360bb69d56655f3e0fcbbf4d297db39b7a26
2016-12-02 10:45:27 +00:00
Juan Antonio Osorio Robles 7a2c2b0f93 Introduce network-based FQDNs via hiera
Currently, one can get the network-based FQDNs via a custom puppet
fact. This is currently unreliable, as it's based on the ::hostname
fact which we assume it's set correctly by nova. However, this is not
necessarily the case (for instance, if you use pre-deployed services
such as we do with the multinode-jobs). In these cases, the
::hostname fact will return something other than what we specified in
nova, and effectively breaks the configurations in we relly too much
on the network-based FQDN facts.

By using hiera instead, we avoid this issue as we set those values to
be exactly what we expect (as we set them in the OS::TripleO::Server
resource.

Change-Id: I6ce31237098f57bdc0adfd3c42feef0073c224fb
2016-12-01 11:08:41 +02:00
Dan Prince 7876851011 Hiera optimization: use a new hiera hook
This patch optimizes how we deploy hiera by using a new
heat hook specifically designed to help compose hiera
within heat templates. As part of this change:

 - we update all the 'hiera' software configurations to set the group to hiera
   instead of os-apply-config.

 - The new format uses JSON instead of YAML. The hook actually writes
   out the hiera JSON directly so no conversion takes place. Arrays,
   Strings, Booleans all stay in their native formats. As such we can avoid
   having to do many of the awkward string and list conversions in t-h-t to
   support the previous YAML formatting.

 - The new hook prefers JSON over YAML so upgrading users will have the
   new files prefered. (we will post a cleanup routine for the old files
   soon but this isn't a new behavior, JSON is now simply prefered.)

 - A lot of services required edits to account for default settings that
   worked in YAML that no longer work correctly in the native JSON
   format. In almost all these cases I think the resulting codes looks
   cleaner and is more explicit with regards to what is getting
   configured in hiera on the actual nodes.

Depends-On: I6a383b1ad4ec29458569763bd3f56fd3f2bd726b
Closes-bug: #1596373

Change-Id: Ibe7e2044e200e2c947223286fdf4fd5bcf98c2e1
2016-11-30 22:16:13 -05:00
Julie Pichon 0ca8dab4cb Make the CloudDomain defaults match the doc strings
Not having the default easily accessible is causing issues for the UI,
as it cannot guess at it and can accidentally overwrite the value with
an empty string (the expected default when unset). The default is
already helpfully spelled out in the doc string for each file, this
updates the parameter to match it.

Change-Id: Ic284f9904e8f1d01cc717d59a0759f679d94106d
Closes-Bug: #1643670
2016-11-22 21:01:28 +00:00
Jenkins f9c3481c3e Merge "restore missing fluentd client functionality" 2016-10-06 12:34:31 +00:00
Lars Kellogg-Stedman dd162f42c7 restore missing fluentd client functionality
in the great rebase following the JINJA ALL THE THINGS changes we lost
critical functionality in the fluentd client service.  This review
restores the missing features.

Change-Id: I7c23f16f81e75f3da6a24587b2eb8385b3e920a4
Closes-bug: 1630692
2016-10-05 13:39:06 -04:00
Steven Hardy 6a408ff27e Select per-network hostnames for service_node_names
Co-Authored-By: Juan Antonio Osorio Robles <jaosorior@redhat.com>
Depends-On: Ic6fec1057439ed9122d44ef294be890d3ff8a8ee
Change-Id: I754c4a41d8a294a4c7c18bd282ae014efd4b9b16
Closes-Bug: #1628521
2016-10-05 16:24:54 +03:00
Carlos Camacho 883addf267 Move the main template files for defalut services to new syntax generation
When generating these templates, we should
create them with the "-role" appended as they will
be generated from a role.role.j2.yaml file.

i.e. role.role.j2.yaml will generate <service>-role.yaml
     config.role.j2.yaml will generate <service>-config.yaml

Partial-Bug: #1626976
Change-Id: I614dc462fd7fc088b67634d489d8e7b68e7d4ab1
2016-10-04 20:15:33 +00:00