Skip to content
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
4 changes: 2 additions & 2 deletions airflow/dags/run_ogc_process.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from kubernetes.client import models as k8s
from unity_sps_utils import POD_LABEL, POD_NAMESPACE, get_affinity

API_HOST = "https://api.dit.maap-project.org/api/"
API_HOST = "https://api.uat.maap-project.org/api/"


def fetch_ogc_processes():
Expand Down Expand Up @@ -237,7 +237,7 @@ def execute(self, context):
description="Select a process to execute.",
),
"queue": Param(
"maap-dps-worker-cardamom",
"maap-dps-worker-8gb",
type="string",
title="Queue",
description="The MAAP queue to submit the job to",
Expand Down
34 changes: 14 additions & 20 deletions airflow/helm/values.tmpl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ affinity:
values: ["on-demand"]
- key: "karpenter.k8s.aws/instance-family"
operator: "In"
values: ["r5"]
values: ["m5", "m6i", "t3"]
- key: "karpenter.k8s.aws/instance-cpu"
operator: "In"
values: ["8"]
values: ["4"]

topologySpreadConstraints:
- maxSkew: 1
Expand Down Expand Up @@ -93,11 +93,10 @@ scheduler:
values: ["on-demand"]
- key: "karpenter.k8s.aws/instance-family"
operator: "In"
# values: ["c6i", "c5"] # Choosing compute-optimized instances
values: ["r5"] # Choosing memory-optimized instance
values: ["m5", "m6i", "t3"]
- key: "karpenter.k8s.aws/instance-cpu"
operator: "In"
values: ["8"]
values: ["4"]
topologySpreadConstraints:
- maxSkew: 1
topologyKey: "topology.kubernetes.io/zone"
Expand Down Expand Up @@ -130,11 +129,10 @@ triggerer:
values: [ "on-demand" ]
- key: "karpenter.k8s.aws/instance-family"
operator: "In"
# values: ["c6i", "c5"] # Choosing compute-optimized instances
values: [ "r5" ] # Choosing memory-optimized instance
values: ["m5", "m6i", "t3"]
- key: "karpenter.k8s.aws/instance-cpu"
operator: "In"
values: [ "8" ] # Scheduler might benefit from higher CPU
values: ["4"]

postgresql:
enabled: false
Expand All @@ -154,11 +152,10 @@ pgbouncer:
values: [ "on-demand" ]
- key: "karpenter.k8s.aws/instance-family"
operator: "In"
# values: ["c6i", "c5"] # Choosing compute-optimized instances
values: [ "r5" ] # Choosing memory-optimized instance
values: ["m5", "m6i", "t3"]
- key: "karpenter.k8s.aws/instance-cpu"
operator: "In"
values: [ "8" ] # Scheduler might benefit from higher CPU
values: ["4"]

webserverSecretKeySecretName: ${webserver_secret_name}

Expand Down Expand Up @@ -186,11 +183,10 @@ webserver:
values: ["on-demand"]
- key: "karpenter.k8s.aws/instance-family"
operator: "In"
# values: ["c6i", "c5"] # Choosing compute-optimized instances
values: ["r5"] # Choosing memory-optimized instance
values: ["m5", "m6i", "t3"]
- key: "karpenter.k8s.aws/instance-cpu"
operator: "In"
values: ["8"] # Balancing between CPU and memory
values: ["4"] # Balancing between CPU and memory
topologySpreadConstraints:
- maxSkew: 1
topologyKey: "topology.kubernetes.io/zone"
Expand Down Expand Up @@ -224,11 +220,10 @@ workers:
- matchExpressions:
- key: "karpenter.k8s.aws/instance-family"
operator: "In"
# values: ["c6i", "c5"] # Choosing compute-optimized instances
values: ["r5"] # Choosing memory-optimized instance
values: ["m5", "m6i", "t3"]
- key: "karpenter.k8s.aws/instance-cpu"
operator: "In"
values: ["8"]
values: ["4"]
topologySpreadConstraints:
- maxSkew: 1
topologyKey: "topology.kubernetes.io/zone"
Expand Down Expand Up @@ -318,11 +313,10 @@ dagProcessor:
values: [ "on-demand" ]
- key: "karpenter.k8s.aws/instance-family"
operator: "In"
# values: ["c6i", "c5"] # Choosing compute-optimized instances
values: [ "r5" ] # Choosing memory-optimized instance
values: ["m5", "m6i", "t3"]
- key: "karpenter.k8s.aws/instance-cpu"
operator: "In"
values: [ "8" ] # Scheduler might benefit from higher CPU
values: ["4"]

env:
- name: "AIRFLOW_VAR_KUBERNETES_PIPELINE_NAMESPACE"
Expand Down
8 changes: 8 additions & 0 deletions terraform-unity/modules/terraform-unity-sps-airflow/locals.tf
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,12 @@ locals {
}[var.venue]
# BASE_URL uses placeholder initially, updated by null_resource after LB is created
airflow_base_url = "http://placeholder:${local.load_balancer_port}"
keycloak_client_secret_ssm_param = {
"ops" = "/sps/ops/keycloak/client_secret"
"dev" = "/sps/dev/keycloak/client_secret"
}[lower(var.venue)]
keycloak_client_id = {
"ops" = "airflow-ops"
"dev" = "airflow-dev"
}[lower(var.venue)]
}
4 changes: 2 additions & 2 deletions terraform-unity/modules/terraform-unity-sps-airflow/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ resource "kubernetes_secret" "airflow_oidc" {

data "aws_ssm_parameter" "keycloak_client_secret" {
count = var.enable_oidc_auth ? 1 : 0
name = var.keycloak_client_secret_ssm_param
name = local.keycloak_client_secret_ssm_param
}

# TODO evaluate if this role is still necessary
Expand Down Expand Up @@ -435,7 +435,7 @@ resource "helm_release" "airflow" {
webserver_config = indent(4, templatefile("${path.module}/../../../airflow/config/webserver_config.py.tpl", {
keycloak_role_mapping = var.keycloak_role_mapping
keycloak_provider_url = var.keycloak_provider_url
keycloak_client_id = var.keycloak_client_id
keycloak_client_id = local.keycloak_client_id
}))
})
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,6 @@ variable "keycloak_client_id" {
default = "airflow"
}

