Skip to content

chore: upgrade MariaDB Operator and cluster chart#1451

Open
vish6760 wants to merge 4 commits intorackerlabs:mainfrom
vish6760:mariadb-operator-upgrade-v26.3.0
Open

chore: upgrade MariaDB Operator and cluster chart#1451
vish6760 wants to merge 4 commits intorackerlabs:mainfrom
vish6760:mariadb-operator-upgrade-v26.3.0

Conversation

@vish6760
Copy link
Copy Markdown
Contributor

@vish6760 vish6760 commented Mar 22, 2026

MariaDB Operator & Cluster Upgrade

This PR upgrades the MariaDB Operator and cluster charts from 0.38.1 >
26.3.0
, following the recommended upgrade path: 0.38.1 > 25.8.4 >
25.10.4 > 26.3.0

Key Improvements

The upgrade introduces improvements to:

  • Enhanced replication failover handling
  • Improved backup and restore workflows
  • PhysicalBackup consistency improvements
  • Fixes for Galera failover behaviour
  • Snapshot and VolumeSnapshot handling improvements
  • Improved operator reconciliation and stability
  • Support up to Kubernetes versions 1.35
  • Point-in-Time Recovery (PITR) support (26.3.0)
  • Azure Blob Storage + on-demand PhysicalBackup enhancements

Scheduling & Affinity Changes

This PR also introduces node affinity rules to ensure MariaDB operator
and cluster pods are scheduled on nodes labeled with
openstack-control-plane=enabled in flex.
These changes apply to:

1. mariadb-operator-helm-overrides.yaml

  • Adds node affinity
  • Adds pod anti-affinity
  • Applied to:
    • Main operator pod spec
    • Webhook pod spec

2. mariadb-replication.yaml

  • Adds node affinity to the MariaDB replication pod spec

3. mariadb-backup.yaml

  • Adds soft pod anti-affinity to MariaDB backup jobs

operator: In
values:
- worker
- matchExpressions:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is operator related, it should live on the kubernetes workers. remove the openstack-control-plane node selection here.
for clariafication, the mariadb operator and webhook pods are "k8s cluster specific" and should live on the k8s workers. while the mariadb pods for the deployed cluster should live on the openstack-control-plane nodes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have removed the openstack-control-plane node selection

galeraLibPath: /usr/lib/galera/libgalera_smm.so
# -- Default MariaDB version to be used when unable to infer it via image tag
mariadbDefaultVersion: "11.4"
mariadbDefaultVersion: "11.8"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will force a cluster upgrade. Has this been tested to be safe and automated?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested this and found that the MariaDB cluster was not updated until we executed the command to apply kubectl --namespace openstack apply -k /etc/genestack/kustomize/mariadb-cluster/overlay the patch. However, before upgrading MariaDB or running this command, we need to ensure that the dataplane is upgraded as well by adding the kustomize patch described here: https://github.com/mariadb-operator/mariadb-operator/blob/main/docs/releases/UPGRADE_26.3.0.md

Also, just to bring this in attention - I did not skip any releases. I followed the upgrade path (0.38.1 → 25.8.4 → 25.10.4 → 26.3.0) to upgrade the MariaDB replication and Galera cluster in my test lab. However, it may be possible to skip directly from 0.38.1 to 26.3.0. But upgrade documents has a note up to release 25.10.4 which is not included in release 26.3.0.

Note
Do not attempt to skip intermediate version upgrades. Upgrade progressively through each version.

operator: In
values:
- worker
- matchExpressions:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove the openstack-control-plane node selection. the operator and webhook pods should be considered part of the k8s offering and live on the k8s workers.
for clariafication, the mariadb operator and webhook pods are "k8s cluster specific" and should live on the k8s workers. while the mariadb pods for the deployed cluster should live on the openstack-control-plane nodes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have removed the openstack-control-plane node selection

On recommendation, removing the openstack-control-plane node selection.
the operator and webhook pods should be considered part of the k8s
offering and live on the k8s workers.
@vish6760 vish6760 force-pushed the mariadb-operator-upgrade-v26.3.0 branch from af3de49 to dbebc82 Compare March 27, 2026 01:23
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

Successfully merging this pull request may close these issues.

2 participants