Skip to content

Add support for a multi-region LB for tiles_tlog#198

Open
cmurphy wants to merge 1 commit intosigstore:mainfrom
cmurphy:tiles-split
Open

Add support for a multi-region LB for tiles_tlog#198
cmurphy wants to merge 1 commit intosigstore:mainfrom
cmurphy:tiles-split

Conversation

@cmurphy
Copy link
Copy Markdown
Contributor

@cmurphy cmurphy commented Apr 15, 2026

This change adds submodules to tiles_tlog:

  1. tiles_tlog/shared creates common resources like health checks and
    security policies that only need to be created once, universally, no
    matter the kind of deployment.
  2. tiles_tlog/global creates another set of load balancer resources that
    support global write endpoints that may route to shards living in any
    given region.

The current region-specific load balancer resources remain the same,
because read traffic will always need to use the regional endpoint and
because the write endpoint makes it easier to check region-specific
liveness.

Relates to https://github.com/sigstore/public-good-instance/issues/3603

Summary

Release Note

Documentation

Comment thread gcp/modules/tiles_tlog_shared/main.tf Outdated
@cmurphy cmurphy marked this pull request as ready for review April 15, 2026 21:54
@cmurphy cmurphy requested a review from a team as a code owner April 15, 2026 21:54
@cmurphy cmurphy marked this pull request as draft April 17, 2026 17:19
This change adds submodules to tiles_tlog:

1. tiles_tlog/shared creates common resources like health checks and
   security policies that only need to be created once, universally, no
   matter the kind of deployment.
2. tiles_tlog/global creates another set of load balancer resources that
   support global write endpoints that may route to shards living in any
   given region.

The current region-specific load balancer resources remain the same,
because read traffic will always need to use the regional endpoint and
because the write endpoint makes it easier to check region-specific
liveness.

Signed-off-by: Colleen Murphy <[email protected]>
@cmurphy cmurphy changed the title Split shared resources from tiles_tlog Add support for a multi-region LB for tiles_tlog Apr 28, 2026
@cmurphy cmurphy marked this pull request as ready for review April 28, 2026 18:07
@Hayden-IO
Copy link
Copy Markdown
Contributor

the current region-specific load balancer resources remain the same ... because the write endpoint makes it easier to check region-specific liveness.

To confirm, this means that a client could be configured to write directly to one of the regional logs? I don't think that's a concern, only would be an issue if we were using the LB to round-robin between instances.


module "shared" {
source = "./shared"
count = var.single_region ? 1 : 0
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need some of these resources for each tiles_tlog instance still in a multi-region deployment?

A per-shard healthcheck? I assume we'd need a healthcheck for the global LB as well, but there's no guarantee that its healthcheck would verify the health of each of the regional shards.

And if the write path is publicly accessible, should each shard have its own security policy? We could have a global rate limit and a per-shard rate limit.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do still need them in a multi-region deployment, but no they do not need to be per-shard. A health check is a super generic resource, it is just information saying what path and port to make the health check on and it can be reused by every shard and every region, there is no need to have more than one if they are using the same port and path.

We could let each shard have its own security policy if we want. Do you realistically foresee that the global and per-shard rate limits should be different?

@cmurphy
Copy link
Copy Markdown
Contributor Author

cmurphy commented May 1, 2026

To confirm, this means that a client could be configured to write directly to one of the regional logs?

Yes, as it stands right now each shard is still writeable by their own shard-specific addresses. I did this more to keep the code simpler than anything. It also adds a little bit of redundancy, so that if a control plane outage takes down the global address the regional address is still available. But none of the other services have that redundancy so it's not providing a huge benefit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants