majuna/app/terraform/eotk.py

66 lines
1.6 KiB
Python

from app import app
from app.models.base import Group
from app.terraform.terraform import TerraformAutomation
class EotkAutomation(TerraformAutomation):
short_name = "eotk"
description = "Deploy EOTK instances to AWS"
template_parameters = [
"aws_access_key",
"aws_secret_key"
]
template = """
terraform {
required_providers {
aws = {
version = "~> 4.4.0"
}
}
}
provider "aws" {
access_key = "{{ aws_access_key }}"
secret_key = "{{ aws_secret_key }}"
region = "us-east-2"
}
provider "aws" {
access_key = "{{ aws_access_key }}"
secret_key = "{{ aws_secret_key }}"
region = "eu-central-1"
alias = "second_region"
}
{% for group in groups %}
module "eotk_{{ group.id }}" {
providers = {
aws = aws,
aws.second_region = aws.second_region
}
source = "sr2c/eotk/aws"
version = "0.0.5"
namespace = "{{ global_namespace }}"
tenant = "{{ group.group_name }}"
name = "eotk"
label_order = ["namespace", "tenant", "name", "attributes"]
disable_api_termination = true
}
{% endfor %}
"""
def tf_generate(self):
self.tf_write(
self.template,
groups=Group.query.filter(
Group.eotk == True,
Group.destroyed == None
).all(),
global_namespace=app.config['GLOBAL_NAMESPACE'],
**{
k: app.config[k.upper()]
for k in self.template_parameters
}
)