Remove provider configs from modules

This commit is contained in:
Tobias Reisinger 2024-10-10 13:15:50 +02:00
parent f8bb2d82c9
commit fa2059bb32
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
5 changed files with 92 additions and 161 deletions

120
main.tf
View file

@ -1,4 +1,40 @@
terraform { terraform {
required_providers {
contabo = {
source = "contabo/contabo"
version = "~> 0.1.26"
}
hcloud = {
source = "hetznercloud/hcloud"
version = "~> 1.45.0"
}
healthchecksio = {
source = "kristofferahl/healthchecksio"
version = "~> 1.6.0"
}
ovh = {
source = "ovh/ovh"
version = "~> 0.48.0"
}
scaleway = {
source = "scaleway/scaleway"
version = "~> 2.43.0"
}
tailscale = {
source = "tailscale/tailscale"
version = "~> 0.16.0"
}
authentik = {
source = "goauthentik/authentik"
version = "~> 2024.8.0"
}
postgresql = {
source = "cyrilgdn/postgresql"
version = "~> 1.23.0"
}
}
backend "s3" { backend "s3" {
bucket = var.backend_bucket bucket = var.backend_bucket
access_key = var.backend_access_key access_key = var.backend_access_key
@ -33,46 +69,74 @@ terraform {
} }
} }
module "services" { provider "contabo" {
source = "./modules/services" oauth2_client_id = var.contabo_client_id
oauth2_client_secret = var.contabo_client_secret
oauth2_user = var.contabo_user
oauth2_pass = var.contabo_pass
}
authentik_url = var.authentik_url provider "hcloud" {
authentik_token = var.authentik_token token = var.hcloud_token
}
postgresql_host = var.postgresql_host provider "healthchecksio" {
postgresql_port = var.postgresql_port api_key = var.healthchecksio_api_key
postgresql_username = var.postgresql_username }
postgresql_password = var.postgresql_password
services = var.services provider "ovh" {
endpoint = "ovh-eu"
application_key = var.ovh_application_key
application_secret = var.ovh_application_secret
consumer_key = var.ovh_consumer_key
}
provider "scaleway" {
organization_id = var.scaleway_organization_id
project_id = var.scaleway_project_id
access_key = var.scaleway_access_key
secret_key = var.scaleway_secret_key
region = "nl-ams"
zone = "nl-ams-1"
}
provider "tailscale" {
api_key = var.tailscale_api_key
tailnet = var.tailscale_tailnet
} }
module "infrastructure" { module "infrastructure" {
source = "./modules/infrastructure" source = "./modules/infrastructure"
contabo_client_id = var.contabo_client_id
contabo_client_secret = var.contabo_client_secret
contabo_user = var.contabo_user
contabo_pass = var.contabo_pass
hcloud_token = var.hcloud_token
healthchecksio_api_key = var.healthchecksio_api_key
ovh_application_key = var.ovh_application_key
ovh_application_secret = var.ovh_application_secret
ovh_consumer_key = var.ovh_consumer_key
scaleway_access_key = var.scaleway_access_key
scaleway_secret_key = var.scaleway_secret_key
scaleway_project_id = var.scaleway_project_id scaleway_project_id = var.scaleway_project_id
scaleway_organization_id = var.scaleway_organization_id
tailscale_api_key = var.tailscale_api_key
tailscale_tailnet = var.tailscale_tailnet
default_ssh_key = var.default_ssh_key default_ssh_key = var.default_ssh_key
hosts = var.hosts hosts = var.hosts
services = var.services services = var.services
} }
provider "authentik" {
url = var.authentik_url
token = var.authentik_token
}
provider "postgresql" {
host = var.postgresql_host
port = var.postgresql_port
database = "postgres"
username = var.postgresql_username
password = var.postgresql_password
sslmode = "verify-full"
connect_timeout = 15
}
module "services" {
source = "./modules/services"
depends_on = [ module.infrastructure ]
authentik_url = var.authentik_url
services = var.services
}

View file

@ -27,42 +27,6 @@ terraform {
} }
} }
provider "contabo" {
oauth2_client_id = var.contabo_client_id
oauth2_client_secret = var.contabo_client_secret
oauth2_user = var.contabo_user
oauth2_pass = var.contabo_pass
}
provider "hcloud" {
token = var.hcloud_token
}
provider "healthchecksio" {
api_key = var.healthchecksio_api_key
}
provider "ovh" {
endpoint = "ovh-eu"
application_key = var.ovh_application_key
application_secret = var.ovh_application_secret
consumer_key = var.ovh_consumer_key
}
provider "scaleway" {
organization_id = var.scaleway_organization_id
project_id = var.scaleway_project_id
access_key = var.scaleway_access_key
secret_key = var.scaleway_secret_key
region = "nl-ams"
zone = "nl-ams-1"
}
provider "tailscale" {
api_key = var.tailscale_api_key
tailnet = var.tailscale_tailnet
}
locals { locals {
services_auth = {for key, val in var.services : key => val if val.auth} services_auth = {for key, val in var.services : key => val if val.auth}

View file

@ -1,69 +1,7 @@
variable "contabo_client_id" {
sensitive = true
}
variable "contabo_client_secret" {
sensitive = true
}
variable "contabo_user" {
sensitive = true
}
variable "contabo_pass" {
sensitive = true
}
variable "hcloud_token" {
sensitive = true
}
variable "healthchecksio_api_key" {
sensitive = true
}
variable "ovh_application_key" {
sensitive = true
}
variable "ovh_application_secret" {
sensitive = true
}
variable "ovh_consumer_key" {
sensitive = true
}
variable "scaleway_organization_id" {
sensitive = true
}
variable "scaleway_project_id" { variable "scaleway_project_id" {
sensitive = true sensitive = true
} }
variable "scaleway_access_key" {
sensitive = true
}
variable "scaleway_secret_key" {
sensitive = true
}
variable "tailscale_api_key" {
sensitive = true
}
variable "tailscale_tailnet" {
sensitive = false
}
variable "default_ssh_key" { variable "default_ssh_key" {
type = object({ type = object({
name = string name = string

View file

@ -11,21 +11,6 @@ terraform {
} }
} }
provider "authentik" {
url = var.authentik_url
token = var.authentik_token
}
provider "postgresql" {
host = var.postgresql_host
port = var.postgresql_port
database = "postgres"
username = var.postgresql_username
password = var.postgresql_password
sslmode = "verify-full"
connect_timeout = 15
}
locals { locals {
services_auth = {for key, val in var.services : key => val if val.auth} services_auth = {for key, val in var.services : key => val if val.auth}
services_database = {for key, val in var.services : key => val if val.database} services_database = {for key, val in var.services : key => val if val.database}

View file

@ -1,26 +1,6 @@
variable "authentik_url" { variable "authentik_url" {
} }
variable "authentik_token" {
sensitive = true
}
variable "postgresql_host" {
}
variable "postgresql_port" {
}
variable "postgresql_username" {
sensitive = true
}
variable "postgresql_password" {
sensitive = true
}
variable "services" { variable "services" {
type = map(object({ type = map(object({
name = string name = string