Compare commits

..

3 Commits

Author SHA1 Message Date
6d5dd1a222 feat(infrastructure): update deployment
Some checks failed
Deploy Prod / Build and push image (reusable) (push) Has been cancelled
Deploy Prod / Frontend - Build and Deploy to Cloudflare Pages (prod) (push) Has been cancelled
Deploy Prod / Helm upgrade/install (prod) (push) Has been cancelled
2025-10-09 18:51:17 +02:00
ribardej
f09f9eaa82 feat(infrastructure): redone the system diagram 2025-10-09 15:55:23 +02:00
ae10c4daff Merge pull request #19 from dat515-2025/merge/basic_database_structure
feat(models): add basic database structure
2025-10-09 15:24:11 +02:00
6 changed files with 44 additions and 35 deletions

View File

@@ -45,11 +45,11 @@ flowchart LR
proc_cron[Task planner] --> proc_queue proc_cron[Task planner] --> proc_queue
proc_queue_worker --> ext_bank[(Bank API)] proc_queue_worker --> ext_bank[(Bank API)]
proc_queue_worker --> db proc_queue_worker --> db
client[Client/UI] --> api[API Gateway / Web Server] client[Client/UI] <--> api[API Gateway / Web Server]
api --> svc[Web API] api <--> svc[Web API]
svc --> proc_queue svc --> proc_queue
svc --> db[(Database)] svc <--> db[(Database)]
svc --> cache[(Cache)] svc <--> cache[(Cache)]
``` ```
- Components and responsibilities: What does each box do? - Components and responsibilities: What does each box do?

View File

@@ -60,6 +60,8 @@ spec:
scrapeTimeout: 10s scrapeTimeout: 10s
prometheusRelease: kube-prometheus-stack prometheusRelease: kube-prometheus-stack
jobLabel: mariadb-monitoring jobLabel: mariadb-monitoring
auth:
generate: true
tls: tls:
enabled: true enabled: true

View File

@@ -9,16 +9,16 @@ terraform {
version = "3.0.2" version = "3.0.2"
} }
kubernetes = { kubernetes = {
source = "hashicorp/kubernetes" source = "hashicorp/kubernetes"
version = "2.38.0" version = "2.38.0"
} }
} }
} }
resource "kubernetes_namespace" "mariadb-operator" { resource "kubernetes_namespace" "mariadb-operator" {
metadata { metadata {
name = "mariadb-operator" name = "mariadb-operator"
} }
} }
locals { locals {
@@ -30,46 +30,47 @@ locals {
} }
resource "kubectl_manifest" "secrets" { resource "kubectl_manifest" "secrets" {
yaml_body = local.mariadb_secret_yaml yaml_body = local.mariadb_secret_yaml
depends_on = [ kubernetes_namespace.mariadb-operator ] depends_on = [kubernetes_namespace.mariadb-operator]
} }
resource "helm_release" "mariadb-operator-crds" { resource "helm_release" "mariadb-operator-crds" {
name = "mariadb-operator-crds" name = "mariadb-operator-crds"
repository = "https://helm.mariadb.com/mariadb-operator" repository = "https://helm.mariadb.com/mariadb-operator"
chart = "mariadb-operator-crds" chart = "mariadb-operator-crds"
namespace = "mariadb-operator" namespace = "mariadb-operator"
version = "25.8.4" version = "25.8.4"
depends_on = [ kubectl_manifest.secrets ] depends_on = [kubectl_manifest.secrets]
timeout = 3600 timeout = 3600
} }
resource "helm_release" "mariadb-operator" { resource "helm_release" "mariadb-operator" {
name = "mariadb-operator" name = "mariadb-operator"
repository = "https://helm.mariadb.com/mariadb-operator" repository = "https://helm.mariadb.com/mariadb-operator"
chart = "mariadb-operator" chart = "mariadb-operator"
depends_on = [ helm_release.mariadb-operator-crds, kubectl_manifest.secrets ] depends_on = [helm_release.mariadb-operator-crds, kubectl_manifest.secrets]
namespace = "mariadb-operator" namespace = "mariadb-operator"
timeout = 3600 version = "25.8.3"
timeout = 3600
} }
resource "helm_release" "maxscale_helm" { resource "helm_release" "maxscale_helm" {
name = "maxscale-helm" name = "maxscale-helm"
chart = "${path.module}/charts/maxscale-helm" chart = "${path.module}/charts/maxscale-helm"
version = "1.0.8" version = "1.0.8"
depends_on = [ helm_release.mariadb-operator-crds, kubectl_manifest.secrets ] depends_on = [helm_release.mariadb-operator-crds, kubectl_manifest.secrets]
timeout = 3600 timeout = 3600
set = [ set = [
{ name = "user.name", value = var.mariadb_user_name }, { name = "user.name", value = var.mariadb_user_name },
{ name = "user.host", value = var.mariadb_user_host }, { name = "user.host", value = var.mariadb_user_host },
{ name = "metallb.maxscale_ip", value = var.maxscale_ip }, { name = "metallb.maxscale_ip", value = var.maxscale_ip },
{ name = "metallb.service_ip", value = var.service_ip }, { name = "metallb.service_ip", value = var.service_ip },
{ name = "metallb.primary_ip", value = var.primary_ip }, { name = "metallb.primary_ip", value = var.primary_ip },
{ name = "metallb.secondary_ip", value = var.secondary_ip }, { name = "metallb.secondary_ip", value = var.secondary_ip },
{ name = "phpmyadmin.enabled", value = tostring(var.phpmyadmin_enabled) }, { name = "phpmyadmin.enabled", value = tostring(var.phpmyadmin_enabled) },
{ name = "base_domain", value = var.cloudflare_domain } { name = "base_domain", value = var.cloudflare_domain }
] ]
} }

View File

@@ -16,6 +16,12 @@ terraform {
} }
} }
resource "kubernetes_namespace" "rabbitmq_namespace" {
metadata {
name = "rabbitmq-system"
}
}
resource "helm_release" "rabbitmq_operator" { resource "helm_release" "rabbitmq_operator" {
name = "rabbitmq-cluster-operator" name = "rabbitmq-cluster-operator"
@@ -24,8 +30,7 @@ resource "helm_release" "rabbitmq_operator" {
version = "4.4.34" version = "4.4.34"
namespace = "rabbitmq-system" namespace = "rabbitmq-system"
create_namespace = true
# Zde můžete přepsat výchozí hodnoty chartu, pokud by bylo potřeba # Zde můžete přepsat výchozí hodnoty chartu, pokud by bylo potřeba
# Například sledovat jen určité namespace, nastavit tolerations atd. # Například sledovat jen určité namespace, nastavit tolerations atd.
@@ -59,6 +64,7 @@ resource "helm_release" "rabbitmq_operator" {
value = "true" value = "true"
} }
] ]
depends_on = [kubernetes_namespace.rabbitmq_namespace]
} }

View File

@@ -2,4 +2,4 @@ apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster kind: RabbitmqCluster
metadata: metadata:
name: 'rabbitmq-cluster' name: 'rabbitmq-cluster'
namespace: "rabbitmq" namespace: "rabbitmq-system"

View File

@@ -2,7 +2,7 @@ apiVersion: networking.cfargotunnel.com/v1alpha1
kind: TunnelBinding kind: TunnelBinding
metadata: metadata:
name: rabbit-tunnel-binding name: rabbit-tunnel-binding
namespace: rabbitmq namespace: rabbitmq-system
subjects: subjects:
- name: rabbit-gui - name: rabbit-gui
spec: spec: