Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate Terraform, Add OpenTofu, Add CloudFormation, Add CDK, Add Helm #985

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

paroxp
Copy link
Member

@paroxp paroxp commented Feb 4, 2025

This Pull Request intends to spark some conversations among the tech community.

TODO

  • Add Helm paragraph

These fundamentals rarely change. Whilst we can always add stuff ad-hoc and
bump the date, the requirement for review should not be necessary for about two
years.

If your environment consists of a simple deployment artefact like an [Amazon Machine Image (AMI)][], Puppet may not be necessary, but the process for building that artefact must still be codified and version controlled.
The use of [Puppet][] at GDS is diminishing as we move more of our infrastructure to containers and higher level
services. It is mainly still in use on [GOV.UK](https://github.com/alphagov/govuk-puppet) but this will decline as more
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GOV.UK are now off puppet, so you may delete this bit too if you like. Or leave it and I'll do a separate update

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@two-first-names
Copy link
Contributor

Are there any teams in GDS who are currently using OpenTofu? I'm wary of swapping out Terraform to OpenTofu in our guidance if we don't have the evidence to back it up, you know?

@roger-watkins
Copy link

My principal concerns around moving to OpenTofu would be:

  • How well supported it is compared to Terraform (how likely is it to become abandonware)
  • How difficult is it to rollback from recent versions of Terraform to OpenTofu

Concerns about remaining with Hashicorp Terraform:

  • Will they do a docker and start requiring a license to work with their toolchain ?

@galund
Copy link
Contributor

galund commented Feb 5, 2025

The DI ADR in question is here https://github.com/govuk-one-login/architecture/blob/main/adr/0042-use-of-sam-and-cloudformation.md and would need a bit of an update.

(edit: should've actually read this properly before commenting. Basically I agree with this, it's a better balance than we have now in the GDS Way 👍 )

@jimnarey
Copy link

jimnarey commented Feb 5, 2025

How would others feel about me adding some warmer words on the AWS CDK? It's what we use in the (formerly CDDO) Domains Team. It probably wouldn't have been my first choice but it does have some real things to commend it. It means we're an entirely Python household. Bootstrapping is trivial. It laughs in the face of cross-account zone delegation and other, otherwise knotty jobs.

EDIT: thanks to @AP-Hunt for putting me on to this discussion.

@dazahern
Copy link

dazahern commented Feb 5, 2025

Terraform may no longer be the new kid on the block, but it is the industry standard.

Concerns for me;

  • the effort/people/months of work needed to unpick everything in favour of opentofu
  • is it compatible (like for like replacement) with our various pieces of infra
  • we are dropping TF in favour of further integration with the AWS suite (what if they deprecate one of these, raise prices, goes down)

Amazon Web Services provide two tools in the field of IaC. [CloudFormation] being more traditional YAML manifests or
[CDK] being more of an SDK library for developers to program their way into configuration.

Both are limited to only cover AWS infrastrcuture, and woould not be much use outside of that echosystem - for instance,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Both are limited to only cover AWS infrastrcuture, and woould not be much use outside of that echosystem - for instance,
Both are limited to only cover AWS infrastructure, and would not be much use outside of that ecosystem - for instance,

[CDK] being more of an SDK library for developers to program their way into configuration.

Both are limited to only cover AWS infrastrcuture, and woould not be much use outside of that echosystem - for instance,
configuring GitHub or Dynatrace would require you to invest in additional tooling such as [OpenTofu].

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants