This PR contains the following updates: | Package | Update | Change | |---|---|---| | [mariadb-operator-crds](https://github.com/mariadb-operator/mariadb-operator) | major | `25.10.4` → `26.3.0` | --- ### Release Notes <details> <summary>mariadb-operator/mariadb-operator (mariadb-operator-crds)</summary> ### [`v26.3.0`](https://github.com/mariadb-operator/mariadb-operator/releases/tag/26.3.0) [Compare Source](https://github.com/mariadb-operator/mariadb-operator/compare/mariadb-operator-crds-25.10.4...mariadb-operator-crds-26.3.0) **`mariadb-operator` [26.03](https://github.com/mariadb-operator/mariadb-operator/releases/tag/26.3.0) is here!** 🦭 Welcome to another release of `mariadb-operator`! In this version, we have significantly enhanced our disaster recovery capabilities by adding support for **on-demand physical backups**, **Azure Blob Storage** and... (🥁)... **Point-In-Time-Recovery** ✨. Additionally, we've received a bunch of contributions by our amazing community during this release, including bug fixes and new features. We feel very grateful for your efforts and support, thank you! 🙇♂️ Refer to the PRs in the changelog below for further details. If you're upgrading from previous versions, **do not miss the [UPGRADE GUIDE](https://github.com/mariadb-operator/mariadb-operator/blob/main/docs/releases/UPGRADE_26.3.0.md)** for a smooth transition. #### Point-In-Time-Recovery Point-in-time recovery (PITR) is a feature that allows you to restore a `MariaDB` instance to a specific point in time. For achieving this, it combines a full base backup and the binary logs that record all changes made to the database after the backup. This is something fully automated by operator, covering archival and restoration up to a specific time, ensuring business continuity and reduced RTO and RPO. In order to configure PITR, you need to create a `PhysicalBackup` object to be used as full base backup. For example, you can configure a nightly backup: ```yaml apiVersion: k8s.mariadb.com/v1alpha1 kind: PhysicalBackup metadata: name: physicalbackup-daily spec: mariaDbRef: name: mariadb-repl schedule: cron: "0 0 * * *" suspend: false immediate: true compression: bzip2 maxRetention: 720h storage: s3: bucket: physicalbackups prefix: mariadb endpoint: minio.minio.svc.cluster.local:9000 region: us-east-1 accessKeyIdSecretKeyRef: name: minio key: access-key-id secretAccessKeySecretKeyRef: name: minio key: secret-access-key tls: enabled: true caSecretKeyRef: name: minio-ca key: ca.crt ``` Next step is configuring common aspects of both binary log archiving and point-in-time restoration by defining a `PointInTimeRecovery` object: ```yaml apiVersion: k8s.mariadb.com/v1alpha1 kind: PointInTimeRecovery metadata: name: pitr spec: physicalBackupRef: name: physicalbackup-daily storage: s3: bucket: binlogs prefix: mariadb endpoint: minio.minio.svc.cluster.local:9000 region: us-east-1 accessKeyIdSecretKeyRef: name: minio key: access-key-id secretAccessKeySecretKeyRef: name: minio key: secret-access-key tls: enabled: true caSecretKeyRef: name: minio-ca key: ca.crt compression: gzip archiveTimeout: 1h strictMode: false ``` The new `PointInTimeRecovery` CR is just a configuration object that contains shared settings for both binary log archiving and point-in-time recovery. It has also a reference to a `PhysicalBackup` CR, used as full base backup. In order to configure binary log archiving, you need to set a reference to the `PointInTimeRecovery` CR in the `MariaDB` object: ```yaml apiVersion: k8s.mariadb.com/v1alpha1 kind: MariaDB metadata: name: mariadb-repl spec: pointInTimeRecoveryRef: name: pitr ``` This will enable the binary log archival in the sidecar agent, which will eventually report the last recoverable time via the `PointInTimeRecovery` status: ```bash kubectl get pitr NAME PHYSICAL BACKUP LAST RECOVERABLE TIME STRICT MODE AGE pitr physicalbackup-daily 2026-02-27T20:10:42Z false 43h ``` In order to perform a point-in-time restoration, you can create a new `MariaDB` instance with a reference to the `PointInTimeRecovery` object in the `bootstrapFrom` field, along with the `targetRecoveryTime`, which should be before or at the last recoverable time: ```yaml apiVersion: k8s.mariadb.com/v1alpha1 kind: MariaDB metadata: name: mariadb-repl spec: bootstrapFrom: pointInTimeRecoveryRef: name: pitr targetRecoveryTime: 2026-02-27T20:10:42Z ``` The restoration process will match the closest physical backup before or at the `targetRecoveryTime`, and then it will replay the archived binary logs from the backup GTID position up until the `targetRecoveryTime`. Refer to the [PITR docs](https://github.com/mariadb-operator/mariadb-operator/blob/main/docs/pitr.md) for additional details. #### Azure Blob Storage So far, we have only supported S3-compatible storage as object storage for keeping the backups. We are now introducing native support for Azure Blob Storage in the `PhysicalBackup` and `PointInTimeRecovery` CRs. You can configure it under the `storage` field, similarly to S3: ```yaml apiVersion: k8s.mariadb.com/v1alpha1 kind: PointInTimeRecovery metadata: name: pitr spec: storage: azureBlob: containerName: binlogs serviceURL: https://azurite.default.svc.cluster.local:10000/devstoreaccount1 prefix: mariadb storageAccountName: devstoreaccount1 storageAccountKey: name: azurite-key key: storageAccountKey tls: enabled: true caSecretKeyRef: name: azurite-certs key: cert.pem ``` ```yaml apiVersion: k8s.mariadb.com/v1alpha1 kind: PhysicalBackup metadata: name: physicalbackup-daily spec: storage: azureBlob: containerName: physicalbackup serviceURL: https://azurite.default.svc.cluster.local:10000/devstoreaccount1 prefix: mariadb storageAccountName: devstoreaccount1 storageAccountKey: name: azurite-key key: storageAccountKey tls: enabled: true caSecretKeyRef: name: azurite-certs key: cert.pem ``` Refer to the [physical backup storage](https://github.com/mariadb-operator/mariadb-operator/blob/main/docs/physical_backup.md#azure-blob-storage-credentials) docs for additional details. It is important to note that we couldn't find the bandwidth to support it for `Backup` resource (logical backup) in this release, [contributions are welcomed](https://github.com/mariadb-operator/mariadb-operator/issues/1653)! Kudos to our co-maintainer [@​Michaelpalacce](https://github.com/Michaelpalacce) for smoothly driving this feature end-to-end! #### On-demand `PhysicalBackup` We have introduced the ability to trigger on-demand physical backup manually. For doing so, you need to provide an identifier in the `schedule.onDemand` field of the `PhysicalBackup` resource: ```yaml apiVersion: k8s.mariadb.com/v1alpha1 kind: PhysicalBackup metadata: name: physicalbackup spec: schedule: onDemand: "1" ``` Once scheduled, the operator tracks the identifier under the status subresource. If the identifier in the status differs from `schedule.onDemand`, the operator will trigger a new physical backup. Refer to the [physical backup scheduling](https://github.com/mariadb-operator/mariadb-operator/blob/main/docs/physical_backup.md#scheduling) docs for additional details. ##### Behaviour change in `targetRecoveryTime` To satisfy requirements of point-in-time recovery, we have unified the behaviour of the `bootstrapFrom.targetRecoveryTime` field in the `MariaDB` object: Logical and physical backup files whose timestamp is closest to `targetRecoveryTime`, **but not after**, will be matched. Please take this into account when upgrading to this version. ##### Change in Helm `values.yaml` `config` has been split into `repository` and `tag` to facilitate overriding the image registry (see [#​1632](https://github.com/mariadb-operator/mariadb-operator/pull/1632)). Please update your `values.yaml` from: ```yaml config: mariadbImageName: docker-registry1.mariadb.com/library/mariadb maxscaleImage: docker-registry2.mariadb.com/mariadb/maxscale:23.08.5 exporterImage: prom/mysqld-exporter:v0.15.1 exporterMaxscaleImage: docker-registry2.mariadb.com/mariadb/maxscale-prometheus-exporter-ubi:v0.0.1 ``` to the following format: ```yaml config: mariadbImage: repository: docker-registry1.mariadb.com/library/mariadb tag: 11.8.5 maxscaleImage: repository: docker-registry2.mariadb.com/mariadb/maxscale tag: 23.08.5 exporterImage: repository: prom/mysqld-exporter tag: v0.15.1 exporterMaxscaleImage: repository: docker-registry2.mariadb.com/mariadb/maxscale-prometheus-exporter-ubi tag: v0.0.1 ``` ##### Updated dependencies | Platform/Component | Version | | ------------------ | ------- | | Kubernetes | 1.35 | | Go | 1.26.1 | | controller-runtime | 0.23.3 | #### Updated roadmap The next feature to be supported is the new multi-cluster topology. Stay tuned! - [x] ~~[Point In Time Recovery (PITR)](https://github.com/mariadb-operator/mariadb-operator/issues/507)~~ - [ ] [Multi-cluster topology](https://github.com/mariadb-operator/mariadb-operator/issues/1543) *** #### Community Contributions of any kind are always welcome: adding yourself to the [list of adopters](https://github.com/mariadb-operator/mariadb-operator/blob/main/ADOPTERS.md), reporting issues, submitting pull requests, or simply starring the project! 🌟 #### Enterprise For enterprise users, see the **[MariaDB Enterprise Operator](https://mariadb.com/products/enterprise/kubernetes-operator/)**, a commercially supported Kubernetes operator from MariaDB with additional enterprise-grade features. #### What's Changed - feat: Use primary Service by default for HA mariaDB connections by [@​softho0n](https://github.com/softho0n) in [#​1575](https://github.com/mariadb-operator/mariadb-operator/pull/1575) - feat: add loadBalancerClass field to ServiceTemplate by [@​yangminglintw](https://github.com/yangminglintw) in [#​1589](https://github.com/mariadb-operator/mariadb-operator/pull/1589) - fix: use standard compression extensions and add magic bytes validation by [@​yangminglintw](https://github.com/yangminglintw) in [#​1588](https://github.com/mariadb-operator/mariadb-operator/pull/1588) - Make volumes and volumeMounts mutable by [@​hedgieinsocks](https://github.com/hedgieinsocks) in [#​1601](https://github.com/mariadb-operator/mariadb-operator/pull/1601) - chore: Bump to latest go by [@​Michaelpalacce](https://github.com/Michaelpalacce) in [#​1630](https://github.com/mariadb-operator/mariadb-operator/pull/1630) - make imagePullSecrets mutable by [@​dmaes](https://github.com/dmaes) in [#​1614](https://github.com/mariadb-operator/mariadb-operator/pull/1614) - split config images in repository and tag by [@​dmaes](https://github.com/dmaes) in [#​1632](https://github.com/mariadb-operator/mariadb-operator/pull/1632) - Galera recovery: disable bootstrap on other pods before bootstrapping by [@​infocusmodereal](https://github.com/infocusmodereal) in [#​1631](https://github.com/mariadb-operator/mariadb-operator/pull/1631) - Bump github.com/minio/minio-go/v7 from 7.0.97 to 7.0.98 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1585](https://github.com/mariadb-operator/mariadb-operator/pull/1585) - Bump ghcr.io/devcontainers/features/docker-in-docker from 2.13.0 to 2.16.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1624](https://github.com/mariadb-operator/mariadb-operator/pull/1624) - Bump ghcr.io/devcontainers/features/kubectl-helm-minikube from 1.2.2 to 1.3.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1623](https://github.com/mariadb-operator/mariadb-operator/pull/1623) - Bump goreleaser/goreleaser-action from 6 to 7 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1620](https://github.com/mariadb-operator/mariadb-operator/pull/1620) - Bump github.com/onsi/gomega from 1.38.3 to 1.39.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1581](https://github.com/mariadb-operator/mariadb-operator/pull/1581) - Bump crate-ci/typos from 1.41.0 to 1.44.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1625](https://github.com/mariadb-operator/mariadb-operator/pull/1625) - Bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.27.5 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1586](https://github.com/mariadb-operator/mariadb-operator/pull/1586) - Bump github.com/cert-manager/cert-manager from 1.18.2 to 1.19.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1580](https://github.com/mariadb-operator/mariadb-operator/pull/1580) - Bump github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring from 0.87.1 to 0.88.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1579](https://github.com/mariadb-operator/mariadb-operator/pull/1579) - Disable service links in MariaDB and MaxScale pod specs by [@​usiegj00](https://github.com/usiegj00) in [#​1635](https://github.com/mariadb-operator/mariadb-operator/pull/1635) - Fix finalizer for ExternalMariDB by [@​snaax](https://github.com/snaax) in [#​1606](https://github.com/mariadb-operator/mariadb-operator/pull/1606) - test: Added int tests for sql resources with external mariadb deletion by [@​Michaelpalacce](https://github.com/Michaelpalacce) in [#​1649](https://github.com/mariadb-operator/mariadb-operator/pull/1649) - Bump github.com/minio/minio-go/v7 from 7.0.98 to 7.0.99 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1648](https://github.com/mariadb-operator/mariadb-operator/pull/1648) - Bump golang.org/x/sync from 0.19.0 to 0.20.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1645](https://github.com/mariadb-operator/mariadb-operator/pull/1645) - Bump docker/build-push-action from 6 to 7 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1644](https://github.com/mariadb-operator/mariadb-operator/pull/1644) - Bump docker/setup-qemu-action from 3 to 4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1642](https://github.com/mariadb-operator/mariadb-operator/pull/1642) - Bump github.com/go-chi/chi/v5 from 5.2.3 to 5.2.5 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1641](https://github.com/mariadb-operator/mariadb-operator/pull/1641) - Bump docker/login-action from 3 to 4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1646](https://github.com/mariadb-operator/mariadb-operator/pull/1646) - Bump ghcr.io/devcontainers/features/docker-in-docker from 2.16.0 to 2.16.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1640](https://github.com/mariadb-operator/mariadb-operator/pull/1640) - Bump docker/setup-buildx-action from 3 to 4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1638](https://github.com/mariadb-operator/mariadb-operator/pull/1638) - Bump github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring from 0.88.0 to 0.89.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1643](https://github.com/mariadb-operator/mariadb-operator/pull/1643) - Bump golang from 1.25.7-alpine3.23 to 1.26.1-alpine3.23 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1639](https://github.com/mariadb-operator/mariadb-operator/pull/1639) - feat: Latest controller-runtime. Webhook changes, New Events API by [@​Michaelpalacce](https://github.com/Michaelpalacce) in [#​1651](https://github.com/mariadb-operator/mariadb-operator/pull/1651) - Support for ephemeral volumes in `MariaDB` by [@​mmontes11](https://github.com/mmontes11) in [#​1650](https://github.com/mariadb-operator/mariadb-operator/pull/1650) - fix: accept compressed backup files in logical restore by [@​voron](https://github.com/voron) in [#​1655](https://github.com/mariadb-operator/mariadb-operator/pull/1655) - Fix typo: syncrhonous -> synchronous by [@​sjmudd](https://github.com/sjmudd) in [#​1657](https://github.com/mariadb-operator/mariadb-operator/pull/1657) - Release 26.03: `PointInTimeRecovery`, Azure Blob Storage & on-demand `PhysicalBackups` by [@​mmontes11](https://github.com/mmontes11) in [#​1517](https://github.com/mariadb-operator/mariadb-operator/pull/1517) #### New Contributors - [@​softho0n](https://github.com/softho0n) made their first contribution in [#​1575](https://github.com/mariadb-operator/mariadb-operator/pull/1575) - [@​yangminglintw](https://github.com/yangminglintw) made their first contribution in [#​1589](https://github.com/mariadb-operator/mariadb-operator/pull/1589) - [@​dmaes](https://github.com/dmaes) made their first contribution in [#​1614](https://github.com/mariadb-operator/mariadb-operator/pull/1614) - [@​infocusmodereal](https://github.com/infocusmodereal) made their first contribution in [#​1631](https://github.com/mariadb-operator/mariadb-operator/pull/1631) - [@​usiegj00](https://github.com/usiegj00) made their first contribution in [#​1635](https://github.com/mariadb-operator/mariadb-operator/pull/1635) - [@​voron](https://github.com/voron) made their first contribution in [#​1655](https://github.com/mariadb-operator/mariadb-operator/pull/1655) - [@​sjmudd](https://github.com/sjmudd) made their first contribution in [#​1657](https://github.com/mariadb-operator/mariadb-operator/pull/1657) **Full Changelog**: <https://github.com/mariadb-operator/mariadb-operator/compare/25.10.4...26.3.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OS4yIiwidXBkYXRlZEluVmVyIjoiNDMuNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiY2hhcnQiXX0=--> Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4707 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
26 lines
803 B
YAML
26 lines
803 B
YAML
apiVersion: v2
|
|
name: mariadb-operator
|
|
version: 1.0.0
|
|
description: MariaDB Operator
|
|
keywords:
|
|
- mariadb-operator
|
|
- database
|
|
- storage
|
|
- kubernetes
|
|
home: https://wiki.alexlebens.dev/
|
|
sources:
|
|
- https://github.com/mariadb-operator/mariadb-operator
|
|
- https://github.com/mariadb-operator/mariadb-operator/tree/main/deploy/charts/mariadb-operator
|
|
maintainers:
|
|
- name: alexlebens
|
|
dependencies:
|
|
- name: mariadb-operator
|
|
version: 25.10.4
|
|
repository: https://helm.mariadb.com/mariadb-operator
|
|
- name: mariadb-operator-crds
|
|
version: 26.3.0
|
|
repository: https://helm.mariadb.com/mariadb-operator
|
|
icon: https://mariadb-operator.github.io/mariadb-operator/assets/mariadb_profile.svg
|
|
# renovate: datasource=github-releases depName=mariadb-operator/mariadb-operator
|
|
appVersion: 25.10.4
|