stem95su: scheduled Drive->site sync CronJob (every 10m)

CronJob stem95su-gdrive-sync (*/10) mounts the content PVC RW and
rclone-syncs the read-only Drive folder "claude" (stem claude/files) onto
it (rclone/rclone:1.74.3, scope=drive.readonly, empty-source guard +
--max-delete 25). ESO ExternalSecret stem95su-rclone <- Vault
secret/stem95su. Requires the GCP OAuth app published to Production or the
refresh token expires ~weekly.

Lands the gdrive-sync stack on master (it had landed on a feature branch
by accident on the shared devvm checkout).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Viktor Barzin 2026-06-09 08:42:26 +00:00
parent 05b50d2b96
commit 6d224861c4
1168 changed files with 120 additions and 358547 deletions

View file

@ -1,37 +0,0 @@
# =============================================================================
# DBaaS Stack MySQL + PostgreSQL + pgAdmin
# =============================================================================
variable "tls_secret_name" { type = string }
variable "nfs_server" { type = string }
variable "prod" {
type = bool
default = false
}
data "vault_kv_secret_v2" "secrets" {
mount = "secret"
name = "platform"
}
# Personal/app-user secrets (forgejo + roundcubemail MySQL passwords live here,
# not under secret/platform, to match the "secret/viktor as the go-to personal
# vault" convention documented in .claude/CLAUDE.md).
data "vault_kv_secret_v2" "viktor" {
mount = "secret"
name = "viktor"
}
module "dbaas" {
source = "./modules/dbaas"
prod = var.prod
tls_secret_name = var.tls_secret_name
nfs_server = var.nfs_server
dbaas_root_password = data.vault_kv_secret_v2.secrets.data["dbaas_root_password"]
postgresql_root_password = data.vault_kv_secret_v2.secrets.data["dbaas_postgresql_root_password"]
pgadmin_password = data.vault_kv_secret_v2.secrets.data["dbaas_pgadmin_password"]
mysql_forgejo_password = data.vault_kv_secret_v2.viktor.data["mysql_forgejo_password"]
mysql_roundcubemail_password = data.vault_kv_secret_v2.viktor.data["mysql_roundcubemail_password"]
kube_config_path = var.kube_config_path
tier = local.tiers.cluster
}