#airship (2018-11)

airship

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/

2018-11-12

maarten avatar
maarten
05:27:35 PM

@maarten has joined the channel

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
05:27:35 PM

@Erik Osterman (Cloud Posse) has joined the channel

jamie avatar
jamie
05:27:35 PM

@jamie has joined the channel

jonboulle avatar
jonboulle
05:27:36 PM

@jonboulle has joined the channel

Andriy Knysh (Cloud Posse) avatar
Andriy Knysh (Cloud Posse)
05:29:56 PM

@Andriy Knysh (Cloud Posse) has joined the channel

maarten avatar
maarten

Hi Everyone, welcome to the channel, thanks @Erik Osterman (Cloud Posse) ! Happy to help out Airship module users and to also discuss upcoming changes to the module here.

1
maarten avatar
maarten

And happy to announce that the latest ECS Service 0.8.0 supports Cognito authentication, http to https redirection. and it can deal with ever changing task definitions by any external pipeline and still allows Terraform to modify the Environment Variables and/or cpu and mem.

3
Nikola Velkovski avatar
Nikola Velkovski
08:05:08 PM

@Nikola Velkovski has joined the channel

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

That’s really cool! Like the cognito integration. Should make it easier to expose staging apps

maarten avatar
maarten

Exactly and drop nginx services with the sole purpose of providing a simple htaccess

2

2018-11-19

maarten avatar
maarten

Need some ideas here:

https://github.com/blinkist/terraform-aws-airship-ecs-service/blob/966757509ca42a0b4d3af541d7b5f864e8ff8ac4/modules/live_task_lookup/output.tf#L33

So I’ve added a lambda for live task lookup to overcome the bootstrapping issue. But it seems that a lambda_invocation datasource works differently from a regular datasource.

We create a Taskdefinition with an image coming from the live_lookup module, when using a normal datasource, it will figure out that when the taskdefinition is the same as the current one and will not create a new one. But when using the lambda invocation as datasource for getting the current image, the plan already describes it will create a new task_definition no matter what. UGH!

blinkist/terraform-aws-airship-ecs-service

Terraform module which creates an ECS Service, IAM roles, Scaling, ALB listener rules.. Fargate & AWSVPC compatible - blinkist/terraform-aws-airship-ecs-service

maarten avatar
maarten

pfew, found the problem

maarten avatar
maarten

I had a depends_on in the datasource to the lambda_function..

maarten avatar
maarten

depends_on in datasources always force recreation..

jonboulle avatar
jonboulle

so it all works now?

maarten avatar
maarten

yeah

maarten avatar
maarten

Do you think you can get Anatoli to take a look at the nodejs, if not I’ll have to find someone else

maarten avatar
maarten

also, currently i’m creating the iam resources for the lambda in modules/iam, shall we leave it there or move it to the live_task_lookup

maarten avatar
maarten

Maybe you can take another look at the logic itself in js

maarten avatar
maarten

PR is out Jon, sorry that you need to go through Javascript code .. I’ve asked in the node subreddit and one guy with unknown seniority said the code was fine .

2018-11-21

maarten avatar
maarten

Fellas! I’m adding Scheduled jobs to the module, callable with simple list block of multiple jobs. Cloudwatch event triggers an event which hits a lambda, lambda figures out what the current task definition of the service is and will run the command on there. Let me know if you have ideas or concerns.

I think I leave out the container env vars override as it’s too much hassle now, same with placement constraints, as they can be added later.

I’m currently creating a different iam role for this lambda, but I’m opting for using one role defined in the iam module instead.

    ecs_scheduled_tasks = [{
      job_name                           = "vacuum"
      schedule_expression        = "cron(0 12 * * ? *)"
      command                           = "python vacuum_db.py"
      container_envvars_override = "A=B;VAR2=C"
    }]

Work in progress : https://github.com/blinkist/terraform-aws-airship-ecs-service/blob/ecs_scheduled_tasks/modules/ecs_scheduled_tasks/main.tf

blinkist/terraform-aws-airship-ecs-service

Terraform module which creates an ECS Service, IAM roles, Scaling, ALB listener rules.. Fargate & AWSVPC compatible - blinkist/terraform-aws-airship-ecs-service

1

2018-11-22

Release notes from terraform-aws-airship-ecs-service avatar
Release notes from terraform-aws-airship-ecs-service
09:48:25 AM
blinkist/terraform-aws-airship-ecs-service

Terraform module which creates an ECS Service, IAM roles, Scaling, ALB listener rules.. Fargate & AWSVPC compatible - blinkist/terraform-aws-airship-ecs-service

1
maarten avatar
maarten

hehe thanks @Erik Osterman (Cloud Posse)

jonboulle avatar
jonboulle

funky

2018-11-23

maarten avatar
maarten

so every time someone clicks on the word variables.tf on slack

maarten avatar
maarten

If I drop the redirect I can probably just banner it annoyingly

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Hahjaha

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Good one Martin

maarten avatar
maarten

need to find out what slack gets and what not

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Are you going to build a Jekyll site?

maarten avatar
maarten

what’s that ?

maarten avatar
maarten

“Transform your plain text into static websites and blogs. “

maarten avatar
maarten

variables.tf is probably a good site for a blog

maarten avatar
maarten

But for airship, a nice project site would be nice with some samples

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
Using Jekyll as a static site generator with GitHub Pages - User Documentation

If you use Jekyll as a static site generator with GitHub Pages, you benefit from more support with setting up, updating, and troubleshooting your site. …

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

It’s the predominant way static sites for projects in GitHub are generated

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Hundreds of templates out there

maarten avatar
maarten

