283 Commits

Author SHA1 Message Date
Clayton O'Neill
dca9fe942b Move deps & external hooks into a standalone class
Previously the anchors and dependencies that allow external hooks were
all in the main ::heat class.  However, if you wanted to include just
::heat::db::mysql, then it would fail, since it assumed the main heat
class was included.  This moves all of those resources and relationships
into a new class, ::heat::deps.  All of the classes will now include
this class so that the anchors and deps are always evaluated even if
only a portion of the classes are used, and even if ::heat isn't pulled
in.

Change-Id: I4297df160a7afae2b66c1ac76e37de313fa4fb09
Closes-Bug: #1507934
2015-10-20 09:57:36 -04:00
Jenkins
3b9cdd01bc Merge "Prepare 6.1.0 release." 2015-10-20 13:22:26 +00:00
Jenkins
905185c66b Merge "Add hooks for external install & svc management" 2015-10-19 23:44:02 +00:00
Jenkins
c9295a7224 Merge "Introduce heat::db class" 2015-10-19 23:39:47 +00:00
Jay Clark
db78ba2f43 Prepare 6.1.0 release.
Change-Id: Ic21d2de087c2141f4698ecc076a1525e52fcac8d
(cherry picked from commit 0392fef144c6964a9199db20934cc2497db1192f)
2015-10-19 15:13:15 -04:00
Yanis Guenane
fb4486166a Introduce heat::db class
Current modules[1][2][3] implements a
<component>::db class that is not implemented in heat.
This commit aims to apply here the same logic

[1] https://github.com/openstack/puppet-nova/blob/master/manifests/db.pp
[2]
https://github.com/openstack/puppet-designate/blob/master/manifests/db.pp
[3]
https://github.com/openstack/puppet-ceilometer/blob/master/manifests/db.pp

Change-Id: I922260265d110d5823c546813ee125400ecc183d
2015-10-14 09:34:58 +02:00
Gilles Dubreuil
f592e646c4 Missing domain in keystone::domain
The domain name wasn't used for the keystone_user_role resource.

This change requires "replace indirection calls" [1]
Both needs to be merged as same time in order to pass CI tests.

[1] https://review.openstack.org/226624

Change-Id: I2a717b06a73af966d6625b4f6ec3254baf7c50a0
Depends-On: I36fabf547fa50fc14d49f491f11cb4a0571f7d31
2015-10-14 09:00:32 +11:00
Jenkins
06953c3d44 Merge "Put all the logging related parameters to the logging class" 2015-10-12 13:28:22 +00:00
Emilien Macchi
6e52509101 Try to use zuul-cloner to prepare fixtures
In OpenStack Infra, we would like to run Puppet unit tests that
sometimes depends on other Puppet OpenStack modules.
Example: a patch in puppet-openstacklib that needs to be tested in puppet-nova.

This patch modifies the Rakefile to:
* clean spec_prep and spec_clean Rake tasks
* use openstack/puppet-openstack-integration/install_modules_unit.sh script
  to clone modules.
* do not use .fixtures.yaml file to clone modules and rely on
  zuul-cloner or git.
* Add openstack/ in gitignore so we never commit the
  puppet-openstack-integration repository (can happen when spec_clean
  did not run but you want to submit the patch anyway)
* Allow to run a custom Puppetfile if PUPPETFILE env is exported. It
  will allow people to test the module with the dependencies they like,
  feature we had with .fixtures.yaml.

Also add 'r10k' to Gemfile.

That way, we will be able to use zuul dependencies and run tests accross
modules like we do with functional testing.

Change-Id: If983dae0260ea2a1df49b4bdb0ada3c5223012c9
2015-10-08 14:54:10 -07:00
Yanis Guenane
9ad6f36ea4 Put all the logging related parameters to the logging class
Currently logging configuration is splitted in two distinct classes, the
init.pp and the logging.pp classes. This review aims to centralize all
logging related parameters in a single class, the logging.pp one.

The impacted parameters are :

  * use_syslog
  * use_stderr
  * log_facility
  * verbose
  * debug
  * log_dir

This change remains backward compatible with what is currently in place

Change-Id: Ia040f7c935941da0b747cf3e8b5eda1abf2ae07a
2015-10-01 10:11:47 +02:00
Matt Fischer
bc4e8c0d65 Make the role for heat_stack_user configurable
Before you could configure the role in the config file but not the
keystone role that was created. Now you can do both.

Change-Id: Iea6df1679d3ceef1f0876e65dac06628147c700b
2015-09-29 19:44:53 -06:00
Emilien Macchi
320e93d301 Allow to not manage Keystone domain
When configuring Heat domains, we might want to use the default domain.
However, the default domain might already exist or managed by
puppet-keystone.
This patch allows to disable its management in puppet-heat, but keep
True for backward compatibility so the domain will be managed by
default.

Change-Id: I2e9f2ebb5b12cc33565d74bf955250dcc82bcbb9
2015-09-25 12:26:03 -04:00
Emilien Macchi
b608fcebda Update rpc_backend default parameter
rpc_backend should be 'rabbit' which is the default in Olso Messaging.
This patch update the default and the conditional.

Change-Id: I392dc5670d8b9ebb8c58e06c8cadd44a4adb1694
2015-09-24 08:39:22 -04:00
Emilien Macchi
1b209d35be Cleanup configure_delegated_roles deprecated parameter
In Kilo, we decided to use ::heat::keystone::auth to manage the
Keystone_role resource to help with Trusts configuration.
Though the configuration was and still remains part of ::heat::engine
class because we assume ::heat::keystone::auth can be run outside the
heat-engine node.

So this patch aims to drop the deprecated parameter, update the
documentation and unit tests.

Change-Id: I045a3a82095e23778c4e878b13f2fc7f561d680e
2015-09-24 07:54:27 -04:00
Emilien Macchi
bfbcb914bd Bump RDO packages to tested repos
RDO has now [1] a repo that is tested against real CI.
Using this repository will avoid more failures in our CI.

[1] http://trunk.rdoproject.org/centos7-liberty/current-passed-ci/

Change-Id: I2729f3f4b218fa083670a76529d80c8f966da573
2015-09-22 13:47:08 -04:00
Emilien Macchi
f5193ad715 acceptance: switch RDO to CBS repositories
This patch changes the repositories used to install OpenStack Liberty on
RDO by using CBS repositories and RDO trunk.

Here is the RDO roadmap that is suggested if we want to run Liberty:
From now until GA:
http://trunk.rdoproject.org/centos7-liberty/current/
http://cbs.centos.org/repos/cloud7-openstack-liberty-testing/x86_64/os/
http://cbs.centos.org/repos/cloud7-openstack-common-testing/x86_64/os/

After GA:
http://mirror.centos.org/centos/7/cloud/x86_64/openstack-liberty

Note about EPEL: deps from EPEL are rebuilt in CBS, so EPEL could be
disabled in the future.

Change-Id: Ica576b745e50feefa34bb5f084f79ef5067cb7b1
2015-09-10 15:49:24 -04:00
Emilien Macchi
07e52b5ac9 acceptance: bump trusty packaging to trusty-proposed/liberty
Since our recent discussion about Ubuntu packaging, we decided to bump
Ubuntu packaging to trusty-proposed/liberty so we can install Liberty in
a better shape than current situation (Staging repo).

This patch installs UCA liberty repository.

Depends-On: I57e2ddc5d0e228142f8045623ffbde362c0e7f7b
Change-Id: I20decfb1743b334a44365166b310c264f521e4d7
2015-09-02 21:10:36 +00:00
Clayton O'Neill
b2f791400d Add hooks for external install & svc management
This adds defined anchor points for external modules to hook into the
software install, config and service dependency chain.  This allows
external modules to manage software installation (virtualenv,
containers, etc) and service management (pacemaker) without needing rely
on resources that may change or be renamed.

Change-Id: I032ee01505e0cbc125b0e219c436b77c93f57720
2015-08-29 03:19:02 +00:00
Jenkins
16b4eca4c9 Merge "Create Heat Domain with Keystone_domain resource" 2015-08-21 03:03:43 +00:00
Jenkins
5212597481 Merge "Reflect provider change in puppet-openstacklib" 2015-08-20 16:36:37 +00:00
Jenkins
b8cb628617 Merge "Initial msync run for all Puppet OpenStack modules" 2015-08-20 01:24:04 +00:00
Yanis Guenane
ed3732cc78 Reflect provider change in puppet-openstacklib
With the creation of the new openstack_config provider, some processing
that was done in heat_config has been centralized in
openstack_config.

Impacted methods are :

  * section
  * setting
  * separator

Also, this commit adds the fact that, when passing a specific string
(ensure_absent_val) the provider will behave as if ensure => absent was
specified. '<SERVICE DEFAULT>' is the default value for
ensure_absent_val.

The use case is the following :

heat_config { 'DEFAULT/foo' : value => 'bar' } # will work as usual

heat_config { 'DEFAULT/foo' : value => '<SERVICE DEFAULT>' } # will mean absent

That means that all the current :

if $myvar {
  heat_config { 'DEFAULT/foo' : value => $myvar }
} else {
  heat_config { 'DEFAULT/foo' : ensure => absent }
}

can be removed in favor of :

