Skip to content

[DE-4474]: Proxy Calico OSS e2e test binaries from S3 - #3007

Open
Glen-Tigera wants to merge 1 commit into
tigera:mainfrom
Glen-Tigera:glen/calico-e2e-binaries-proxy
Open

[DE-4474]: Proxy Calico OSS e2e test binaries from S3#3007
Glen-Tigera wants to merge 1 commit into
tigera:mainfrom
Glen-Tigera:glen/calico-e2e-binaries-proxy

Conversation

@Glen-Tigera

@Glen-Tigera Glen-Tigera commented Sep 3, 2026

Copy link
Copy Markdown
Member

Product Version(s):
Calico Open Source only — any release that publishes e2e test binaries, i.e. master onward once projectcalico/calico#13566 lands. Not applicable to Calico Enterprise or Calico Cloud.

Issue:

Link to docs preview:
https://deploy-preview-3007--calico-docs-preview-next.netlify.app

Nothing is published at the proxied path yet, so the preview cannot return a binary — but it does prove the routing, and the distinction is the whole point of this PR. Verified on the preview above:

Path Result Meaning
/calico/v3.31.1/files/e2e/e2e-linux-amd64.test 403 application/xml proxied to S3; 403 is how a public-read-objects bucket answers a key that is not published yet
/calico/charts/index.yaml 200 application/yaml existing charts rule unaffected
/calico/v3.31.1/files/other/thing.txt 404 text/html correctly not proxied — confirms the rule is scoped to files/e2e/ only

Before this change the first path returned the docs 404 HTML, i.e. the request never reached S3. Once a Calico release publishes, it becomes 200.

SME review:

  • An SME has approved this change.

DOCS review:

  • A member of the docs team has approved this change.

Additional information:

Calico releases will publish version-matched Kubernetes e2e test binaries to s3://calico-public/<version>/files/e2e/, so a consumer can fetch the one architecture it needs (~71 MB) rather than unpacking the ~1.2 GB release archive that also contains them.

That bucket only reaches the web through the per-prefix proxies in netlify.toml, and /calico/charts/* was the only one — so those objects are currently unreachable from docs.tigera.io. Calico Enterprise needs no equivalent rule because downloads.tigera.io maps to its bucket root; this asymmetry is why a docs change is needed for Calico Open Source and not for Enterprise.

Two deliberate choices:

  • Narrow, not broad. /calico/:version/files/e2e/* rather than /calico/:version/files/*, to keep the proxied surface to what is actually published today.
  • No force. Matching the charts rule, so a real docs file always wins over the proxy. The paths cannot collide anyway: docs versions are latest / 3.30-style, while release versions carry a v prefix.

The path deliberately mirrors the Enterprise layout, so a consumer resolves a binary the same way for either product.

Ordering: harmless to merge before projectcalico/calico#13566 (the path simply has nothing behind it yet), and there is no benefit until that lands either. Happy either way — landing this first gives the publish side somewhere to point.

Merge checklist:

  • Deploy preview inspected wherever changes were made
  • Build completed successfully
  • Test have passed

projectcalico/calico#13566 publishes version-matched Kubernetes e2e test
binaries to s3://calico-public/<version>/files/e2e/ so a consumer can fetch one
architecture instead of unpacking the ~1.2 GB release archive.

The bucket only reaches the web through per-prefix proxies here, and
/calico/charts/* was the only one, so those objects are currently unreachable
from docs.tigera.io. Calico Enterprise needs no equivalent rule because
downloads.tigera.io maps to its bucket root.

The path mirrors the Enterprise layout, so a consumer resolves a binary the same
way for either product. The rule is narrow rather than /calico/:version/files/*
to keep the proxied surface to what is published today, and carries no force, so
a real docs file still wins.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 3, 2026 21:07
@netlify

netlify Bot commented Sep 3, 2026

Copy link
Copy Markdown

Deploy Preview for calico-docs-preview-next ready!

Name Link
🔨 Latest commit 44be6e2
🔍 Latest deploy log https://app.netlify.com/projects/calico-docs-preview-next/deploys/6a99e1ab24ca670008b4e75c
😎 Deploy Preview https://deploy-preview-3007--calico-docs-preview-next.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Sep 3, 2026

Copy link
Copy Markdown

Deploy Preview succeeded!

Built without sensitive environment variables

Name Link
🔨 Latest commit 44be6e2
🔍 Latest deploy log https://app.netlify.com/projects/tigera/deploys/6a99e1abb5e7c20009709c3a
😎 Deploy Preview https://deploy-preview-3007--tigera.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 67 (🔴 down 28 from production)
Accessibility: 98 (no change from production)
Best Practices: 92 (no change from production)
SEO: 100 (no change from production)
PWA: -
View the detailed breakdown and full score reports
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

Copilot AI left a comment

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.

🟢 Approval recommended

The change is a small, narrowly-scoped Netlify redirect consistent with existing S3 proxy patterns in this repo and matches the stated routing behavior goal.

Pull request overview

Adds a Netlify proxy rewrite so Calico Open Source versioned Kubernetes e2e test binaries can be fetched from the calico-public S3 bucket via docs.tigera.io, aligning OSS download ergonomics with the Enterprise layout (without broadening the proxied surface beyond files/e2e).

Changes:

  • Introduces a new Netlify [[redirects]] rule for /calico/:version/files/e2e/* that proxies to https://calico-public.s3.amazonaws.com/:version/files/e2e/:splat.
  • Documents the intent and scope of the new proxy rule inline next to the existing OSS charts S3 proxy rule.
File summaries
File Description
netlify.toml Adds a narrowly-scoped Netlify proxy rewrite for Calico OSS versioned e2e test binaries hosted in the public S3 bucket.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@Glen-Tigera
Glen-Tigera marked this pull request as ready for review September 3, 2026 21:12
@Glen-Tigera
Glen-Tigera requested a review from a team as a code owner September 3, 2026 21:12
@Glen-Tigera
Glen-Tigera marked this pull request as draft September 3, 2026 21:17
@Glen-Tigera
Glen-Tigera marked this pull request as ready for review September 3, 2026 21:21
@Glen-Tigera

Copy link
Copy Markdown
Member Author

@tigera/docs — ready for review when you have a moment.

This is config-only: one proxy rule in netlify.toml, no content changes (hence the Pages changed checks skipping). It adds /calico/:version/files/e2e/* → the calico-public bucket, directly under the existing /calico/charts/* rule it mirrors.

Why it is needed: projectcalico/calico#13566 will publish Calico OSS e2e test binaries to s3://calico-public/<version>/files/e2e/, and that bucket only reaches the web through per-prefix proxies here — /calico/charts/* was the only one, so those objects would be unreachable from docs.tigera.io. Calico Enterprise needs no equivalent rule because downloads.tigera.io maps to its bucket root.

Verified on the deploy preview (details in the description): the proxied path returns an S3 403 rather than the docs 404 HTML, confirming the request reaches the bucket, while a sibling path outside files/e2e/ still 404s — so the rule is scoped as narrowly as intended. No force, so a real docs file always wins.

Happy to adjust the path shape if you would rather it live somewhere else in the URL space.

@ctauchen

ctauchen commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Thanks for this, @Glen-Tigera .

There's a scope question I'd like to ask before I approve. Generally, I don't want to include things like this unless they're part of a documented user workflow. If it's not, it should live elsewhere. Helm charts do this, for example. But nothing references the e2e binaries. The use case here seems to be internal tooling.

What rules out GitHub release assets? Or something else? If the driver is Enterprise parity so banzai-core needs no change, I'd rather take the one-line change there than a permanent rule here — but tell me what I'm missing.

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.

4 participants