tofutf

module
v0.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 4, 2024 License: MPL-2.0

README ¶

TofuTF

Build GitHub License GitHub Release Star on GitHub GitHub contributors from allcontributors.org Postgres Go Kubernetes Terraform Maintained-Yes

TofuTF is an open source alternative to Terraform Enterprise. Includes SSO, team management, agents, no per-resource pricing, and soon to be OpenTofu support.

Getting Started

Quick Start

Create a file named values.yaml and paste the following contents inside of it.

# values.yaml

# The secret is used to sign sessions. It should be kept confidential, and 
# production installs of tofutf should have a randomly generated secret.
secret: 2876cb147697052eec5b3cdb56211681

# The siteToken is the special token that grants administrator access to 
# tofutf. Production installs of tofutf should have a randomly generated
# site token.
siteToken: site-token

# here we enable the bundled postgres instance, and configure it to provision
# a tofutf database.
postgres:
  enabled: true
  database: tofutf

# here we configure tofutf to connect to the bundled postgres instance. 
database: postgres://tofutf-postgresql/tofutf?user=postgres
databasePasswordFromSecret:
  name: tofutf-postgresql
  key: postgres-password

Then run the following command to install tofutf.

helm install my-release -f values.yaml oci://ghcr.io/tofutf/tofutf/charts/tofutf --version v0.8.0

Congrats! 🎉

Congrats, you have deployed TofuTF! Check the quickstart guide on the official docs site for next steps. https://docs.tofutf.io/quickstart

TofuTF is in no way affiliated with Hashicorp. Terraform and Terraform Enterprise are trademarks of Hashicorp. Hashicorp have confirmed TofuTF is in compliance with their BSL license.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Louis Garman
Louis Garman

💻
John Rowley
John Rowley

💻
jacobi petrucciani
jacobi petrucciani

💻
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

Provenance

TofuTF is a fork of the now abandoned otf. Louis Garman did some amazing work, and this fork is an attempt to carry the torch.

Directories ¶