heat_config { 'DEFAULT/foo' : value => $myvar }

If for any reason '<SERVICE DEFAULT>' turns out to be a valid value for
a specific parameter. One could by pass that doing the following :

heat_config { 'DEFAULT/foo' : value => '<SERVICE DEFAULT>',
ensure_absent_val => 'foo' }

Change-Id: Iaaf2e5755080ef32d7d585465aaea6fd408d0ece
Depends-On: I0eeebde3aac2662cc7e69bfad7f8d2481463a218
2015-08-19 10:37:05 +02:00
Cody Herriges
4fa9985f2a Initial msync run for all Puppet OpenStack modules
This patch is the initial modulesync run, it impacts:

* gitignore: just a sync between projects
* gemfile:
  - update and allow to setup facter version and gem source
  - split beaker gems with a dedicated group
  - switch to rspec-puppet 2.2.0
* rakefile:
  - use the new syntax for lint configuration
  - add a acceptance target
* acceptance:
  - sync nodesets
* spec: added rspec coverage report

Change-Id: Ib75add2af3380d0b1d4ce320b58df22b6c3ffa57
2015-08-18 14:37:18 +02:00
Jenkins
4db0ab63b4 Merge "acceptance: enable debug & verbosity for OpenStack logs" 2015-08-17 14:15:27 +00:00
Emilien Macchi
2ed33d3166 acceptance: enable debug & verbosity for OpenStack logs
Enable debug & verbose when possible for OpenStack services logs, so we can read a maximum
of informations in Jenkins jobs logs and easily debug our eventual failures.

Change-Id: I5bdb2f9d9083efdfff9fa43f45371a90a75e38b7
2015-08-16 09:50:01 -04:00
Jenkins
68f99e2f1c Merge "Creation of heat::db::sync" 2015-08-13 13:01:47 +00:00
Yanis Guenane
0cf89d487e Rely on autorequire for config resource ordering
Currently we specify the ordering of config resources wherever it is
necessary based on the presence of the file it will write to, or the
presence of the package in charge of providing the file it will write
to.

Those kind of ordering can be specified directly at the resource level
using the autorequire mechanism. With this patch, any config resource
will make sure the package in charge of providing the file will be
installed first.

Change-Id: I6476060c97d350640b5a254738a60e319ad522e9
2015-08-12 19:03:34 +02:00
Jenkins
2a45eec02d Merge "Add an ability to manage use_stderr parameter" 2015-08-12 07:18:01 +00:00
Jenkins
397241c585 Merge "Use openstack/ namespace for fixtures modules" 2015-08-11 16:25:38 +00:00
Yanis Guenane
4a845f704c Use openstack/ namespace for fixtures modules
When running the tests, rspec will download the modules speficied in
.fixtures.yml and put them in spec/fixtures/modules.

Some of those modules still point to stackforge/ namespace when they
should be pointing to openstack/ namespace.

Change-Id: Id167dfbe4d1281a3a019611dc69bbcb78f4d99bf
2015-08-11 14:51:32 +02:00
Sergey Kolekonov
0b983460fe Add an ability to manage use_stderr parameter
When logging is already set up, it can be useful to disable this option
to avoid logs duplication (collected by Upstart, for example)

Change-Id: I6ceb1d38307db9ca7187d19e0b4a686e39c4a118
Closes-bug: #1482564
2015-08-07 16:44:24 +00:00
Jenkins
4d31f22f13 Merge "Update README.md for Heat" 2015-08-06 16:16:21 +00:00
Jenkins
13fcf95bea Merge "Remove deprecated parameter stack_user_domain" 2015-08-06 10:32:02 +00:00
Yanis Guenane
b0bc5d9a48 Creation of heat::db::sync
In order to standardize the way dbsync are run across our modules,
we create a new class heat::db::sync.
This class will be included if sync_db is enabled.

By making this transition the heat::db::sync class
can be returned by the ENC.

A use case would be in an highly available environment, with 3 galera
nodes, include heat on every node with sync_db set to false
and have the ENC return heat::db::sync just for one node.

Change-Id: I2165dcce6ae9a47b8c9315411933de42516a18c9
2015-08-04 15:33:19 +02:00
Jenkins
3b563c5248 Merge "keystone/auth: make service description configurable" 2015-07-31 22:54:35 +00:00
Martin Mágr
b5f0f0de74 Create Heat Domain with Keystone_domain resource
This patch replaces the usage of Exec to create the Heat domain, by
using the Keystone_domain resource recently implemented in
puppet-keystone.

Change-Id: I5abdac6334e535e8be4e4d19223b4e83b7a39db1
2015-07-31 13:34:06 -06:00
Denis Egorenko
7aa7151b19 Update README.md for Heat
Update 'Beginning with heat' section.

