#airship (2019-06)
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-06-03
![Mads Hvelplund avatar](https://avatars.slack-edge.com/2019-04-03/595957716912_363bbb69f36489f3742d_72.jpg)
airship is unlikely to work with 0.12 without a major overhaul. if you use lots of modules, wait a bit before switching to 0.12
2019-06-13
![Release notes from terraform-aws-airship-ecs-service avatar](https://a.slack-edge.com/205a/img/services/rss_72.png)
Added container secrets handling No content.
Terraform module which creates an ECS Service, IAM roles, Scaling, ALB listener rules.. Fargate & AWSVPC compatible - blinkist/terraform-aws-airship-ecs-service
![jamie avatar](https://avatars.slack-edge.com/2019-06-04/648624411249_c92a3e1cb863bae41d5b_72.jpg)
It features secrets handling. As well as provides documentation and new examples for how to use it.
![fast_parrot](/assets/images/custom_emojis/fast_parrot.gif)
![fidget_spinner](/assets/images/custom_emojis/fidget_spinner.gif)
![Mads Hvelplund avatar](https://avatars.slack-edge.com/2019-04-03/595957716912_363bbb69f36489f3742d_72.jpg)
2019-06-25
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
I’m traumatized by some early experiences of tfstate gone wild and so I have some naive questions about the modules, particularly @jamie’s terraform-aws-airship-ecs-service … is the strategy to clone the repo and then create a terraform.tfvars
file with the settings I want? Or should I apply each of the preparation steps in sequence, finally culminating in a magnificent terraform apply
?
![jamie avatar](https://avatars.slack-edge.com/2019-06-04/648624411249_c92a3e1cb863bae41d5b_72.jpg)
Hi Blaise.
![jamie avatar](https://avatars.slack-edge.com/2019-06-04/648624411249_c92a3e1cb863bae41d5b_72.jpg)
So which terraform modules have you used in the past? Or is this the first one? @Blaise Pabon
![jamie avatar](https://avatars.slack-edge.com/2019-06-04/648624411249_c92a3e1cb863bae41d5b_72.jpg)
The module is @maarten ‘s brainchild.
![jamie avatar](https://avatars.slack-edge.com/2019-06-04/648624411249_c92a3e1cb863bae41d5b_72.jpg)
There’s a guide on how to use the module and all associates resources at http://airship.tf
Flexible Terraform templates help setting up your Docker Orchestration platform, resources 100% supported by Amazon
![jamie avatar](https://avatars.slack-edge.com/2019-06-04/648624411249_c92a3e1cb863bae41d5b_72.jpg)
Can you tell me what you are using it for? I can hopefully help you with it further!
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
My hope is to host a number of apps (Jenkins, Jira, Artifactory, DockerEE, [webhook.site](http://webhook.site)
) for the folks at the office.
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
set up cognito for OAUTH
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
Thank you @jamie, I will go ahead and step through each of the preparation steps and build it up incrementally…. after all, it’s not on my dime!
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
Hi @jamie, well, I noticed that the example with_nlb
was beautifully done and easy to understand, so I ran it. The plan was clean, but when I applied, I got one small error (see https://paste.opennms.eu/vefilidemi.php for the full trace)
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
Error: Error applying plan:
1 error occurred:
* module.nlb_service.module.ecs_service.aws_ecs_service.app_with_lb: 1 error occurred:
* aws_ecs_service.app_with_lb: InvalidParameterException: The target group with targetGroupArn arn:aws:elasticloadbalancing:us-east-2:481444911553:targetgroup/showben-cluster-showben-echo-ser/5ffab9ae16044a32 does not have an associated load balancer.
status code: 400, request id: e6be16b8-39d1-4de6-89cb-1ab9a38ce734 "showben-echo-service"
![jamie avatar](https://avatars.slack-edge.com/2019-06-04/648624411249_c92a3e1cb863bae41d5b_72.jpg)
Potentially the alb listener wasn’t created which causes that error.
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
I may have screwed up the container name somehow by changing the original project name, but not the container. I will try it with the original settings.
![jamie avatar](https://avatars.slack-edge.com/2019-06-04/648624411249_c92a3e1cb863bae41d5b_72.jpg)
I’m getting a similar error myself. I will see if I can address it.
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
OK, my uninformed hunch is that I need to have bootstrap image in my ECR, but I imagine that would have appeared in the doc.
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
heeyyyy, what about this:
output "lb_address" {
value = "${aws_lb.this.dns_name}"
}
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
but then:
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
resource "aws_lb" "this" {
name = "${terraform.workspace}-service-nlb"
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
should that be
dns_name = "${terraform.worksp......
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
@jamie: I think I may have been useing the wrong profile. Sorry, it seems to be getting much farther.
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
Nope, still getting the LB error, despite getting farther…
* module.nlb_service.module.ecs_service.aws_ecs_service.app_with_lb: 1 error occurred:
* aws_ecs_service.app_with_lb: InvalidParameterException: The target group with targetGroupArn arn:aws:elasticloadbalancing:us-east-2:481444911553:targetgroup/default-cluster-default-echo-ser/adbaa6a3d9394315 does not have an associated load balancer.
status code: 400, request id: afbc5f21-0f94-4a0e-ba14-6a071ea52539 "default-echo-service"
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
I’m a google cloud child… https://github.com/blaisep/terraform-google-consul
A Terraform Module for how to run Consul on Google Cloud using Terraform and Packer - blaisep/terraform-google-consul
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
Modular Google Compute Engine managed instance group for Terraform. - blaisep/terraform-google-managed-instance-group
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
so I’m sure a lot of this is just me getting used to AWS.
![jamie avatar](https://avatars.slack-edge.com/2019-06-04/648624411249_c92a3e1cb863bae41d5b_72.jpg)
You’re on the right track. I’ll be on from 9am est and can discuss your implementation with you if you like. It’s late for me now so I’m heading to bed. :)
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
Hi @jamie, I think it may be:
module.alb_shared_services_external.var.https_listeners: variable https_listeners in module alb_shared_services_external should be type list, got string
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
yup! The variable for should be an empty list, not an empty string.
![Blaise Pabon avatar](https://secure.gravatar.com/avatar/6540d57ecbbbebc740a33d507aa085ad.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0004-72.png)
` https_listeners = []`