feat: general refactor
parent
d9ffa00b03
commit
d237e56a02
58
main.tf
58
main.tf
|
@ -9,23 +9,51 @@ terraform {
|
||||||
skip_metadata_api_check = true
|
skip_metadata_api_check = true
|
||||||
skip_region_validation = true
|
skip_region_validation = true
|
||||||
}
|
}
|
||||||
|
required_providers {
|
||||||
|
kubernetes = {
|
||||||
|
source = "hashicorp/kubernetes"
|
||||||
|
version = ">= 2.20.0"
|
||||||
|
}
|
||||||
|
helm = {
|
||||||
|
source = "hashicorp/helm"
|
||||||
|
version = ">= 2.9.0"
|
||||||
|
}
|
||||||
|
minio = {
|
||||||
|
source = "aminueza/minio"
|
||||||
|
version = ">= 1.15.2"
|
||||||
|
}
|
||||||
|
linode = {
|
||||||
|
source = "linode/linode"
|
||||||
|
version = ">= 1.29.0"
|
||||||
|
}
|
||||||
|
hetznerdns = {
|
||||||
|
source = "timohirt/hetznerdns"
|
||||||
|
version = ">=2.2.0"
|
||||||
|
}
|
||||||
|
postgresql = {
|
||||||
|
source = "cyrilgdn/postgresql"
|
||||||
|
version = ">= 1.19.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#module "cert-manager" {
|
provider "kubernetes" {
|
||||||
# source = "./modules/cert-manager"
|
config_path = "~/.kube/config"
|
||||||
# hetzner_token = var.hetzner_token
|
}
|
||||||
# email = var.email
|
|
||||||
# zone_name = var.zone_name
|
|
||||||
# dns_common_name = var.dns_common_name
|
|
||||||
# dns_names = var.dns_names
|
|
||||||
#}
|
|
||||||
|
|
||||||
module "postgresql" {
|
provider "helm" {
|
||||||
source = "./modules/postgresql"
|
kubernetes {
|
||||||
host = "pg.monotremata.xyz"
|
config_path = "~/.kube/config"
|
||||||
password = var.pg_passwd
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "minio" {
|
||||||
|
minio_ssl = true
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "postgresql" {
|
||||||
username = "terraform"
|
username = "terraform"
|
||||||
db_owner = "rilla"
|
password = var.pg_passwd
|
||||||
}
|
}
|
||||||
|
|
||||||
module "dns" {
|
module "dns" {
|
||||||
|
@ -82,4 +110,8 @@ module "minio" {
|
||||||
|
|
||||||
module "minio_buckets" {
|
module "minio_buckets" {
|
||||||
source = "./modules/minio_buckets"
|
source = "./modules/minio_buckets"
|
||||||
|
providers = {
|
||||||
|
minio = minio
|
||||||
|
}
|
||||||
|
depends_on = [module.minio]
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,16 +11,6 @@ terraform {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "kubernetes" {
|
|
||||||
config_path = "~/.kube/config"
|
|
||||||
}
|
|
||||||
|
|
||||||
provider "helm" {
|
|
||||||
kubernetes {
|
|
||||||
config_path = "~/.kube/config"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "helm_release" "cert-manager" {
|
resource "helm_release" "cert-manager" {
|
||||||
name = "cert-manager"
|
name = "cert-manager"
|
||||||
chart = "cert-manager"
|
chart = "cert-manager"
|
||||||
|
@ -56,40 +46,6 @@ resource "kubernetes_secret" "hetzner-token" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#resource "kubernetes_manifest" "clusterissuer_letsencrypt_staging" {
|
|
||||||
# manifest = {
|
|
||||||
# apiVersion = "cert-manager.io/v1"
|
|
||||||
# kind = "ClusterIssuer"
|
|
||||||
# metadata = {
|
|
||||||
# name = "letsencrypt-staging"
|
|
||||||
# }
|
|
||||||
# spec = {
|
|
||||||
# acme = {
|
|
||||||
# email = var.email
|
|
||||||
# privateKeySecretRef = {
|
|
||||||
# name = "letsencrypt-staging-account-key"
|
|
||||||
# }
|
|
||||||
# server = var.letsencrypt_servers.staging
|
|
||||||
# solvers = [
|
|
||||||
# {
|
|
||||||
# dns01 = {
|
|
||||||
# webhook = {
|
|
||||||
# config = {
|
|
||||||
# apiUrl = var.hetzner_dns_api
|
|
||||||
# secretName = kubernetes_secret.hetzner-token.metadata[0].name
|
|
||||||
# zoneName = var.zone_name
|
|
||||||
# }
|
|
||||||
# groupName = var.group_name
|
|
||||||
# solverName = "hetzner"
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# ]
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
#}
|
|
||||||
|
|
||||||
resource "kubernetes_manifest" "clusterissuer_letsencrypt" {
|
resource "kubernetes_manifest" "clusterissuer_letsencrypt" {
|
||||||
manifest = {
|
manifest = {
|
||||||
apiVersion = "cert-manager.io/v1"
|
apiVersion = "cert-manager.io/v1"
|
||||||
|
|
|
@ -7,10 +7,6 @@ terraform {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "kubernetes" {
|
|
||||||
config_path = "~/.kube/config"
|
|
||||||
}
|
|
||||||
|
|
||||||
# terraform import module.minio.kubernetes_namespace.minio_namespace minio
|
# terraform import module.minio.kubernetes_namespace.minio_namespace minio
|
||||||
resource "kubernetes_namespace" "minio_namespace" {
|
resource "kubernetes_namespace" "minio_namespace" {
|
||||||
metadata {
|
metadata {
|
||||||
|
|
|
@ -7,10 +7,6 @@ terraform {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "minio" {
|
|
||||||
minio_ssl = true
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "minio_s3_bucket" "state_terraform_s3" {
|
resource "minio_s3_bucket" "state_terraform_s3" {
|
||||||
bucket = "terraform"
|
bucket = "terraform"
|
||||||
acl = "private"
|
acl = "private"
|
||||||
|
|
|
@ -7,13 +7,6 @@ terraform {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "postgresql" {
|
|
||||||
host = var.host
|
|
||||||
port = var.port
|
|
||||||
username = var.username
|
|
||||||
password = var.password
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "postgresql_database" "terraform_backend_db" {
|
resource "postgresql_database" "terraform_backend_db" {
|
||||||
name = "terraform_backend"
|
name = "terraform_backend"
|
||||||
owner = var.db_owner
|
owner = var.db_owner
|
||||||
|
|
|
@ -1,14 +1,3 @@
|
||||||
variable "host" {
|
|
||||||
type = string
|
|
||||||
description = "postgresql host"
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "port" {
|
|
||||||
type = number
|
|
||||||
description = "postgresql post"
|
|
||||||
default = 5432
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "password" {
|
variable "password" {
|
||||||
type = string
|
type = string
|
||||||
description = "postgresql password"
|
description = "postgresql password"
|
||||||
|
|
|
@ -1,9 +1,3 @@
|
||||||
#variable "hetzner_token" {
|
|
||||||
# type = string
|
|
||||||
# description = "hetzner dns token"
|
|
||||||
# sensitive = true
|
|
||||||
#}
|
|
||||||
|
|
||||||
variable "email" {
|
variable "email" {
|
||||||
type = string
|
type = string
|
||||||
description = "email for letsencrypt registration"
|
description = "email for letsencrypt registration"
|
||||||
|
|
Loading…
Reference in New Issue