#office-hours (2023-07)

“Office Hours” are every Wednesday at 11:30 PST via Zoom. It’s open to everyone. Ask questions related to DevOps & Cloud and get answers! https://cloudposse.com/office-hours

Public “Office Hours” are held every Wednesday at 11:30 PST via Zoom. It’s open to everyone. Ask questions related to DevOps & Cloud and get answers!

https://cpco.io/slack-office-hours

Meeting password: sweetops

2023-07-03

Hans D avatar

For the upcoming office hours: Using the new TF import functionality to move existing infra into the atmos style stacks

2023-07-05

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
06:00:29 PM

@here office hours is starting in 30 minutes! Remember to post your questions here.

YoungChool Kim avatar
YoungChool Kim

Hi! I am not sure if I can join the meeting, but a question I have is: What is the recommended way to remove the existing stacks where in the setting of:

• using atmos to generate vars and backend for each Terraform workspace

• with Atlantis configuration (per repo config) I appreciate any help you can provide.

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


• with Atlantis configuration (per repo config)
Note, we now have GitHub Actions support with general feature convergence with Atlantis. If you’re starting from scratch, I recommend this approach.

YoungChool Kim avatar
YoungChool Kim

Thank you for the update! This is the document, right?

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

Yes, however, I think we haven’t yet written the integration guide.

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

@Dan Miller (Cloud Posse) can link you to what we have

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
cloudposse/github-action-atmos-terraform-plan

Atmos Terraform Plan

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
cloudposse/github-action-atmos-terraform-apply

Atmos Terraform Apply

Dan Miller (Cloud Posse) avatar
Dan Miller (Cloud Posse)

The documentation that I’ve written is still in PR review. I’ll link here once it’s published. Should be the EOD today

2
Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
Atmos Terraform Plan | atmos

The Cloud Posse GitHub Action for “Atmos Terraform Plan” simplifies provisioning Terraform from within GitHub using workflows. Understand precisely what to expect from running a terraform plan from directly within the GitHub UI for any Pull Request.

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
Atmos Terraform Apply | atmos

The Cloud Posse GitHub Action for “Atmos Terraform Apply” simplifies provisioning Terraform entirely within GitHub Action workflows. It makes it very easy to understand exactly what happened directly within the GitHub UI.

YoungChool Kim avatar
YoungChool Kim

Thank you for the update!

2023-07-11

managedkaos avatar
managedkaos

Curious to see what folks are thinking about Datadog Workflow Automation and how they might use it. . Will you add automation to your monitoring?

Reminds me of PagerDuty’s acquisition of Rundeck to add automation to incident management. And yet, I don’t know of anyone that’s actually used PD+RD not saying no one’s applied it, I just don’t know anyone that has. Interested in hearing folks experience with this one as well.

https://www.datadoghq.com/blog/automate-end-to-end-processes-with-datadog-workflows/

Automate end to end processes and quickly respond to events with Datadog Workflow Automation | Datadogattachment image

Learn how to combine monitoring and workflow automation into a single, streamlined solution with Datadog Workflow Automation.

Hao Wang avatar
Hao Wang

interesting product, seems it can be used for disaster recovery

Automate end to end processes and quickly respond to events with Datadog Workflow Automation | Datadogattachment image

Learn how to combine monitoring and workflow automation into a single, streamlined solution with Datadog Workflow Automation.

2023-07-12

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
06:00:44 PM

@here office hours is starting in 30 minutes! Remember to post your questions here.

party_parrot4
fast_parrot2
nyan_parrot3
fiesta_parrot3
aws2
2
cool-doge3
3
2
venkata.mutyala avatar
venkata.mutyala
GlueOps/terraform-module-provider-versions
GlueOps/terraform-registry-proxy
BATeller avatar
BATeller

Thank you!

GlueOps/terraform-module-provider-versions
GlueOps/terraform-registry-proxy
venkata.mutyala avatar
venkata.mutyala

Anytime. Docs are a bit light but if you need any help with either let me know. Happy to jump on a call and walk you through it.

1
venkata.mutyala avatar
venkata.mutyala

OH, almost forgot. There is something called network mirror that you may want to read up on. It requires modifying your .terraformrc but in theory you could point your terraform applies to use some folder path for all the providers. the .terraformrc is something that the terraform cli will pick up. I believe for TFC it requires self-hosted agents and with spacelift i believe it’s supported.

