mysql router #19

Supports: eoan focal groovy
Add to new model


MySQL Router proxying communication between application clients and MySQL InnoDB Clusters.


The mysql-router charm provides a MySQL 8 Router; it
proxies database requests from a principle application to a MySQL 8 InnoDB
Cluster. MySQL Router handles cluster communication and understands the cluster

It is a subordinate charm that is used in conjunction with the
mysql-innodb-cluster charm. It is also used with
a principle charm that supports the 'mysql-shared' interface. The current list
of such charms can be obtained from the Charm
(the charms officially supported by the
OpenStack Charms project are published by 'openstack-charmers').

Important: The eoan series is the first series supported by the
mysql-innodb-cluster and mysql-router charms. These charms replace the
percona-cluster charm starting with the focal


The charm is deployed as a subordinate to a principle application and then
related to the central mysql-innodb-cluster application:

principle charm A <---> mysql-router A <--->
principle charm B <---> mysql-router B <---> mysql-innodb-cluster
principle charm C <---> mysql-router C <--->


See file config.yaml for the full list of configuration options, along with
their descriptions and default values.


To deploy a MySQL 8 Router:

juju deploy mysql-router

Add a relation to a principle application (via the shared-db

juju add-relation keystone:shared-db mysql-router:shared-db

Then add a relation to the mysql-innodb-cluster application (via the
db-router endpoint):

juju add-relation msyql-router:db-router mysql-innodb-cluster:db-router

Scale out is accomplished by adding units to the principle application:

juju add-unit keystone


This section lists Juju actions supported by the charm.
Actions allow specific operations to be performed on a per-unit basis. To
display action descriptions run juju actions mysql-router. If the
charm is not deployed then see file actions.yaml.

  • stop-mysqlrouter
  • start-mysqlrouter
  • restart-mysqlrouter


Please report bugs on Launchpad.

For general charm questions refer to the OpenStack Charm Guide.


(int) Base port number for RW interface. RO, xRW and xRO will increment from base_port.
(string) Repository from which to install. May be one of the following: distro (default), ppa:somecustom/ppa, a deb url sources entry, or a supported Ubuntu Cloud Archive e.g. . cloud:<series>-<openstack-release> cloud:<series>-<openstack-release>/updates cloud:<series>-<openstack-release>/staging cloud:<series>-<openstack-release>/proposed . See for info on which cloud archives are available and supported.
(string) TLS CA to use to communicate with other components in a deployment. . __NOTE__: This configuration option will take precedence over any certificates received over the ``certificates`` relation.
(string) TLS certificate to install and use for any listening services. . __NOTE__: This configuration option will take precedence over any certificates received over the ``certificates`` relation.
(string) TLS key to use with certificate specified as ``ssl_cert``. . __NOTE__: This configuration option will take precedence over any certificates received over the ``certificates`` relation.
(boolean) Setting this to True will allow supporting services to log to syslog.