From 5b626f3e9ed2fa76131bebcd7ac9148521db2010 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 +++ 3 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 +}