Handle mismatched spaces
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MySQL Router Charm |
Fix Released
|
Medium
|
Peter Matulis |
Bug Description
While testing converged networking I hit the following with nova-cloud-
subprocess.
The issue was mismatched spaces:
nova-
bindings:
"": *public-space
public: public
internal: internal
admin: admin
nova-
bindings:
"": *public-space
db-router: internal
This resulted in the mysql-router using the internal space for db-router but the implicit shared-db binding for nova-cloud-
This led to a mismatch of which address was expected:
juju-exec nova-mysql-router/0 -- "relation-get -r db-router:53 - nova-mysql-
egress-subnets: 172.16.200.14/32
ingress-address: 172.16.200.14
mysqlrouter_
mysqlrouter_
nova_database: nova
nova_hostname: 192.168.151.96
nova_username: nova
novaapi_database: nova_api
novaapi_hostname: 192.168.151.96
novaapi_username: nova
novacell0_database: nova_cell0
novacell0_hostname: 192.168.151.96
novacell0_username: nova
private-address: 172.16.200.14
This happens because proxy_db_
We may want the mysql-router charm to intervene and force the *_hostname values to the bound db-router IP.
WORKAROUND:
Explicitly set nova-cloud-
nova-
bindings:
"": *public-space
public: public
internal: internal
admin: admin
shared-db: internal
nova-
bindings:
"": *public-space
db-router: internal
Changed in charm-mysql-router: | |
status: | New → Triaged |
importance: | Undecided → High |
After discussing with the team, having the subordinate force the binding of the primary charm seems incorrect.
Therefore, this is now a documentation bug.
In general the following bindings need to be on the same space:
mysql-innodb- cluster: db-router and cluster bindings
mysql-router: db-router binding
primary charm: shared-db
i.e. All of these bindings use the "internal" binding bellow:
nova- cloud-controlle r:
bindings:
"": *public-space
public: public
internal: internal
admin: admin
shared-db: internal
nova- mysql-router:
bindings:
"": *public-space
db-router: internal
mysql- innodb- cluster:
"": *public-space
db-router: internal
cluster: internal