charm-nova-cloud-controller/hooks/charmhelpers/contrib/hardening
David Ames e94f7882cb Avoid shared-db change when using access-network
When the percona-cluster charm sets an access-network but the default
unit-get address is not on that network extra shared-db relations get
executed. This is specifically a problem when running upgrades and
trying to avoid API downtime.

The root cause is that the access-network is not checked until the
SharedDBContext is consulted. But then db_joined function will
change it back to the wrong ip on subsequent runs.

This change adds a check for access-network on the relation during the
db_joined function and pushes IP selection off to get_relation_ip.

Charm helpers sync to pull in changes to get_relation_ip.

Partial-bug: #1677647
Change-Id: Ifd4e975d9abbb9f7a8b0f12c8f0a8cf8f78595b6
2017-04-25 14:32:19 -07:00
..
apache Avoid shared-db change when using access-network 2017-04-25 14:32:19 -07:00
audits Avoid shared-db change when using access-network 2017-04-25 14:32:19 -07:00
defaults Avoid shared-db change when using access-network 2017-04-25 14:32:19 -07:00
host Avoid shared-db change when using access-network 2017-04-25 14:32:19 -07:00
mysql Resync charmhelpers for licensing change 2016-07-06 16:39:15 +01:00
ssh Avoid shared-db change when using access-network 2017-04-25 14:32:19 -07:00
README.hardening.md Add hardening support 2016-03-31 19:30:33 +01:00
__init__.py Resync charmhelpers for licensing change 2016-07-06 16:39:15 +01:00
harden.py Resync charmhelpers for licensing change 2016-07-06 16:39:15 +01:00
templating.py Enable Ocata Amulet Tests 2017-03-09 14:35:03 -08:00
utils.py Resync charmhelpers for licensing change 2016-07-06 16:39:15 +01:00

README.hardening.md

Juju charm-helpers hardening library

Description

This library provides multiple implementations of system and application hardening that conform to the standards of http://hardening.io/.

Current implementations include:

  • OS
  • SSH
  • MySQL
  • Apache

Requirements

  • Juju Charms

Usage

  1. Synchronise this library into your charm and add the harden() decorator (from contrib.hardening.harden) to any functions or methods you want to use to trigger hardening of your application/system.

  2. Add a config option called 'harden' to your charm config.yaml and set it to a space-delimited list of hardening modules you want to run e.g. "os ssh"

  3. Override any config defaults (contrib.hardening.defaults) by adding a file called hardening.yaml to your charm root containing the name(s) of the modules whose settings you want override at root level and then any settings with overrides e.g.

    os: general: desktop_enable: True

  4. Now just run your charm as usual and hardening will be applied each time the hook runs.