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

alphagov/search-v2-infrastructure

Repository files navigation

search-v2-infrastructure

Caution

This repo has been archived as of 20th January 2025 and code has been migrated to alphagov/govuk-infrastructure


IaC definitions for GOV.UK Search v2

This repository contains Terraform resource definitions to provision Google Cloud's Vertex AI Agent Builder Search (also previously known as "Vertex AI Search and Conversation" or "Gen App Builder" or in the APIs as "Discovery Engine") for use as a search engine for GOV.UK through search-api-v2, and to set up a data pipeline for analytics events to feed into the search engine model.

To that end, the following modules are part of this repository:

  • terraform/meta: Bootstrap Terraform Cloud project/workspaces, GCP projects, and workload federation between the two (applied locally with Terraform Cloud state)
  • terraform/environment: Set up Discovery Engine resources, service accounts and keys, and AWS Secrets Manager secrets consumed by the Kubernetes platform for an individual environment for search-api-v2 (i.e. integration, staging, production)
  • terraform/modules/google_discovery_engine_restapi: A helper module to abstract deployment of Discovery Engine resources through the REST API provider (as there are no first party Terraform resources available in the Google provider yet)

Working on this repository

The workspace can be run as a devcontainer, which includes terraform and gcloud CLI tooling enabling log in to these providers. This is useful for working on and applying the terraform/meta module, which is intended to be run locally by an engineer with the required Google and Terraform Cloud access to bootstrap the initial set of resources. You can also run plans for other modules locally.

Warning Gitignored .terraform.credentials.d and .google.credentials.d directories are included in the repository, which are mounted into the devcontainer's home folder for terraform login/gcloud login to store credentials into (so they persist across container rebuilds). These directories will contain sensitive information, so do not stop them being gitignored or force any files within to be checked in.

About

IaC definitions for GOV.UK Search v2

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors 9