Files
Seyeong Kim dd4b04bdd6 Fixing broken mysql-router configuration
A customer faced an issue when they face full disk.
Mysql router configuration file was broken.
As this charm doesn't handle whole configuration file,
charm wrote just part of them based on template.
So re-bootstrapping is needed when this symptom happens.

To do that, I put code to check configuration file size,
and if it is under 1000bytes, run bootstrap.

func-test-pr: https://github.com/openstack-charmers/zaza-openstack-tests/pull/1196
Closes-Bug: #2004088
Change-Id: I02863c6afa0b4d95d3dbf550339a1860fe5ea8c1
2024-10-03 04:11:03 +00:00
..
2020-07-27 20:55:09 +01:00
2024-09-30 04:32:51 +00:00
2019-10-17 09:41:43 -07:00
2019-10-04 14:12:47 -07:00
2023-08-03 21:36:24 -04:00
2021-09-27 11:08:50 +02:00
2023-01-18 11:08:23 +00:00
2024-06-20 21:12:12 -07:00

Overview

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 schema.

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 Store (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 series.

Usage

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 <--->

Configuration

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

Deployment

To deploy a MySQL 8 Router for joining, say, Keystone to the cloud database:

juju deploy mysql-router keystone-mysql-router

Note

: The mysql-router application is typically given a name that corresponds to the associated principle application.

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

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

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

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

Important

: When network spaces are used, the mysql-router and mysql-innodb-cluster charms must be configured such that the 'db-router' endpoint is bound to the same space.

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

juju add-unit keystone

Note

: If more than one mysql-router application is placed on the same machine the base-port configuration option is needed to ensure non-conflicting TCP port numbers are used (the default is '3306').

Actions

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 --schema mysql-router. If the charm is not deployed then see file actions.yaml.

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

Documentation

The OpenStack Charms project maintains two documentation guides:

Bugs

Please report bugs on Launchpad.