From 64d84e4cade191210b0a9e8e15888e60f07a265b Mon Sep 17 00:00:00 2001 From: viktorbarzin Date: Sun, 19 Mar 2023 03:40:26 +0000 Subject: [PATCH] add oauth env variables --- main.tf | 4 ++++ modules/kubernetes/finance_app/main.tf | 18 ++++++++++++++++-- modules/kubernetes/main.tf | 4 ++++ terraform.tfvars | Bin 16185 -> 16388 bytes 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/main.tf b/main.tf index 049a0b55..a247a25a 100644 --- a/main.tf +++ b/main.tf @@ -56,6 +56,8 @@ variable "finance_app_imap_user" {} variable "finance_app_imap_password" {} variable "finance_app_imap_directory" {} variable "finance_app_monzo_registered_accounts_json" {} +variable "finance_app_oauth_google_client_id" {} +variable "finance_app_oauth_google_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" @@ -275,4 +277,6 @@ module "kubernetes_cluster" { finance_app_imap_password = var.finance_app_imap_password finance_app_imap_directory = var.finance_app_imap_directory finance_app_monzo_registered_accounts_json = var.finance_app_monzo_registered_accounts_json + finance_app_oauth_google_client_id = var.finance_app_oauth_google_client_id + finance_app_oauth_google_client_secret = var.finance_app_oauth_google_client_secret } diff --git a/modules/kubernetes/finance_app/main.tf b/modules/kubernetes/finance_app/main.tf index 39504462..d37aadf7 100644 --- a/modules/kubernetes/finance_app/main.tf +++ b/modules/kubernetes/finance_app/main.tf @@ -10,6 +10,8 @@ variable "prod_graphql_endpoint" { default = "https://finance.viktorbarzin.me/graphql" } variable "monzo_registered_accounts_json" {} +variable "oauth_google_client_id" {} +variable "oauth_google_client_secret" {} resource "kubernetes_namespace" "finance_app" { @@ -116,6 +118,18 @@ resource "kubernetes_deployment" "finance_app" { name = "IMAP_DIRECTORY" value = var.imap_directory } + env { + name = "OAUTH_GOOGLE_CLIENT_ID" + value = var.oauth_google_client_id + } + env { + name = "OAUTH_GOOGLE_CLIENT_SECRET" + value = var.oauth_google_client_secret + } + env { + name = "FLASK_DEBUG" + value = "true" + } volume_mount { name = "data" mount_path = "/data" @@ -228,7 +242,7 @@ resource "kubernetes_service" "finance_app" { } port { name = "http" - port = "8000" + port = "5000" } } } @@ -311,7 +325,7 @@ resource "kubernetes_ingress_v1" "finance_app" { service { name = "finance-app" port { - number = 8000 + number = 5000 } } } diff --git a/modules/kubernetes/main.tf b/modules/kubernetes/main.tf index 80ff1c2c..8713166e 100644 --- a/modules/kubernetes/main.tf +++ b/modules/kubernetes/main.tf @@ -44,6 +44,8 @@ variable "finance_app_imap_user" {} variable "finance_app_imap_password" {} variable "finance_app_imap_directory" {} variable "finance_app_monzo_registered_accounts_json" {} +variable "finance_app_oauth_google_client_id" {} +variable "finance_app_oauth_google_client_secret" {} resource "null_resource" "core_services" { # List all the core modules that must be provisioned first @@ -267,4 +269,6 @@ module "finance_app" { imap_password = var.finance_app_imap_password imap_directory = var.finance_app_imap_directory monzo_registered_accounts_json = var.finance_app_monzo_registered_accounts_json + oauth_google_client_id = var.finance_app_oauth_google_client_id + oauth_google_client_secret = var.finance_app_oauth_google_client_secret } diff --git a/terraform.tfvars b/terraform.tfvars index 830ae5a73cef7f10bcc9fb2526137adead4086c3..25852d807beea7d09649b0eaaf2c72d72f746e8f 100644 GIT binary patch literal 16388 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 U=z{eN=qZP(l1T69W4ZDX0LPN!9{>OV literal 16185 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 XbJ<{1Ls_n}51qQ1O-63gO>r9(i)}qq