mirror of
https://github.com/dat515-2025/Group-8.git
synced 2026-03-22 15:12:08 +01:00
Compare commits
1 Commits
merge/oaut
...
merge/data
| Author | SHA1 | Date | |
|---|---|---|---|
| bf213234b1 |
@@ -96,6 +96,13 @@ module "database" {
|
||||
|
||||
phpmyadmin_enabled = var.phpmyadmin_enabled
|
||||
cloudflare_domain = var.cloudflare_domain
|
||||
|
||||
s3_enabled = var.s3_enabled
|
||||
s3_bucket = var.s3_bucket
|
||||
s3_region = var.s3_region
|
||||
s3_endpoint = var.s3_endpoint
|
||||
s3_key_id = var.s3_key_id
|
||||
s3_key_secret = var.s3_key_secret
|
||||
}
|
||||
|
||||
#module "argocd" {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: v2
|
||||
name: maxscale-helm
|
||||
version: 1.0.8
|
||||
version: 1.0.14
|
||||
description: Helm chart for MaxScale related Kubernetes manifests
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if .Values.s3.enabled }}
|
||||
apiVersion: k8s.mariadb.com/v1alpha1
|
||||
kind: Backup
|
||||
metadata:
|
||||
name: backup
|
||||
namespace: mariadb-operator
|
||||
spec:
|
||||
mariaDbRef:
|
||||
name: mariadb-repl
|
||||
namespace: mariadb-operator
|
||||
schedule:
|
||||
cron: "0 */3 * * *"
|
||||
suspend: false
|
||||
timeZone: "Europe/Prague"
|
||||
maxRetention: 720h # 30 days
|
||||
compression: bzip2
|
||||
storage:
|
||||
s3:
|
||||
bucket: {{ .Values.s3.bucket | quote }}
|
||||
endpoint: {{ .Values.s3.endpoint | quote }}
|
||||
accessKeyIdSecretKeyRef:
|
||||
name: s3-credentials
|
||||
key: key_id
|
||||
secretAccessKeySecretKeyRef:
|
||||
name: s3-credentials
|
||||
key: secret_key
|
||||
region: {{ .Values.s3.region | quote }}
|
||||
tls:
|
||||
enabled: true
|
||||
# Define a PVC to use as staging area for keeping the backups while they are being processed.
|
||||
stagingStorage:
|
||||
persistentVolumeClaim:
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
args:
|
||||
- --single-transaction
|
||||
- --all-databases
|
||||
logLevel: info
|
||||
{{- end }}
|
||||
@@ -0,0 +1,11 @@
|
||||
{{- if .Values.s3.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: s3-credentials
|
||||
namespace: mariadb-operator
|
||||
type: Opaque
|
||||
stringData:
|
||||
key_id: "{{ .Values.s3.key_id }}"
|
||||
secret_key: "{{ .Values.s3.key_secret }}"
|
||||
{{- end }}
|
||||
@@ -14,4 +14,12 @@ metallb:
|
||||
phpmyadmin:
|
||||
enabled: true
|
||||
|
||||
s3:
|
||||
enabled: false
|
||||
endpoint: ""
|
||||
region: ""
|
||||
bucket: ""
|
||||
key_id: ""
|
||||
key_secret: ""
|
||||
|
||||
base_domain: example.com
|
||||
|
||||
@@ -59,7 +59,7 @@ resource "helm_release" "mariadb-operator" {
|
||||
resource "helm_release" "maxscale_helm" {
|
||||
name = "maxscale-helm"
|
||||
chart = "${path.module}/charts/maxscale-helm"
|
||||
version = "1.0.8"
|
||||
version = "1.0.14"
|
||||
depends_on = [helm_release.mariadb-operator-crds, kubectl_manifest.secrets]
|
||||
timeout = 3600
|
||||
|
||||
@@ -71,6 +71,12 @@ resource "helm_release" "maxscale_helm" {
|
||||
{ name = "metallb.primary_ip", value = var.primary_ip },
|
||||
{ name = "metallb.secondary_ip", value = var.secondary_ip },
|
||||
{ name = "phpmyadmin.enabled", value = tostring(var.phpmyadmin_enabled) },
|
||||
{ name = "base_domain", value = var.cloudflare_domain }
|
||||
{ name = "base_domain", value = var.cloudflare_domain },
|
||||
{ name = "s3.key_id", value = var.s3_key_id },
|
||||
{ name = "s3.key_secret", value = var.s3_key_secret },
|
||||
{ name = "s3.enabled", value = var.s3_enabled },
|
||||
{ name = "s3.endpoint", value = var.s3_endpoint },
|
||||
{ name = "s3.region", value = var.s3_region },
|
||||
{ name = "s3.bucket", value = var.s3_bucket },
|
||||
]
|
||||
}
|
||||
|
||||
@@ -52,7 +52,39 @@ variable "mariadb_user_password" {
|
||||
}
|
||||
|
||||
variable "cloudflare_domain" {
|
||||
type = string
|
||||
default = "Base cloudflare domain, e.g. example.com"
|
||||
type = string
|
||||
default = "Base cloudflare domain, e.g. example.com"
|
||||
nullable = false
|
||||
}
|
||||
}
|
||||
|
||||
variable "s3_key_id" {
|
||||
description = "S3 Key ID for backups"
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "s3_key_secret" {
|
||||
description = "S3 Key Secret for backups"
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "s3_enabled" {
|
||||
description = "Enable S3 backups"
|
||||
type = bool
|
||||
}
|
||||
|
||||
variable "s3_endpoint" {
|
||||
description = "S3 endpoint for backups"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "s3_region" {
|
||||
description = "S3 region for backups"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "s3_bucket" {
|
||||
description = "S3 bucket name for backups"
|
||||
type = string
|
||||
}
|
||||
|
||||
@@ -108,3 +108,40 @@ variable "rabbitmq-password" {
|
||||
sensitive = true
|
||||
description = "Admin password for RabbitMQ user"
|
||||
}
|
||||
|
||||
variable "s3_key_id" {
|
||||
description = "S3 Key ID for backups"
|
||||
type = string
|
||||
sensitive = true
|
||||
nullable = false
|
||||
}
|
||||
|
||||
variable "s3_key_secret" {
|
||||
description = "S3 Key Secret for backups"
|
||||
type = string
|
||||
sensitive = true
|
||||
nullable = false
|
||||
}
|
||||
|
||||
variable "s3_enabled" {
|
||||
description = "Enable S3 backups"
|
||||
type = bool
|
||||
}
|
||||
|
||||
variable "s3_endpoint" {
|
||||
description = "S3 endpoint for backups"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "s3_region" {
|
||||
description = "S3 region for backups"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "s3_bucket" {
|
||||
description = "S3 bucket name for backups"
|
||||
type = string
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user