#airship (2019-05)
Home of Airship ECS Modules ( https://github.com/blinkist/terraform-aws-airship-ecs-service / https://github.com/blinkist/terraform-aws-airship-ecs-cluster )
Archive: https://archive.sweetops.com/airship/
2019-05-19
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
Hello everyone, I am a newbie to AWS ECS
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
I am looking at the code of Airship, and not sure/don’t know some parts
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
Following this example: https://airship.tf/guide/ecs_service/#full-example
Flexible Terraform templates help setting up your Docker Orchestration platform, resources 100% supported by Amazon
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
This is my TF root dir structure
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
ecs_cluster_id = “${local.cluster_id}“
<– I got an error for this
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
* module.demo_web.local.ecs_cluster_name: local.ecs_cluster_name: 1:12: unknown variable accessed: var.ecs_cluster_id in:
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
I fixed this
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
I am also confused with these
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
awsvpc_subnets
awsvpc_security_group_ids
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
they are only using for Fargate mode?
![Mads Hvelplund avatar](https://avatars.slack-edge.com/2019-04-03/595957716912_363bbb69f36489f3742d_72.jpg)
@Thang Man you need to create a cluster before adding services to it. there is a separate module for creating the ecs cluster: https://registry.terraform.io/modules/blinkist/airship-ecs-cluster/aws/0.5.1. if you follow the tutorial, it all gets sewt up: https://airship.tf/getting_started/
Flexible Terraform templates help setting up your Docker Orchestration platform, resources 100% supported by Amazon
![Mads Hvelplund avatar](https://avatars.slack-edge.com/2019-04-03/595957716912_363bbb69f36489f3742d_72.jpg)
i haven’t looked at the docs for the two awsvpc vars, but i’m guessing they control which subnet your airship services run in, and which ports are accessible on them.
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
thanks! let me take it a look again
2019-05-20
2019-05-22
![jaustinpage avatar](https://secure.gravatar.com/avatar/b88020f07ba8f7f4d24e8d799e384fb8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0001-72.png)
Hi guys, i recently ran into an issue where i really need to deploy 2 containers in 1 ecs task. I know that this is not a supported use case for airship. Is the challenge just in the lambda lookup?
![jaustinpage avatar](https://secure.gravatar.com/avatar/b88020f07ba8f7f4d24e8d799e384fb8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0001-72.png)
basically i am trying to determine level of effort to add multi-container support to airship
2019-05-23
![Bogdan avatar](https://secure.gravatar.com/avatar/f95a0ce1c97af150589253bb0a5c7393.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
I’m trying to use terraform-aws-airship-ecs-service
from https://github.com/blinkist but if I’m using the following config:
name = "App"
region = "eu-central-1"
ecs_cluster_id = "dev123"
fargate_enabled = "true"
awsvpc_enabled = "true"
load_balancing_type = "none"
awsvpc_subnets = ["subnet-12,subnet-132,subnet-143"]
bootstrap_container_image = "33.dkr.ecr.eu-central-1.amazonaws.com/app"
container_cpu = 512
container_memory = 1024
container_port = 4000
awsvpc_security_group_ids = ["sg-4321"]
ssm_enabled = "true"
ssm_paths = ["/accounts/github/test"]
load_balancing_properties_route53_zone_id = "terst321"
I get the following errors:
Error: Error applying plan:
2 errors occurred:
* module.iam.aws_iam_role_policy.lambda_ecs_task_scheduler_policy: 1 error occurred:
* aws_iam_role_policy.lambda_ecs_task_scheduler_policy: Error putting IAM role policy terraform-20190523154130657200000001: MalformedPolicyDocument: The policy failed legacy parsing
status code: 400, request id: 3c746ca9-11e9-b313d05c3a7a
* module.ecs_task_definition.aws_ecs_task_definition.app: 1 error occurred:
* aws_ecs_task_definition.app: ClientException: hostname is not supported on container when networkMode=awsvpc.
status code: 400, request id: 47bd85d0-11e9-7b3bd4b40bd4
Blinkist has 30 repositories available. Follow their code on GitHub.
![Bogdan avatar](https://secure.gravatar.com/avatar/f95a0ce1c97af150589253bb0a5c7393.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
I opened an issue but not sure whether @maarten has had time to look at it. I’m very tempted to fork it and go my own way..
2019-05-24
![maarten avatar](https://avatars.slack-edge.com/2020-09-28/1393040065826_b0d13cfde15deff02026_72.png)
2019-05-29
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
hello everyone
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
I am still testing airship project
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
I have deployed successfully a ecs cluster using the ecs-cluster
module
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
but got this error when trying to run terraform apply
using the ecs-service
cluster
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
my TF version is 0.12
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
module.demo_web.module.ecs_task_definition.aws_ecs_task_definition.app[0]: Destroying... [id=stack-demo-web]
module.demo_web.module.ecs_task_definition.aws_ecs_task_definition.app[0]: Destruction complete after 0s
module.demo_web.module.ecs_task_definition.aws_ecs_task_definition.app[0]: Creating...
module.demo_web.module.ecs_task_definition.aws_ecs_task_definition.app[0]: Creation complete after 1s [id=stack-demo-web]
module.demo_web.module.ecs_service.aws_ecs_service.app[0]: Creating...
Error: InvalidParameterException: Invalid revision number. Number:
status code: 400, request id: 7707d912-829d-11e9-b89e-554ff397ffec "demo-web"
on ecs-service/modules/ecs_service/main.tf line 134, in resource "aws_ecs_service" "app":
134: resource "aws_ecs_service" "app" {
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
the task definition has not been changed, but I don’t know why the module still destroy the current one (not changed), and re-create a new task definition with a new revision number
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
the task definition not changed but every I tried to re-run terraform apply
, it show this:
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
# module.demo_web.module.ecs_task_definition.aws_ecs_task_definition.app[0] must be replaced
-/+ resource "aws_ecs_task_definition" "app" {
~ arn = "arn:aws:ecs:ap-southeast-1:513084766957:task-definition/stack-demo-web:8" -> (known after apply)
~ container_definitions = jsonencode(
~ [ # forces replacement
~ {
~ command = [
+ null,
]
cpu = 256
+ entryPoint = null
~ environment = [
+ null,
]
essential = true
+ healthCheck = null
hostname = "demo-web"
image = "nginx:stable"
logConfiguration = {
logDriver = "awslogs"
options = {
awslogs-group = "stack/demo-web"
awslogs-region = "ap-southeast-1"
awslogs-stream-prefix = "demo-web"
}
}
memory = 512
+ memoryReservation = null
~ mountPoints = [
+ null,
]
name = "nginx-fe"
portMappings = [
{
containerPort = 80
hostPort = 80
protocol = "tcp"
},
]
privileged = false
readonlyRootFilesystem = false
- volumesFrom = [] -> null
+ workingDirectory = null
} # forces replacement,
]
)
family = "stack-demo-web"
~ id = "stack-demo-web" -> (known after apply)
network_mode = "bridge"
requires_compatibilities = [
"EC2",
]
~ revision = 8 -> (known after apply)
- tags = {} -> null
task_role_arn = "arn:aws:iam::513084766957:role/stack-demo-web-task-role"
}
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
let me know if you need further information, thanks~
2019-05-30
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
it mights be caused by TF 0.12
![Thang Man avatar](https://secure.gravatar.com/avatar/ad1678336846389727761f8aec5dd3c9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0021-72.png)
I have tested fine with TF 0.11.14