Merge branch 'staging' into update-home-page
This commit is contained in:
commit
f34a668b28
@ -72,15 +72,18 @@ $CONTAINER_IMAGE \
|
||||
|
||||
# Use curl to wait for application container to become available
|
||||
docker pull curlimages/curl:latest
|
||||
echo "Waiting for application container to become available"
|
||||
docker run --network atat \
|
||||
curlimages/curl:latest \
|
||||
curl --connect-timeout 3 \
|
||||
curl \
|
||||
--silent \
|
||||
--connect-timeout 3 \
|
||||
--max-time 5 \
|
||||
--retry $CONTAINER_TIMEOUT \
|
||||
--retry-connrefused \
|
||||
--retry-delay 1 \
|
||||
--retry-max-time $CONTAINER_TIMEOUT \
|
||||
test-atat:8000
|
||||
test-atat:8000 >/dev/null
|
||||
|
||||
# Run Ghost Inspector tests
|
||||
docker pull ghostinspector/test-runner-standalone:latest
|
||||
|
31
terraform/modules/cdn/main.tf
Normal file
31
terraform/modules/cdn/main.tf
Normal file
@ -0,0 +1,31 @@
|
||||
resource "random_id" "server" {
|
||||
keepers = {
|
||||
azi_id = 1
|
||||
}
|
||||
|
||||
byte_length = 8
|
||||
}
|
||||
|
||||
resource "azurerm_resource_group" "cdn" {
|
||||
name = "${var.name}-${var.environment}-cdn"
|
||||
location = var.region
|
||||
}
|
||||
|
||||
resource "azurerm_cdn_profile" "cdn" {
|
||||
name = "${var.name}-${var.environment}-profile"
|
||||
location = azurerm_resource_group.cdn.location
|
||||
resource_group_name = azurerm_resource_group.cdn.name
|
||||
sku = var.sku
|
||||
}
|
||||
|
||||
resource "azurerm_cdn_endpoint" "cdn" {
|
||||
name = "${var.name}-${var.environment}-${random_id.server.hex}"
|
||||
profile_name = azurerm_cdn_profile.cdn.name
|
||||
location = azurerm_resource_group.cdn.location
|
||||
resource_group_name = azurerm_resource_group.cdn.name
|
||||
|
||||
origin {
|
||||
name = "${var.name}-${var.environment}-origin"
|
||||
host_name = var.origin_host_name
|
||||
}
|
||||
}
|
0
terraform/modules/cdn/outputs.tf
Normal file
0
terraform/modules/cdn/outputs.tf
Normal file
31
terraform/modules/cdn/variables.tf
Normal file
31
terraform/modules/cdn/variables.tf
Normal file
@ -0,0 +1,31 @@
|
||||
variable "region" {
|
||||
type = string
|
||||
description = "Region this module and resources will be created in"
|
||||
}
|
||||
|
||||
variable "name" {
|
||||
type = string
|
||||
description = "Unique name for the services in this module"
|
||||
}
|
||||
|
||||
variable "environment" {
|
||||
type = string
|
||||
description = "Environment these resources reside (prod, dev, staging, etc)"
|
||||
}
|
||||
|
||||
variable "owner" {
|
||||
type = string
|
||||
description = "Owner of the environment and resources created in this module"
|
||||
}
|
||||
|
||||
variable "sku" {
|
||||
type = string
|
||||
description = "SKU of which CDN to use"
|
||||
default = "Standard_Verizon"
|
||||
}
|
||||
|
||||
variable "origin_host_name" {
|
||||
type = string
|
||||
description = "Subdomain to use for the origin in requests to the CDN"
|
||||
}
|
||||
|
22
terraform/modules/lb/main.tf
Normal file
22
terraform/modules/lb/main.tf
Normal file
@ -0,0 +1,22 @@
|
||||
resource "azurerm_resource_group" "lb" {
|
||||
name = "${var.name}-${var.environment}-lb"
|
||||
location = var.region
|
||||
}
|
||||
|
||||
resource "azurerm_public_ip" "lb" {
|
||||
name = "${var.name}-${var.environment}-ip"
|
||||
location = var.region
|
||||
resource_group_name = azurerm_resource_group.lb.name
|
||||
allocation_method = "Static"
|
||||
}
|
||||
|
||||
resource "azurerm_lb" "lb" {
|
||||
name = "${var.name}-${var.environment}-lb"
|
||||
location = var.region
|
||||
resource_group_name = azurerm_resource_group.lb.name
|
||||
|
||||
frontend_ip_configuration {
|
||||
name = "${var.name}-${var.environment}-ip"
|
||||
public_ip_address_id = azurerm_public_ip.lb.id
|
||||
}
|
||||
}
|
0
terraform/modules/lb/outputs.tf
Normal file
0
terraform/modules/lb/outputs.tf
Normal file
19
terraform/modules/lb/variables.tf
Normal file
19
terraform/modules/lb/variables.tf
Normal file
@ -0,0 +1,19 @@
|
||||
variable "region" {
|
||||
type = string
|
||||
description = "Region this module and resources will be created in"
|
||||
}
|
||||
|
||||
variable "name" {
|
||||
type = string
|
||||
description = "Unique name for the services in this module"
|
||||
}
|
||||
|
||||
variable "environment" {
|
||||
type = string
|
||||
description = "Environment these resources reside (prod, dev, staging, etc)"
|
||||
}
|
||||
|
||||
variable "owner" {
|
||||
type = string
|
||||
description = "Owner of the environment and resources created in this module"
|
||||
}
|
24
terraform/modules/redis/main.tf
Normal file
24
terraform/modules/redis/main.tf
Normal file
@ -0,0 +1,24 @@
|
||||
resource "azurerm_resource_group" "redis" {
|
||||
name = "${var.name}-${var.environment}-redis"
|
||||
location = var.region
|
||||
}
|
||||
|
||||
# NOTE: the Name used for Redis needs to be globally unique
|
||||
resource "azurerm_redis_cache" "redis" {
|
||||
name = "${var.name}-${var.environment}-redis"
|
||||
location = azurerm_resource_group.redis.location
|
||||
resource_group_name = azurerm_resource_group.redis.name
|
||||
capacity = var.capacity
|
||||
family = var.family
|
||||
sku_name = var.sku_name
|
||||
enable_non_ssl_port = var.enable_non_ssl_port
|
||||
minimum_tls_version = var.minimum_tls_version
|
||||
|
||||
redis_configuration {
|
||||
enable_authentication = var.enable_authentication
|
||||
}
|
||||
tags = {
|
||||
environment = var.environment
|
||||
owner = var.owner
|
||||
}
|
||||
}
|
0
terraform/modules/redis/outputs.tf
Normal file
0
terraform/modules/redis/outputs.tf
Normal file
60
terraform/modules/redis/variables.tf
Normal file
60
terraform/modules/redis/variables.tf
Normal file
@ -0,0 +1,60 @@
|
||||
variable "region" {
|
||||
type = string
|
||||
description = "Region this module and resources will be created in"
|
||||
}
|
||||
|
||||
variable "name" {
|
||||
type = string
|
||||
description = "Unique name for the services in this module"
|
||||
}
|
||||
|
||||
variable "environment" {
|
||||
type = string
|
||||
description = "Environment these resources reside (prod, dev, staging, etc)"
|
||||
}
|
||||
|
||||
variable "owner" {
|
||||
type = string
|
||||
description = "Owner of the environment and resources created in this module"
|
||||
}
|
||||
|
||||
variable "capacity" {
|
||||
type = string
|
||||
default = 2
|
||||
description = "The capacity of the redis cache"
|
||||
|
||||
}
|
||||
|
||||
variable "family" {
|
||||
type = string
|
||||
default = "C"
|
||||
description = "The subscription family for redis"
|
||||
|
||||
}
|
||||
|
||||
variable "sku_name" {
|
||||
type = string
|
||||
default = "Standard"
|
||||
description = "The sku to use"
|
||||
|
||||
}
|
||||
|
||||
variable "enable_non_ssl_port" {
|
||||
type = bool
|
||||
default = false
|
||||
description = "Enable non TLS port (default: false)"
|
||||
|
||||
}
|
||||
|
||||
variable "minimum_tls_version" {
|
||||
type = string
|
||||
default = "1.2"
|
||||
description = "Minimum TLS version to use"
|
||||
|
||||
}
|
||||
|
||||
variable "enable_authentication" {
|
||||
type = bool
|
||||
default = true
|
||||
description = "Enable or disable authentication (default: true)"
|
||||
}
|
8
terraform/providers/dev/cdn.tf
Normal file
8
terraform/providers/dev/cdn.tf
Normal file
@ -0,0 +1,8 @@
|
||||
module "cdn" {
|
||||
source = "../../modules/cdn"
|
||||
origin_host_name = "staging.atat.code.mil"
|
||||
owner = var.owner
|
||||
environment = var.environment
|
||||
name = var.name
|
||||
region = var.region
|
||||
}
|
@ -9,3 +9,10 @@ module "k8s" {
|
||||
vnet_subnet_id = module.vpc.subnets #FIXME - output from module.vpc.subnets should be map
|
||||
}
|
||||
|
||||
module "lb" {
|
||||
source = "../../modules/lb"
|
||||
region = var.region
|
||||
name = var.name
|
||||
environment = var.environment
|
||||
owner = var.owner
|
||||
}
|
||||
|
7
terraform/providers/dev/redis.tf
Normal file
7
terraform/providers/dev/redis.tf
Normal file
@ -0,0 +1,7 @@
|
||||
module "redis" {
|
||||
source = "../../modules/redis"
|
||||
owner = var.owner
|
||||
environment = var.environment
|
||||
region = var.region
|
||||
name = var.name
|
||||
}
|
@ -58,6 +58,5 @@ NGROK_TOKEN=<token> GI_API_KEY=<api key> GI_SUITE=<suite> CONTAINER_IMAGE=atat:b
|
||||
|
||||
- If you get errors regarding ports being in use, make sure you don't have instances of the Flask app, Postgres, or Redis running locally using those ports.
|
||||
- If the curl command used to wait for the application container times out and fails, you can increase the timeout by setting a CONTAINER_TIMEOUT environment variable. It defaults to 200 in the script.
|
||||
- The curl command will print errors until it successfully connects to the application container. These are normal and expected. When it finally connects, it will print the ATAT home page HTML to STDOUT.
|
||||
- You may see errors like "No such container". The script attempts to clean up any previous incarnations of the containers before it starts, and it may print errors when it doesn't find them. This is fine.
|
||||
- The script is, for the most part, a series of docker commands, so try running the commands individually and debugging that way.
|
||||
|
Loading…
x
Reference in New Issue
Block a user