Document any changes that need to be made by module instances using these modules to uptake a newer version. For example, if a new required variable is added, this should be documented here.
MOVED: console-ui -> filmdrop-ui
-
As part of extracting the
console-uimodule it was renamed to thefilmdrop-uito bring it in line with the naming conventions of other parts of the FilmDrop ecosystem. ANY resource that previously usedconsole-uiin the name wil be deleted/created anew by the renaming. Handling migration will requiring updatingconsole-uiinput variables to use the newfilmdrop-uinaming. -
As part of enabling optional deployment of the
cirrus apilambda, thecirrus apicomponents and it's related parts were moved into their own submodule. This is a destructive change that will force the destruction and creation of related resources. A resource of notable concern that may contain data users wish to preserve through this update is thecirrus api gateway log group. Cirrus inputs are also slightly modified, including the addition of adeploy_apiboolean flag and consolidation of related api lambda configurables into a single object.
AWS Provider Upgrade v5 -> v6
The Terraform AWS provider was updated from v5 to v6.
-
If calling this module from your own module, update your module's
hashicorp/awsprovider to version constraint to "~> 6.0" -
terraform init -upgrade -
If you have cirrus, stac server, or titiler (as private) deployed, each has an api gateway for which the Terraform config has been slighty modified due to a few deprecations in the
aws_api_gateway_deploymentresource (see https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/version-6-upgrade#resource-aws_api_gateway_deployment). Your AWS resources should not be modified, this is a change internal to Terraform. To ensure no resources change, perform the following for each of cirrus, stac server, and titiler:-
Replacing properties denoted in
<>:terraform import module.<module_name>.aws_api_gateway_stage.<api_gateway_stage_tf_resource> <rest_api_id>/<stage_name> -
As an example:
terraform import --var-file=default.tfvars module.filmdrop.module.stac-server[0].module.stac-server.aws_api_gateway_stage.stac_server_api_gateway_stage b0agq3jmeg/test -
You'll see an "Import Successful" notification if your import works as expected
-
-
terraform apply -
Important: trigger redeployments of each API Gateway. This is required for the new stages to take effect, without this step your Gateways may be in an inconsistent state.
Updated the terraform-aws-stac-server module from v1.0.2 to v2.0.0
-
This updates the packaged version of stac-server from v3.10.0 to v4.5.0. If you are not defining a custom version of stac-server in your tfvars (along with
deploy_local_stac_server_artifacts = true), the following applies. See the v2.0.0 release notes for full details; the migration steps noted there:-
The minimum version of OpenSearch that stac-server v4.5.0 expects is 2.19 (v3.10.0 expected 2.17). Accordingly, projects should update
opensearch_versiontoOpenSearch_2.19at a minimum. -
stac-server lambda runtimes should be bumped nodejs20 -> nodejs22
-
If stac-server has asset proxying enabled and you're deploying titiler, set titiler's
allowed_extensions_enabledtofalseso GDAL can access the extension-less proxy hrefs.
-
- Removes support for VPC creation. To retain the existing VPC resources, manually remove them from the Terraform state file. However, you should then create another IaC deployment for that VPC.
stac_server_inputsandtitiler_inputs, renamedstac_server_and_titiler_s3_arnstoauthorized_s3_arns.titiler_inputs.mosaic_titiler_release_tagis nowtitiler_inputs.versioncirrus_dashboard_inputs.cirrus_dashboard_releaseis nowcirrus_dashboard_inputs.versionconsole_ui_inputs.filmdrop_ui_releaseis nowconsole_ui_inputs.versiondeploy_sample_data_bucketoption has been removed
-
If using the optional
cirrus_inputs.lambda_versionorcirrus_inputs.lambda_zip_filepathto denote a specific version of Cirrus, you must additionally define acirrus_inputs.lambda_pyversion. Cirrus geo versions are now tied to specific Python runtime versions; see the cirrus-geo releases for details. -
Updated Terraform version to latest stable 1.13.4. While not technically a semver breaking change, you may want to review the Terraform upgrade guides for 1.8, 1.9, 1.10, 1.11, 1.12, and 1.13
- There were certainly many, but they were not documented.
- Remove cirrus_dashboard_release_tag uses in deployment to use new default version of v0.5.1
- Please upgrade to AWS provider
~=5.20
- The jupyterhub-dask-eks module no longer takes a parameter
kubernetes_cluster_name, but now requires a parameterenvironment. Resource names that previously usedkubernetes_cluster_namenow construct those using theproject_nameandenvironmentvariables - The default OpenSearch cluster name has changed to include both
environment/stage, to allow for multiple deployments to a single AWS account.
Unfortunately, an OpenSearch cluster name can't be changed after creation, so
running a TF apply would attempt to destroy the old cluster and create a new
one. If it is desired to preserve the old cluster (and data) upon taking this
update, a new optional variable has been added to override the cluster name.
Setting the input variable
opensearch_stac_server_domain_name_overrideto match the pre-existing cluster name will allow taking this update to preserve the old default name moving forward.
- console-ui.filmdrop_ui_release must be gte 4.x, e.g.,
v4.0.1. Along with this, thefilmdrop_ui_envvariable should be removed, the .env files deleted, and theVITE_APP_NAMEvariable moved toAPP_NAMEin the config json file.
- Please upgrade to AWS provider
~=5.13 - The WAF rules for mosaic titiler have been defined in the mosaic-titler module. The consumer must now pass in an "aws.east" provider because cloudfront requires global resources created in us-east-1. Consumers should set the new "waf_allowed_url" variable to set the WAF rules to enable blocking of requests. Leaving the default of null will set the rules to count only and disable blocking. If the consumer has previous defined a mosaic titiler WAF rule using the "titiler_waf_rules_map" variable, this should be removed as it has been replaced with the module's implementation.
- Remove the OpenSearch service linked role from the terraform state with
terraform state rm 'aws_iam_service_linked_role.opensearch_linked_role'
- If your deployment does not use cloudfront in front of stac-server, the stac_api_rootpath variable in stac-server/inputs.tf must be set to null. The default (empty string) is correct for when cloudfront is in use.
- FilmDrop UI version >= 3.0.0 is now required. Previously, the configuration file was a
JavaScript file and was placed in
./src/assets/config.js. It is now a JSON file and is placed in./public/config/config.json. This change can be seen in this commit. The primary changes are:- The JavaScript const variables are now JSON attribute names.
- Parameters (JSON attribute names) are no longer prevised by
VITE_, e.g.,VITE_DEFAULT_COLLECTIONis nowDEFAULT_COLLECTION - Parameters for which you wish to use the default no longer need to be included as null/empty.