diff --git a/cmd/generate.go b/cmd/generate.go index 26c8baeb2..8729d96d4 100644 --- a/cmd/generate.go +++ b/cmd/generate.go @@ -10,10 +10,13 @@ import ( ) var configPath string +var runInit bool +var runApply bool func init() { - generateCmd.PersistentFlags().StringVarP(&configPath, "config", "c", util.CommitYml, "config path") + generateCmd.PersistentFlags().BoolVarP(&runInit, "init", "", false, "Initialize config after generating") + generateCmd.PersistentFlags().BoolVarP(&runApply, "apply", "", false, "Apply config after generating") rootCmd.AddCommand(generateCmd) } @@ -29,7 +32,7 @@ var generateCmd = &cobra.Command{ cfg := config.LoadConfig(configPath) cfg.Print() - generate.GenerateArtifactsHelper(t, cfg, "") + generate.GenerateArtifactsHelper(t, cfg, "", runInit, runApply) }, } diff --git a/internal/api/create_project.go b/internal/api/create_project.go index 2071a0c15..5fa3017c1 100644 --- a/internal/api/create_project.go +++ b/internal/api/create_project.go @@ -49,5 +49,5 @@ func GenerateArtifacts(projectConfig util.ProjectConfiguration) { cfg := config.LoadConfig(generatedYml) cfg.Print() - generate.GenerateArtifactsHelper(t, cfg, projectConfig.ProjectName) + generate.GenerateArtifactsHelper(t, cfg, projectConfig.ProjectName, false, false) } diff --git a/internal/config/config.go b/internal/config/config.go index d99843727..3c91c62e0 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -78,7 +78,7 @@ type aws struct { Region string EKS eks Cognito cognito - S3Hosting s3Hosting `yaml:"s3_hosting"` + S3Hosting s3Hosting `yaml:"s3Hosting"` Terraform terraform } @@ -87,17 +87,16 @@ type terraform struct { } type cognito struct { - Deploy bool + Enabled bool } type s3Hosting struct { - Deploy bool + Enabled bool // @TODO Remove this option? If they have frontend and AWS enabled we should set up S3, etc. } type eks struct { ClusterName string `yaml:"clusterName"` WorkerAMI string `yaml:"workerAMI"` - Deploy bool } func LoadConfig(filePath string) *Commit0Config { diff --git a/internal/generate/generate_helper.go b/internal/generate/generate_helper.go index 8aa9d3a96..ce56a8bb1 100644 --- a/internal/generate/generate_helper.go +++ b/internal/generate/generate_helper.go @@ -16,7 +16,7 @@ import ( "github.com/logrusorgru/aurora" ) -func GenerateArtifactsHelper(t *templator.Templator, cfg *config.Commit0Config, pathPrefix string) { +func GenerateArtifactsHelper(t *templator.Templator, cfg *config.Commit0Config, pathPrefix string, runInit bool, runApply bool) { var wg sync.WaitGroup if !util.ValidateLanguage(cfg.Frontend.Framework) { log.Fatalln(aurora.Red(emoji.Sprintf(":exclamation: '%s' is not a supported framework.", cfg.Frontend.Framework))) @@ -50,21 +50,15 @@ func GenerateArtifactsHelper(t *templator.Templator, cfg *config.Commit0Config, // Wait for all the templates to be generated wg.Wait() - log.Println("Executing commands") - // @TODO : Move this stuff to another command? Or genericize it a bit. - if cfg.Infrastructure.AWS.EKS.Deploy { - terraform.Execute(cfg, pathPrefix) - kubernetes.Execute(cfg, pathPrefix) + log.Println(aurora.Cyan(emoji.Sprintf("Initializing Infrastructure"))) + if cfg.Infrastructure.AWS.EKS.ClusterName != "" && runInit { + terraform.Init(cfg, pathPrefix) } - if cfg.Infrastructure.AWS.Cognito.Deploy { - outputs := []string{ - "cognito_pool_id", - "cognito_client_id", - } - outputValues := terraform.GetOutputs(cfg, pathPrefix, outputs) - cfg.Frontend.Env.CognitoPoolID = outputValues["cognito_pool_id"] - cfg.Frontend.Env.CognitoClientID = outputValues["cognito_client_id"] + log.Println(aurora.Cyan(emoji.Sprintf("Creating Infrastructure"))) + if cfg.Infrastructure.AWS.EKS.ClusterName != "" && runApply { + terraform.Execute(cfg, pathPrefix) + kubernetes.Execute(cfg, pathPrefix) } // @TODO : This strucuture probably needs to be adjusted. Probably too generic. diff --git a/internal/generate/kubernetes/generate.go b/internal/generate/kubernetes/generate.go index 569905bc8..c4a0e978a 100644 --- a/internal/generate/kubernetes/generate.go +++ b/internal/generate/kubernetes/generate.go @@ -9,6 +9,7 @@ import ( "github.com/commitdev/commit0/internal/config" "github.com/commitdev/commit0/internal/templator" "github.com/commitdev/commit0/internal/util" + "github.com/kyokomi/emoji" "github.com/logrusorgru/aurora" ) @@ -19,14 +20,12 @@ func Generate(t *templator.Templator, cfg *config.Commit0Config, wg *sync.WaitGr } // Execute terrafrom init & plan -func Execute(config *config.Commit0Config, pathPrefix string) { - if config.Infrastructure.AWS.EKS.Deploy { - envars := util.MakeAwsEnvars(util.GetSecrets()) +func Execute(cfg *config.Commit0Config, pathPrefix string) { + envars := util.MakeAwsEnvars(util.GetSecrets()) - pathPrefix = filepath.Join(pathPrefix, "kubernetes/terraform") + pathPrefix = filepath.Join(pathPrefix, "kubernetes/terraform") - log.Println(aurora.Cyan(":alarm_clock: Applying kubernetes configuration...")) - util.ExecuteCommand(exec.Command("terraform", "init"), filepath.Join(pathPrefix, "environments/staging/kubernetes"), envars) - util.ExecuteCommand(exec.Command("terraform", "plan"), filepath.Join(pathPrefix, "environments/staging/kubernetes"), envars) - } + log.Println(aurora.Cyan(emoji.Sprintf(":alarm_clock: Applying kubernetes configuration..."))) + util.ExecuteCommand(exec.Command("terraform", "init"), filepath.Join(pathPrefix, "environments/staging"), envars) + util.ExecuteCommand(exec.Command("terraform", "apply", "-auto-approve"), filepath.Join(pathPrefix, "environments/staging"), envars) } diff --git a/internal/generate/terraform/generate.go b/internal/generate/terraform/generate.go index 72d46c212..3bd7fb0f5 100644 --- a/internal/generate/terraform/generate.go +++ b/internal/generate/terraform/generate.go @@ -37,6 +37,7 @@ func Generate(t *templator.Templator, cfg *config.Commit0Config, wg *sync.WaitGr t.Terraform.TemplateFiles(data, false, wg, pathPrefix) } +// GetOutputs captures the terraform output for the specific variables func GetOutputs(config *config.Commit0Config, pathPrefix string, outputs []string) map[string]string { outputsMap := make(map[string]string) @@ -44,18 +45,18 @@ func GetOutputs(config *config.Commit0Config, pathPrefix string, outputs []strin envars := util.MakeAwsEnvars(util.GetSecrets()) - path := filepath.Join(pathPrefix, "terraform") + pathPrefix = filepath.Join(pathPrefix, "environments/staging") for _, output := range outputs { - outputValue := util.ExecuteCommandOutput(exec.Command("terraform", "output", output), path, envars) + outputValue := util.ExecuteCommandOutput(exec.Command("terraform", "output", output), pathPrefix, envars) outputsMap[output] = outputValue } return outputsMap } -// Execute terrafrom init & plan -func Execute(config *config.Commit0Config, pathPrefix string) { +// Init sets up anything required by Execute +func Init(config *config.Commit0Config, pathPrefix string) { // @TODO : Change this check. Most likely we should discover the accountid if config.Infrastructure.AWS.AccountId != "" { log.Println("Preparing aws environment...") @@ -68,16 +69,31 @@ func Execute(config *config.Commit0Config, pathPrefix string) { log.Println(aurora.Cyan(emoji.Sprintf(":alarm_clock: Initializing remote backend..."))) util.ExecuteCommand(exec.Command("terraform", "init"), filepath.Join(pathPrefix, "bootstrap/remote-state"), envars) util.ExecuteCommand(exec.Command("terraform", "apply", "-auto-approve"), filepath.Join(pathPrefix, "bootstrap/remote-state"), envars) + } +} - log.Println(aurora.Cyan(":alarm_clock: Planning infrastructure...")) - util.ExecuteCommand(exec.Command("terraform", "init"), filepath.Join(pathPrefix, "environments/staging"), envars) - util.ExecuteCommand(exec.Command("terraform", "plan"), filepath.Join(pathPrefix, "environments/staging"), envars) +// Execute terrafrom init & plan. May modify the config passed in +func Execute(cfg *config.Commit0Config, pathPrefix string) { + // @TODO : Change this check. Most likely we should discover the accountid + if cfg.Infrastructure.AWS.AccountId != "" { + log.Println("Preparing aws environment...") - log.Println(aurora.Cyan(":alarm_clock: Applying infrastructure configuration...")) - util.ExecuteCommand(exec.Command("terraform", "apply"), filepath.Join(pathPrefix, "environments/staging"), envars) + envars := util.MakeAwsEnvars(util.GetSecrets()) + + pathPrefix = filepath.Join(pathPrefix, "terraform") - log.Println(aurora.Cyan(":alarm_clock: Applying kubernetes configuration...")) - util.ExecuteCommand(exec.Command("terraform", "init"), filepath.Join(pathPrefix, "environments/staging/kubernetes"), envars) - util.ExecuteCommand(exec.Command("terraform", "plan"), filepath.Join(pathPrefix, "environments/staging/kubernetes"), envars) + log.Println(aurora.Cyan(emoji.Sprintf(":alarm_clock: Applying infrastructure configuration..."))) + util.ExecuteCommand(exec.Command("terraform", "init"), filepath.Join(pathPrefix, "environments/staging"), envars) + util.ExecuteCommand(exec.Command("terraform", "apply", "-auto-approve"), filepath.Join(pathPrefix, "environments/staging"), envars) + + if cfg.Infrastructure.AWS.Cognito.Enabled { + outputs := []string{ + "cognito_pool_id", + "cognito_client_id", + } + outputValues := GetOutputs(cfg, pathPrefix, outputs) + cfg.Frontend.Env.CognitoPoolID = outputValues["cognito_pool_id"] + cfg.Frontend.Env.CognitoClientID = outputValues["cognito_client_id"] + } } } diff --git a/internal/util/util.go b/internal/util/util.go index a283c174e..855b5e48a 100644 --- a/internal/util/util.go +++ b/internal/util/util.go @@ -136,7 +136,7 @@ func ExecuteCommandOutput(cmd *exec.Cmd, pathPrefix string, envars []string) str out, err := cmd.CombinedOutput() if err != nil { - log.Fatalf("Executing terraform output failed: %v\n", err) + log.Fatalf("Executing command failed: (%v) %s\n", err, out) } return string(out) } diff --git a/templates/commit0/commit0.tmpl b/templates/commit0/commit0.tmpl index 4700355fb..25e2a86e4 100644 --- a/templates/commit0/commit0.tmpl +++ b/templates/commit0/commit0.tmpl @@ -13,11 +13,10 @@ infrastructure: region: us-east-1 eks: clusterName: staging - deploy: true cognito: - deploy: true - s3_hosting: - deploy: true + enabled: true + s3Hosting: + enabled: true frontend: framework: {{.FrontendFramework}} diff --git a/templates/kubernetes/terraform/modules/kubernetes/ingress/main.tf b/templates/kubernetes/terraform/modules/kubernetes/ingress/main.tf old mode 100755 new mode 100644 index 7e64f0204..b2baee84e --- a/templates/kubernetes/terraform/modules/kubernetes/ingress/main.tf +++ b/templates/kubernetes/terraform/modules/kubernetes/ingress/main.tf @@ -22,6 +22,7 @@ resource "kubernetes_config_map" "nginx_configuration" { use-forwarded-headers = "true", use-proxy-protocol = "false" } + depends_on = [kubernetes_namespace.ingress_nginx] } # resource "kubernetes_config_map" "nginx_configuration" { @@ -33,6 +34,7 @@ resource "kubernetes_config_map" "nginx_configuration" { # "app.kubernetes.io/part-of" = "ingress-nginx" # } # } +# depends_on = [kubernetes_namespace.ingress_nginx] # } resource "kubernetes_config_map" "tcp_services" { @@ -44,6 +46,7 @@ resource "kubernetes_config_map" "tcp_services" { "app.kubernetes.io/part-of" = "ingress-nginx" } } + depends_on = [kubernetes_namespace.ingress_nginx] } resource "kubernetes_config_map" "udp_services" { @@ -55,6 +58,7 @@ resource "kubernetes_config_map" "udp_services" { "app.kubernetes.io/part-of" = "ingress-nginx" } } + depends_on = [kubernetes_namespace.ingress_nginx] } resource "kubernetes_service_account" "nginx_ingress_serviceaccount" { @@ -66,6 +70,7 @@ resource "kubernetes_service_account" "nginx_ingress_serviceaccount" { "app.kubernetes.io/part-of" = "ingress-nginx" } } + depends_on = [kubernetes_namespace.ingress_nginx] } resource "kubernetes_cluster_role" "nginx_ingress_clusterrole" { @@ -138,6 +143,7 @@ resource "kubernetes_role" "nginx_ingress_role" { api_groups = [""] resources = ["endpoints"] } + depends_on = [kubernetes_namespace.ingress_nginx] } resource "kubernetes_role_binding" "nginx_ingress_role_nisa_binding" { @@ -159,6 +165,7 @@ resource "kubernetes_role_binding" "nginx_ingress_role_nisa_binding" { kind = "Role" name = "nginx-ingress-role" } + depends_on = [kubernetes_namespace.ingress_nginx] } resource "kubernetes_cluster_role_binding" "nginx_ingress_clusterrole_nisa_binding" { @@ -324,6 +331,7 @@ resource "kubernetes_service" "ingress_nginx" { type = "LoadBalancer" external_traffic_policy = "Local" } + depends_on = [kubernetes_namespace.ingress_nginx] } # HTTPS Load balancer @@ -359,4 +367,5 @@ resource "kubernetes_service" "ingress_nginx" { # } # type = "LoadBalancer" # } -# } \ No newline at end of file +# depends_on = [kubernetes_namespace.ingress_nginx] +# } diff --git a/templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent/main.tf b/templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent.tf similarity index 97% rename from templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent/main.tf rename to templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent.tf index 8c6c4d498..a58c7911b 100644 --- a/templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent/main.tf +++ b/templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent.tf @@ -1,12 +1,9 @@ -data "aws_iam_policy" "CloudWatchAgentServerPolicy" { - arn = "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy" -} - resource "kubernetes_service_account" "cloudwatch_agent" { metadata { name = "cloudwatch-agent" namespace = "amazon-cloudwatch" } + depends_on = [kubernetes_namespace.amazon_cloudwatch] } resource "kubernetes_cluster_role" "cloudwatch_agent_role" { @@ -76,6 +73,7 @@ resource "kubernetes_config_map" "cwagentconfig" { } ) } + depends_on = [kubernetes_namespace.amazon_cloudwatch] } resource "kubernetes_daemonset" "cloudwatch_agent" { @@ -217,4 +215,4 @@ resource "kubernetes_daemonset" "cloudwatch_agent" { } } } -} \ No newline at end of file +} diff --git a/templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent/variables.tf b/templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent/variables.tf deleted file mode 100644 index 858e14e0d..000000000 --- a/templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent/variables.tf +++ /dev/null @@ -1,11 +0,0 @@ -variable "region" { - description = "AWS Region" -} - -variable "environment" { - description = "Environment" -} - -variable "cluster_name" { - description = "Cluster name" -} \ No newline at end of file diff --git a/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/files/containers.conf b/templates/kubernetes/terraform/modules/kubernetes/monitoring/files/containers.conf similarity index 100% rename from templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/files/containers.conf rename to templates/kubernetes/terraform/modules/kubernetes/monitoring/files/containers.conf diff --git a/templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent/files/cwagentconfig.json.tpl b/templates/kubernetes/terraform/modules/kubernetes/monitoring/files/cwagentconfig.json.tpl similarity index 100% rename from templates/kubernetes/terraform/modules/kubernetes/monitoring/cloudwatch_agent/files/cwagentconfig.json.tpl rename to templates/kubernetes/terraform/modules/kubernetes/monitoring/files/cwagentconfig.json.tpl diff --git a/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/files/fluent.conf b/templates/kubernetes/terraform/modules/kubernetes/monitoring/files/fluent.conf similarity index 100% rename from templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/files/fluent.conf rename to templates/kubernetes/terraform/modules/kubernetes/monitoring/files/fluent.conf diff --git a/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/files/host.conf b/templates/kubernetes/terraform/modules/kubernetes/monitoring/files/host.conf similarity index 100% rename from templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/files/host.conf rename to templates/kubernetes/terraform/modules/kubernetes/monitoring/files/host.conf diff --git a/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/files/systemd.conf b/templates/kubernetes/terraform/modules/kubernetes/monitoring/files/systemd.conf similarity index 100% rename from templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/files/systemd.conf rename to templates/kubernetes/terraform/modules/kubernetes/monitoring/files/systemd.conf diff --git a/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/main.tf b/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd.tf similarity index 96% rename from templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/main.tf rename to templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd.tf index de51422a0..24ceca0dd 100644 --- a/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/main.tf +++ b/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd.tf @@ -23,6 +23,7 @@ resource "kubernetes_config_map" "cluster_info" { "cluster.name" = var.cluster_name "logs.region" = var.region } + depends_on = [kubernetes_namespace.amazon_cloudwatch] } resource "kubernetes_service_account" "fluentd" { @@ -30,6 +31,7 @@ resource "kubernetes_service_account" "fluentd" { name = "fluentd" namespace = "amazon-cloudwatch" } + depends_on = [kubernetes_namespace.amazon_cloudwatch] } resource "kubernetes_cluster_role" "fluentd_role" { @@ -57,6 +59,7 @@ resource "kubernetes_cluster_role_binding" "fluentd_role_binding" { kind = "ClusterRole" name = "fluentd-role" } + depends_on = [kubernetes_service_account.fluentd] } resource "kubernetes_config_map" "fluentd_config" { @@ -71,6 +74,7 @@ resource "kubernetes_config_map" "fluentd_config" { "host.conf" = data.local_file.host.content "systemd.conf" = data.local_file.systemd.content } + depends_on = [kubernetes_namespace.amazon_cloudwatch] } resource "kubernetes_daemonset" "fluentd_cloudwatch" { @@ -217,4 +221,4 @@ resource "kubernetes_daemonset" "fluentd_cloudwatch" { } } } -} \ No newline at end of file +} diff --git a/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/variables.tf b/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/variables.tf deleted file mode 100644 index 2fac8d3e3..000000000 --- a/templates/kubernetes/terraform/modules/kubernetes/monitoring/fluentd/variables.tf +++ /dev/null @@ -1,11 +0,0 @@ -variable "environment" { - description = "Environment (production/staging/development)" -} - -variable "region" { - description = "AWS Region" -} - -variable "cluster_name" { - description = "Cluster name to monitor" -} \ No newline at end of file diff --git a/templates/kubernetes/terraform/modules/kubernetes/monitoring/main.tf b/templates/kubernetes/terraform/modules/kubernetes/monitoring/main.tf index eced9055f..9a7d64316 100644 --- a/templates/kubernetes/terraform/modules/kubernetes/monitoring/main.tf +++ b/templates/kubernetes/terraform/modules/kubernetes/monitoring/main.tf @@ -22,17 +22,3 @@ resource "aws_iam_role_policy_attachment" "k8s_monitoring_role_policy" { role = "${aws_iam_role.k8s_monitoring.id}" policy_arn = "${data.aws_iam_policy.CloudWatchAgentServerPolicy.arn}" } - -module "fluentd" { - source = "./fluentd" - environment = var.environment - region = var.region - cluster_name = var.cluster_name -} - -module "cloudwatch_agent" { - source = "./cloudwatch_agent" - environment = var.environment - region = var.region - cluster_name = var.cluster_name -} diff --git a/templates/terraform/environments/development/main.tf b/templates/terraform/environments/development/main.tf index 305629c84..ce8c94f13 100644 --- a/templates/terraform/environments/development/main.tf +++ b/templates/terraform/environments/development/main.tf @@ -38,3 +38,11 @@ module "development" { s3_hosting_bucket_name = "{{ .Config.Name }}-development" } + +output "cognito_client_id" { + value = module.staging.cognito.cognito_client_id +} + +output "cognito_pool_id" { + value = module.staging.cognito.cognito_pool_id +} diff --git a/templates/terraform/environments/production/main.tf b/templates/terraform/environments/production/main.tf index 49b329359..87c2c1368 100644 --- a/templates/terraform/environments/production/main.tf +++ b/templates/terraform/environments/production/main.tf @@ -38,3 +38,11 @@ module "production" { s3_hosting_bucket_name = "{{ .Config.Name }}-production" } + +output "cognito_client_id" { + value = module.staging.cognito.cognito_client_id +} + +output "cognito_pool_id" { + value = module.staging.cognito.cognito_pool_id +} diff --git a/templates/terraform/environments/staging/main.tf b/templates/terraform/environments/staging/main.tf index 96a61d57f..ace31c046 100644 --- a/templates/terraform/environments/staging/main.tf +++ b/templates/terraform/environments/staging/main.tf @@ -37,3 +37,11 @@ module "staging" { hostname = "{{ .Config.Frontend.Hostname }}" s3_hosting_bucket_name = "{{ .Config.Name }}-staging" } + +output "cognito_client_id" { + value = module.staging.cognito.cognito_client_id +} + +output "cognito_pool_id" { + value = module.staging.cognito.cognito_pool_id +} diff --git a/templates/terraform/modules/cognito/main.tf b/templates/terraform/modules/cognito/main.tf index fabe01ae1..dbca7db3e 100644 --- a/templates/terraform/modules/cognito/main.tf +++ b/templates/terraform/modules/cognito/main.tf @@ -33,8 +33,8 @@ resource "aws_cognito_user_pool_client" "client" { } output "cognito_pool_id" { - value = "${aws_cognito_user_pool.users.id}" + value = aws_cognito_user_pool.users.id } output "cognito_client_id" { - value = "${aws_cognito_user_pool_client.client.id}" + value = aws_cognito_user_pool_client.client.id } diff --git a/templates/terraform/modules/environment/main.tf b/templates/terraform/modules/environment/main.tf index eb2d0a12b..5bc06463a 100644 --- a/templates/terraform/modules/environment/main.tf +++ b/templates/terraform/modules/environment/main.tf @@ -43,15 +43,21 @@ module "kube2iam" { iam_account_id = data.aws_caller_identity.current.account_id } -# {{ if .Config.Infrastructure.AWS.Cognito.Deploy }} -resource "cognito" "auth" { +# {{ if .Config.Infrastructure.AWS.Cognito.Enabled }} +module "cognito" { + source = "../../modules/cognito" user_pool = var.user_pool hostname = var.hostname } + +output "cognito" { + value = module.cognito +} # {{- end}} -# {{ if .Config.Infrastructure.AWS.S3Hosting.Deploy }} -resource "s3_hosting" "assets" { +# {{ if .Config.Infrastructure.AWS.S3Hosting.Enabled }} +module "s3_hosting" { + source = "../../modules/s3_hosting" bucket_name = var.s3_hosting_bucket_name } # {{- end}} diff --git a/templates/terraform/modules/vpc/main.tf b/templates/terraform/modules/vpc/main.tf index 7dc683a02..15fabebf7 100644 --- a/templates/terraform/modules/vpc/main.tf +++ b/templates/terraform/modules/vpc/main.tf @@ -5,7 +5,7 @@ module "vpc" { cidr = "10.20.0.0/16" azs = ["${var.region}a", "${var.region}b", "${var.region}c"] # Most regions have 3+ azs - private_subnets = ["10.20.10.0/22", "10.20.14.0/22", "10.20.18.0/22"] + private_subnets = ["10.20.8.0/22", "10.20.12.0/22", "10.20.16.0/22"] public_subnets = ["10.20.41.0/24", "10.20.43.0/24", "10.20.45.0/24"] database_subnets = ["10.20.60.0/24", "10.20.62.0/24", "10.20.64.0/24"]