Change-Id: I795105a31e19f2def99ed61a450c76b847df96e6
2015-07-31 13:14:59 +03:00
Denis Egorenko
b7d19f43bd Remove deprecated parameter stack_user_domain
According to [1], stack_user_domain parameter is deprecated,
and now will be used stack_user_domain_name parameter instead.

[1] http://docs.openstack.org/kilo/config-reference/content/orchestration-configuring-api.html

Change-Id: I558eaf311af8751897c402b3d3c2d82b4fadb07d
2015-07-30 14:31:55 +00:00
Jenkins
f6f7d5287a Merge "Fix module install reference" 2015-07-29 21:31:15 +00:00
Erickson Santos
e9b10e86fe Fix module install reference
Change-Id: Ia2e1c72439b2fbc5af233056773031294ef12ecb
Closes-Bug: #1468950
2015-07-29 08:56:37 -03:00
Yanis Guenane
0e850373a8 Add tag to package and service resources
In order to be able to take an action after all the packages of the
module have been installed/updated or all the services have been
started/restarted, we set a 'heat-package' and 'heat-service' tag
for each package and service of this module.

At the moment, there is a generic openstack tag that is not specific
enough if one wants to take action upon a single module change.

Use case :

If an action needs to be taken after all the packages have been
installed or updated : Package <| tag == 'heat-package' |> -> X

Change-Id: I38a6b422054dbf0fceacf6b7e329dbb3cb0fa9cb
2015-07-22 20:22:24 +02:00
Jenkins
c841398fd1 Merge "Add heat::config class" 2015-07-20 07:36:10 +00:00
Yanis Guenane
1b1f7ca0ab Add heat::config class
Other modules provide an X::config class to be able to specify
parameters that are not yet part of the module. Heat was missing this
feature.

This commit aims to add it for puppet-heat.

Change-Id: Ie481598ee4a1b2c451a1e8bddd5faa526d15ef30
2015-07-16 15:28:51 +02:00
Ryan S. Brown
46cda612de Expose RPC response timeout as a puppet parameter.
For some deployments (multi-DC) being able to increase the response
timeout for heat RPC's is vital.

Change-Id: Ib6a61e01ba9879315f9283c4fae34873ce89d338
2015-07-10 12:26:46 -04:00
Jenkins
26bd032c4d Merge "Add support for RabbitMQ connection heartbeat" 2015-07-10 15:25:12 +00:00
Jenkins
a1ca6a8839 Merge "Support setting instance_user to an empty string" 2015-07-10 15:01:20 +00:00
Emilien Macchi
38145b659c Prepare 6.0.0 release
Update CHANGELOG, README and metadata.json to bump the module to the
first Kilo release (6.0.0).

Change-Id: I313824fa2ac64c0ce0240921695fab276556d7e5
6.0.0
2015-07-09 08:24:02 -04:00
Colleen Murphy
8e742b8d09 Fix git clone for locally running tests
Zuul-cloner's behavior is to clone the repository into a subdirectory
under a directory named for the repo namespace. Git's default behavior
is to just clone it directly into the present working directory. This
patch adds an argument to the git clone command to clone it into the
<namespace>/<repo name> directory, so that whether zuul-cloner or git
is used the repo ends up in the same directory relative to the PWD.

Change-Id: Id973085376a546940b8ee650da80912a6b136bbc
2015-07-08 11:56:31 -07:00
Matt Fischer
c06b8cbc34 Support setting instance_user to an empty string
This deals with the case where you don't want heat setting instance_user
for you. See
http://lists.openstack.org/pipermail/openstack-dev/2015-June/068333.html
for details.

Closes-Bug: #1472053

Change-Id: I9e8be0dd50709d271fc81683770c78380724e405
2015-07-07 19:24:18 -06:00
Colleen Murphy
ecbc15f527 Use module install script for acceptance tests
This patch updates the spec_helper_acceptance.rb file to use the common
module install script and Puppetfile from the new
openstack/puppet-openstack-integration repo. This will allow us to take
advantage of Zuul's Depends-On feature so that we can test changes
across multiple related modules. This is based on idea 1 from this
brainstorming session[1].

This will probably be abstracted out into a separate function or
eventually a separate gem so that it can be more easily shared across
the OpenStack modules and the Infra modules.

[1] https://etherpad.openstack.org/p/puppet-git-dependencies

Change-Id: I887ee2d495a6ac8f02ce3d0ba5b6d524e0a0f899
Co-Authored-By: James E. Blair <jeblair@hp.com>
Co-Authored-By: Spencer Krum <spencer.krum@hp.com>
2015-07-07 13:59:19 -07:00