Skip to content

Allowlist public Helm chart repositories (Datadog, HashiCorp, Teleport, Wiz, Fluent) - #318

Merged
v-robaiken merged 2 commits into
dependabot:mainfrom
bkonicek-calm:bkonicek/allowlist-helm-chart-repos
Oct 14, 2026
Merged

v-robaiken merged 2 commits into
dependabot:mainfrom
bkonicek-calm:bkonicek/allowlist-helm-chart-repos

Conversation

@bkonicek-calm

Copy link
Copy Markdown
Contributor

What are you trying to accomplish?

Fixes #314. Helm chart repositories that are public, vendor-controlled infrastructure are blocked by the egress allowlist (egress not allowlisted <host> / 403). This adds them as exact entries under ecosystem_default_domains.helm:

Host What it serves Evidence
charts.releases.teleport.dev Teleport chart index and tarballs (relative URLs, same host) CNAME to CloudFront, certificate for helm.releases.teleport.dev, index.yaml returns 200
charts.wiz.io Wiz chart index.yaml CNAME to wiz-sec.github.io, valid certificate, index.yaml returns 200
wiz-sec.github.io Wiz chart tarballs (the Wiz index points its tarball URLs here) Wiz org's GitHub Pages; target of the charts.wiz.io CNAME
fluent.github.io Fluent chart index (tarballs are on github.com, already allowed) Fluent org's GitHub Pages, index.yaml returns 200
helm.datadoghq.com Datadog chart index (tarballs are on github.com) CNAME to datadog.github.io, valid certificate, index.yaml returns 200
helm.releases.hashicorp.com HashiCorp chart index and tarballs CN=helm.releases.hashicorp.com, index.yaml returns 200

helm.datadoghq.com and helm.releases.hashicorp.com were not in the issue but are the same class of public chart repo.

Anything you want to highlight for special attention from reviewers?

  • All entries are exact. None of the hosts is multi-tenant or customer-specific, and the GitHub Pages hosts are specific org pages, never *.github.io.
  • wiz-sec.github.io is included because Wiz's index references tarballs there; allowing only charts.wiz.io would still block downloads.
  • Evidence is DNS, TLS certificate and index contents; I did not check provider documentation.

How will you know you've accomplished your goal?

  • Each new host has a positive probe in TestEgressAllowlist_AddedMissingDomainsAllowed and an evil.<host> child probe in TestEgressAllowlist_NewEntriesDoNotWidenBeyondExactHosts, which fails if an entry is widened to leading-dot form (verified for helm.datadoghq.com).
  • go test ./... passes locally.
  • go test -race -shuffle=on -count=2 ./... passes in the builder-tests Docker image. script/test itself fails on an Apple Silicon host with go: -race requires cgo because the Dockerfile pins GOARCH=amd64, so I ran the same command with -e GOARCH=arm64.

Checklist

  • I have run the complete test suite to ensure all tests and linters pass.
  • I have thoroughly tested my code changes to ensure they work as expected, including adding additional tests for new functionality.
  • I have written clear and descriptive commit messages.
  • I have provided a detailed description of the changes in the pull request, including the problem it addresses, how it fixes the problem, and any relevant details about the implementation.
  • I have ensured that the code is well-documented and easy to understand.

…t, Wiz, Fluent)

Adds exact entries for helm.datadoghq.com, helm.releases.hashicorp.com, charts.releases.teleport.dev, charts.wiz.io, wiz-sec.github.io (Wiz chart tarballs) and fluent.github.io, with positive and child-host regression probes. Refs dependabot#314.
@bkonicek-calm
bkonicek-calm requested a review from a team as a code owner October 14, 2026 13:56
Copilot AI balanced review requested due to automatic review settings October 14, 2026 13:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Four new parent namespaces lack the sibling probes required by the test contract.

1 open finding
What changed in this PR

Adds six public Helm repository hosts to the global egress allowlist.

Changes:

  • Adds exact vendor-controlled Helm hosts.
  • Adds positive and child-subdomain regression probes.
File Description
internal/​handlers/​egress_allowlist_defaults.yaml Adds Helm repository domains.
internal/​handlers/​egress_allowlist_test.go Tests allowed URLs and exact-host boundaries.

🧠 Review effort: Balanced


💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread internal/handlers/egress_allowlist_test.go
@v-robaiken
v-robaiken merged commit 4e5391d into dependabot:main Oct 14, 2026
106 of 108 checks passed
@bkonicek-calm

bkonicek-calm commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor Author

@v-robaiken thanks for approving/merging this! Just curious - at what point does the update allowlist become live? I'm still seeing the proxy blocking requests to hosts that were added here as of today. We're using github/dependabot-action@main so I guess it depends on what version Github's action targets?

EDIT: I see our jobs are running proxy commit 4f831d2366f2e7cd89e6c, which looks like it's from 3 days ago so that does suggest that we're waiting on the action to recognize the more recent changes.

updater | 2026/10/15 13:13:24 INFO <job_1629526875> Started process PID: 1126 with command: {} helm repo add -- helm-datadoghq-com https://helm.datadoghq.com/ {}
  proxy | 2026/10/15 13:13:24 [019] GET [https://helm.datadoghq.com:443/index.yaml](https://helm.datadoghq.com/index.yaml)
  proxy | 2026/10/15 13:13:24 [019] * egress not allowlisted helm.datadoghq.com
  proxy | 2026/10/15 13:13:24 [019] 403 [https://helm.datadoghq.com:443/index.yaml](https://helm.datadoghq.com/index.yaml)
  proxy | 2026/10/15 13:13:24 [019] Remote response: Forbidden
  proxy | 2026/10/15 13:13:24 [019] * auth'd git request previously retried, won't retry again.

@v-robaiken

Copy link
Copy Markdown
Contributor

I guess it depends on what version Github's action targets?

@bkonicek-calm that is correct. I will bump the version now and ping you when it's done.

@v-robaiken

Copy link
Copy Markdown
Contributor

@bkonicek-calm This change is now live

@bkonicek-calm

Copy link
Copy Markdown
Contributor Author

Thanks, confirmed this is working for us now!

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.

Add public Helm repositories to proxy allowlist

3 participants