70 Commits

Author SHA1 Message Date
Andrei Ciobanu
2f14ca5163 [RFC] Migrate from mitchellh/cli to spf13/cobra (#3541)
Signed-off-by: Andrei Ciobanu <andrei.ciobanu@opentofu.org>
2025-12-12 17:04:44 +02:00
Martin Atkins
4031dd0e38 rfc: A new approach to configuration evaluation, planning, and applying
This is a followup to our earlier RFC describing some drawbacks and
limitations of the current OpenTofu language runtime and proposing to move
to a new approach. Whereas the previous RFC primarily focused on defining
the problem, this document aims to propose the start of a solution, in
the form of a high-level architectural model that we can hopefully find
consensus on before we move on to discussing the associated implementation
details.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-22 08:56:58 -07:00
Martin Atkins
bc0faecff8 rfc: Minor revision to "Miscellaneous Configuration Settings in Modules"
While drafting this RFC originally I had intended to carve out an exception
of ignoring required_version arguments in .tf files while continuing to
support them in .tofu files, but apparently I lost that detail during some
copyediting and so the current draft implies that OpenTofu would continue
to use required_version in .tf files unless there's an OpenTofu-specific
declaration that takes precedence.

This update aims to clarify the proposal's handling of modules that are
written only for Terraform without using any OpenTofu-specific mechanisms:
in that case, we must just make a best effort to load the module in
OpenTofu and let it fail with a more specific error if the module happens
to be using language features that OpenTofu does not support, so that
loading can succeed when the module is only using the subset of features
that are cross-compatible between both systems.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-22 07:08:29 -07:00
Martin Atkins
b4504c8355 rfc: Revisions to Security Patch Policy
After adopting our original form of this policy we found out that GitHub's
security advisory feature will not allow us to publish "local-only"
advisories with no severity information, and instead sends copies of any
published advisory to other vulnerability databases. That is therefore not
a suitable way to handle false-positive reports, because distributing them
to other vulnerability databases would likely cause _even more_
false-positive reports from security scanners.

This therefore now describes the compromise we made in practice: we publish
our reasoning for classifying an advisory as false-positive in comments on
the relevant GitHub issue and then close that issue. This also mentions
our efforts to make these issues more discoverable by ensuring that the
advisory ID and affected module path are included in the summary of the
GitHub issue.

This is intended as a description of what we have already been doing in
practice, rather than as a proposal for a new policy.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-09-23 16:37:32 -07:00
Martin Atkins
2de469a26d rfc: Revisions to Security Patch Policy
The original draft of this policy was written in future tense because we
had not begun following it yet. However, it makes more sense to write a
description of an active policy in present tense, so this retroactively
changes the existing sentences to make it clearer that this policy is
current rather than planned.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-09-23 16:37:32 -07:00
Martin Atkins
291dfb5566 rfc: Miscellaneous Configuration Settings in Modules
The current OpenTofu language inherited a top-level block type named
"terraform" from its predecessor. Blocks of this type contain an
assortment of only-tangentially-related settings that seem to have ended
up there just because there wasn't any other obvious place to put them.

This document proposes new alternatives to those settings that are
intended to be tool-agnostic, while also making some room for other
changes we have already discussed including in future versions of the
language.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-09-22 14:58:13 -07:00
Diógenes Fernandes
50dd7e3f33 RFC: conditional enabled field (#3066)
Signed-off-by: Diogenes Fernandes <diofeher@gmail.com>
Signed-off-by: Diógenes Fernandes <diofeher@gmail.com>
Co-authored-by: Andrei Ciobanu <andrei.ciobanu@opentofu.org>
Co-authored-by: James Humphries <James@james-humphries.co.uk>
2025-08-29 12:37:13 -03:00
Andrei Ciobanu
bfa27e96e8 Update the RFC related to tofu.applying/terraform.applying (#3155)
Signed-off-by: Andrei Ciobanu <andrei.ciobanu@opentofu.org>
2025-08-19 15:22:56 +03:00
Christian Mesh
416f0341fe Proposed Execution Architecture RFC (#3078)
Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2025-08-12 12:27:32 -03:00
Andrei Ciobanu
11780773aa Revisit ephemeral resources decision about plan files (#2996)
Signed-off-by: Andrei Ciobanu <andrei.ciobanu@opentofu.org>
2025-07-08 10:10:22 +03:00
Andrei Ciobanu
32fe919968 [RFC] Ephemeral resources and write-only attributes (#2793)
Signed-off-by: Andrei Ciobanu <andrei.ciobanu@opentofu.org>
Signed-off-by: Andrei Ciobanu <andreic9203@gmail.com>
Co-authored-by: James Humphries <James@james-humphries.co.uk>
Co-authored-by: Ilia Gogotchuri <ilia.gogotchuri0@gmail.com>
2025-05-28 16:29:25 +03:00
Andrei Ciobanu
8305bfb2ef Rename the CLI arg for deprecation outputs/variables (#2774)
Signed-off-by: Andrei Ciobanu <andrei.ciobanu@opentofu.org>
2025-05-09 14:01:32 +03:00
Andrei Ciobanu
22dc9b2137 Add new CLI arg to control what warnings should be shown for deprecated outputs/variables (#2705)
Signed-off-by: yottta <andrei.ciobanu@opentofu.org>
Signed-off-by: Andrei Ciobanu <andrei.ciobanu@opentofu.org>
2025-05-08 17:01:40 +03:00
Christian Mesh
83b92b1361 Add RFC for global provider cache locking (#1939)
Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
Co-authored-by: James Humphries <James@james-humphries.co.uk>
2025-04-24 12:00:49 -04:00
James Humphries
81ab6b6da2 [RFC] OpenTelemetry (OTEL) Tracing for providing end users more context (#2448)
Signed-off-by: James Humphries <james@james-humphries.co.uk>
2025-04-24 16:13:14 +01:00
Martin Atkins
1cf2661f0a rfc: Tracking Provider Authentication on a Per-hash Basis
A new approach to reporting provider package authentication results in the
getproviders package, which unifies the authentication result with the
"allowed hashes" and gives the provider installer more detail to use when
making other decisions based on the authentication results.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-04-09 09:59:24 -07:00
Martin Atkins
e29bdf5b14 rfc: Security Advisory Policy for Upstream Dependencies (#2600)
Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-25 18:52:47 +02:00
Martin Atkins
568e672d72 rfc: OpenTofu Codebase Linting Policy (#2562)
Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-10 07:52:44 -04:00
Martin Atkins
b47237d410 rfc/oci-registries: Assorted changes to finalize the next draft
This includes both the "Module implementation details" appendix and a
general copyediting pass just to try to make the writing style a little
more consistent, since this content was originally written by two
different authors with different style preferences.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
Martin Atkins
fa28407ce7 rfc/oci-registries: More "Provider implementation details"
This now includes a summary of how we'll use a new implementation of
getproviders.Source to back the new oci_mirror provider installation
method, and how it can then interact internally with the ORAS-Go OCI
Distribution client.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
Martin Atkins
4efcc99d62 rfc/oci-registries: Authentication implementation details
This revises the previous content on implementation details related to the
cross-cutting authentication concerns to reflect our latest design, based
on a partial draft implementation.

These details still remain subject to change as we get into implementation,
but are included in the hope of helping with architectural-level discussion
of the implementation during the RFC process.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
Martin Atkins
1442d8cdbf rfc/oci-registries: Some updates from latest feedback
This is an aggregated set of updates from feedback and discussion on the
previous draft. Unfortunately a significant change here is that we've
agreed to defer the SBOM question to a later project and so that entire
chapter is removed here, thereby renumbering all that came after it. I
tried to update all of the inter-chapter links, but I doubt I've found
all of them and will probably need to correct this more in future commits.

This first round of updates focuses on the main chapters and does not yet
update the appendices describing implementation details. I'll update the
appendices to match these latest updates in a future commit.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
8e94694fe2 Removed detailed survey data link
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
04d2973936 .tofurc format change
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
febd0f99bf Linking fix
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
8cc04a2bcf Minor fix
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
06544ccbaf URL format fix
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
8da8db0aa5 Removed left-over headline
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
5eb72afe12 Review fixes
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
94f487bde3 Navigation note
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
8cabeaae24 Survey results
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
0fa58254ce Added future plans
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
3468302422 Added potential alternatives
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
fd95fa6a45 Navigation linking
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
AbstractionFactory
8f728cde15 Moved SBOM to a separate RFC
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
Martin Atkins
a59608864a rfc/oci-registries: go-getter style arguments instead of version argument
In OpenTofu's current design, the "version" argument in a "module" block
is reserved for use only by the module registry protocol. Directly
specifying a remote source address does not allow that argument because
it delegates the installation process to go-getter, which has no concept
of versioning.

Therefore we'll start by following the existing precedent from existing
source address syntaxes like the one we use for Git repositories, where
the tag or digest is selected using URL query-string-style syntax.

In a later version of OpenTofu we might move to support "version" for
some of the remote source address syntaxes, at least including the "oci"
and "git" protocols. However, such a change is not in scope for the OCI
registry project because it would likely require a wholesale replacement
of go-getter with an API that better resembles our module registry client
API.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
Martin Atkins
e612095451 rfc/oci-registries: Implementation-related content from earlier drafts
Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
f64a45113d Module attestations
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
f279684009 Addressing review comments
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
f64498e2b8 Authentication
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
6252f505c4 Link fix
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
df2e3baade Removed Helm reference
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
898f9f78d3 Minor fixes
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
55d7a98a0b Minor fixes and module contents
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
e85fae8e0e WIP refactor
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
1263570efe Typo fix
Co-authored-by: Yousif Akbar <11247449+yhakbar@users.noreply.github.com>
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
Martin Atkins
a1ec1298bd rfc: Dependency Packages from OCI Registries
This commit rescopes what was originally a draft about provider
installation from OCI registries into a more general document about how
we intend to use OCI container images and OCI registries as a distribution
vehicle for at least two different kinds of OpenTofu dependency packages
(module and provider packages).

This document already had good content about how OCI registries and
artifacts work _in general_, and its associated PR was already attracting
general discussion about whether to use Docker-style or ORAS-style
conventions across both provider and module packages, so we'll now use
this document to discuss just the overall question of what style of
packaging we intend to use (across both package types) and will discuss
the module-specific and provider-specific details in other RFCs.

This also reworks the document to now propose using the Docker-like
conventions instead of the ORAS-like conventions, since that matches what
we've been exploring in prototypes. Of course, that decision is not final
until this RFC is accepted and merged, but we have considerably better
understanding of how this would work under the Docker-like approach than
ORAS and it seems like consensus is so far heading in that direction. We
may revise this document again if we learn of some strong arguments in
favor of the ORAS approach.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-03-04 11:13:19 -08:00
AbstractionFactory
a92ed801e5 Draft: OCI provider registry
Signed-off-by: AbstractionFactory <179820029+abstractionfactory@users.noreply.github.com>
2025-03-04 11:13:19 -08:00
Oleksandr Levchenkov
5e41711584 [RFC] Deprecation of module variables and outputs (#2180)
Signed-off-by: ollevche <ollevche@gmail.com>
2025-03-03 16:16:29 +02:00
Andrei Ciobanu
de95b65faa RFC: s3 locking based on conditional writes (#2511)
Signed-off-by: yottta <andrei.ciobanu@opentofu.org>
2025-02-19 10:11:09 +02:00