Files
infrastructure/clusters/cl01tl/helm/mariadb-operator/Chart.yaml
Renovate Bot 460b5c55d8
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 14s
renovate / renovate (push) Successful in 5m9s
chore(deps): update helm release mariadb-operator-crds to v26 (#4707)
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 [@&#8203;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 [#&#8203;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 [@&#8203;softho0n](https://github.com/softho0n) in [#&#8203;1575](https://github.com/mariadb-operator/mariadb-operator/pull/1575)
- feat: add loadBalancerClass field to ServiceTemplate by [@&#8203;yangminglintw](https://github.com/yangminglintw) in [#&#8203;1589](https://github.com/mariadb-operator/mariadb-operator/pull/1589)
- fix: use standard compression extensions and add magic bytes validation by [@&#8203;yangminglintw](https://github.com/yangminglintw) in [#&#8203;1588](https://github.com/mariadb-operator/mariadb-operator/pull/1588)
- Make volumes and volumeMounts mutable by [@&#8203;hedgieinsocks](https://github.com/hedgieinsocks) in [#&#8203;1601](https://github.com/mariadb-operator/mariadb-operator/pull/1601)
- chore: Bump to latest go by [@&#8203;Michaelpalacce](https://github.com/Michaelpalacce) in [#&#8203;1630](https://github.com/mariadb-operator/mariadb-operator/pull/1630)
- make imagePullSecrets mutable by [@&#8203;dmaes](https://github.com/dmaes) in [#&#8203;1614](https://github.com/mariadb-operator/mariadb-operator/pull/1614)
- split config images in repository and tag by [@&#8203;dmaes](https://github.com/dmaes) in [#&#8203;1632](https://github.com/mariadb-operator/mariadb-operator/pull/1632)
- Galera recovery: disable bootstrap on other pods before bootstrapping by [@&#8203;infocusmodereal](https://github.com/infocusmodereal) in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1623](https://github.com/mariadb-operator/mariadb-operator/pull/1623)
- Bump goreleaser/goreleaser-action from 6 to 7 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1620](https://github.com/mariadb-operator/mariadb-operator/pull/1620)
- Bump github.com/onsi/gomega from 1.38.3 to 1.39.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1581](https://github.com/mariadb-operator/mariadb-operator/pull/1581)
- Bump crate-ci/typos from 1.41.0 to 1.44.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1579](https://github.com/mariadb-operator/mariadb-operator/pull/1579)
- Disable service links in MariaDB and MaxScale pod specs by [@&#8203;usiegj00](https://github.com/usiegj00) in [#&#8203;1635](https://github.com/mariadb-operator/mariadb-operator/pull/1635)
- Fix finalizer for ExternalMariDB by [@&#8203;snaax](https://github.com/snaax) in [#&#8203;1606](https://github.com/mariadb-operator/mariadb-operator/pull/1606)
- test: Added int tests for sql resources with external mariadb deletion by [@&#8203;Michaelpalacce](https://github.com/Michaelpalacce) in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1648](https://github.com/mariadb-operator/mariadb-operator/pull/1648)
- Bump golang.org/x/sync from 0.19.0 to 0.20.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1645](https://github.com/mariadb-operator/mariadb-operator/pull/1645)
- Bump docker/build-push-action from 6 to 7 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1644](https://github.com/mariadb-operator/mariadb-operator/pull/1644)
- Bump docker/setup-qemu-action from 3 to 4 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1641](https://github.com/mariadb-operator/mariadb-operator/pull/1641)
- Bump docker/login-action from 3 to 4 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1640](https://github.com/mariadb-operator/mariadb-operator/pull/1640)
- Bump docker/setup-buildx-action from 3 to 4 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;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 [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1639](https://github.com/mariadb-operator/mariadb-operator/pull/1639)
- feat: Latest controller-runtime. Webhook changes, New Events API by [@&#8203;Michaelpalacce](https://github.com/Michaelpalacce) in [#&#8203;1651](https://github.com/mariadb-operator/mariadb-operator/pull/1651)
- Support for ephemeral volumes in `MariaDB` by [@&#8203;mmontes11](https://github.com/mmontes11) in [#&#8203;1650](https://github.com/mariadb-operator/mariadb-operator/pull/1650)
- fix: accept compressed backup files in logical restore by [@&#8203;voron](https://github.com/voron) in [#&#8203;1655](https://github.com/mariadb-operator/mariadb-operator/pull/1655)
- Fix typo: syncrhonous -> synchronous by [@&#8203;sjmudd](https://github.com/sjmudd) in [#&#8203;1657](https://github.com/mariadb-operator/mariadb-operator/pull/1657)
- Release 26.03: `PointInTimeRecovery`, Azure Blob Storage & on-demand `PhysicalBackups` by [@&#8203;mmontes11](https://github.com/mmontes11) in [#&#8203;1517](https://github.com/mariadb-operator/mariadb-operator/pull/1517)

#### New Contributors

- [@&#8203;softho0n](https://github.com/softho0n) made their first contribution in [#&#8203;1575](https://github.com/mariadb-operator/mariadb-operator/pull/1575)
- [@&#8203;yangminglintw](https://github.com/yangminglintw) made their first contribution in [#&#8203;1589](https://github.com/mariadb-operator/mariadb-operator/pull/1589)
- [@&#8203;dmaes](https://github.com/dmaes) made their first contribution in [#&#8203;1614](https://github.com/mariadb-operator/mariadb-operator/pull/1614)
- [@&#8203;infocusmodereal](https://github.com/infocusmodereal) made their first contribution in [#&#8203;1631](https://github.com/mariadb-operator/mariadb-operator/pull/1631)
- [@&#8203;usiegj00](https://github.com/usiegj00) made their first contribution in [#&#8203;1635](https://github.com/mariadb-operator/mariadb-operator/pull/1635)
- [@&#8203;voron](https://github.com/voron) made their first contribution in [#&#8203;1655](https://github.com/mariadb-operator/mariadb-operator/pull/1655)
- [@&#8203;sjmudd](https://github.com/sjmudd) made their first contribution in [#&#8203;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>
2026-03-14 19:56:37 +00:00

803 B