Path Synopsis
cmd
Package cmd provides CLI functionality.
Package cmd provides CLI functionality.
Package internal is code only for consumption from within the otf project.
Package internal is code only for consumption from within the otf project.
agent
Package agent contains code related to agents
Package agent contains code related to agents
api
Package api provides commmon functionality for the OTF API
Package api provides commmon functionality for the OTF API
authenticator
Package authenticator is responsible for handling the authentication of users with third party identity providers.
Package authenticator is responsible for handling the authentication of users with third party identity providers.
bitbucketserver
Package bitbucketserver provides bitbucket server integration with tofutf
Package bitbucketserver provides bitbucket server integration with tofutf
cli
Package cli provides the CLI client, i.e.
Package cli provides the CLI client, i.e.
configversion
Package configversion handles terraform configurations.
Package configversion handles terraform configurations.
connections
Package connections manages connections between VCS repositories and OTF resources, e.g.
Package connections manages connections between VCS repositories and OTF resources, e.g.
daemon
Package daemon configures and starts the otfd daemon and its subsystems.
Package daemon configures and starts the otfd daemon and its subsystems.
disco
Package disco implements terraform's "remote service discovery protocol":
Package disco implements terraform's "remote service discovery protocol":
ghapphandler
Package ghapphandler provides a handler for the github app webhook endpoint.
Package ghapphandler provides a handler for the github app webhook endpoint.
github
Package github provides github related code
Package github provides github related code
gitlab
Package gitlab provides gitlab related code
Package gitlab provides gitlab related code
gpgkeys
Package gpgkeys handles the gpg key management functionality of tofutf.
Package gpgkeys handles the gpg key management functionality of tofutf.
http
Package http provides an HTTP interface allowing HTTP clients to interact with otf.
Package http provides an HTTP interface allowing HTTP clients to interact with otf.
http/decode
Package decode contains decoders for various HTTP artefacts
Package decode contains decoders for various HTTP artefacts
http/html
Package html contains code relating specifically to the web UI.
Package html contains code relating specifically to the web UI.
http/html/paths
Package paths provides rails-style path helpers for use with the web app.
Package paths provides rails-style path helpers for use with the web app.
inmem
Package inmem implements a layer of services in memory using purely Go constructs.
Package inmem implements a layer of services in memory using purely Go constructs.
integration
Package integration provides inter-service integration tests.
Package integration provides inter-service integration tests.
json
Package json provides helpers for the JSON encoding.
Package json provides helpers for the JSON encoding.
loginserver
Package loginserver implements a "terraform login protocol" server:
Package loginserver implements a "terraform login protocol" server:
logr
Package logr provides a logger that implements the logr interface
Package logr provides a logger that implements the logr interface
logs
Package logs handles log output from a run
Package logs handles log output from a run
module
Package module is reponsible for registry modules
Package module is reponsible for registry modules
notifications
Package notifications sends notifications for run state transitions and workspace events.
Package notifications sends notifications for run state transitions and workspace events.
organization
Package organization is responsible for OTF organizations
Package organization is responsible for OTF organizations
provider
Package provider provides terraform provider registry functionality to tofutf.
Package provider provides terraform provider registry functionality to tofutf.
pubsub
Package pubsub provides cluster-wide publishing and subscribing of events
Package pubsub provides cluster-wide publishing and subscribing of events
rbac
Package rbac is concerned with authorization
Package rbac is concerned with authorization
releases
Package releases manages terraform releases.
Package releases manages terraform releases.
repohooks
Package repohooks manages webhooks for VCS events
Package repohooks manages webhooks for VCS events
resource
Package resource contains code common to all resources (orgs, workspaces, runs, etc)
Package resource contains code common to all resources (orgs, workspaces, runs, etc)
run
Package run is responsible for OTF runs, the primary mechanism for executing terraform
Package run is responsible for OTF runs, the primary mechanism for executing terraform
scheduler
Package scheduler is responsible for the scheduling of runs
Package scheduler is responsible for the scheduling of runs
semver
Package semver wraps golang.org/x/mod/semver, relaxing the requirement for semantic versions to be prefixed with "v".
Package semver wraps golang.org/x/mod/semver, relaxing the requirement for semantic versions to be prefixed with "v".
sql
Package sql implements persistent storage using the postgres database.
Package sql implements persistent storage using the postgres database.
state
Package state manages terraform state.
Package state manages terraform state.
team
Package team manages teams, which are groups of users with shared privileges.
Package team manages teams, which are groups of users with shared privileges.
testbrowser
Package testbrowser provisions web browsers for tests
Package testbrowser provisions web browsers for tests
testcompose
Package testcompose provides interaction with a docker compose stack of services for testing purposes.
Package testcompose provides interaction with a docker compose stack of services for testing purposes.
testutils
Package testutils provides test helpers.
Package testutils provides test helpers.
tfeapi
Package tfeapi provides common functionality useful for implementation of the Hashicorp TFE/TFC API, which uses the json:api encoding
Package tfeapi provides common functionality useful for implementation of the Hashicorp TFE/TFC API, which uses the json:api encoding
tfeapi/types
Package types provides structs suitable for marshaling to/from json:api
Package types provides structs suitable for marshaling to/from json:api
tokens
Package tokens manages token authentication
Package tokens manages token authentication
user
Package user manages user accounts and their team membership.
Package user manages user accounts and their team membership.
variable
Package variable manages terraform workspace variables
Package variable manages terraform workspace variables
vcs
Package vcs handles version control system stuff.
Package vcs handles version control system stuff.
vcsprovider
Package vcsprovider is responsible for VCS providers
Package vcsprovider is responsible for VCS providers
workspace
Package workspace provides access to terraform workspaces
Package workspace provides access to terraform workspaces

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL