The hadn't been changed yet to use the resources provided by the new
mariadb cookbook. Also add spec testing.
Change-Id: Ib49cab07c06c4441ae811ca811f614e303024b0b
This updates all references of let(:chef_run) to cached(:chef_run) to speed up
tests. By doing this, we have to create a new cached(:chef_run) block whenever
we need to adjust node attributes for testing. In addition, add missing spec
file for mysql-client-redhat.
Speed was been improved from 27.66 seconds to 20.78 seconds.
Change-Id: I8c095bb4ca298255e09fd59d0e43878423693636
- implemented foodcritic and cookstyle corrections
- deprecated node.foo.bar method access for node['foo']['bar'] bracket syntax
- removed deprecated postgresql support
- removed percona-cluster as the Percona cookbook has not been touched since 2015
- switched default rdbms to mariadb[0]
This change was largely born out of a discussion in #sous-chefs on the Chef
Community Slack. The notion of using the vendor-provided package is preferred
in the Chef Community versus the distro version if possible, due to
inconsistencies in outcome. As a result, this cookbook focuses on MariaDB, and
specifically from mariadb.org.
[0]: https://docs.openstack.org/install-guide/environment-sql-database.html
Implements blueprint modern-chef
Change-Id: I7ee0f5eae4e79e5c70ee8de4a0094a7c34fdd18f
- Switched default linter to cookstyle
- Renamed rake tasks to better conform with Chef conventions
- Normalized template banner
Change-Id: I76bdb4149965ab7b23709762559bd6c71753cc8b
- mysql default version is 5.7 on Ubuntu 16.04
- included mysql devel headers for mysql2
- incremented mysql cookbook to 8.0
- incremented database cookbook to 6.0
- pinned mysql2 gem at 0.4.4
Depends-On: I57c8729e8732161ac34caa85259de8264e99c56d
Implements blueprint newton-xenial
Change-Id: I8ee882d5b154ec0d319e6c4186ebf9f8ae68f269
- add recipes and specs to deploy percona-cluster as db backend
Depends-On: Iae7e302973805af3cb44be1b29d0e61e76eb0aa0
Implements Blueprint: galera-and-percona-support
Change-Id: Ie69e71dce8fa22ef5edc17ed094840fcfb9d4c82
* adapted server recipes to use the address and port defined in the bind_service
attribute instead of the endpoint (endpoint can be different and should only
be used by the services connecting to the db)
* changed get_password 'user' to 'db' for consitency with common
Depends-On: Iae7e302973805af3cb44be1b29d0e61e76eb0aa0
Implements: blueprint cookbook-refactoring
Change-Id: I0afb5942c38ed4e20037f553879de8e2c1a1f75f
* adapted mariadb, mysql and postgresql server recipes to work with net endpoint
logic
* removed suse support
Depends-On: I0547182085eed91d05384fdd7734408a839a9a2c
Impements: blueprint cookbook-refactoring
Change-Id: Ia7fd927f42f4a1e484e8f2d34c52b1dc6d0ce6dd
The default of 151 is very small for most openstack use cases.
Picked a higher recommended default that can be overridden as
necessary.
Added stub for newer postgresql cookbook level spec tests.
Change-Id: I0d7b0893d143202f55f04ddcdbc8618aaaacef25
Closes-Bug: #1398527
Set the mysql root password directly on the server resource, so it
does not need to be an attribute. This keeps passwords sourced from
encrypted data bags out of node attributes. Note that as indicated
in https://github.com/opscode-cookbooks/mysql/issues/215 all recipes
will be removed from the mysql cookbook in favor of having consumers
work with the resources directly, thereby providing more flexibility
in terms of how the various configuration settings are sourced.
Including the "server" recipe is not going to be a viable option
once that has happened, so this change not only addresses the
attribute issue, but it will also make upcoming changes to the
mysql cookbook more seamless. Note that the reference to the
default_version_for function had to be removed, because it is no
longer in the cookbook and therefore the build failed. It is no
longer necessary to set the version, as described in the README.md
file:
When [the version parameter is] omitted, it will install the
default MySQL version for the target platform.
Note that the code that sets node attributes in
spec/mysql-server_spec.rb was removed because it was interfering
with the new test and it did not seem to serve any purpose--there
were no failures after it was removed.
blueprint no-secret-attributes
Change-Id: I72be1e2131a107ddc43754bc5cf40a4ce7face95
This change gives us new capabilities, such as matching notifies and
subscribes of resources.
Implements: blueprint chefspec-3-4
Change-Id: Ib287817f935c1622a4d1f2f1539dcb0f31fd4aff
Addresses: bug #1277041
Implements: blueprint centos-rhel-for-ops-database
By default mysql binds to 127.0.0.1. Setting the bind_ip attribute to
something else, as we do in the ops-database cookbook before calling the
mysql::server recipe, causes the my.cnf to be populated with the correct IP.
However, because of this bug in the upstream mysql cookbook:
https://tickets.opscode.com/browse/COOK-4161
mysql does not get restarted (it only gets reloaded)
and so the new bind_ip does not take effect.
This commit adds a workaround until the upstream bug is fixed. The
workaround directly modifies the template resource from the resource
collection to add a 'restart mysql' notification.
** This particular patchset builds on the last by adding support for
rhel/centos which use a different name for the my.cnf template resource **
Change-Id: I357bf1458a1781189922032cdc8da8ad9e0a03a7
- Update .rubocop.yml to include spec/**
- Update metadata.rb to be rubocop compliant
- Update spec files to be rubocop compliant
Change-Id: If059f01f46102282ffeed9323f6e06fa78f8597c
Addresses: blueprint rubocop-for-ops-database
This minor change allows you to run rspec outside of strainer while
still having cookbook dependencies automatically handled by berkshelf
(which also means you can run individual chefspec tests).
Note that this change does marginally increase the time it takes to run
a strainer test.
A similar change was recently accepted in the openstack-compute
cookbook.
Change-Id: I3cb98dd54675d9ff2bff340425378b34b021d9da
Brought in openstack-common as a dep. Updated the tests to
better match what the recipes are doing (added tests where
missing). Updated attributes to match the format of our other
cookbooks. This is mostly some cleanups, to prepare for features.
Since this cookbook is not in use, made a larger commit than
would have if adding functionality to a released cookbook. Also,
upgraded to new Berkshelf which handles locking to cookbooks properly.
Change-Id: I8e4123d30012a9890ce3029184e1396d2083a6f1
Just bring in Matt's original work on the ops-database
cookbook.
Corrects what I think was a typo for the database service
role name attribute from openstack::role::database to
openstack::database::server_role
Brings in Berksfile and Gemfile and stubbed specs to pass
gates. Also sets version to 7.0.0 to match semantic versions
of openstack project cookbooks.
Change-Id: Idc02435ff7d3ff4b8a04c2bfc5abbb1e3091cb68