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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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
dev/prod) as needed.Acceptance criteria
pulumi upfrom a clean checkout (with documented config/secrets supplied) provisions the Worker, R2 bucket, and DNS record.pulumi destroycleanly tears everything down.Dependencies
Benefits from #1 (something to deploy) but can be scaffolded in parallel.