diff --git a/main.tf b/main.tf index 06a097f6..19f96205 100644 --- a/main.tf +++ b/main.tf @@ -50,6 +50,7 @@ variable "home_assistant_configuration" {} variable "shadowsocks_password" {} variable "finance_app_monzo_client_id" {} variable "finance_app_monzo_client_secret" {} +variable "finance_app_sqlite_db_path" {} variable "ansible_prefix" { default = "ANSIBLE_VAULT_PASSWORD_FILE=~/.ansible/vault_pass.txt ansible-playbook -i playbook/hosts.yaml playbook/linux.yml -t linux/initial_setup" @@ -249,4 +250,5 @@ module "kubernetes_cluster" { # finance app finance_app_monzo_client_id = var.finance_app_monzo_client_id finance_app_monzo_client_secret = var.finance_app_monzo_client_secret + finance_app_sqlite_db_path = var.finance_app_sqlite_db_path } diff --git a/modules/kubernetes/finance_app/main.tf b/modules/kubernetes/finance_app/main.tf index 6ea8f0be..50e23852 100644 --- a/modules/kubernetes/finance_app/main.tf +++ b/modules/kubernetes/finance_app/main.tf @@ -1,6 +1,7 @@ variable "tls_secret_name" {} variable "monzo_client_id" {} variable "monzo_client_secret" {} +variable "sqlite_db_path" {} resource "kubernetes_namespace" "finance_app" { @@ -16,6 +17,40 @@ module "tls_secret" { tls_secret_name = var.tls_secret_name } +# resource "kubernetes_persistent_volume" "finance_app_pv" { +# metadata { +# name = "finance-app-iscsi-pv" +# } +# spec { +# capacity = { +# "storage" = "5G" +# } +# access_modes = ["ReadWriteOnce"] +# persistent_volume_source { +# iscsi { +# target_portal = "iscsi.viktorbarzin.lan:3260" +# iqn = "iqn.2020-12.lan.viktorbarzin:storage:finance-app" +# lun = 0 +# fs_type = "ext4" +# } +# } +# } +# } +# resource "kubernetes_persistent_volume_claim" "finance_app_pvc" { +# metadata { +# name = "finance-iscsi-pvc" +# namespace = "finance-app" +# } +# spec { +# access_modes = ["ReadWriteOnce"] +# resources { +# requests = { +# "storage" = "5Gi" +# } +# } +# } +# } + resource "kubernetes_deployment" "finance_app" { metadata { name = "finance-app" @@ -26,6 +61,9 @@ resource "kubernetes_deployment" "finance_app" { } spec { replicas = 1 + strategy { + type = "Recreate" + } selector { match_labels = { app = "finance-app" @@ -50,6 +88,25 @@ resource "kubernetes_deployment" "finance_app" { name = "MONZO_CLIENT_SECRET" value = var.monzo_client_secret } + env { + name = "SQLITE_DB_PATH" + value = var.sqlite_db_path + } + volume_mount { + name = "data" + mount_path = "/data" + # sub_path = "" + } + } + volume { + name = "data" + iscsi { + target_portal = "iscsi.viktorbarzin.lan:3260" + fs_type = "ext4" + iqn = "iqn.2020-12.lan.viktorbarzin:storage:finance-app" + lun = 0 + read_only = false + } } } } diff --git a/modules/kubernetes/main.tf b/modules/kubernetes/main.tf index 5327cf86..63d587a5 100644 --- a/modules/kubernetes/main.tf +++ b/modules/kubernetes/main.tf @@ -38,6 +38,7 @@ variable "home_assistant_configuration" {} variable "shadowsocks_password" {} variable "finance_app_monzo_client_id" {} variable "finance_app_monzo_client_secret" {} +variable "finance_app_sqlite_db_path" {} resource "null_resource" "core_services" { # List all the core modules that must be provisioned first @@ -255,4 +256,5 @@ module "finance_app" { tls_secret_name = var.tls_secret_name monzo_client_id = var.finance_app_monzo_client_id monzo_client_secret = var.finance_app_monzo_client_secret + sqlite_db_path = var.finance_app_sqlite_db_path } diff --git a/terraform.tfstate b/terraform.tfstate index 3ef9a7e3..5c9f34e1 100644 Binary files a/terraform.tfstate and b/terraform.tfstate differ diff --git a/terraform.tfvars b/terraform.tfvars index 65fd4ada..b287b3bf 100644 Binary files a/terraform.tfvars and b/terraform.tfvars differ