Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
e3a769e
changing to smce deployment
grallewellyn Oct 21, 2025
148d044
updated policy name
grallewellyn Oct 29, 2025
e22bfe5
changed source unity-cs-infra to my fork
grallewellyn Oct 29, 2025
ba2272c
updated bucket name
grallewellyn Oct 29, 2025
0e38091
increased default cluster version to 1.32
grallewellyn Nov 5, 2025
92ffafb
updated roles and default cluster version
grallewellyn Nov 19, 2025
791c239
removed bootstrap logic and successfully creating nodeGroup
grallewellyn Nov 19, 2025
c605c54
reading unity-initiators from my fork instead now
grallewellyn Nov 19, 2025
a88483c
commented out api gateway logic
grallewellyn Nov 20, 2025
6f75127
commented out gateway api logic and lowered keda and helm versions: s…
grallewellyn Nov 21, 2025
9b879b3
updated OGC process dag to work with changes to API
grallewellyn Nov 21, 2025
a42993f
added smce to the end of the name of s3 buckets to avoid conflicts wi…
grallewellyn Nov 21, 2025
2ce9846
deployment process updated to expose to JPL subnets but need to add k…
grallewellyn Dec 5, 2025
a8e37bb
can successfully deploy and login with airflow
grallewellyn Dec 10, 2025
605d5ef
addressed comments and pointed away from my forks for packages since …
grallewellyn Dec 10, 2025
5d9af23
Merge pull request #455 from unity-sds/453-smce-deployment-airflow-login
grallewellyn Dec 10, 2025
f07b63a
removed commented out code
grallewellyn Dec 10, 2025
f99ce93
changed plugins env vars to match smce
grallewellyn Dec 11, 2025
5ac1bb2
updated default airflow version
grallewellyn Dec 17, 2025
e3e4968
applied precommit
grallewellyn Dec 17, 2025
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
3 changes: 0 additions & 3 deletions airflow/config/webserver_config.py

This file was deleted.

