Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create some workflow allow to test basic functionality #81

Open
stronk7 opened this issue Aug 24, 2022 · 0 comments
Open

Create some workflow allow to test basic functionality #81

stronk7 opened this issue Aug 24, 2022 · 0 comments

Comments

@stronk7
Copy link
Member

stronk7 commented Aug 24, 2022

While we use a lot of the functionality in our CI servers and we usually detect any regression quickly, we don't use all the functionalities all the time. See for example #79 or #80, where it has been reported that there are problems with the main/replica support built on moodle-ci-runner and nobody had noticed that.

So it will be interesting to be able to add some own CI (GHA) to this repository and have as much functionality as possible covered. Surely not needing to perform any complete phpunit/behat run at all, but at very least ensure that:

  • all the containers are started properly,
  • logs working,
  • main/replica configurations doing their job
  • phpunit and behat executing ok (using a small suite...)
  • ... and other bits. The more the better.

Ciao :-)

stronk7 added a commit to stronk7/moodle-ci-runner that referenced this issue Aug 24, 2022
This fixes moodlehq#80. It has been detected that MySQL main/replica
configurations have stopped working. My personal bet is that
some changes in the MySQL images have leaded to that, or maybe
they were working for MySQL 5.6 and never have worked to 5.7.

NVM, this commit just makes them back to work for both 5.7 and 8.0,
that are the currently "supported" MySQL databases.

Note that, after this PR, we'll be checking the MariaDB main/replica
configurations because they may need similar changes.

Also, while I've tested the solution locally, we are lacking any own
CI for this product, so I've created an issue about that:

moodlehq#81

Finally, here there are the explanations about the changes performed:

1. Moved the bin logs from /var/log/mysql to /var/lib/mysql . Reason
   being that the former directory doesn't exist anymore in MySQL 5.7
   and up (and also, that the binary logs are better with data than
   with logs).
2. Removed the 'multi_admin' user related stuff. Not needed at all.
3. Minor changes to moodle and root GRANT/IDENTIFIED stuff because
   of changes in MySQL 8 (already deprecated in 5.7). Use ALTER USER
   instead.
4. Use IDENTIFIED WITH mysql_native_password (the old password schema),
   because MySQL 8, when using the new hashed schema requires
   communications between the hosts to be encrypted. We don't need that
   extra complexity and while it can be disabled as part of the CHANGE MASTER TO
   command... it cannot be disabled for MySQL 5.7. SO the only option
   working in both versions is the used one (force old passwords schema
   for the replication user).
5. Remove the need of stopping and starting the temp server in the
   replica. All the commands can be executed with the temp server
   running and then the container entrypoint manageing itself will stop
   the temp server and start the final one.
6. Stop needing gosu completely. Now the replica conf files are made
   available via volume mount (like the standalone or main cases).

And that's all. The changes are small and subtle, but each one is
for a good reason, I think.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant