add webhook handler and env variables [ci skip]
This commit is contained in:
parent
46dc7e8706
commit
d8c0c027de
4 changed files with 117 additions and 18 deletions
30
main.tf
30
main.tf
|
|
@ -55,6 +55,7 @@ variable "finance_app_imap_host" {}
|
||||||
variable "finance_app_imap_user" {}
|
variable "finance_app_imap_user" {}
|
||||||
variable "finance_app_imap_password" {}
|
variable "finance_app_imap_password" {}
|
||||||
variable "finance_app_imap_directory" {}
|
variable "finance_app_imap_directory" {}
|
||||||
|
variable "finance_app_monzo_registered_accounts_json" {}
|
||||||
|
|
||||||
variable "ansible_prefix" {
|
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"
|
default = "ANSIBLE_VAULT_PASSWORD_FILE=~/.ansible/vault_pass.txt ansible-playbook -i playbook/hosts.yaml playbook/linux.yml -t linux/initial_setup"
|
||||||
|
|
@ -177,6 +178,20 @@ module "k8s_node5" {
|
||||||
network = "dKubernetes"
|
network = "dKubernetes"
|
||||||
provisioner_command = "${var.ansible_prefix} -t linux/k8s/node -e hostname=k8s-node5 -e k8s_master='wizard@${module.k8s_master.guest_ip}'"
|
provisioner_command = "${var.ansible_prefix} -t linux/k8s/node -e hostname=k8s-node5 -e k8s_master='wizard@${module.k8s_master.guest_ip}'"
|
||||||
|
|
||||||
|
vsphere_password = var.vsphere_password
|
||||||
|
vsphere_user = var.vsphere_user
|
||||||
|
vsphere_server = var.vsphere_server
|
||||||
|
vsphere_datastore = "r730-datastore"
|
||||||
|
vsphere_resource_pool = "R730"
|
||||||
|
|
||||||
|
}
|
||||||
|
module "devvm" {
|
||||||
|
source = "./modules/create-vm"
|
||||||
|
vm_name = "devvm"
|
||||||
|
vm_mac_address = "00:50:56:b0:a1:41"
|
||||||
|
network = "dKubernetes"
|
||||||
|
# provisioner_command = "${var.ansible_prefix} -t linux/k8s/node -e hostname=k8s-node5 -e k8s_master='wizard@${module.k8s_master.guest_ip}'"
|
||||||
|
|
||||||
vsphere_password = var.vsphere_password
|
vsphere_password = var.vsphere_password
|
||||||
vsphere_user = var.vsphere_user
|
vsphere_user = var.vsphere_user
|
||||||
vsphere_server = var.vsphere_server
|
vsphere_server = var.vsphere_server
|
||||||
|
|
@ -252,11 +267,12 @@ module "kubernetes_cluster" {
|
||||||
shadowsocks_password = var.shadowsocks_password
|
shadowsocks_password = var.shadowsocks_password
|
||||||
|
|
||||||
# finance app
|
# finance app
|
||||||
finance_app_monzo_client_id = var.finance_app_monzo_client_id
|
finance_app_monzo_client_id = var.finance_app_monzo_client_id
|
||||||
finance_app_monzo_client_secret = var.finance_app_monzo_client_secret
|
finance_app_monzo_client_secret = var.finance_app_monzo_client_secret
|
||||||
finance_app_sqlite_db_path = var.finance_app_sqlite_db_path
|
finance_app_sqlite_db_path = var.finance_app_sqlite_db_path
|
||||||
finance_app_imap_host = var.finance_app_imap_host
|
finance_app_imap_host = var.finance_app_imap_host
|
||||||
finance_app_imap_user = var.finance_app_imap_user
|
finance_app_imap_user = var.finance_app_imap_user
|
||||||
finance_app_imap_password = var.finance_app_imap_password
|
finance_app_imap_password = var.finance_app_imap_password
|
||||||
finance_app_imap_directory = var.finance_app_imap_directory
|
finance_app_imap_directory = var.finance_app_imap_directory
|
||||||
|
finance_app_monzo_registered_accounts_json = var.finance_app_monzo_registered_accounts_json
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@ variable "vm_disk_size" {
|
||||||
|
|
||||||
variable "provisioner_command" {
|
variable "provisioner_command" {
|
||||||
description = "Additional provisioning commands to run"
|
description = "Additional provisioning commands to run"
|
||||||
# default = "#"
|
default = "#"
|
||||||
type = string
|
type = string
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "network" {
|
variable "network" {
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,10 @@ variable "imap_host" {}
|
||||||
variable "imap_user" {}
|
variable "imap_user" {}
|
||||||
variable "imap_password" {}
|
variable "imap_password" {}
|
||||||
variable "imap_directory" {}
|
variable "imap_directory" {}
|
||||||
|
variable "prod_graphql_endpoint" {
|
||||||
|
default = "https://finance.viktorbarzin.me/graphql"
|
||||||
|
}
|
||||||
|
variable "monzo_registered_accounts_json" {}
|
||||||
|
|
||||||
|
|
||||||
resource "kubernetes_namespace" "finance_app" {
|
resource "kubernetes_namespace" "finance_app" {
|
||||||
|
|
@ -133,6 +137,48 @@ resource "kubernetes_deployment" "finance_app" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "kubernetes_deployment" "finance_app_backend_webhook_handler" {
|
||||||
|
metadata {
|
||||||
|
name = "finance-app-backend-webhook-handler"
|
||||||
|
namespace = "finance-app"
|
||||||
|
labels = {
|
||||||
|
app = "finance-app-backend-webhook-handler"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spec {
|
||||||
|
replicas = 1
|
||||||
|
strategy {
|
||||||
|
type = "RollingUpdate"
|
||||||
|
}
|
||||||
|
selector {
|
||||||
|
match_labels = {
|
||||||
|
app = "finance-app-backend-webhook-handler"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template {
|
||||||
|
metadata {
|
||||||
|
labels = {
|
||||||
|
app = "finance-app-backend-webhook-handler"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spec {
|
||||||
|
container {
|
||||||
|
image = "viktorbarzin/finance-app-backend-webhook-handler"
|
||||||
|
name = "finance-app-backend-webhook-handler"
|
||||||
|
env {
|
||||||
|
name = "MONZO_REGISTERED_ACCOUNTS_JSON"
|
||||||
|
value = var.monzo_registered_accounts_json
|
||||||
|
}
|
||||||
|
env {
|
||||||
|
name = "GRAPHQL_ENDPOINT"
|
||||||
|
value = var.prod_graphql_endpoint
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
resource "kubernetes_deployment" "finance_app_frontend" {
|
resource "kubernetes_deployment" "finance_app_frontend" {
|
||||||
metadata {
|
metadata {
|
||||||
name = "finance-app-frontend"
|
name = "finance-app-frontend"
|
||||||
|
|
@ -187,6 +233,25 @@ resource "kubernetes_service" "finance_app" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "kubernetes_service" "finance_app_backend_webhook_handler" {
|
||||||
|
metadata {
|
||||||
|
name = "finance-app-backend-webhook-handler"
|
||||||
|
namespace = "finance-app"
|
||||||
|
labels = {
|
||||||
|
app = "finance-app-backend-webhook-handler"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spec {
|
||||||
|
selector = {
|
||||||
|
app = "finance-app-backend-webhook-handler"
|
||||||
|
}
|
||||||
|
port {
|
||||||
|
name = "http"
|
||||||
|
port = "5000"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
resource "kubernetes_service" "finance_app_frontend" {
|
resource "kubernetes_service" "finance_app_frontend" {
|
||||||
metadata {
|
metadata {
|
||||||
name = "finance-app-frontend"
|
name = "finance-app-frontend"
|
||||||
|
|
@ -253,5 +318,21 @@ resource "kubernetes_ingress_v1" "finance_app" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
rule {
|
||||||
|
host = "finance.viktorbarzin.me"
|
||||||
|
http {
|
||||||
|
path {
|
||||||
|
path = "/webhook"
|
||||||
|
backend {
|
||||||
|
service {
|
||||||
|
name = "finance-app-backend-webhook-handler"
|
||||||
|
port {
|
||||||
|
number = 5000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@ variable "finance_app_imap_host" {}
|
||||||
variable "finance_app_imap_user" {}
|
variable "finance_app_imap_user" {}
|
||||||
variable "finance_app_imap_password" {}
|
variable "finance_app_imap_password" {}
|
||||||
variable "finance_app_imap_directory" {}
|
variable "finance_app_imap_directory" {}
|
||||||
|
variable "finance_app_monzo_registered_accounts_json" {}
|
||||||
|
|
||||||
resource "null_resource" "core_services" {
|
resource "null_resource" "core_services" {
|
||||||
# List all the core modules that must be provisioned first
|
# List all the core modules that must be provisioned first
|
||||||
|
|
@ -256,13 +257,14 @@ module "home_assistant" {
|
||||||
}
|
}
|
||||||
|
|
||||||
module "finance_app" {
|
module "finance_app" {
|
||||||
source = "./finance_app"
|
source = "./finance_app"
|
||||||
tls_secret_name = var.tls_secret_name
|
tls_secret_name = var.tls_secret_name
|
||||||
monzo_client_id = var.finance_app_monzo_client_id
|
monzo_client_id = var.finance_app_monzo_client_id
|
||||||
monzo_client_secret = var.finance_app_monzo_client_secret
|
monzo_client_secret = var.finance_app_monzo_client_secret
|
||||||
sqlite_db_path = var.finance_app_sqlite_db_path
|
sqlite_db_path = var.finance_app_sqlite_db_path
|
||||||
imap_host = var.finance_app_imap_host
|
imap_host = var.finance_app_imap_host
|
||||||
imap_user = var.finance_app_imap_user
|
imap_user = var.finance_app_imap_user
|
||||||
imap_password = var.finance_app_imap_password
|
imap_password = var.finance_app_imap_password
|
||||||
imap_directory = var.finance_app_imap_directory
|
imap_directory = var.finance_app_imap_directory
|
||||||
|
monzo_registered_accounts_json = var.finance_app_monzo_registered_accounts_json
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue