Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
O
OpenTofu
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
components
OpenTofu
Commits
bc0b686c
Unverified
Commit
bc0b686c
authored
1 year ago
by
Timo Furrer
Browse files
Options
Downloads
Patches
Plain Diff
Add README
parent
338ed05d
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
CONTRIBUTING.md
+3
-0
3 additions, 0 deletions
CONTRIBUTING.md
README.md
+94
-3
94 additions, 3 deletions
README.md
templates/full-pipeline.yml
+7
-1
7 additions, 1 deletion
templates/full-pipeline.yml
with
104 additions
and
4 deletions
CONTRIBUTING.md
0 → 100644
+
3
−
0
View file @
bc0b686c
# Contributing
Please read about CI/CD components and best practices at: https://docs.gitlab.com/ee/ci/components
This diff is collapsed.
Click to expand it.
README.md
+
94
−
3
View file @
bc0b686c
#
WIP:
OpenTofu
# OpenTofu
CI/CD component
This OpenTofu CI/CD component is still work in progress.
> **NOTE**
>
> This component is **work in progress**, where inputs, template names and the entire interface in general may
> change at any time until version 1.0.0 is reached. From where on this CI/CD component will be versioned using [semver 2.0](https://semver.org/).
> The progress of implementing such a version can be tracked in https://gitlab.com/groups/gitlab-org/-/epics/12401.
See https://gitlab.com/groups/gitlab-org/-/epics/12401
This project is home to the
**OpenTofu CI/CD component**
and it's related assets,
like the
`gitlab-tofu`
wrapper script and OCI images containing that script
together with an OpenTofu version.
Read more:
-
[
CI/CD components
](
https://docs.gitlab.com/ee/ci/components
)
-
[
Development guide for GitLab CI/CD components
](
https://docs.gitlab.com/ee/development/cicd/components
)
-
[
CI/CD Catalog
](
https://docs.gitlab.com/ee/ci/components/index.html#cicd-catalog
)
## Usage
```
yaml
include
:
-
component
:
gitlab.com/components/opentofu/full-pipeline@<VERSION>
inputs
:
# The version must currently be specified explicitly as an input,
# to find the correctly associated images. # This can be removed
# once https://gitlab.com/gitlab-org/gitlab/-/issues/438275 is solved.
version
:
<VERSION>
opentofu_version
:
<OPENTOFU_VERSION>
```
A concrete example may look like this:
```
yaml
# Using `latest`
include
:
-
component
:
gitlab.com/components/opentofu/full-pipeline@latest
inputs
:
# The version must currently be specified explicitly as an input,
# to find the correctly associated images. # This can be removed
# once https://gitlab.com/gitlab-org/gitlab/-/issues/438275 is solved.
version
:
latest
opentofu_version
:
1.6.0
---
# ... or using `0.0.0-alpha1`:
include
:
-
component
:
gitlab.com/components/opentofu/full-pipeline@0.0.0-alpha1
inputs
:
# The version must currently be specified explicitly as an input,
# to find the correctly associated images. # This can be removed
# once https://gitlab.com/gitlab-org/gitlab/-/issues/438275 is solved.
version
:
0.0.0-alpha1
opentofu_version
:
1.6.0
```
## Releases & Versioning
This project currently releases tagged commits.
An overview of releases can be found on the
[
Releases page
](
https://gitlab.com/components/opentofu/-/releases
)
.
Each release is accessible in the
[
CI/CD Catalog
](
https://gitlab.com/explore/catalog
)
.
### Component Versions
The component release versions follow
[
Semantic Versioning 2.0.0
](
https://semver.org/
)
.
### Image Versions
This project releases multiple OCI image variants that can be used with the component.
The intention is that the images used in a component have the same version and or not mixed.
Due to the limitations described in https://gitlab.com/gitlab-org/gitlab/-/issues/438275
it's currently required to provide the component version in the
`component`
include field
and as the
`version`
input. Check out the
[
Usage
](
#Usage
)
section for examples.
Each component release deploys the following images:
-
`registry.gitlab.com/components/opentofu/gitlab-opentofu:<VERSION>-opentofu<OPENTOFU_VERSION>`
-
`registry.gitlab.com/components/opentofu/gitlab-opentofu:<VERSION>-opentofu`
-
Includes the latest stable OpenTofu version at the time of releasing the component
-
`registry.gitlab.com/components/opentofu/gitlab-opentofu:<VERSION>`
-
Includes the latest stable OpenTofu version at the time of releasing the component
In the above examples
`<VERSION>`
references the component version and
`<OPENTOFU_VERSION>`
an OpenTofu release, from
[
here
](
https://github.com/opentofu/opentofu/releases
)
.
*
Note: unfortunately, these image versions are not SemVer compatible,
because
`-`
indicates a prerelease (which they are not in this case).
However, we cannot use the alternative
`+`
which would indicate build metadata
as we'd like.
See https://github.com/distribution/distribution/issues/1201
*
## Contributing
See the
[
CONTRIBUTING.md
](
CONTRIBUTING.md
)
guide.
This diff is collapsed.
Click to expand it.
templates/full-pipeline.yml
+
7
−
1
View file @
bc0b686c
...
...
@@ -18,6 +18,12 @@ spec:
description
:
'
Defines
the
cleanup
stage'
# Versions
# This version is only required, because we cannot access the context of the component,
# see https://gitlab.com/gitlab-org/gitlab/-/issues/438275
version
:
default
:
'
latest'
description
:
'
Version
of
this
component'
opentofu_version
:
default
:
'
1.6.0'
options
:
...
...
@@ -30,7 +36,7 @@ spec:
# FIXME: This should reference the component tag that is used.
# Currently, blocked by https://gitlab.com/gitlab-org/gitlab/-/issues/438275
# default: '$CI_REGISTRY/components/opentofu/gitlab-opentofu:$[[ inputs.opentofu_version ]]'
default
:
'
$CI_REGISTRY/components/opentofu/gitlab-opentofu:
latest
'
default
:
'
$CI_REGISTRY/components/opentofu/gitlab-opentofu:
$[[
inputs.version
]]-opentofu$[[
inputs.opentofu_version
]]
'
description
:
'
Image
name
of
the
gitlab-opentofu
image'
# Configuration
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment