From 68a1887dcc7bbad166df65ff6fe01f0a603ffa15 Mon Sep 17 00:00:00 2001 From: Ales Verbic Date: Thu, 27 Feb 2025 11:00:18 -0500 Subject: [PATCH] feat: enhance ogmios bootstrap (#80) - add extra_annotations for proxy service - refactor proxy variables - fix missing image_pull_secret - condition monitoring because it can be hosted Signed-off-by: Ales Verbic --- bootstrap/main.tf | 51 +++++++++++++++++++++----------------- bootstrap/proxy/main.tf | 6 +++++ bootstrap/proxy/service.tf | 12 ++++++--- bootstrap/variables.tf | 42 +++++++++++++++++++++++-------- 4 files changed, 74 insertions(+), 37 deletions(-) diff --git a/bootstrap/main.tf b/bootstrap/main.tf index 35f3768..e61966b 100644 --- a/bootstrap/main.tf +++ b/bootstrap/main.tf @@ -27,32 +27,35 @@ module "ogmios_v1_feature" { } module "ogmios_v1_proxy" { - depends_on = [kubernetes_namespace.namespace] - source = "./proxy" - namespace = var.namespace - replicas = var.proxy_blue_replicas - proxy_image_tag = var.proxy_blue_image_tag - extension_name = var.extension_name - networks = var.networks - cloud_provider = var.cloud_provider - dns_zone = var.dns_zone - cluster_issuer = var.cluster_issuer - name = "proxy" + depends_on = [kubernetes_namespace.namespace] + source = "./proxy" + cloud_provider = var.cloud_provider + cluster_issuer = var.cluster_issuer + dns_zone = var.dns_zone + environment = var.proxy_blue_environment + extension_name = var.extension_name + extra_annotations = var.proxy_blue_extra_annotations + name = var.proxy_blue_name + namespace = var.namespace + networks = var.networks + proxy_image_tag = var.proxy_blue_image_tag + replicas = var.proxy_blue_replicas } module "ogmios_v1_proxy_green" { - depends_on = [kubernetes_namespace.namespace] - source = "./proxy" - namespace = var.namespace - replicas = var.proxy_green_replicas - proxy_image_tag = var.proxy_green_image_tag - extension_name = var.extension_name - networks = ["mainnet", "preprod", "preview", "vector-testnet"] - environment = "green" - cloud_provider = var.cloud_provider - dns_zone = var.dns_zone - cluster_issuer = var.cluster_issuer - name = "proxy-green" + depends_on = [kubernetes_namespace.namespace] + source = "./proxy" + cloud_provider = var.cloud_provider + cluster_issuer = var.cluster_issuer + dns_zone = var.dns_zone + environment = var.proxy_green_environment + extension_name = var.extension_name + extra_annotations = var.proxy_green_extra_annotations + name = var.proxy_green_name + namespace = var.namespace + networks = var.networks + proxy_image_tag = var.proxy_green_image_tag + replicas = var.proxy_green_replicas } // mainnet @@ -113,5 +116,7 @@ module "ogmios_services" { module "ogmios_monitoring" { source = "./monitoring" + for_each = var.o11y_datasource_uid != null ? toset(["enabled"]) : toset([]) + o11y_datasource_uid = var.o11y_datasource_uid } diff --git a/bootstrap/proxy/main.tf b/bootstrap/proxy/main.tf index 16abb21..c9aae1c 100644 --- a/bootstrap/proxy/main.tf +++ b/bootstrap/proxy/main.tf @@ -20,6 +20,12 @@ variable "environment" { default = null } +variable "extra_annotations" { + description = "Extra annotations to add to the proxy services" + type = map(string) + default = {} +} + variable "namespace" { type = string } diff --git a/bootstrap/proxy/service.tf b/bootstrap/proxy/service.tf index 10be1c9..f1ec6d2 100644 --- a/bootstrap/proxy/service.tf +++ b/bootstrap/proxy/service.tf @@ -3,14 +3,16 @@ resource "kubernetes_service_v1" "proxy_service_aws" { metadata { name = local.name namespace = var.namespace - annotations = { + annotations = merge({ "service.beta.kubernetes.io/aws-load-balancer-nlb-target-type" : "instance" "service.beta.kubernetes.io/aws-load-balancer-scheme" : "internet-facing" "service.beta.kubernetes.io/aws-load-balancer-type" : "external" "service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol" : "HTTPS" "service.beta.kubernetes.io/aws-load-balancer-healthcheck-path" : "/healthz" "service.beta.kubernetes.io/aws-load-balancer-healthcheck-port" : var.healthcheck_port != null ? var.healthcheck_port : "traffic-port" - } + }, + var.extra_annotations + ) } spec { @@ -41,9 +43,11 @@ resource "kubernetes_service_v1" "proxy_service_gcp" { metadata { name = local.name namespace = var.namespace - annotations = { + annotations = merge({ "cloud.google.com/l4-rbs" : "enabled" - } + }, + var.extra_annotations + ) } spec { diff --git a/bootstrap/variables.tf b/bootstrap/variables.tf index e32ec0a..48744cb 100644 --- a/bootstrap/variables.tf +++ b/bootstrap/variables.tf @@ -33,7 +33,8 @@ variable "versions" { } variable "o11y_datasource_uid" { - type = string + type = string + default = null } // operator settings @@ -89,16 +90,12 @@ variable "operator_resources" { } } } -// proxy - -# variable "proxy_image_tag" { -# type = string -# } -# variable "proxy_replicas" { -# type = number -# default = 1 -# } +// proxy green settings +variable "proxy_green_name" { + type = string + default = "proxy-green" +} variable "proxy_green_image_tag" { type = string @@ -109,6 +106,22 @@ variable "proxy_green_replicas" { default = 1 } +variable "proxy_green_extra_annotations" { + type = map(string) + default = {} +} + +variable "proxy_green_environment" { + type = string + default = "green" +} + +// proxy blue settings +variable "proxy_blue_name" { + type = string + default = "proxy" +} + variable "proxy_blue_image_tag" { type = string } @@ -118,6 +131,15 @@ variable "proxy_blue_replicas" { default = 1 } +variable "proxy_blue_extra_annotations" { + type = map(string) + default = {} +} + +variable "proxy_blue_environment" { + type = string + default = null +} variable "proxy_resources" { type = object({