Do you have a favourite example of a project ?

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

It’s on my list of things to research. Plan to use our readme spec to generate static sites for all of our modules.

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
maarten avatar
maarten

nice, i’ll have a look.. First have to find a way to get the README.md a bit more attractive in general

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
Supported themes

List of Jekyll themes supported by GitHub Pages

maarten avatar
maarten

funnily enough readme.md does not trick slack

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Is there a .md TLD?

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Looks like there is!

2018-11-25

maarten avatar
maarten
Probotattachment image

GitHub Apps to automate and improve your workflow

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

yea, that one is nice

2018-11-26

maarten avatar
maarten

@jonboulle we now have merge commit set by default, shall we make it squash & merge ?

jonboulle avatar
jonboulle

no strong opinion… I like merge commits for auditability and reverts but that only works with extremely strict commit diligence anyway

maarten avatar
maarten

still no gif support here

Release notes from terraform-aws-airship-ecs-service avatar
Release notes from terraform-aws-airship-ecs-service
05:28:15 PM

0.8.2: Adding lambda_ecs_task_scheduler (#25) Init commit scheduled tasks

wip

ecs_scheduled_tasks update

small fixes

ecs_task_scheduler

ecs_scheduled_tasks clean up

Readme updates

fmt

Fix after PR Review

blinkist/terraform-aws-airship-ecs-service

Terraform module which creates an ECS Service, IAM roles, Scaling, ALB listener rules.. Fargate & AWSVPC compatible - blinkist/terraform-aws-airship-ecs-service

maarten avatar
maarten

yeah this can be better

maarten avatar
maarten

After going through tons of jekyll examples, I think https://vuepress.vuejs.org which is what is powering https://www.runatlantis.io looks to be the least time intensive with the most powerful layout there.

VuePress

Vue-powered Static Site Generator

Terraform For Teams | Atlantis

Atlantis: Terraform For Teams

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

if considering just static site generation, did you consider Hugo?

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
gohugoio/hugo

The world’s fastest framework for building websites. - gohugoio/hugo

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

main reason to use Jekyll is it’s supported by GitHub without any CI/CD systems

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

(30K stars - very popular)

2018-11-27

maarten avatar
maarten

yeah but CICD is really the least of our problems, so it’s not a decision maker. I was looking for a simple DOC Layout, with a side bar etc. and this looks I don’t need to spend much time on it which is exactly what I want : https://github.com/runatlantis/atlantis/tree/master/runatlantis.io

runatlantis/atlantis

Terraform For Teams. Contribute to runatlantis/atlantis development by creating an account on GitHub.

1

2018-11-29

maarten avatar
maarten

@jonboulle @jamie replied to your pr comments, if you have time to take a look .

jamie avatar

Hi, thanks. Ill look later today.

maarten avatar
maarten
Introducing AWS App Mesh – service mesh for microservices on AWS | Amazon Web Servicesattachment image

AWS App Mesh is a service mesh that allows you to easily monitor and control communications across microservices applications on AWS. You can use App Mesh with microservices running on Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Container Service for Kubernetes (Amazon EKS), and Kubernetes running on Amazon EC2. Today, App Mesh is available […]

jonboulle avatar
jonboulle

requires awsvpc

maarten avatar
maarten

think we built that in if there now only would be instances with a bit more eni capability ..

davidvasandani avatar
davidvasandani
06:24:50 AM

@davidvasandani has joined the channel

2018-11-30

maarten avatar
maarten

Hi @davidvasandani !

wave1
davidvasandani avatar
davidvasandani

Hello! Looking forward to installing Airship.

maarten avatar
maarten

Cool, I’ve just started with https://airship.tf/getting_started/ let me know if you need some help.

.. ECS made easy | Start

Home of Terraform Airship

1
geertn avatar
geertn
08:45:31 AM

@geertn has joined the channel

maarten avatar
maarten

@jamie Do you have that initial setup of the service registry again for me, slack history doesn’t show it anymore. Also in your original PR there are some things volume related which I will cover after service discovery.

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Man… I gotta find someone at slack who can hook us up

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

I have seen they help some communities out

maarten avatar
maarten

Good Morning Erik

maarten avatar
maarten

What do you mean ?

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Oh they can flip a flag and make us a “paid” community

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Like Kubernetes slack

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

And some other teams I am on

maarten avatar
maarten

AHHH gotcha, slack history

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Oh yes - sorry not clear

maarten avatar
maarten

yeah that would be nice to have some more history, they probably store it anyway

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

They do keep it

maarten avatar
maarten

We just have to create a history bot to kinesis & s3

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

we’re in the process of setting up a public searchable archive

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
Slack Gives Back to K8s and CNCF Community - Cloud Native Computing Foundation

Slack is giving back to the Kubernetes and CNCF communities with free access as part of their not for profit program. We are also thrilled that they have extended their…

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Aha, so that’s why…

Release notes from terraform-aws-airship-ecs-service avatar
Release notes from terraform-aws-airship-ecs-service
09:08:10 AM

0.8.3: NLB Services (#26) Network Load Balancing Support added for the ECS Module. The parameter load_balancing_type can be set to either “none”, “network” or “application” and takes care of attaching the related LB type.

blinkist/terraform-aws-airship-ecs-service

Terraform module which creates an ECS Service, IAM roles, Scaling, ALB listener rules.. Fargate & AWSVPC compatible - blinkist/terraform-aws-airship-ecs-service

maarten avatar
maarten

@jamie and another question, for a service to connect to other services in the service registry, it does not need to be registered to the registry itself, correct ?

jamie avatar

correct

1
    keyboard_arrow_up