17 changes: 4 additions & 13 deletions airflow/dags/cwl_dag_modular.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,11 @@
from airflow.utils.trigger_rule import TriggerRule
from kubernetes.client import models as k8s
from unity_sps_utils import (
CS_SHARED_SERVICES_ACCOUNT_ID,
CS_SHARED_SERVICES_ACCOUNT_REGION,
DEFAULT_LOG_LEVEL,
DS_COGNITO_CLIENT_ID,
DS_S3_BUCKET_PARAM,
EC2_TYPES,
LOG_LEVEL_TYPE,
MDPS_CLIENT_ID,
NODE_POOL_DEFAULT,
NODE_POOL_HIGH_WORKLOAD,
POD_LABEL,
Expand Down Expand Up @@ -175,16 +173,9 @@ def select_stage_in(ti, stac_json, unity_stac_auth_type):
"""Retrieve stage in arguments based on authentication type parameter."""
stage_in_args = {"stac_json": stac_json, "stac_auth_type": "NONE"}
if unity_stac_auth_type:
shared_services_account = SSM_CLIENT.get_parameter(
Name=CS_SHARED_SERVICES_ACCOUNT_ID, WithDecryption=True
)["Parameter"]["Value"]
shared_services_region = SSM_CLIENT.get_parameter(
Name=CS_SHARED_SERVICES_ACCOUNT_REGION, WithDecryption=True
)["Parameter"]["Value"]
unity_client_id = SSM_CLIENT.get_parameter(
Name=f"arn:aws:ssm:{shared_services_region}:{shared_services_account}:parameter{DS_COGNITO_CLIENT_ID}",
WithDecryption=True,
)["Parameter"]["Value"]
unity_client_id = SSM_CLIENT.get_parameter(Name=MDPS_CLIENT_ID, WithDecryption=True)["Parameter"][
"Value"
]
stage_in_args["unity_client_id"] = unity_client_id
stage_in_args["stac_auth_type"] = "UNITY"

Expand Down
11 changes: 6 additions & 5 deletions airflow/dags/run_ogc_process.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@
from kubernetes.client import models as k8s
from unity_sps_utils import POD_LABEL, POD_NAMESPACE, get_affinity

PROCESSES_ENDPOINT = "https://api.dit.maap-project.org/api/ogc/processes"
API_HOST = "https://api.dit.maap-project.org/api/"


def fetch_ogc_processes():
"""Fetch available processes from the OGC API and create mapping."""
try:
response = requests.get(PROCESSES_ENDPOINT, timeout=30)
response = requests.get(API_HOST + "ogc/processes", timeout=30)
response.raise_for_status()

processes_data = response.json()
Expand Down Expand Up @@ -65,7 +65,8 @@ def fetch_ogc_processes():

# Constants
K8S_SECRET_NAME = "sps-app-credentials"
DOCKER_IMAGE = "jplmdps/ogc-job-runner:latest"
# This docker image is generated by the files in docker/run_ogc_process
DOCKER_IMAGE = "jplmdps/ogc-job-runner:v1.0.0"
PROCESS_MAPPING, DROPDOWN_OPTIONS = fetch_ogc_processes()

# SPS-specific secrets
Expand Down Expand Up @@ -155,7 +156,7 @@ def _build_submit_env_vars(self):
return [
k8s.V1EnvVar(
name="SUBMIT_JOB_URL",
value="https://api.dit.maap-project.org/api/ogc/processes/{process_id}/execution",
value=API_HOST + "ogc/processes/{process_id}/execution",
),
k8s.V1EnvVar(name="PROCESS_ID", value=str(numerical_process_id)),
k8s.V1EnvVar(name="JOB_INPUTS", value=self.job_inputs or "{}"),
Expand All @@ -168,7 +169,7 @@ def _build_monitor_env_vars(self):
return [
k8s.V1EnvVar(
name="MONITOR_JOB_URL",
value="https://api.dit.maap-project.org/api/ogc/jobs/{job_id}",
value=API_HOST + "ogc/jobs/{job_id}",
),
k8s.V1EnvVar(name="JOB_ID", value=self.job_id),
k8s.V1EnvVar(name="SUBMIT_JOB", value="false"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ if [ "$SUBMIT_JOB" = "true" ] || [ "$SUBMIT_JOB" = "True" ]; then
--data "${SUBMIT_JOB_ARGUMENTS}")

echo "API Response: $response"
job_id=$(echo "$response" | jq -r .id)
job_id=$(echo "$response" | jq -r .jobID)

if [ "$job_id" = "null" ] || [ -z "$job_id" ]; then
echo "Failed to get jobID from response."
Expand Down
4 changes: 0 additions & 4 deletions airflow/helm/values.tmpl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -165,10 +165,6 @@ webserverSecretKeySecretName: ${webserver_secret_name}
webserver:
replicas: 3

# Issue 404: DISABLE AIRRLOW AUTHENTICATION (https://github.com/unity-sds/unity-sps/issues/404)
webserverConfig: |-
${webserver_config}

startupProbe:
timeoutSeconds: 20
failureThreshold: 60 # Number of tries before giving up (10 minutes with periodSeconds of 10)
Expand Down
4 changes: 0 additions & 4 deletions airflow/helm/values_high_load.tmpl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -165,10 +165,6 @@ webserverSecretKeySecretName: ${webserver_secret_name}
webserver:
replicas: 3

# Issue 404: DISABLE AIRRLOW AUTHENTICATION (https://github.com/unity-sds/unity-sps/issues/404)
webserverConfig: |-
${webserver_config}

startupProbe:
timeoutSeconds: 20
failureThreshold: 60 # Number of tries before giving up (10 minutes with periodSeconds of 10)
Expand Down
4 changes: 2 additions & 2 deletions airflow/plugins/unity_sps_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@

CS_SHARED_SERVICES_ACCOUNT_ID = "/unity/shared-services/aws/account"
CS_SHARED_SERVICES_ACCOUNT_REGION = "/unity/shared-services/aws/account/region"
DS_COGNITO_CLIENT_ID = "/unity/shared-services/dapa/client-id"
DS_S3_BUCKET_PARAM = f"/unity/unity/{os.environ['AIRFLOW_VAR_UNITY_VENUE']}/ds/datastore-bucket"
MDPS_CLIENT_ID = "/sps/processing/workflows/unity_client_id"
DS_S3_BUCKET_PARAM = f"/smce/mdps/{os.environ['AIRFLOW_VAR_UNITY_VENUE']}/ds/datastore-bucket"

DEFAULT_LOG_LEVEL = "INFO"
LOG_LEVEL_TYPE = {"DEBUG": 10, "INFO": 20, "WARNING": 30, "ERROR": 40, "CRITICAL": 50}
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "unity-sps"
version = "3.1.0"
version = "3.1.1"
authors = [
{ name = "Luca Cinquini", email = "[email protected]" },
{ name = "Grace Llewellyn", email = "[email protected]" },
Expand Down
26 changes: 13 additions & 13 deletions terraform-unity/.terraform.lock.hcl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 7 additions & 5 deletions terraform-unity/README.md

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions terraform-unity/main.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
terraform {
backend "s3" {
bucket = "unity-unity-dev-bucket"
bucket = "smce-mdps-dev-bucket"
workspace_key_prefix = "sps/tfstates"
key = "terraform.tfstate"
region = "us-west-2"
Expand Down Expand Up @@ -82,7 +82,8 @@ module "unity-sps-karpenter-node-config" {
service_area = var.service_area
release = var.release
kubeconfig_filepath = var.kubeconfig_filepath
mcp_ami_owner_id = var.mcp_ami_owner_id
smce_ami_owner_id = var.smce_ami_owner_id
aws_ami_owner_id = var.aws_ami_owner_id
karpenter_node_classes = var.karpenter_node_classes
karpenter_node_pools = var.karpenter_node_pools
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ No modules.
| [aws_ssm_parameter.shared_services_domain](https://registry.terraform.io/providers/hashicorp/aws/5.67.0/docs/data-sources/ssm_parameter) | data source |
| [aws_ssm_parameter.shared_services_region](https://registry.terraform.io/providers/hashicorp/aws/5.67.0/docs/data-sources/ssm_parameter) | data source |
| [aws_ssm_parameter.subnet_ids](https://registry.terraform.io/providers/hashicorp/aws/5.67.0/docs/data-sources/ssm_parameter) | data source |
| [aws_ssm_parameter.venue_proxy_baseurl](https://registry.terraform.io/providers/hashicorp/aws/5.67.0/docs/data-sources/ssm_parameter) | data source |
| [aws_vpc.cluster_vpc](https://registry.terraform.io/providers/hashicorp/aws/5.67.0/docs/data-sources/vpc) | data source |
| [kubernetes_namespace.service_area](https://registry.terraform.io/providers/hashicorp/kubernetes/2.32.0/docs/data-sources/namespace) | data source |
| [kubernetes_service.airflow_ingress_internal](https://registry.terraform.io/providers/hashicorp/kubernetes/2.32.0/docs/data-sources/service) | data source |
Expand All @@ -116,7 +115,7 @@ No modules.
| <a name="input_project"></a> [project](#input\_project) | The project or mission deploying Unity SPS | `string` | n/a | yes |
| <a name="input_release"></a> [release](#input\_release) | The software release version. | `string` | n/a | yes |
| <a name="input_service_area"></a> [service\_area](#input\_service\_area) | The service area owner of the resources being deployed | `string` | n/a | yes |
| <a name="input_venue"></a> [venue](#input\_venue) | The MCP venue in which the cluster will be deployed (dev, test, prod) | `string` | n/a | yes |
| <a name="input_venue"></a> [venue](#input\_venue) | The SMCE venue in which the cluster will be deployed (dev, test, prod) | `string` | n/a | yes |

## Outputs

Expand Down
21 changes: 0 additions & 21 deletions terraform-unity/modules/terraform-unity-sps-airflow/data.tf
Original file line number Diff line number Diff line change
Expand Up @@ -58,27 +58,6 @@ data "aws_ssm_parameter" "shared_services_region" {
name = "/unity/shared-services/aws/account/region"
}

data "aws_ssm_parameter" "shared_services_domain" {
name = "arn:aws:ssm:${data.aws_ssm_parameter.shared_services_region.value}:${data.aws_ssm_parameter.shared_services_account.value}:parameter/unity/shared-services/domain"
}

data "aws_ssm_parameter" "venue_proxy_baseurl" {
name = "/unity/${var.project}/${var.venue}/management/httpd/loadbalancer-url"
}

data "aws_api_gateway_rest_api" "rest_api" {
name = "unity-${var.project}-${var.venue}-rest-api-gateway"
}

data "aws_api_gateway_authorizers" "unity_cs_common_authorizers_list" {
rest_api_id = data.aws_api_gateway_rest_api.rest_api.id
}

data "aws_api_gateway_authorizer" "unity_cs_common_authorizer" {
rest_api_id = data.aws_api_gateway_rest_api.rest_api.id
authorizer_id = data.aws_api_gateway_authorizers.unity_cs_common_authorizers_list.ids[0]
}

data "aws_lb" "airflow_k8s_lb" {
tags = {
Venue = var.venue
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@

locals {
resource_name_prefix = join("-", compact([var.project, var.venue, var.service_area, "%s"]))
s3_bucket_name_prefix = join("-", compact([var.project, var.venue, var.service_area, "%s", "smce"]))
common_tags = {
Name = ""
Venue = var.venue
Expand Down
Loading