Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: enhance ogmios bootstrap #80

Merged
merged 1 commit into from
Feb 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 28 additions & 23 deletions bootstrap/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
}
6 changes: 6 additions & 0 deletions bootstrap/proxy/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
12 changes: 8 additions & 4 deletions bootstrap/proxy/service.tf
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down
42 changes: 32 additions & 10 deletions bootstrap/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ variable "versions" {
}

variable "o11y_datasource_uid" {
type = string
type = string
default = null
}

// operator settings
Expand Down Expand Up @@ -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
Expand All @@ -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
}
Expand All @@ -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({
Expand Down