Pulumi IaC scaffolding: Worker, R2 bucket, Google Cloud DNS #2

Closed
opened 2026-07-02 17:44:19 +00:00 by JMR-dev · 0 comments
JMR-dev commented 2026-07-02 17:44:19 +00:00 (Migrated from github.com)

Context

Part of JMR-dev/LibreMail#11. Per the issue's technical details, infra is managed via Pulumi written in Go, DNS lives in Google Cloud DNS.

Scope

  • Pulumi project scaffolding (Go), with a stack per environment (e.g. dev/prod) as needed.
  • Cloudflare Worker resource definition (deploy the Worker built in the bootstrap ticket).
  • Cloudflare R2 bucket resource for encrypted report storage.
  • Google Cloud DNS record(s) pointing at the Worker's route/custom domain.
  • Document required Pulumi config/secrets (Cloudflare API token, GCP credentials) without committing any secret values.

Acceptance criteria

  • pulumi up from a clean checkout (with documented config/secrets supplied) provisions the Worker, R2 bucket, and DNS record.
  • pulumi destroy cleanly tears everything down.

Dependencies

Benefits from #1 (something to deploy) but can be scaffolded in parallel.

## Context Part of [JMR-dev/LibreMail#11](https://github.com/JMR-dev/LibreMail/issues/11). Per the issue's technical details, infra is managed via Pulumi written in Go, DNS lives in Google Cloud DNS. ## Scope - [ ] Pulumi project scaffolding (Go), with a stack per environment (e.g. `dev`/`prod`) as needed. - [ ] Cloudflare Worker resource definition (deploy the Worker built in the bootstrap ticket). - [ ] Cloudflare R2 bucket resource for encrypted report storage. - [ ] Google Cloud DNS record(s) pointing at the Worker's route/custom domain. - [ ] Document required Pulumi config/secrets (Cloudflare API token, GCP credentials) without committing any secret values. ## Acceptance criteria - `pulumi up` from a clean checkout (with documented config/secrets supplied) provisions the Worker, R2 bucket, and DNS record. - `pulumi destroy` cleanly tears everything down. ## Dependencies Benefits from #1 (something to deploy) but can be scaffolded in parallel.
Sign in to join this conversation.