1
venkata.mutyala avatar
venkata.mutyala

We never looked at it because we didn’t want to self-hosted agents

Bogdan Mihaescu avatar
Bogdan Mihaescu

will this work in a version controled modules structure ?

Bogdan Mihaescu avatar
Bogdan Mihaescu

for example if I add this to my vpc module that is tagged 1.2.3 and I want to update the providers versions when I will apply the infra for VPC 1.2.3 that will automatically take the latest versions for all the providers, right ?

venkata.mutyala avatar
venkata.mutyala

Yes, I believe it should work in those situations. I’ve personally been using it at the same level as my modules so that if something were to go wrong I could branch the repo (https://github.com/GlueOps/terraform-module-provider-versions) and point back to alternative versions quickly.

GlueOps/terraform-module-provider-versions
Bogdan Mihaescu avatar
Bogdan Mihaescu

so the provider versions module is always used in the other module with the latest version

Bogdan Mihaescu avatar
Bogdan Mihaescu

if i would want to version this module as well, my problem of creating multiple pr’s for each sub module repo will be back to square 1

venkata.mutyala avatar
venkata.mutyala

Yeah, so in my situation we assume that we can move all of our stack together to the latest versions (https://github.com/GlueOps/terraform-module-provider-versions). If one part of our stack has an issue we rollback and keep everything on the older version until we can resolve that issue. One situation where we have had to rollback is with the tfe provider for terraform cloud: https://github.com/GlueOps/terraform-module-provider-versions/blob/main/versions.tf#L43 rather than try and fix the issue we are looking to migrate off to spacelift or another solution.

1
venkata.mutyala avatar
venkata.mutyala

Also, when we do our updates, we go through all the usages of our modules and ensure a plan works cleanly. We also do a plan before the updates to ensure there is no pending drift/changes.

1
Bogdan Mihaescu avatar
Bogdan Mihaescu

got it

Bogdan Mihaescu avatar
Bogdan Mihaescu

thanks

Bogdan Mihaescu avatar
Bogdan Mihaescu

so no way for you to create a new env with older providers

Jeremy White (Cloud Posse) avatar
Jeremy White (Cloud Posse)

Something that bothered me recently, I guess I’ll ask in case there is time: Has anyone found a linter that will enforce deprecation warnings on outputs? That is, if you make a module that consumes deprecated outputs of another tfstate, the linter warns or even fails the module.

BATeller avatar
BATeller

I haven’t. Typically at the workspace level (and also at the module level) we output maps, lists, or variables. So its purposefully structured and narrowed scope. Because of this I don’t think there’d be a way to even know if the related resource or attribute is depreciated, at least from the perspective of the workspace calling the remote state (or the calling module).

However, you may be able to write a custom rule with tflint to achieve this?

2023-07-19

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
06:00:09 PM

@here office hours is starting in 30 minutes! Remember to post your questions here.

BATeller avatar
BATeller

https://github.com/hashicorp/terraform/releases/tag/v1.6.0-alpha20230719 just got released an hour ago. Terraform will be moving terraform test out of experimental

1
SweetOps avatar
SweetOps
08:50:47 PM
Hao Wang avatar
Hao Wang

Steampipe is like the old saw or az interactive, but using sql commands

2023-07-20

2023-07-23

2023-07-24

venkata.mutyala avatar
venkata.mutyala

Question for office hours:

How do you folks handle dependencies between repos? For example,

I update Repo A and cut a release/tag. Repo B needs to be updated with the tag from Repo A and then a release gets cut for Repo B. Repo C needs to be updated with the tag from repo B.

Also, there are situations where Repo B will have a release not dependent on Repo A and there are situations where Repo C will not have a release dependent on Repo A or B.

Are there any solutions for this? or do folks usually handroll their own automation to make this easier?

Mike Shade avatar
Mike Shade

I try to avoid chained dependencies like that as best as possible. Otherwise using solutions like dependabot, renovate, which can watch private repos for new releases and create a PR for apps that consume them.

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

Perfect question for today’s special guest.

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

@Maksym Vlasov

1
venkata.mutyala avatar
venkata.mutyala

Renovate looks pretty solid. Thanks for setting up this speaker.

1
    keyboard_arrow_up