mirror of
https://github.com/optim-enterprises-bv/terraform-talos.git
synced 2025-10-30 01:52:18 +00:00
init do setup
This commit is contained in:
4
digitalocean/auth.tf
Normal file
4
digitalocean/auth.tf
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
provider "digitalocean" {
|
||||
token = var.digitalocean_token
|
||||
}
|
||||
15
digitalocean/common.tf
Normal file
15
digitalocean/common.tf
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
# resource "digitalocean_ssh_key" "default" {
|
||||
# name = "Terraform"
|
||||
# public_key = file("~/.ssh/terraform.pub")
|
||||
# }
|
||||
|
||||
resource "digitalocean_custom_image" "talos" {
|
||||
# for_each = { for idx, name in var.regions : name => idx }
|
||||
for_each = { "ams3" : 0 }
|
||||
name = "talos"
|
||||
regions = [each.key]
|
||||
description = "Talos version ${var.talos_version}"
|
||||
url = "https://github.com/siderolabs/talos/releases/download/${var.talos_version}/digital-ocean-amd64.raw.gz"
|
||||
tags = var.tags
|
||||
}
|
||||
24
digitalocean/instances-controlplane.tf
Normal file
24
digitalocean/instances-controlplane.tf
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
# resource "digitalocean_droplet" "controlplane" {
|
||||
# count = lookup(var.controlplane, "count", 0)
|
||||
# location = element(var.regions, count.index)
|
||||
# name = "controlplane-${count.index + 1}"
|
||||
# ssh_keys = [digitalocean_ssh_key.default.fingerprint]
|
||||
# image = var.image
|
||||
# region = element(var.regions, count.index)
|
||||
# size = lookup(var.controlplane, "type", "cpx11")
|
||||
# resize_disk = false
|
||||
# private_networking = false
|
||||
# backups = false
|
||||
# ipv6 = true
|
||||
# user_data = ""
|
||||
|
||||
# lifecycle {
|
||||
# ignore_changes = [
|
||||
# resize_disk,
|
||||
# image,
|
||||
# user_data,
|
||||
# ssh_keys,
|
||||
# ]
|
||||
# }
|
||||
# }
|
||||
7
digitalocean/network.tf
Normal file
7
digitalocean/network.tf
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
resource "digitalocean_vpc" "main" {
|
||||
for_each = { for idx, name in var.regions : name => idx }
|
||||
name = "main-${each.key}"
|
||||
region = each.key
|
||||
ip_range = cidrsubnet(var.vpc_main_cidr, 8, each.value)
|
||||
}
|
||||
107
digitalocean/variables.tf
Normal file
107
digitalocean/variables.tf
Normal file
@@ -0,0 +1,107 @@
|
||||
|
||||
variable "digitalocean_token" {
|
||||
description = "The DigitalOcean cloud token (export TF_VAR_hcloud_token=$TOKEN)"
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "regions" {
|
||||
description = "The id of the hezner region (oreder is important)"
|
||||
type = list(string)
|
||||
default = ["lon1", "ams3", "fra1"]
|
||||
}
|
||||
|
||||
variable "kubernetes" {
|
||||
type = map(string)
|
||||
default = {
|
||||
podSubnets = "10.32.0.0/12,fd40:10:32::/102"
|
||||
serviceSubnets = "10.200.0.0/22,fd40:10:200::/112"
|
||||
nodeSubnets = "192.168.0.0/16"
|
||||
domain = "cluster.local"
|
||||
apiDomain = "api.cluster.local"
|
||||
clusterName = "talos-k8s-digitalocean"
|
||||
tokenMachine = ""
|
||||
caMachine = ""
|
||||
token = ""
|
||||
ca = ""
|
||||
}
|
||||
}
|
||||
|
||||
variable "vpc_main_cidr" {
|
||||
description = "Local subnet rfc1918"
|
||||
type = string
|
||||
default = "172.16.0.0/16"
|
||||
}
|
||||
|
||||
variable "controlplane" {
|
||||
description = "Property of controlplane"
|
||||
type = map(any)
|
||||
default = {
|
||||
count = 0,
|
||||
type = "cpx11"
|
||||
type_lb = "" # lb11, if "" use floating-ip
|
||||
}
|
||||
}
|
||||
|
||||
variable "instances" {
|
||||
description = "Map of region's properties"
|
||||
type = map(any)
|
||||
default = {
|
||||
"nbg1" = {
|
||||
web_count = 0,
|
||||
web_type = "cx11",
|
||||
worker_count = 0,
|
||||
worker_type = "cx11",
|
||||
},
|
||||
"fsn1" = {
|
||||
web_count = 0,
|
||||
web_type = "cx11",
|
||||
worker_count = 0,
|
||||
worker_type = "cx11",
|
||||
}
|
||||
"hel1" = {
|
||||
web_count = 0,
|
||||
web_type = "cx11",
|
||||
worker_count = 0,
|
||||
worker_type = "cx11",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "talos_version" {
|
||||
description = "Tags version"
|
||||
type = string
|
||||
default = "v1.2.4"
|
||||
}
|
||||
|
||||
variable "tags" {
|
||||
description = "Tags of resources"
|
||||
type = list(string)
|
||||
default = ["Develop"]
|
||||
}
|
||||
|
||||
variable "whitelist_admins" {
|
||||
description = "Whitelist for administrators"
|
||||
default = ["0.0.0.0/0", "::/0"]
|
||||
}
|
||||
|
||||
variable "whitelist_web" {
|
||||
description = "Whitelist for web (default Cloudflare network)"
|
||||
default = [
|
||||
"173.245.48.0/20",
|
||||
"103.21.244.0/22",
|
||||
"103.22.200.0/22",
|
||||
"103.31.4.0/22",
|
||||
"141.101.64.0/18",
|
||||
"108.162.192.0/18",
|
||||
"190.93.240.0/20",
|
||||
"188.114.96.0/20",
|
||||
"197.234.240.0/22",
|
||||
"198.41.128.0/17",
|
||||
"162.158.0.0/15",
|
||||
"172.64.0.0/13",
|
||||
"131.0.72.0/22",
|
||||
"104.16.0.0/13",
|
||||
"104.24.0.0/14",
|
||||
]
|
||||
}
|
||||
8
digitalocean/versions.tf
Normal file
8
digitalocean/versions.tf
Normal file
@@ -0,0 +1,8 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
digitalocean = {
|
||||
source = "digitalocean/digitalocean"
|
||||
version = "2.23.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user