Giter Site home page Giter Site logo

opentofu / opentofu Goto Github PK

View Code? Open in Web Editor NEW
21.3K 21.3K 780.0 269.14 MB

OpenTofu lets you declaratively manage your cloud infrastructure.

Home Page: https://opentofu.org

License: Mozilla Public License 2.0

HCL 0.31% Dockerfile 0.01% Makefile 0.05% Go 90.02% Shell 0.14% MDX 9.44% JavaScript 0.01% PowerShell 0.01%

opentofu's Introduction

OpenTofu

OpenTofu is an OSS tool for building, changing, and versioning infrastructure safely and efficiently. OpenTofu can manage existing and popular service providers as well as custom in-house solutions.

The key features of OpenTofu are:

  • Infrastructure as Code: Infrastructure is described using a high-level configuration syntax. This allows a blueprint of your datacenter to be versioned and treated as you would any other code. Additionally, infrastructure can be shared and re-used.

  • Execution Plans: OpenTofu has a "planning" step where it generates an execution plan. The execution plan shows what OpenTofu will do when you call apply. This lets you avoid any surprises when OpenTofu manipulates infrastructure.

  • Resource Graph: OpenTofu builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. Because of this, OpenTofu builds infrastructure as efficiently as possible, and operators get insight into dependencies in their infrastructure.

  • Change Automation: Complex changesets can be applied to your infrastructure with minimal human interaction. With the previously mentioned execution plan and resource graph, you know exactly what OpenTofu will change and in what order, avoiding many possible human errors.

Getting help and contributing

Tip

For more OpenTofu events, subscribe to the OpenTofu Events Calendar!

Reporting security vulnerabilities

If you've found a vulnerability or a potential vulnerability in OpenTofu please follow Security Policy. We'll send a confirmation email to acknowledge your report, and we'll send an additional email when we've identified the issue positively or negatively.

Reporting possible copyright issues

If you believe you have found any possible copyright or intellectual property issues, please contact [email protected]. We'll send a confirmation email to acknowledge your report.

License

Mozilla Public License v2.0

opentofu's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opentofu's Issues

Rename all *user-facing* occurrences of Terraform to OpenTF

So occurrences in messages and similar.

s/Terraform/OpenTF/g
s/terraform/opentf/g

Please create PRs that aren't too large, so we can effectively review them. Don't create one PR for everything. A few packages at a time.

Check packages that are taken.

Rename TFC/TFE remote backend references.

Since other vendors support them too, we should call it in a more generic way. Either completely omit the product name, or call it TACOS client. As in Failed to create the Terraform Cloud/Enterprise client would be Failed to create the remote client or Failed to create the TACOS client.

In the future we might also support backends as plugins, in that case each TACOS will be able to provide their own and the existing remote backend would become deprecated.

Create a backup of all dependencies

  • Agree on a location to store the backups
    • can just be private repos in this org if it's not too much work
    • could also be a big tarball on a google drive
  • Things to backup
    • All direct and/or indirect dependencies in go.mod
    • All GitHub Actions used in the workflows
    • Not just files (so not just go mod vendor). The whole git repos, so we have the histories.

Replace logo with OpenTF logo

We should replace any logo of terraform that exists in the repository.
For example - the logo that appears in the README.md

Get release process working

We should have a formalized process that leads to a GitHub release with binaries attached to it. See what we can salvage in the current GitHub Actions (possibly everything, and this task will be a quick one).

  • It seems like the GitHub Actions produce deb and rpm archives, do we want to support these? If yes, where do we host them?
  • Decide where we want to host docker images. Public docker registry? ghcr.io?
  • Maybe it's worth using goreleaser for the release creation process? Or maybe it's fine to keep it manual.
  • Adjust .release/release-metadata.hcl and any other metadata.

Change data and tempfile names.

When running terraform init you'll get .terraform and .terraform.lock.hcl. Both should be .opentf-prefixed.

.terraform -> .opentf
.terraform.lock.hcl -> .opentf.lock.hcl

Same for ~/.terraform.d, though for this one we'd ideally support both versions.

Adjust community-documents.

Adjust issue templates, code of conduct, contributing guidelines, codeowners, etc.

Get rid of all the links on the Issue creation page.

Support OpenTofu in TFenv

We would want to make our presence in popular tools in the community.
Being able to use OpenTF when using TFenv would be a great way to do that.

Set up documentation website.

  • This should involve a cleanup of the website directory to get rid of any kind of "marketing material".
  • It might require design + frontend work to change the styling.
  • Set it up on some hosting, could even be github actions.

Make sure all GitHub Actions are green

Currently not all GitHub Actions are passing:

Those are some examples, we should make sure all GitHub Actions are working as intended, adjusted if needed, or completely removed if they are unnecessary

Get 1.6 Testing Feature Production-ready

  • Investigate exactly how the feature currently works and is supposed to work.
  • Investigate how much is implemented already.
  • Investigate the tests to see how well-tested it is.
  • Add tests for any scenarios not covered.
  • Understand what else we need to implement and improve for it to be usable, stable and secure.
  • Write out the necessary work left in this issue.
  • Implement it.
  • Write documentation for it.

Support OpenTofu in Terragrunt

We would want to make our presence in popular tools in the community.
Being able to use OpenTF when using Terragrunt would be a great way to do taht.

Change module name

Change module name from github.com/hashicorp/terraform to github.com/placeholderplaceholderplaceholder/opentf (so that we can later easily replace with the right organization name).

We need to do this asap as it will most likely collide with any other changes.

tfstate and tfvars name handling

Right now terraform by default works with terraform.tfstate and terraform.tfvars

Ideally, we should support reading these, but always write and primarily operate on opentf.xyz files.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.