This is a Terraform module to manage an instance of VeraId Authority on Google Cloud Platform (GCP) using serverless services.
The module is responsible for all the resources needed to run the endpoint app on GCP, except for the following (which you can deploy to any cloud and any region):
- The MongoDB server.
- The Awala Internet Endpoint, if you're using the Awala integration. Refer to the
awala
example for a full example with the Awala Internet Endpoint. - Resources related to the identity provider (e.g., Auth0, Google).
The following diagram illustrates the cloud architecture created by this module (without the Awala integration):
- A GCP project with billing and the Cloud Resource Manager API enabled.
- A domain name with DNSSEC correctly configured.
- A MongoDB server reachable from the Cloud Run resources.
- An Awala Internet Endpoint setup, if you're using the Awala integration.
- Enable the required service APIs and initialise this module in a new module. For example:
See full example.
locals { services = [ "run.googleapis.com", "compute.googleapis.com", "cloudkms.googleapis.com", "pubsub.googleapis.com", "secretmanager.googleapis.com", "iam.googleapis.com", ] } resource "google_project_service" "services" { for_each = toset(local.services) project = var.google_project service = each.value disable_dependent_services = true } module "veraid-authority" { source = "relaycorp/veraid-authority/google" version = "<INSERT VERSION HERE>" # ... Specify the variables here... }
- Run
terraform init
, followed byterraform apply
.