MCPRemoteProxy podTemplateSpec ports without protocol cause repeated Deployment updates
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
Start in cmd/thv-operator/controllers/mcpremoteproxy_controller.go at remoteProxyContainerFieldsNeedUpdate and compare its port check with ContainerPortsDiffer in cmd/thv-operator/pkg/controllerutil/authserver.go. The issue also flags env, probe, and security context comparisons as possible defaulting gaps. Check or add focused tests for repeated reconciliation with an omitted port protocol; done means the Deployment no longer updates repeatedly for that case.
由索引模型根据 Issue 内容生成。
描述
When an MCPRemoteProxy has a spec.podTemplateSpec that adds a port to the proxy container without setting protocol, the operator likely sees a difference on every reconcile and keeps updating the Deployment.
remoteProxyContainerFieldsNeedUpdate in cmd/thv-operator/controllers/mcpremoteproxy_controller.go compares the live container with the expected one built by deploymentForMCPRemoteProxy:
!equality.Semantic.DeepEqual(current.Ports, expected.Ports) ||
The expected container comes from applying the raw podTemplateSpec patch, so a port written as
ports:
- name: metrics
containerPort: 9090
has Protocol: "" on the expected side. The API server fills in TCP on the stored Deployment, so DeepEqual never matches.
I found this by reading the code while reviewing the operator port changes for the auth server TLS listener. I haven't reproduced it on a cluster. VirtualMCPServer had the same issue in that work and now treats an empty protocol as TCP when comparing ports (ContainerPortsDiffer in cmd/thv-operator/pkg/controllerutil/authserver.go). The same approach, or comparing ports with that helper, should work here. The other DeepEqual checks in that function (env, probes, security context) may have similar API-server defaulting gaps and are worth a look at the same time.
- 主要语言
- Go
- 星标
- 2.3k
- 派生
- 326
- 平均合并
- 1 天 53 分钟
- 30 天内合并 PR
- 155
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
stacklok/toolhive 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
stacklok/toolhive#6925 · 1 条评论 ·
维护者通常 1 天内回复
-
proxyrunner tool-filter middleware strips SEP-2322 Modern envelope from tools/list, breaking vMCP health checks可能重新可做 @alex-feel 于 46 天前认领,目前没有进行中的 PR。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
stacklok/toolhive#6684 · 5 条评论 · 1 个 reaction · 已指派 1 人 ·
维护者通常 1 天内回复
-
HttpClientBuilder.Build() ignores HTTP(S)_PROXY (auth-server OAuth/DCR calls bypass forward proxy)可能已有人在做 @schonmann 于 37 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
stacklok/toolhive#6671 · 2 条评论 · 1 个 reaction · 已指派 1 人 ·
维护者通常 1 天内回复
-
Delete the dead pkg/vmcp/server/adapter package可能重新可做 @suantea 于 31 天前认领,目前没有进行中的 PR。 未关闭needs-triage
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复
-
Outgoing strategies differ on no-subject-provider fallback (xaa hard-fails, token_exchange and aws_sts fall back) and it is undocumented可能重新可做 关联的 PR 已关闭且未合并。 未关闭bug
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
查看 stacklok/toolhive 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 82/100
radius-project/radius#13744 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 86/100
mvanhorn/printing-press-library#2460 ·
维护者通常 1 天内回复
-
Mark the `--migrate-db` option to `podman system migrate` as hidden, and remove it from the Manpages未关闭Contribfest kind/cleanup
难度 2/5 1-3 小时 新手友好度 68/100
podman-container-tools/podman#30210 ·
维护者通常 1 天内回复
-
bug
难度 1/5 1 小时以内 新手友好度 78/100
fabriziosalmi/secure-proxy-manager#619 ·
维护者通常 1 天内回复
-
bug needs-triage P1 tier:1-mechanical
难度 1/5 1 小时以内 新手友好度 88/100
krakenhavoc/cmd_and_ctrl#5434 ·
维护者通常 1 天内回复