mirror of
https://github.com/vcscsvcscs/OCI-Kubernetes-cluster-with-traefik.git
synced 2025-08-12 13:59:09 +02:00
Add cloudlfare dns management
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -37,3 +37,6 @@ terraform.rc
|
|||||||
*.terraform.lock.hcl
|
*.terraform.lock.hcl
|
||||||
oci-managed/oke/kubeconfig
|
oci-managed/oke/kubeconfig
|
||||||
oci-managed/traefik-values.yml
|
oci-managed/traefik-values.yml
|
||||||
|
cert.pem
|
||||||
|
cert.key
|
||||||
|
oci-managed/nlb/traefik_values.yaml
|
||||||
|
40
oci-managed/nlb/dns.tf
Normal file
40
oci-managed/nlb/dns.tf
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
data "oci_network_load_balancer_network_load_balancers" "traefik" {
|
||||||
|
compartment_id = var.compartment_ocid
|
||||||
|
state = "Active"
|
||||||
|
depends_on = [helm_release.traefik]
|
||||||
|
}
|
||||||
|
|
||||||
|
locals {
|
||||||
|
traefik_nlb_public_ip = data.oci_network_load_balancer_network_load_balancers.traefik.network_load_balancer_collection[0].items[0].ip_addresses[0].ip_address
|
||||||
|
}
|
||||||
|
|
||||||
|
data "cloudflare_zone" "dns_zone" {
|
||||||
|
name = var.traefik_template_values.my_domain
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "cloudflare_record" "main_domain" {
|
||||||
|
type = "A"
|
||||||
|
name = var.traefik_template_values.my_domain
|
||||||
|
zone_id = data.cloudflare_zone.dns_zone.id
|
||||||
|
proxied = true
|
||||||
|
value = local.traefik_nlb_public_ip
|
||||||
|
depends_on = [helm_release.traefik, data.oci_network_load_balancer_network_load_balancers.traefik, data.cloudflare_zone.dns_zone]
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "cloudflare_record" "traefik" {
|
||||||
|
type = "A"
|
||||||
|
name = "traefik"
|
||||||
|
proxied = true
|
||||||
|
zone_id = data.cloudflare_zone.dns_zone.id
|
||||||
|
value = local.traefik_nlb_public_ip
|
||||||
|
depends_on = [helm_release.traefik, data.oci_network_load_balancer_network_load_balancers.traefik, data.cloudflare_zone.dns_zone]
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "cloudflare_record" "wildcard" {
|
||||||
|
type = "A"
|
||||||
|
name = "*"
|
||||||
|
proxied = true
|
||||||
|
value = local.traefik_nlb_public_ip
|
||||||
|
zone_id = data.cloudflare_zone.dns_zone.id
|
||||||
|
depends_on = [helm_release.traefik, data.oci_network_load_balancer_network_load_balancers.traefik, data.cloudflare_zone.dns_zone]
|
||||||
|
}
|
@@ -4,5 +4,9 @@ terraform {
|
|||||||
source = "hashicorp/helm"
|
source = "hashicorp/helm"
|
||||||
version = ">= 2.12.1"
|
version = ">= 2.12.1"
|
||||||
}
|
}
|
||||||
|
cloudflare = {
|
||||||
|
source = "cloudflare/cloudflare"
|
||||||
|
version = "~> 4.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -22,7 +22,7 @@ variable "traefik_chart_version" {
|
|||||||
variable "timeout_seconds" {
|
variable "timeout_seconds" {
|
||||||
type = number
|
type = number
|
||||||
description = "Helm chart deployment can sometimes take longer than the default 5 minutes. Set a custom timeout here."
|
description = "Helm chart deployment can sometimes take longer than the default 5 minutes. Set a custom timeout here."
|
||||||
default = 180 # 10 minutes
|
default = 800 # 10 minutes
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "replica_count" {
|
variable "replica_count" {
|
||||||
|
@@ -8,9 +8,9 @@ terraform {
|
|||||||
source = "hashicorp/helm"
|
source = "hashicorp/helm"
|
||||||
version = ">= 2.12.1"
|
version = ">= 2.12.1"
|
||||||
}
|
}
|
||||||
kubectl = {
|
cloudflare = {
|
||||||
source = "gavinbunney/kubectl"
|
source = "cloudflare/cloudflare"
|
||||||
version = ">= 1.14.0"
|
version = "~> 4.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -30,6 +30,7 @@ provider "helm" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "kubectl" {
|
provider "cloudflare" {
|
||||||
config_path = "oke/kubeconfig"
|
email = var.cloudflare_api_email
|
||||||
|
api_key = var.cloudflare_api_key
|
||||||
}
|
}
|
@@ -6,15 +6,20 @@ variable "private_key_path" {}
|
|||||||
variable "availability_domain" {}
|
variable "availability_domain" {}
|
||||||
variable "cluster_name" {}
|
variable "cluster_name" {}
|
||||||
|
|
||||||
variable "certmanager_email_address" {
|
|
||||||
type = string
|
variable "cloudflare_api_email" {
|
||||||
}
|
|
||||||
variable "cloudflare_email_address" {
|
|
||||||
type = string
|
type = string
|
||||||
}
|
}
|
||||||
variable "cloudflare_api_key" {
|
variable "cloudflare_api_key" {
|
||||||
type = string
|
type = string
|
||||||
}
|
}
|
||||||
|
variable "cloudflare_origin_certificate_pem" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
variable "cloudflare_origin_certificate_key" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
variable "my_domain" {
|
variable "my_domain" {
|
||||||
type = string
|
type = string
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user