find . -type d -name ".webassets-cache" -exec rm -rf "{}" \;
zip -r ../app.zip .
popd
+
+pushd "../fdio.infra.terraform/"
+pushd "terraform-aws-fdio-csit-dash-app-base"
+export BUILD_ID=41
+export TF_VAR_application_version="${BUILD_ID-}"
+export TF_LOG=INFO
+terraform validate
+terraform init
+terraform apply -no-color -auto-approve
+application_version="$(terraform output application_version)"
+popd
+popd
+
+#aws --region eu-central-1 elasticbeanstalk update-environment \
+# --environment-name fdio-csit-dash-env \
+# --version-label "${application_version}"
locals {
- bucket = "${var.application_name}-bucket"
- key = "${var.application_name}.zip"
- source = "app.zip"
+ key = "${var.application_name_version}-${uuid()}.zip"
tags = {
"Name" = "${var.application_name}"
"Environment" = "${var.application_name}"
}
# Create elastic beanstalk Application Version
-resource "aws_s3_bucket" "bucket" {
- bucket = local.bucket
- tags = local.tags
-}
-
+# resource "aws_s3_bucket" "bucket" {
+# bucket = var.application_bucket
+# tags = local.tags
+# }
resource "aws_s3_object" "object" {
- bucket = aws_s3_bucket.bucket.id
+ bucket = var.application_bucket
key = local.key
- source = local.source
+ source = var.application_source
tags = local.tags
}
resource "aws_elastic_beanstalk_application_version" "application_version" {
application = var.application_name
description = var.application_description
- bucket = aws_s3_bucket.bucket.id
+ bucket = var.application_bucket
key = aws_s3_object.object.id
- name = var.application_version_name
+ name = var.application_name_version
tags = local.tags
}
+output "application_version" {
+ value = aws_elastic_beanstalk_application_version.application_version.name
+}
+variable "application_bucket" {
+ description = "The name of the bucket."
+ type = string
+ default = "elasticbeanstalk-eu-central-1"
+}
+
variable "application_description" {
description = "Short description of the Application Version."
type = string
}
variable "application_name" {
- description = "Name of the Beanstalk Application the version is associated."
+ description = "Name of the Beanstalk Application."
+ type = string
+ default = "beanstalk"
+}
+
+variable "application_name_version" {
+ description = "Version of the Beanstalk Application."
type = string
- default = "Beanstalk"
+ default = "beanstalk-1"
}
-variable "application_version_name" {
- description = "Unique name for the this Application Version."
+variable "application_source" {
+ description = "The source file with application code."
type = string
- default = "Beanstalk Version"
+ default = "app.zip"
}
required_providers {
aws = {
source = "hashicorp/aws"
- version = "~> 4.3.0"
+ version = "~> 4.51.0"
}
}
- required_version = ">= 1.1.4"
+ required_version = ">= 1.3.7"
}
required_providers {
aws = {
source = "hashicorp/aws"
- version = "~> 4.3.0"
+ version = "~> 4.51.0"
}
}
- required_version = ">= 1.1.4"
+ required_version = ">= 1.3.7"
}
locals {
- name = "fdio-csit-dash-app"
- version = "fdio-csit-dash-app-base-${var.version}"
+ bucket = var.application_bucket
+ description = var.application_description
+ name = var.application_name
+ name_version = "${var.application_name}-base-${var.application_version}"
+ source = var.application_source
}
data "vault_aws_access_credentials" "creds" {
module "elastic_beanstalk_application_version" {
source = "../terraform-aws-elastic-beanstalk-application-version"
- application_description = "FD.io CDASH"
+ application_bucket = local.bucket
+ application_description = local.description
application_name = local.name
- application_version_name = local.version
+ application_name_version = local.name_version
+ application_source = local.source
}
+output "application_version" {
+ value = module.elastic_beanstalk_application_version.application_version
+}
variable "vault_provider_token" {
description = "Vault root token."
type = string
- sensitive = true
+ default = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
}
variable "vault_name" {
default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
}
-variable "version" {
+variable "application_bucket" {
+ description = "The name of the bucket."
+ type = string
+ default = "elasticbeanstalk-eu-central-1-407116685360"
+}
+
+variable "application_description" {
+ description = "Short description of the Application Version."
+ type = string
+ default = "FD.io CDASH"
+}
+
+variable "application_name" {
+ description = "Name of the Beanstalk Application."
+ type = string
+ default = "fdio-csit-dash-app"
+}
+
+variable "application_source" {
+ description = "The source file with application code."
+ type = string
+ default = "../../csit.infra.dash/app.zip"
+}
+
+variable "application_version" {
description = "Application version string."
type = number
- default = 39
+ default = 41
}
terraform {
- backend "consul" {
- address = "consul.service.consul:8500"
- scheme = "http"
- path = "terraform/app-base"
- }
required_providers {
aws = {
source = "hashicorp/aws"