| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- resource "cloudflare_record" "clcreative-main-cluster" {
- zone_id = "your-zone-id"
- name = "nginx1.your-domain"
- value = data.civo_loadbalancer.traefik_lb.public_ip
- type = "A"
- proxied = false
- }
- resource "kubernetes_namespace" "nginx1" {
- depends_on = [time_sleep.wait_for_kubernetes]
- metadata {
- name = "nginx1"
- }
- }
- resource "kubernetes_deployment" "nginx1" {
- depends_on = [kubernetes_namespace.nginx1]
- metadata {
- name = "nginx1"
- namespace = "nginx1"
- labels = {
- app = "nginx1"
- }
- }
- spec {
- replicas = 1
- selector {
- match_labels = {
- app = "nginx1"
- }
- }
- template {
- metadata {
- labels = {
- app = "nginx1"
- }
- }
- spec {
- container {
- image = "nginx:latest"
- name = "nginx"
- port {
- container_port = 80
- }
- }
- }
- }
- }
- }
- resource "kubernetes_service" "nginx1" {
- depends_on = [kubernetes_namespace.nginx1]
- metadata {
- name = "nginx1"
- namespace = "nginx1"
- }
- spec {
- selector = {
- app = "nginx1"
- }
- port {
- port = 80
- }
- type = "ClusterIP"
- }
- }
- resource "kubectl_manifest" "nginx1-certificate" {
- depends_on = [kubernetes_namespace.nginx1, time_sleep.wait_for_clusterissuer]
- yaml_body = <<YAML
- apiVersion: cert-manager.io/v1
- kind: Certificate
- metadata:
- name: nginx1
- namespace: nginx1
- spec:
- secretName: nginx1
- issuerRef:
- name: cloudflare-prod
- kind: ClusterIssuer
- dnsNames:
- - 'nginx1.your-domain'
- YAML
- }
- resource "kubernetes_ingress_v1" "nginx1" {
- depends_on = [kubernetes_namespace.nginx1]
- metadata {
- name = "nginx1"
- namespace = "nginx1"
- }
- spec {
- rule {
- host = "nginx1.your-domain"
- http {
- path {
- path = "/"
- backend {
- service {
- name = "nginx1"
- port {
- number = 80
- }
- }
- }
- }
- }
- }
- tls {
- secret_name = "nginx1"
- hosts = ["nginx1.your-domain"]
- }
- }
- }
|