Skip to content
This repository was archived by the owner on Jul 23, 2026. It is now read-only.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

172 Commits
 
 
 
 
 
 

Repository files navigation

twined-gcp (archived)

Warning

This repository is archived and no longer maintained. Its contents have moved into the two Octue Twined Terraform modules. Nothing here is used by any current version of Twined.

What was here Where it is now
functions/event_handler (+ its tests) terraform-octue-twined-cluster functions/event_handler
functions/service_registry (+ its tests) terraform-octue-twined-core functions/service_registry
terraform/ (the twined-gcp bucket) Deleted - no longer needed

Why this repository existed

google_cloudfunctions2_function needs its source code as a zip file in a Cloud Storage bucket, so the Terraform modules had to be pointed at an archive that already existed somewhere.

This repository solved that by holding the Python source for two cloud functions and, on each release, zipping it and uploading it to a public bucket at gs://twined-gcp (in an Octue-owned Google Cloud project). The Terraform modules then referenced those archives by version, e.g. event_handler/0.9.1.zip. The terraform/ directory here existed solely to create that bucket and the workload identity federation the release workflow needed to write to it.

The upside was that the Python code could be released on its own cadence, independently of the Terraform modules, which only had to bump a version string.

Why it was archived

The downside was a hard runtime dependency on Octue-owned infrastructure sitting in the middle of every user's deployment. When the Google Cloud project hosting the bucket was deleted, every fresh deployment of the cluster module broke with a 404 while cloning the function source (#35).

The two functions are small (under 300 lines between them) and share no code, so there was little benefit to distributing them separately. Both Terraform modules now vendor the source code they need and build the archive themselves with the hashicorp/archive provider at terraform apply time, uploading it to a bucket in the user's own Google Cloud project. The modules are self-contained, and no Octue-owned infrastructure sits in anyone's deployment path.

At the same time, the service registry moved from the cluster module to the core module (terraform-octue-twined-cluster#4): only one is needed per artifact registry repository, and the artifact registry is a core resource.

Migrating

Use terraform-octue-twined-core 0.2.0 or above and terraform-octue-twined-cluster 0.4.0 or above. Versions of the cluster module at or below 0.3.0 reference the deleted bucket and can no longer be deployed.

Note that the service registry's URL is now the core module's service_registry_url output, and its cloud function is no longer prefixed with the environment name. If you've referenced the old URL in an octue.yaml service_registries entry, update it.

See the managing infrastructure guide for the current setup instructions.

About

Helpers for running Octue Twined services on GCP.

Resources

Stars

Watchers

Forks

Releases

Used by

Contributors