Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
8096b09
[MISC] Revert ARM 24.04 work-around (#56)
sinclert-canonical Jan 29, 2026
92db53e
[DPE-8300] Branch out MySQL 8.0 (#59)
sinclert-canonical Jan 30, 2026
cee95a2
[MISC] 8.0 - Remove pytest-operator plugin (#61)
sinclert-canonical Feb 3, 2026
43fb89e
[DPE-9376] Add MySQL 8.0.44 release details (#64)
astrojuanlu Feb 4, 2026
2217f03
guard against mismatch between peers and cluster topology on initial …
paulomach Feb 9, 2026
3538735
[MISC] Remove legacy pytest-asyncio config (#69)
sinclert-canonical Feb 10, 2026
ba9416f
[MISC] Migrate to ops[tracing] package (#74)
sinclert-canonical Feb 10, 2026
a0543d2
Removing unsupported use case test (#77)
paulomach Feb 10, 2026
8a184b5
[MISC] Unify packaging (8.0/edge) (#76)
astrojuanlu Feb 10, 2026
fa7ff76
Restore ops in integration tests (#84)
astrojuanlu Feb 13, 2026
ea9442e
[MISC] 8.0 - Bump mysql-shell-client to >=0.7.1 (#80)
sinclert-canonical Feb 13, 2026
c9728c6
add bases for test-app (#101)
paulomach Feb 19, 2026
07a511c
[MISC] integration test fixes (#89)
paulomach Feb 19, 2026
b30d3d8
include couple missing extra-waits to mitigate juju 2.9.x issue (#103)
paulomach Feb 23, 2026
2521148
Merge VM and K8s documentation (#95)
a-velasco Feb 23, 2026
1791249
Update README (#106)
a-velasco Feb 24, 2026
dd494aa
Small miscs. fixes (8.0) (#113)
a-velasco Feb 26, 2026
be6df11
Add HTML meta descriptions to all docs (#118)
a-velasco Mar 2, 2026
1e626b3
[MISC] Fix charm tracing endpoint (#139)
sinclert-canonical Mar 10, 2026
4fa3f07
Improve k8s canonical DNS lookup (#138)
gboutry Mar 11, 2026
df35a7d
[MISC] Update README badges (#145)
sinclert-canonical Mar 11, 2026
3bb0a2c
[MISC] 8.0 - Fix CONTRIBUTING branch (#154)
sinclert-canonical Mar 13, 2026
157f6bb
[DPE-9469] 8.0 - Fix relation-broken services (#152)
sinclert-canonical Mar 13, 2026
08a456e
[MISC] Use Juju `3.6/candidate` to fix "connection shutdown" errors (…
astrojuanlu Mar 17, 2026
ff7e6f6
[MISC] Update refresh single-cluster steps (#160)
sinclert-canonical Mar 17, 2026
eef1704
[MISC] Revert juju to 3.6/stable channel (#164)
sinclert-canonical Mar 18, 2026
0102a38
Do not decode tls-ca-chain received via S3 relation (#161)
sinclert-canonical Mar 23, 2026
180a053
[MISC] Fix spread installation path (#175)
sinclert-canonical Mar 23, 2026
743dd98
[MISC] Cleanup charmcraft.yaml (#171)
sinclert-canonical Mar 24, 2026
ef4a2c0
[DPE-9609] Create predefined roles after refresh (#163)
astrojuanlu Mar 24, 2026
6f17706
Fix revision choice according to architecture (#178)
astrojuanlu Mar 24, 2026
bab8dd3
Upgrade deprecated actions (#174)
astrojuanlu Mar 26, 2026
6dd5efa
[MISC] Cleanup K8s legacy permissions fix (#168)
sinclert-canonical Mar 27, 2026
e8b7670
[DPE-9167] Fix cluster not initialized 8.0 (#119)
almeidaraul Mar 27, 2026
6c28098
Update documentation link to version 8.0 (#192)
a-velasco Mar 30, 2026
690dc12
[DPE-9612] Rootless K8s container (#169)
sinclert-canonical Mar 31, 2026
c8be84b
release notes (#191)
paulomach Mar 31, 2026
b6546e4
Add release tests for new stable (#194)
paulomach Mar 31, 2026
cc4d76d
[MISC] Run integration tests on GitHub-hosted runners with Ubuntu 22.…
astrojuanlu Mar 31, 2026
97693b0
fix doctree reference to new stable release
paulomach Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 2 additions & 8 deletions .github/workflows/automatic_doc_checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ on:
- '8.0/edge'
pull_request:
paths:
- 'kubernetes/docs/**'
- 'machines/docs/**'
- '/docs/**'
workflow_dispatch:


Expand All @@ -19,12 +18,7 @@ concurrency:

jobs:
documentation-checks:
strategy:
matrix:
path:
- kubernetes
- machines
uses: canonical/documentation-workflows/.github/workflows/documentation-checks.yaml@main
with:
working-directory: ${{ matrix.path }}/docs
working-directory: "docs"
fetch-depth: 0
5 changes: 2 additions & 3 deletions .github/workflows/check_libs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,14 @@ on:
paths-ignore:
- 'kubernetes/.gitignore'
- 'kubernetes/.jujuignore'
- 'kubernetes/docs/**'
- 'machines/.gitignore'
- 'machines/.jujuignore'
- 'machines/docs/**'
- 'LICENSE'
- '**.md'
- '.github/renovate.json5'
- '.github/workflows/*.yaml'

- 'docs/**'

jobs:
lib-check:
name: Check libraries
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ concurrency:
on:
pull_request:
paths-ignore:
- 'kubernetes/docs/**'
- 'machines/docs/**'
- 'docs/**'
- '**.md'
- '.github/renovate.json5'

Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/integration_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- name: Set up environment
run: |
sudo snap install go --classic
go install github.com/snapcore/spread/cmd/spread@latest
go install github.com/canonical/spread/cmd/spread@latest
pipx install tox
pipx install poetry
- name: Collect spread jobs
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:
# Default test results in case the integration tests time out or runner set up fails
# (So that Allure report will show "unknown"/"failed" test result, instead of omitting the test)
if: ${{ github.event_name == 'schedule' && github.run_attempt == '1' }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: allure-default-results-integration-test-${{ inputs.path-to-charm-directory }}
path: ${{ inputs.path-to-charm-directory }}/allure-default-results/
Expand Down Expand Up @@ -114,15 +114,19 @@ jobs:
- name: Checkout
timeout-minutes: 3
uses: actions/checkout@v5
- name: Install Python for tests
uses: actions/setup-python@v6
with:
python-version: '3.12'
- name: Set up environment
timeout-minutes: 5
run: |
sudo snap install charmcraft --classic
sudo snap install go --classic
go install github.com/snapcore/spread/cmd/spread@latest
go install github.com/canonical/spread/cmd/spread@latest
- name: Download packed charm(s)
timeout-minutes: 5
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
pattern: ${{ inputs.artifact-prefix }}-*
merge-multiple: true
Expand All @@ -145,7 +149,7 @@ jobs:
# Allure can only process one result per pytest test ID. If parameterization is done via
# spread instead of pytest, there will be overlapping pytest test IDs.
if: ${{ (success() || (failure() && steps.spread.outcome == 'failure')) && startsWith(matrix.job.spread_job, 'github-ci:ubuntu-24.04:') && endsWith(matrix.job.spread_job, ':juju36') && github.event_name == 'schedule' && github.run_attempt == '1' }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: allure-results-integration-test-${{ inputs.path-to-charm-directory }}-${{ matrix.job.name_in_artifact }}
path: ${{ inputs.path-to-charm-directory }}/artifacts/${{ matrix.job.spread_job }}/allure-results/
Expand Down Expand Up @@ -186,7 +190,7 @@ jobs:
- name: Upload logs
timeout-minutes: 5
if: ${{ !contains(matrix.job.spread_job, 'juju29') && (success() || (failure() && steps.spread.outcome == 'failure')) }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: logs-integration-test-${{ inputs.path-to-charm-directory }}-${{ matrix.job.name_in_artifact }}
path: ~/logs/
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ on:
branches:
- '8.0/edge'
paths-ignore:
- 'kubernetes/docs/**'
- 'machines/docs/**'
- 'docs/**'
- '.github/renovate.json5'
- '.github/workflows/*.yaml'

Expand Down Expand Up @@ -58,7 +57,7 @@ jobs:
secrets: inherit

release:
name: Release charm | ${{ matrix.charm.path }}
name: Release charm | ${{ matrix.path }}
needs:
- build
- integration-test
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/release_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- name: Set up environment
run: |
sudo snap install go --classic
go install github.com/snapcore/spread/cmd/spread@latest
go install github.com/canonical/spread/cmd/spread@latest
pipx install tox
pipx install poetry
- name: Collect spread jobs
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:
# Default test results in case the integration tests time out or runner set up fails
# (So that Allure report will show "unknown"/"failed" test result, instead of omitting the test)
if: ${{ github.event_name == 'schedule' && github.run_attempt == '1' }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: allure-default-results-release-test-${{ inputs.path-to-charm-directory }}
path: ${{ inputs.path-to-charm-directory }}/allure-default-results/
Expand Down Expand Up @@ -119,10 +119,10 @@ jobs:
run: |
sudo snap install charmcraft --classic
sudo snap install go --classic
go install github.com/snapcore/spread/cmd/spread@latest
go install github.com/canonical/spread/cmd/spread@latest
- name: Download packed charm(s)
timeout-minutes: 5
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
pattern: ${{ inputs.artifact-prefix }}-*
merge-multiple: true
Expand All @@ -145,7 +145,7 @@ jobs:
# Allure can only process one result per pytest test ID. If parameterization is done via
# spread instead of pytest, there will be overlapping pytest test IDs.
if: ${{ (success() || (failure() && steps.spread.outcome == 'failure')) && startsWith(matrix.job.spread_job, 'github-ci:ubuntu-24.04:') && endsWith(matrix.job.spread_job, ':juju36') && github.event_name == 'schedule' && github.run_attempt == '1' }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: allure-results-release-test-${{ inputs.path-to-charm-directory }}-${{ matrix.job.name_in_artifact }}
path: ${{ inputs.path-to-charm-directory }}/artifacts/${{ matrix.job.spread_job }}/allure-results/
Expand Down Expand Up @@ -186,7 +186,7 @@ jobs:
- name: Upload logs
timeout-minutes: 5
if: ${{ !contains(matrix.job.spread_job, 'juju29') && (success() || (failure() && steps.spread.outcome == 'failure')) }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: logs-release-test-${{ inputs.path-to-charm-directory }}-${{ matrix.job.name_in_artifact }}
path: ~/logs/
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/schedule.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,12 @@ jobs:
- name: Download default test results
# Default test results in case the integration tests time out or runner set up fails
# (So that Allure report will show "unknown"/"failed" test result, instead of omitting the test)
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
path: allure-default-results/
name: allure-default-results-integration-test
- name: Download test results
uses: actions/download-artifact@v5
uses: actions/download-artifact@v8
with:
path: allure-results/
pattern: allure-results-integration-test-*
Expand Down
6 changes: 3 additions & 3 deletions machines/.readthedocs.yaml → .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ build:
# This is a special exit code on Read the Docs that will cancel the build immediately.
# https://docs.readthedocs.io/en/stable/build-customization.html#cancel-build-based-on-a-condition
- |
if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/8.0/edge -- 'machines/docs/' 'machines/.readthedocs.yaml';
if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/8.0/edge -- 'docs/' '.readthedocs.yaml';
then
exit 183;
fi

# Build documentation in the docs/ directory with Sphinx
sphinx:
builder: dirhtml
configuration: machines/docs/conf.py
configuration: docs/conf.py
fail_on_warning: true

# If using Sphinx, optionally build your docs in additional formats such as PDF
Expand All @@ -36,4 +36,4 @@ formats:
# Optionally declare the Python requirements required to build your docs
python:
install:
- requirements: machines/docs/requirements.txt
- requirements: docs/requirements.txt
12 changes: 8 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@ this operator.
- Test coverage
- User experience for Juju administrators of this charm.
- Please help us out in ensuring easy to review branches by rebasing your pull request branch onto
the `main` branch. This also avoids merge commits and creates a linear Git commit history.
the `8.0/edge` branch. This also avoids merge commits and creates a linear Git commit history.

## Develop
Install `tox`, `poetry`, and `charmcraftcache`
Install `yq`, `tox`, `poetry`, and `charmcraftcache`

```shell
pipx install yq
pipx install tox
pipx install poetry
pipx install charmcraftcache
Expand Down Expand Up @@ -63,9 +64,12 @@ Build the charm in this git repository using:
juju add-model dev
juju model-config logging-config="<root>=INFO;unit=DEBUG"

# Extract the K8s image
export MYSQL_IMAGE=$(yq -r '.["resources"]["mysql-image"]["upstream-source"]' kubernetes/metadata.yaml)

# Deploy the K8s or VM charm
(cd kubernetes && juju deploy ./mysql-k8s_ubuntu-22.04-amd64.charm --resource mysql-image=...)
(cd machines && juju deploy ./mysql_ubuntu-22.04-amd64.charm)
(cd kubernetes && juju deploy ./mysql-k8s_ubuntu@22.04-amd64.charm --resource mysql-image=${MYSQL_IMAGE})
(cd machines && juju deploy ./mysql_ubuntu@22.04-amd64.charm)
```

## Canonical Contributor Agreement
Expand Down
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MySQL operators
[![Charmhub](https://charmhub.io/mysql/badge.svg)](https://charmhub.io/mysql)
[![Charmhub](https://charmhub.io/mysql-k8s/badge.svg)](https://charmhub.io/mysql-k8s)
[![Charmhub](https://charmhub.io/mysql/badge.svg?channel=8.0/edge)](https://charmhub.io/mysql)
[![Charmhub](https://charmhub.io/mysql-k8s/badge.svg?channel=8.0/edge)](https://charmhub.io/mysql-k8s)
[![Release](https://github.com/canonical/mysql-operators/actions/workflows/release.yaml/badge.svg?branch=8.0/edge)](https://github.com/canonical/mysql-operators/actions/workflows/release.yaml)
[![Tests](https://github.com/canonical/mysql-operators/actions/workflows/ci.yaml/badge.svg?branch=8.0/edge)](https://github.com/canonical/mysql-operators/actions/workflows/ci.yaml)

Expand Down Expand Up @@ -35,8 +35,7 @@ juju destroy-model mysql --destroy-storage --yes

## Documentation

Please follow the tutorial guide ([K8s](https://canonical-charmed-mysql-k8s.readthedocs-hosted.com/tutorial/) or [VM](https://canonical-charmed-mysql.readthedocs-hosted.com/tutorial/))
with detailed explanation how to access DB, configure cluster, change credentials and/or enable TLS.
See the [official documentation](https://canonical-charmed-mysql.readthedocs-hosted.com/8.0) for more operational guidance, such as deployment on specific clouds, TLS, monitoring, backups, and troubleshooting.

## Relations

Expand Down
22 changes: 22 additions & 0 deletions kubernetes/docs/.custom_wordlist.txt → docs/.custom_wordlist.txt
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
# Leave a blank line at the end of this file to support concatenation
airgap
airgapped
Artifactory
async
backend
backends
backport
binlog
Charmcraft
cjk
cron
cryptographically
CSR
CSRs
databag
dvipng
failover
fonts
fqdn
freefont
Furo
github
Expand All @@ -24,24 +31,30 @@ Intersphinx
io
ip
Jira
kubectl
landscape
lang
lastmod
LaTeX
latexmk
logrotate
MinIO
Multipass
mydumper
mysql
mysqldump
MyST
nameserver
nameservers
Open Graph
otf
Paxos
PDF
Percona
plantuml
PNG
PPA
PPAs
PR
PVC
PVCs
Expand All @@ -58,18 +71,27 @@ snap_daemon
Sphinx
Spread
spread_test_example
stdout
storages
subproject
subprojects
SVG
Sysbench
tex
texlive
TOC
toctree
tracebacks
txt
teardown
uncommenting
systemd
systemctl
uncordon
URL
utils
VMs
walkthrough
WCAG
whitespace
whitespaces
Expand Down
File renamed without changes.
File renamed without changes.
Loading
Loading