From 99d0c412a9ecfa3662cb9bfa3b1791d3ee64b686 Mon Sep 17 00:00:00 2001 From: viktorbarzin Date: Mon, 6 Mar 2023 18:56:00 +0200 Subject: [PATCH] add finance app module --- main.tf | 6 ++ modules/kubernetes/finance_app/main.tf | 77 +++++++++++++++++++++++++ modules/kubernetes/main.tf | 9 +++ terraform.tfvars | Bin 15512 -> 15718 bytes 4 files changed, 92 insertions(+) create mode 100644 modules/kubernetes/finance_app/main.tf diff --git a/main.tf b/main.tf index 82b93a6b..06a097f6 100644 --- a/main.tf +++ b/main.tf @@ -48,6 +48,8 @@ variable "monitoring_idrac_password" {} variable "alertmanager_slack_api_url" {} variable "home_assistant_configuration" {} variable "shadowsocks_password" {} +variable "finance_app_monzo_client_id" {} +variable "finance_app_monzo_client_secret" {} 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" @@ -243,4 +245,8 @@ module "kubernetes_cluster" { # shadowsocks shadowsocks_password = var.shadowsocks_password + + # finance app + finance_app_monzo_client_id = var.finance_app_monzo_client_id + finance_app_monzo_client_secret = var.finance_app_monzo_client_secret } diff --git a/modules/kubernetes/finance_app/main.tf b/modules/kubernetes/finance_app/main.tf new file mode 100644 index 00000000..13526167 --- /dev/null +++ b/modules/kubernetes/finance_app/main.tf @@ -0,0 +1,77 @@ +variable "tls_secret_name" {} +variable "monzo_client_id" {} +variable "monzo_client_secret" {} + + +resource "kubernetes_namespace" "finance_app" { + metadata { + name = "finance-app" + } +} + + +module "tls_secret" { + source = "../setup_tls_secret" + namespace = "finance-app" + tls_secret_name = var.tls_secret_name +} + +resource "kubernetes_deployment" "finance_app" { + metadata { + name = "finance-app" + namespace = "finance-app" + labels = { + app = "finance-app" + } + } + spec { + replicas = 2 + selector { + match_labels = { + app = "finance-app" + } + } + template { + metadata { + labels = { + app = "finance-app" + } + } + spec { + container { + image = "viktorbarzin/finance-app" + name = "finance-app" + + env { + name = "MONZO_CLIENT_ID" + value = var.monzo_client_id + } + env { + name = "MONZO_CLIENT_SECRET" + value = var.monzo_client_secret + } + } + } + } + } +} + +resource "kubernetes_service" "finance_app" { + metadata { + name = "finance-app" + namespace = "finance-app" + labels = { + app = "finance-app" + } + } + + spec { + selector = { + app = "finance-app" + } + port { + name = "http" + port = "8000" + } + } +} diff --git a/modules/kubernetes/main.tf b/modules/kubernetes/main.tf index 7ad0d3f4..5327cf86 100644 --- a/modules/kubernetes/main.tf +++ b/modules/kubernetes/main.tf @@ -36,6 +36,8 @@ variable "idrac_password" {} variable "alertmanager_slack_api_url" {} variable "home_assistant_configuration" {} variable "shadowsocks_password" {} +variable "finance_app_monzo_client_id" {} +variable "finance_app_monzo_client_secret" {} resource "null_resource" "core_services" { # List all the core modules that must be provisioned first @@ -247,3 +249,10 @@ module "home_assistant" { client_certificate_secret_name = var.client_certificate_secret_name configuration_yaml = var.home_assistant_configuration } + +module "finance_app" { + source = "./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 +} diff --git a/terraform.tfvars b/terraform.tfvars index 8cf0ff8717849eee58f8397c3c06803f2cf70c01..bcb8c4fe496c86060b8becae555f7050300ac6f9 100644 GIT binary patch literal 15718 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 aCqQ-D39sOTl!)AA1*9m3vU?~W8lH4?bOS>G