Merge "Add support for using a vip for access"
This commit is contained in:
commit
ef2e3655e4
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@ build/*
|
||||
.stestr/*
|
||||
__pycache__
|
||||
.unit-state.db
|
||||
interfaces
|
||||
|
@ -42,3 +42,8 @@ options:
|
||||
default: ""
|
||||
description: >-
|
||||
The SSL Root CA certificate, base64-encoded.
|
||||
vip:
|
||||
type: string
|
||||
default:
|
||||
description: |
|
||||
Virtual IP to use api traffic
|
||||
|
@ -5,10 +5,12 @@ includes:
|
||||
- interface:pgsql
|
||||
- interface:mysql-shared
|
||||
- interface:etcd
|
||||
- interface:hacluster
|
||||
options:
|
||||
basic:
|
||||
packages:
|
||||
- python3-psycopg2
|
||||
- libffi-dev
|
||||
snap:
|
||||
vault:
|
||||
channel: stable
|
||||
|
@ -23,6 +23,9 @@ requires:
|
||||
interface: mysql-shared
|
||||
etcd:
|
||||
interface: etcd
|
||||
ha:
|
||||
interface: hacluster
|
||||
scope: container
|
||||
provides:
|
||||
nrpe-external-master:
|
||||
interface: nrpe-external-master
|
||||
|
@ -338,3 +338,11 @@ def _assess_status():
|
||||
if service_running('vault'):
|
||||
health = get_vault_health()
|
||||
application_version_set(health.get('version'))
|
||||
|
||||
|
||||
@when('ha.connected')
|
||||
def cluster_connected(hacluster):
|
||||
"""Configure HA resources in corosync"""
|
||||
vip = config('vip')
|
||||
hacluster.add_vip('vault', vip)
|
||||
hacluster.bind_resources()
|
||||
|
3
src/tests/bundles/overlays/local-charm-overlay.yaml.j2
Normal file
3
src/tests/bundles/overlays/local-charm-overlay.yaml.j2
Normal file
@ -0,0 +1,3 @@
|
||||
applications:
|
||||
vault:
|
||||
charm: ../../../vault
|
4
src/tests/bundles/overlays/xenial-ha-mysql.yaml.j2
Normal file
4
src/tests/bundles/overlays/xenial-ha-mysql.yaml.j2
Normal file
@ -0,0 +1,4 @@
|
||||
applications:
|
||||
vault:
|
||||
options:
|
||||
vip: '{{ OS_VIP00 }}'
|
@ -3,7 +3,11 @@ services:
|
||||
vault:
|
||||
num_units: 3
|
||||
series: xenial
|
||||
charm: ../../../vault
|
||||
charm: cs:vault
|
||||
options:
|
||||
vip: 'ADD YOUR VIP HERE'
|
||||
hacluster:
|
||||
charm: cs:hacluster
|
||||
mysql:
|
||||
charm: cs:mysql
|
||||
num_units: 1
|
||||
@ -12,7 +16,7 @@ services:
|
||||
num_units: 1
|
||||
etcd:
|
||||
charm: cs:etcd
|
||||
num_units: 2
|
||||
num_units: 3
|
||||
options:
|
||||
channel: 3.1/stable
|
||||
relations:
|
||||
@ -22,3 +26,5 @@ relations:
|
||||
- easyrsa:client
|
||||
- - etcd:db
|
||||
- vault:etcd
|
||||
- - vault:ha
|
||||
- hacluster:ha
|
||||
|
@ -6,7 +6,7 @@ skipsdist = True
|
||||
setenv = VIRTUAL_ENV={envdir}
|
||||
PYTHONHASHSEED=0
|
||||
whitelist_externals = juju
|
||||
passenv = HOME TERM CS_API_*
|
||||
passenv = HOME TERM CS_API_* OS_*
|
||||
deps = -r{toxinidir}/test-requirements.txt
|
||||
install_command =
|
||||
pip install {opts} {packages}
|
||||
|
@ -279,3 +279,10 @@ class TestHandlers(unittest.TestCase):
|
||||
self.service_running.return_value = False
|
||||
handlers._assess_status()
|
||||
self.application_version_set.assert_not_called()
|
||||
|
||||
def test_cluster_connected(self):
|
||||
self.config.return_value = '10.1.1.1'
|
||||
hacluster_mock = mock.MagicMock()
|
||||
handlers.cluster_connected(hacluster_mock)
|
||||
hacluster_mock.add_vip.assert_called_once_with('vault', '10.1.1.1')
|
||||
hacluster_mock.bind_resources.assert_called_once_with()
|
||||
|
Loading…
Reference in New Issue
Block a user