Skip to content

ProjektDragon/terraform-projektdragon-bootstrap

Repository files navigation

terraform-projektdragon-bootstrap

This is a templated way to create a set of infrastructure resources needed for development of an Open Source project.

  • GitHub Repository
  • Discord Webhook for GitHub status notifications
  • DNS using projektdragon.dev

TODO:

  • Automated creation of images from Dockerfiles
  • Persistant application hosting (via Kubernetes?)

Usage

Generating documents

Ensure terraform-docs is installed.

  • brew install terraform-docs

Include the bootstrap template README and then from the Terraform module. make docs

Cloud Tooling used

The GitHub repositories within ProjektDragon will be bootstrapped using this module here.

In order to support this workflow, the following cloud tools are being used:

If you need additional access to either of above tools contact Reulan#0003 on Discord.

Terraform module specifications

Requirements

Name Version
terraform >= 0.12.24
cloudflare ~> 2.0

Providers

Name Version
cloudflare ~> 2.0
github n/a
tfe n/a

Inputs

Name Description Type Default Required
cloudflare_domain_name Name for the Cloudflare domain. string "projektdragon.dev" no
cloudflare_enabled Enable Cloudflare DNS record creation for zone ID specified. bool false no
cloudflare_record_name Subdomain to create string "live" no
cloudflare_record_type DNS Record type (A, CNAME, TXT) string "CNAME" no
cloudflare_record_value What the record should point to. string "projektdragon.stream" no
cloudflare_zone_id Zone ID for the Cloudflare domain. string n/a yes
discord_enabled Reports GitHub status notifications for the repository to Discord webhook. bool false no
discord_webhook_secret Discord Webhook Settings string n/a yes
github_enabled Creates a GitHub repository and sets up branch protection bool false no
github_gitignore_template What language to generate a .gitignore for. string "Terraform" no
github_has_downloads n/a bool false no
github_has_issues n/a bool true no
github_has_projects n/a bool false no
github_has_wiki n/a bool false no
github_license_template Software license string "mit" no
github_manual_repo Was this repository created via the UI? bool false no
github_private_repo Is this repository hidden to the public? bool false no
service_description Brief description on what the service does or accomplishes. string "the most thoughtful description" no
service_name The name of the GitHub repository + Terraform Workspace. string "bootstrap-template" no
service_url GitHub repository URL. string "http://projektdragon.com" no
terraform_cloud_enabled Creates a Terraform workspace to store and apply Terraform remotely. bool false no
tfc_auto_apply Automatically runs terraform apply. bool false no
tfc_file_triggers_enabled Execute a terraform plan when .tf files are changed in a PR or commit. bool true no
tfc_remote_execution When terraform cli commands are run, invoke in the cloud. bool true no
tfc_vcs_oauth_token Terraform Cloud Enterprise string n/a yes
tfc_working_directory Path of .tf files relative to root directory. string "" no

Outputs

No output.