From 0a887d8cad1cd4cc7af470152f5ef46d84a51c62 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Wed, 26 Nov 2025 22:55:17 -0600 Subject: [PATCH] Enable MariaDB --- manifests/kustomization.yaml | 1 + manifests/mariadb-operator/chart.yaml | 53 +++++++++++ manifests/mariadb-operator/databases.yaml | 74 ++++++++++++++++ manifests/mariadb-operator/kustomization.yaml | 7 ++ manifests/mariadb-operator/namespace.yaml | 4 + manifests/mariadb-operator/secrets.yaml | 88 +++++++++++++++++++ 6 files changed, 227 insertions(+) create mode 100644 manifests/mariadb-operator/chart.yaml create mode 100644 manifests/mariadb-operator/databases.yaml create mode 100644 manifests/mariadb-operator/kustomization.yaml create mode 100644 manifests/mariadb-operator/namespace.yaml create mode 100644 manifests/mariadb-operator/secrets.yaml diff --git a/manifests/kustomization.yaml b/manifests/kustomization.yaml index fddd316..2ed1e43 100644 --- a/manifests/kustomization.yaml +++ b/manifests/kustomization.yaml @@ -4,6 +4,7 @@ resources: - secrets - dashboard - cnpg-system + - mariadb-operator - databases - matrix - gitlab-runner diff --git a/manifests/mariadb-operator/chart.yaml b/manifests/mariadb-operator/chart.yaml new file mode 100644 index 0000000..116de85 --- /dev/null +++ b/manifests/mariadb-operator/chart.yaml @@ -0,0 +1,53 @@ +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: mariadb-operator +spec: + interval: "24h" + url: https://helm.mariadb.com/mariadb-operator +--- +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: mariadb-operator-crds +spec: + interval: "24h" + chart: + spec: + chart: mariadb-operator-crds + sourceRef: + kind: HelmRepository + name: mariadb-operator + interval: "1h" +--- +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: mariadb-operator +spec: + interval: "24h" + chart: + spec: + chart: mariadb-operator + sourceRef: + kind: HelmRepository + name: mariadb-operator + interval: "1h" + dependsOn: + - name: mariadb-operator-crds + values: + clusterName: "cluster.local" + crds: + enabled: true + ha: + enabled: false + metrics: + enabled: true + serviceMonitor: + enabled: false + certController: + serviceMonitor: + enabled: false + webhook: + serviceMonitor: + enabled: false diff --git a/manifests/mariadb-operator/databases.yaml b/manifests/mariadb-operator/databases.yaml new file mode 100644 index 0000000..747b82e --- /dev/null +++ b/manifests/mariadb-operator/databases.yaml @@ -0,0 +1,74 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: mariadb-cluster +spec: + interval: "24h" + chart: + spec: + chart: mariadb-cluster + sourceRef: + kind: HelmRepository + name: mariadb-operator + interval: "1h" + dependsOn: + - name: mariadb-operator-crds + - name: mariadb-operator + values: + mariadb: + rootPasswordSecretKeyRef: + name: mariadb-root + key: password + storage: + size: "30Gi" + replicas: 3 + databases: + - name: uptimekuma + characterSet: utf8 + collate: utf8_general_ci + cleanupPolicy: Delete + requeueInterval: "10h" + retryInterval: "30s" + users: + - name: uptimekuma + passwordSecretKeyRef: + name: uptimekuma-mariadb-password + key: password + host: "%" + cleanupPolicy: Delete + requeueInterval: "10h" + retryInterval: "30s" + grants: + - name: uptimekuma + privileges: + - "ALL PRIVILEGES" + database: "uptimekuma" + table: "*" + username: uptimekuma + grantOption: true + host: "%" + cleanupPolicy: Delete + requeueInterval: "10h" + retryInterval: "30s" + physicalBackups: + - name: physicalbackup + schedule: + cron: "0 0 * * *" + suspend: false + immediate: true + compression: gzip + maxRetention: "720h" + storage: + s3: + bucket: k3sbackup + prefix: mariadb + endpoint: "chronicles.shire-zebra.ts.net:9000" + region: us-east-1 + accessKeyIdSecretKeyRef: + name: k3sbackup-secret + key: username + secretAccessKeySecretKeyRef: + name: k3sbackup-secret + key: password + tls: + enabled: false diff --git a/manifests/mariadb-operator/kustomization.yaml b/manifests/mariadb-operator/kustomization.yaml new file mode 100644 index 0000000..41ed723 --- /dev/null +++ b/manifests/mariadb-operator/kustomization.yaml @@ -0,0 +1,7 @@ +namespace: mariadb-operator + +resources: + - namespace.yaml + - secrets.yaml + - chart.yaml + - databases.yaml diff --git a/manifests/mariadb-operator/namespace.yaml b/manifests/mariadb-operator/namespace.yaml new file mode 100644 index 0000000..0009225 --- /dev/null +++ b/manifests/mariadb-operator/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: mariadb-operator diff --git a/manifests/mariadb-operator/secrets.yaml b/manifests/mariadb-operator/secrets.yaml new file mode 100644 index 0000000..9723178 --- /dev/null +++ b/manifests/mariadb-operator/secrets.yaml @@ -0,0 +1,88 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: k3sbackup-externalsecret +spec: + target: + name: k3sbackup-secret + deletionPolicy: Delete + template: + type: kubernetes.io/basic-auth + data: + username: |- + {{ .username }} + password: |- + {{ .password }} + data: + - secretKey: username + sourceRef: + storeRef: + name: bitwarden-login + kind: ClusterSecretStore + remoteRef: + key: 685b29c6-9264-4e60-ba4a-b2ea005a5d7b + property: username + - secretKey: password + sourceRef: + storeRef: + name: bitwarden-login + kind: ClusterSecretStore + remoteRef: + key: 685b29c6-9264-4e60-ba4a-b2ea005a5d7b + property: password +--- +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: uptimekuma-mariadb-password +spec: + target: + name: uptimekuma-mariadb-password + deletionPolicy: Delete + template: + type: kubernetes.io/basic-auth + data: + username: |- + {{ .username }} + password: |- + {{ .password }} + secretStoreRef: + name: bitwarden-login + kind: ClusterSecretStore + data: + - secretKey: username + remoteRef: + key: 4df95656-9f9c-4916-8e34-b3a200376365 + property: username + - secretKey: password + remoteRef: + key: 4df95656-9f9c-4916-8e34-b3a200376365 + property: password +--- +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: mariadb-root +spec: + target: + name: mariadb-root + deletionPolicy: Delete + template: + type: kubernetes.io/basic-auth + data: + username: |- + {{ .username }} + password: |- + {{ .password }} + secretStoreRef: + name: bitwarden-login + kind: ClusterSecretStore + data: + - secretKey: username + remoteRef: + key: 048943ca-f686-4008-bef5-b3a2003a6fd2 + property: username + - secretKey: password + remoteRef: + key: 048943ca-f686-4008-bef5-b3a2003a6fd2 + property: password