helm (Go) fails TLS through Cortex proxy on macOS — CA not in System keychain
维护者通常 1 天内回复
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 18/100
调研方向
The payload names no source files, only install.sh and the agentop CLI, plus the ~/.cortex/ca/bundle.crt path the env vars point at. Start by reading how install.sh and agentop set HTTPS_PROXY and the CA variables, and reproduce with helm repo update behind the proxy. Done means a maintainer has chosen between the keychain change, a proxy bypass, or another supported CA path, and the chosen approach is implemented.
由索引模型根据 Issue 内容生成。
描述
Summary
Go-based CLI tools (here: helm) fail TLS verification when their traffic is routed through the Cortex proxy on macOS, because they do not consult the *_CA_BUNDLE / SSL_CERT_FILE environment variables Cortex sets, and the Cortex bridge CA is not in the macOS System keychain that Go verifies against.
Filed as a blank issue per the Laptop-feedback template's guidance ("a Helm or platform problem — open a blank issue instead"). Raised with a Cortex maintainer, who suggested filing with details.
Where it fails
On the local machine, not the cluster. A Python CLI shells out to the local helm binary, which fetches public Helm chart repos (e.g. https://llm-d-incubation.github.io/llm-d-infra/) over the internet via the local Cortex proxy. The cluster API path (kubectl/oc) is unaffected.
Symptom
helm repo update llmDInfra
Get "https://llm-d-incubation.github.io/llm-d-infra/index.yaml":
tls: failed to verify certificate: x509: certificate signed by unknown authority
Reproduces both inside the CLI and when helm repo update is run standalone in the same shell.
Works vs. doesn't
curl -sSI https://llm-d-incubation.github.io/llm-d-infra/index.yaml→ HTTP/2 200 (curl honorsCURL_CA_BUNDLE).helm repo update→ TLS failure.
Root cause (hypothesis)
Cortex sets HTTPS_PROXY=http://127.0.0.1:47600 plus CURL_CA_BUNDLE / REQUESTS_CA_BUNDLE / SSL_CERT_FILE → ~/.cortex/ca/bundle.crt (valid, 129 certs). curl- and Python-based tools trust the bridge CA via those vars. Go-based tools (helm, and likely oc/kubectl plugins, gh in some builds) do not read *_CA_BUNDLE, and on macOS Go verifies against the System keychain rather than SSL_CERT_FILE — where the Cortex CA is absent. So any Go tool doing outbound TLS through the proxy fails.
Options considered (none applied)
- Add the Cortex CA to the macOS System keychain (
security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/.cortex/ca/bundle.crt) — fixes all Go tools, but is a sudo, machine-wide trust change. - Bypass the proxy for the helm step (
env -u HTTPS_PROXY ...) — loses Cortex token visibility for those calls.
Questions
- Is adding the bridge CA to the macOS System keychain the intended/supported fix for Go tools, and if so should
install.sh/agentopdo it (or offer it)? - Is there a supported way for Go/helm to pick up the CA without a system-wide keychain change?
- Is per-tool proxy bypass acceptable to Cortex's accounting model?
Environment
- OS:
Darwin arm64 - Cortex:
agentop v0.8.0 agentop service status: healthy; TLS bridge CA~/.cortex/ca/ca.crt(minted 2026-09-14), env vars point at~/.cortex/ca/bundle.crt- helm:
v4.2.3+g43e8b7f(Gogo1.25.1 darwin/arm64) - Agent: Claude Code, claude-opus-4-8
- 主要语言
- Go
- 星标
- 23
- 派生
- 44
- 平均合并
- 16 小时 8 分钟
- 30 天内合并 PR
- 234
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
rossoctl/cortex 的其他 Issue
-
feedback laptop
难度 5/5 一周以上 新手友好度 28/100
维护者通常 1 天内回复
-
chore: Remove the decline_responses_websockets translation after a deprecation release可能已有人在做 @Alan-Cha 于 3 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 55/100
rossoctl/cortex#1625 · 已指派 1 人 ·
维护者通常 1 天内回复
-
CodeQL flags request host and path reaching slog in plugins可能已有人在做 @huang195 今天认领。 未关闭
难度 3/5 1-2 天 新手友好度 60/100
rossoctl/cortex#1621 · 已指派 1 人 ·
维护者通常 1 天内回复
-
难度 4/5 一周以上 新手友好度 18/100
维护者通常 1 天内回复
-
agentop configure codex/opencode can wait on itself when an agent runs it可能已有人在做 @Alan-Cha 于 9 天前认领。 未关闭
rossoctl/cortex#1530 · 已指派 1 人 ·
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 69/100
open-telemetry/opentelemetry-go-compile-instrumentation#1713 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 77/100
JakeChampion/lang#14392 ·
维护者通常 1 天内回复
-
agent-butler-finding bug
难度 1/5 1-3 小时 新手友好度 84/100
jordansmall/spindrift#6557 ·
维护者通常 1 天内回复
-
[Bug] Custom tool truncation leaves unused stream copies open可能已有人在做 @OUAO-FRANK 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复