diff --git a/applications/argocd/production/applications/montandon-eoapi.yaml b/applications/argocd/production/applications/montandon-eoapi.yaml index 1c01a06..f8d0b59 100644 --- a/applications/argocd/production/applications/montandon-eoapi.yaml +++ b/applications/argocd/production/applications/montandon-eoapi.yaml @@ -11,7 +11,7 @@ spec: - repoURL: https://devseed.com/eoapi-k8s/ # - repoURL: https://github.com/developmentseed/eoapi-k8s.git chart: eoapi - targetRevision: 0.7.10 + targetRevision: 0.8.1 # targetRevision: "stac.overrideRootPath" # path: charts/eoapi helm: @@ -31,6 +31,9 @@ spec: raster: enabled: false stac: + image: + tag: 6.1.2 + overrideRootPath: "" settings: labels: azure.workload.identity/use: "true" @@ -42,16 +45,14 @@ spec: memory: "4096Mi" cpu: "1000m" envVars: + ENABLE_TRANSACTIONS_EXTENSIONS: "TRUE" FORWARDED_ALLOW_IPS: "*" PROXY_HEADERS: True - POSTGRES_USER: postgres - POSTGRES_PORT: 5432 - CORS_HEADERS: '["*"]' - CORS_METHODS: '["GET","OPTIONS"]' - CORS_ORIGINS: '["http://localhost:8000"]' - CORS_CREDENTIALS: "True" - # https://stac-utils.github.io/stac-fastapi-pgstac/settings/#application-extension - ENABLE_TRANSACTIONS_EXTENSIONS: "TRUE" + CORS_ORIGINS: "https://localhost:3000,https://alerthub.ifrc.org,https://montandon-eoapi.ifrc.org" + CORS_ORIGIN_REGEX: ".*" + CORS_HEADERS: "Accept, Authorization, Content-Type, Origin, X-Requested-With" + CORS_METHODS: "GET,OPTIONS,POST" + CORS_CREDENTIALS: "true" extraVolumeMounts: - name: azure-keyvault-secrets mountPath: /mnt/secrets-store @@ -75,26 +76,25 @@ spec: azure.workload.identity/use: "true" pgstacBootstrap: - enabled: false - # image: - # name: ghcr.io/stac-utils/pgstac - # tag: v0.9.5 + enabled: true settings: - labels: - azure.workload.identity/use: "true" - extraEnvVars: - POSTGRES_USER: postgres - POSTGRES_PORT: 5432 - # extraEnvFrom: - # - secretRef: - # name: pgstac-secrets-montandon-eoapi - extraVolumes: - - name: azure-keyvault-secrets - csi: - driver: secrets-store.csi.k8s.io - readOnly: true - volumeAttributes: - secretProviderClass: azure-secret-provider-montandon-eoapi + # labels: + # azure.workload.identity/use: "true" + # extraVolumes: + # - name: azure-keyvault-secrets + # csi: + # driver: secrets-store.csi.k8s.io + # readOnly: true + # volumeAttributes: + # secretProviderClass: azure-secret-provider-montandon-eoapi + queryables: + # configMap + - name: "stac-queryables.json" + configMapRef: + name: montandon-eoapi-stac-queryables + key: stac_queryables.json + indexFields: ["monty:hazard_codes", "monty:country_codes", "roles"] + deleteMissing: true postgresql: type: "external-secret" external: @@ -122,8 +122,10 @@ spec: valuesObject: env: UPSTREAM_URL: "http://montandon-eoapi-stac:8080" + # UPSTREAM_URL: "https://montandon-eoapi.ifrc.org/stac" OIDC_DISCOVERY_URL: "https://goadmin.ifrc.org/o/.well-known/openid-configuration" OVERRIDE_HOST: "0" + ROOT_PATH: "/stac" ingress: enabled: "true" host: "montandon-eoapi.ifrc.org" # Decide on URL etc diff --git a/applications/argocd/production/applications/montandon-eoapi/queryables-cm.yaml b/applications/argocd/production/applications/montandon-eoapi/queryables-cm.yaml new file mode 100644 index 0000000..483d83d --- /dev/null +++ b/applications/argocd/production/applications/montandon-eoapi/queryables-cm.yaml @@ -0,0 +1,127 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: montandon-eoapi-stac-queryables +data: + stac_queryables.json: | + { + "$schema": "https://json-schema.org/draft/2019-09/schema", + "$id": "https://example.com/stac/queryables", + "type": "object", + "title": "Queryables for Monty STAC API", + "description": "Queryable names for the Monty STAC API", + "properties": { + "id": { + "description": "Item identifier", + "type": "string" + }, + "collection": { + "description": "Collection identifier", + "type": "string" + }, + "datetime": { + "description": "Datetime", + "type": "string", + "format": "date-time" + }, + "geometry": { + "description": "Geometry", + "type": "object" + }, + "monty:episode_number": { + "description": "The episode number of the event (deprecated)", + "type": "integer" + }, + "monty:country_codes": { + "description": "The country codes of the countries affected by the event, hazard, impact or response", + "type": "array", + "items": { + "type": "string", + "pattern": "^([A-Z]{3})|AB9$" + } + }, + "monty:corr_id": { + "description": "The unique identifier assigned by the Monty system to the reference event", + "type": "string" + }, + "monty:hazard_codes": { + "description": "The hazard codes of the hazards affecting the event", + "type": "array", + "items": { + "type": "string", + "pattern": "^([A-Z]{2}(?:\\d{4}$){0,1})|([a-z]{3}-[a-z]{3}-[a-z]{3}-[a-z]{3})|([A-Z]{2})$" + } + }, + "roles": { + "description": "The roles of the item", + "type": "array", + "items": { + "type": "string", + "enum": ["event", "reference", "source", "hazard", "impact", "response"] + } + }, + "monty:hazard_detail.cluster": { + "description": "The cluster of the hazard (deprecated)", + "type": "string" + }, + "monty:hazard_detail.severity_value": { + "description": "The estimated maximum hazard intensity/magnitude/severity value", + "type": "number" + }, + "monty:hazard_detail.severity_unit": { + "description": "The unit of the severity value", + "type": "string" + }, + "monty:hazard_detail.estimate_type": { + "description": "The type of the estimate", + "type": "string", + "enum": ["primary", "secondary", "modelled"] + }, + "monty:impact_detail.category": { + "description": "The category of impact", + "type": "string", + "enum": [ + "people", "crops", "women", "men", "children_0_4", "children_5_9", + "children_10_14", "children_15_19", "adult_20_24", "adult_25_29", + "adult_30_34", "adult_35_39", "adult_40_44", "adult_45_49", + "adult_50_54", "adult_55_59", "adult_60_64", "elderly", + "wheelchair_users", "roads", "railways", "vulnerable_employment", + "buildings", "reconstruction_costs", "hospitals", "schools", + "local_currency", "global_currency", "local_currency_adj", + "global_currency_adj", "usd_uncertain", "cattle", "aid_general", + "ifrc_contribution", "ifrc_requested", "alertscore", "households" + ] + }, + "monty:impact_detail.type": { + "description": "The estimated value type of the impact", + "type": "string", + "enum": [ + "unspecified", "unaffected", "damaged", "destroyed", "potentially_damaged", + "affected_total", "affected_direct", "affected_indirect", "death", + "missing", "injured", "evacuated", "relocated", "assisted", + "shelter_emergency", "shelter_temporary", "shelter_longterm", "in_need", + "targeted", "disrupted", "cost", "homeless", "displaced_internal", + "displaced_external", "displaced_total", "alertscore", "potentially_affected", + "highest_risk" + ] + }, + "monty:impact_detail.value": { + "description": "The estimated impact value", + "type": "number" + }, + "monty:impact_detail.unit": { + "description": "The units of the impact estimate", + "type": "string" + }, + "monty:impact_detail.estimate_type": { + "description": "The type of the estimate", + "type": "string", + "enum": ["primary", "secondary", "modelled"] + }, + "monty:impact_detail.description": { + "description": "The description of the impact", + "type": "string" + } + }, + "additionalProperties": true + } \ No newline at end of file diff --git a/base-infrastructure/terraform/resources/aks.tf b/base-infrastructure/terraform/resources/aks.tf index c007bdd..bb89cfb 100644 --- a/base-infrastructure/terraform/resources/aks.tf +++ b/base-infrastructure/terraform/resources/aks.tf @@ -20,7 +20,7 @@ resource "azurerm_kubernetes_cluster" "ifrcgo" { vnet_subnet_id = azurerm_subnet.aks.id enable_auto_scaling = true min_count = 1 - max_count = var.environment == "staging" ? 6 : 6 + max_count = var.environment == "staging" ? 6 : 7 temporary_name_for_rotation = "nodepooltemp" upgrade_settings {