variable "keycloak_client_secret_ssm_param" {
description = "SSM parameter path containing Keycloak OIDC client secret"
type = string
default = "/sps/keycloak/client_secret"
}

variable "enable_oidc_auth" {
description = "Enable Keycloak OIDC authentication for Airflow"
type = bool
Expand Down
2 changes: 1 addition & 1 deletion terraform-unity/modules/terraform-unity-sps-eks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
| <a name="input_cluster_version"></a> [cluster\_version](#input\_cluster\_version) | The EKS cluster version (must be supported by the cs-infra module). | `string` | `"1.33"` | no |
| <a name="input_deployment_name"></a> [deployment\_name](#input\_deployment\_name) | The name of the deployment. | `string` | `""` | no |
| <a name="input_installprefix"></a> [installprefix](#input\_installprefix) | The install prefix for the service area (unused) | `string` | `""` | no |
| <a name="input_nodegroups"></a> [nodegroups](#input\_nodegroups) | A map of node group configurations | <pre>map(object({<br> create_iam_role = optional(bool)<br> iam_role_arn = optional(string)<br> ami_id = optional(string)<br> min_size = optional(number)<br> max_size = optional(number)<br> desired_size = optional(number)<br> instance_types = optional(list(string))<br> capacity_type = optional(string)<br> metadata_options = optional(map(any))<br> block_device_mappings = optional(map(object({<br> device_name = string<br> ebs = object({<br> volume_size = number<br> volume_type = string<br> encrypted = bool<br> delete_on_termination = bool<br> })<br> })))<br> }))</pre> | <pre>{<br> "defaultGroup": {<br> "block_device_mappings": {<br> "xvda": {<br> "device_name": "/dev/xvda",<br> "ebs": {<br> "delete_on_termination": true,<br> "encrypted": true,<br> "volume_size": 100,<br> "volume_type": "gp2"<br> }<br> }<br> },<br> "desired_size": 1,<br> "instance_types": [<br> "m5.2xlarge"<br> ],<br> "max_size": 1,<br> "metadata_options": {<br> "http_endpoint": "enabled",<br> "http_put_response_hop_limit": 3<br> },<br> "min_size": 1<br> }<br>}</pre> | no |
| <a name="input_nodegroups"></a> [nodegroups](#input\_nodegroups) | A map of node group configurations | <pre>map(object({<br> create_iam_role = optional(bool)<br> iam_role_arn = optional(string)<br> ami_id = optional(string)<br> min_size = optional(number)<br> max_size = optional(number)<br> desired_size = optional(number)<br> instance_types = optional(list(string))<br> capacity_type = optional(string)<br> metadata_options = optional(map(any))<br> block_device_mappings = optional(map(object({<br> device_name = string<br> ebs = object({<br> volume_size = number<br> volume_type = string<br> encrypted = bool<br> delete_on_termination = bool<br> })<br> })))<br> }))</pre> | <pre>{<br> "defaultGroup": {<br> "block_device_mappings": {<br> "xvda": {<br> "device_name": "/dev/xvda",<br> "ebs": {<br> "delete_on_termination": true,<br> "encrypted": true,<br> "volume_size": 100,<br> "volume_type": "gp2"<br> }<br> }<br> },<br> "desired_size": 1,<br> "instance_types": [<br> "m5.xlarge"<br> ],<br> "max_size": 1,<br> "metadata_options": {<br> "http_endpoint": "enabled",<br> "http_put_response_hop_limit": 3<br> },<br> "min_size": 1<br> }<br>}</pre> | no |
| <a name="input_project"></a> [project](#input\_project) | The project or mission deploying Unity SPS | `string` | `"unity"` | no |
| <a name="input_release"></a> [release](#input\_release) | The software release version. | `string` | `"25.3"` | no |
| <a name="input_service_area"></a> [service\_area](#input\_service\_area) | The service area owner of the resources being deployed | `string` | `"sps"` | no |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ variable "nodegroups" {
}))
default = {
defaultGroup = {
instance_types = ["m5.2xlarge"]
instance_types = ["c5.xlarge"]
min_size = 1
max_size = 1
desired_size = 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ resource "kubernetes_deployment" "redis" {
match_expressions {
key = "karpenter.k8s.aws/instance-family"
operator = "In"
values = ["r5"]
values = ["m5", "m6i", "t3"]
}
match_expressions {
key = "karpenter.k8s.aws/instance-cpu"
operator = "In"
values = ["8"]
values = ["4"]
}
}
}
Expand Down Expand Up @@ -111,12 +111,12 @@ resource "kubernetes_deployment" "ogc_processes_api" {
match_expressions {
key = "karpenter.k8s.aws/instance-family"
operator = "In"
values = ["r5"]
values = ["m5", "m6i", "t3"]
}
match_expressions {
key = "karpenter.k8s.aws/instance-cpu"
operator = "In"
values = ["8"]
values = ["4"]
}
}
}
Expand Down
14 changes: 7 additions & 7 deletions terraform-unity/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ variable "karpenter_node_pools" {
{
key = "karpenter.k8s.aws/instance-family"
operator = "In"
values = ["m7i", "m6i", "m5", "m5ad", "t3", "c7i", "c6i", "c6id", "c5", "r7i", "r6i", "r5"]
values = ["m7i", "m6i", "m5", "t3", "c7i", "c6i", "c5"]
},
{
key = "karpenter.k8s.aws/instance-cpu"
Expand Down Expand Up @@ -213,7 +213,7 @@ variable "karpenter_node_pools" {
{
key = "karpenter.k8s.aws/instance-family"
operator = "In"
values = ["m7i", "m6i", "m5", "m5ad", "t3", "c7i", "c6i", "c6id", "c5", "r7i", "r6i", "r5"]
values = ["m7i", "m6i", "m5", "t3", "c7i", "c6i", "c5"]
},
{
key = "karpenter.k8s.aws/instance-cpu"
Expand Down Expand Up @@ -257,7 +257,7 @@ variable "karpenter_node_pools" {
{
key = "karpenter.k8s.aws/instance-family"
operator = "In"
values = ["m7i", "m6i", "m5", "t3", "c7i", "c6i", "c6id", "c5", "r7i", "r6i", "r5", "m5ad"]
values = ["m7i", "m6i", "m5", "t3", "c7i", "c6i", "c5"]
},
{
key = "karpenter.k8s.aws/instance-cpu"
Expand Down Expand Up @@ -300,7 +300,7 @@ variable "karpenter_node_pools" {
{
key = "karpenter.k8s.aws/instance-family"
operator = "In"
values = ["m7i", "m6i", "m5", "t3", "c7i", "c6i", "c6id", "c5", "r7i", "r6i", "r5", "m5ad"]
values = ["m7i", "m6i", "m5", "t3", "c7i", "c6i", "c5"]
},
{
key = "karpenter.k8s.aws/instance-cpu"
Expand All @@ -310,7 +310,7 @@ variable "karpenter_node_pools" {
{
key = "karpenter.k8s.aws/instance-cpu"
operator = "Lt"
values = ["17"] // To 16 inclusive
values = ["5"] // To 4 inclusive (m5.xlarge max)
},
{
key = "karpenter.k8s.aws/instance-memory"
Expand All @@ -320,7 +320,7 @@ variable "karpenter_node_pools" {
{
key = "karpenter.k8s.aws/instance-memory"
operator = "Lt"
values = ["65537"] // To 64 GB inclusive
values = ["16385"] // To 16 GB inclusive (m5.xlarge max)
},
{
key = "karpenter.k8s.aws/instance-hypervisor",
Expand Down Expand Up @@ -378,5 +378,5 @@ variable "installprefix" {
variable "db_instance_class" {
description = "The SPS RDS database instance class"
type = string
default = "db.m5d.xlarge"
default = "db.t3.medium"
}