#atlantis (2019-01)

atlantis

Discuss the Atlantis (http://runatlantis.io|runatlantis.io) *Archive: * https://archive.sweetops.com/atlantis/

2019-01-30

Jan avatar

hey hey

Jan avatar

which atlantis repo should I be looking at to run atlantis in conjunction with the geodesic ref arch?

Jan avatar
cloudposse/terraform-aws-ecs-atlantis

Terraform module for deploying Atlantis as an ECS Task - cloudposse/terraform-aws-ecs-atlantis

cloudposse/geodesic-aws-atlantis

Geodesic module for managing Atlantis with ECS Fargate - cloudposse/geodesic-aws-atlantis

Jan avatar

wait and a helm chart?

Jan avatar
cloudposse/helmfiles

Comprehensive Distribution of Helmfiles. Works with helmfile.d - cloudposse/helmfiles

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

so ooooooo

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

I don’t recommend running atlantis in kubernetes

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

we started down that path and support it

Jan avatar

yea I agree

Jan avatar

I want atlantis to be managing my k8s clusters

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

But just remember, then you have a pod that someone can kubectl exec into with admin

Jan avatar

avoid the inception trap

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

So we have a nice e2e working story with ECS Fargate

Jan avatar

im alright with that for now

Jan avatar

later I might consider a locked down k8s or soemthing

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

@joshmyers finished updating our example here:

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
ECS Atlantis + tfenv + new goodies by joshmyers · Pull Request #58 · cloudposse/testing.cloudposse.co

what The updates testing.cloudposse.co to use the latest Geodesic image with a host of new goodies like Atlantis support, tfenv, scenery, tfmask. Requires cloudposse/terraform-root-modules#107 to b…

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

We merged that this morning

Jan avatar

something less AWS specific

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

unfortunately, not documented

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

All the ECS/Atlatnis stuff is demonstrated here: https://github.com/cloudposse/terraform-root-modules/tree/master/aws/ecs

cloudposse/terraform-root-modules

Example Terraform service catalog of “root module” invocations for provisioning reference architectures - cloudposse/terraform-root-modules

Jan avatar

haha you know I like my docs in the form of code

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

Currently, we don’t have an alpine package for atlantis (our fork)

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
cloudposse/testing.cloudposse.co

Example Terraform Reference Architecture that implements a Geodesic Module for an Automated Testing Organization in AWS - cloudposse/testing.cloudposse.co

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

I should probably give you a demo of what the workflow looks like using Atlantis

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

B/c the docker multi-stage isn’t ideally suited for it.

joshmyers avatar
joshmyers

Yeah, it took quite a bit of plumbing to get to work in this workflow

Jan avatar

so I will need to get atlantis in place asap

Jan avatar

have on-boarded 8 core team members to our version of geodesic + ref arch

Jan avatar

pipelines are next up

Jan avatar

and a few others

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

I can give you the low down so you can get started

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

won’t take long to deploy

Jan avatar

:–1:

2019-01-25

pecigonzalo avatar
pecigonzalo

Hey, im always curious about Atlantis, kind of would like to use it, but we prefer to apply on merge. For the ones doing apply on PR, how do you work with it and lets say, ECS. We have our ECS service defined in terraform for the time being (yeah not the best I know, but this could be a DB change or something else) and if we applied on PR, the new container or service that should use this will not be deployed yet, unless you also build the container on PR. How do you handle that?

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

I have a lot of thoughts on why you don’t apply on merge for terraform

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

web apps, cool. they are usually stateless and easily rollback.

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

terraform does not rollback in the face of errors.

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

terraform errors all the time.

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

happened to me a couple of times yesterday

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

the plan is very primitive. “in an ideal world, here’s what I plan to do”

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

so atlantis ensure we keep master pristine of what was deployed

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

rather than what should have been deployed

pecigonzalo avatar
pecigonzalo

Yeah, I do get that part of the flow, and doing full CI is super “expensive” for terraform, as you will have to A) deploy old version B) apply the new version on top, on an isolated environmant, which might take a while. But I wonder how is that tied in when your terraform requires the deployed version of the app or thing to already running, as the workflow makes it so you always have to do terraform first with atlantis

pecigonzalo avatar
pecigonzalo

unless you do 2 PRs for the 1 change

pecigonzalo avatar
pecigonzalo

I guess sometimes, its good as it enforces the app/infra to support the update in a “rolling” fashion, or you take the downtime which you would anyway if the merge of the infra “broke” something for the app

pecigonzalo avatar
pecigonzalo

EG: you are changing CORS and adding some DNSbad example, you can do that one without requiring the app to be running with the new CORS

pecigonzalo avatar
pecigonzalo

I keep wondering as I like the idea of the terraform part running on a completely detached part, with its own creds. It works sort of like Terraform Enterprise

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

Yea, it work similar to Terraform enterprise.

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

As for the workflow between your other apps and terraform, that is out of scope for atlantis

pecigonzalo avatar
pecigonzalo

Yeah I know it is, but it is part of the same pipeline and have to coexist, so I’m wondering about the full story for it.

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

Fair enough!

joshmyers avatar
joshmyers

@pecigonzalo by default we deploy a standard backing image with ECS

joshmyers avatar
joshmyers

and then use an out of band CI/CD to deploy the actual app we want

pecigonzalo avatar
pecigonzalo

Yeah, the docker part was just an example

pecigonzalo avatar
pecigonzalo

but if you had certain DB change for example, it would be the same

joshmyers avatar
joshmyers
cloudposse/terraform-aws-ecs-web-app

Terraform module that implements a web app on ECS and supports autoscaling, CI/CD, monitoring, ALB integration, and much more. - cloudposse/terraform-aws-ecs-web-app

pecigonzalo avatar
pecigonzalo

The container one was just an example because it makes clear the “problem” i see

pecigonzalo avatar
pecigonzalo

but there might be other changes that should be insync with that is deployed

pecigonzalo avatar
pecigonzalo

Too bad Atlantis closed the PR for apply on merge, because that workflow would be sweet, atlantis saves plan from PR, which was approved in line, then on merge, it applies that plan

2019-01-11

antonbabenko avatar
antonbabenko

Lots of content on your slides. Will it be an hour talk?

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

last I did it was ~30 minutes + 30 minute q&a

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

also, these are the old slides

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

going to revamp them before the conf

antonbabenko avatar
antonbabenko

Good luck with this talk. It is great to share Atlantis with the community in any way. (I am about to be involved in getting it up and running in Azure… omg)

1
azure1

2019-01-10

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
dave.udit avatar
dave.udit

Any chance this will be live streamed or a recorded?

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

That’s a good question. I am not sure if it will be recorded.

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

I will find out.

dave.udit avatar
dave.udit

Thanks

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

I’ll be giving a live demo of Atlantis

imiltchman avatar
imiltchman

nice slides

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

    keyboard_arrow_up