demos/jupyter configures NGINX jupyter-proxy to upstream plaintext HTTP on port 80 to atenet-router without mTLS, failing with 502/504
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- go, kubernetes, nginx
調査の方向性
Start with demos/jupyter/jupyter.yaml.tmpl:46-90 and the router Service at manifests/ate-install/atenet-router.yaml:416-433; the README also records the proxy configuration and two stale details. Check how the demo projects pod certificates and the servicedns trust bundle, then reproduce with the issue’s deployment and port-forward commands. Done means the proxy uses the router’s HTTPS service with client authentication, serves JupyterLab, and the README’s cluster and state names are corrected.
索引モデルが issue の本文から書いたものです。
説明
Summary & Root Cause
Service/atenet-router no longer has a plaintext port 80, and its HTTPS listener requires a client certificate from the pod-identity CA. The jupyter demo's NGINX still does proxy_pass http://atenet-router.ate-system.svc.cluster.local; (implicit port 80), and the Deployment mounts no client cert or trust bundle. Every upstream connection goes to a ClusterIP port that does not exist. With kube-proxy (Kind) that gives an immediate RST and a 502. GKE Dataplane V2 silently drops the SYN, so NGINX waits for its 60s proxy_connect_timeout and returns 504.
Affected Code Locations
demos/jupyter/jupyter.yaml.tmpl:46-61(ConfigMap/jupyter-proxy-config:listen 80;at line 50,proxy_pass http://atenet-router.ate-system.svc.cluster.local;at line 52)demos/jupyter/jupyter.yaml.tmpl:63-90(Deployment/jupyter-proxy: only the nginx config volume; nopodCertificateorclusterTrustBundlevolume)demos/jupyter/README.md:19(claims the Kind cluster is named"ate-demo"),README.md:63-64(documents the same plaintextproxy_pass),README.md:105(saysSTATUS_SUSPENDED)manifests/ate-install/atenet-router.yaml:416-433(Service/atenet-routerexposes onlyhttps443→8443 andconnect-tls8444)
Detailed Reproduction Guide
-
Deploy the demo and confirm the router ports:
go run ./cmd/ate-setup deploy demo jupyter kubectl get svc -n ate-system atenet-router -
Hit the proxy:
kubectl port-forward -n ate-demo-jupyter svc/jupyter-proxy 18081:80 & curl -i http://localhost:18081/ kubectl logs -n ate-demo-jupyter deploy/jupyter-proxy --tail=5
Expected vs. Actual Behavior
- Expected:
jupyter-proxyconnects tohttps://atenet-router.ate-system.svc:443, presents a projectedpodidentity.podcert.ate.dev/identityclient certificate, trusts theservicednsbundle, wakes thejupyter-notebookactor, and serves JupyterLab. - Actual: Every request fails:
504 Gateway Time-outafter about 60s on GKE Dataplane V2, or502 Bad Gatewaywhere the closed port is actively refused. The README also has a wrong cluster name and a stale state name.
Observed Output & Logs
$ awk '/proxy_pass|listen/' demos/jupyter/jupyter.yaml.tmpl
listen 80;
proxy_pass http://atenet-router.ate-system.svc.cluster.local;
$ kubectl get svc -n ate-system atenet-router -> ports https:443->8443, connect-tls:8444->8444 (no 80)
$ go run ./cmd/ate-setup deploy demo jupyter # succeeds
$ kubectl port-forward -n ate-demo-jupyter svc/jupyter-proxy 18081:80 & curl -i http://localhost:18081/
HTTP/1.1 504 Gateway Time-out (after ~60s)
jupyter-proxy: [error] upstream timed out (110: Operation timed out) while connecting to upstream, ... upstream: "http://34.118.234.238:80/"
HTTP/1.1 504 Gateway Time-out TIME=60.107376s
jupyter-proxy: [error] upstream timed out ... upstream: "http://34.118.234.238:80/"
- 主要言語
- Go
- スター
- 5.9k
- フォーク
- 637
- 平均マージ
- 2日 1時間
- マージ済み PR(30日)
- 523
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
agent-substrate/substrate のほかの issue
-
Clean up the ko retry tests対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンarea/dev-infra area/reliability area/tests kind/cleanup
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
agent-substrate/substrate#3461 ·
メンテナーはふだん 1 日以内に返信
-
egress: drop the empty-provider check in providerCredential対応中かも @cloudonly が 3 日前に担当しました。 オープンarea/network kind/cleanup
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
agent-substrate/substrate#3428 ·
メンテナーはふだん 1 日以内に返信
-
kubectl-ate create actor-template -f <file> fails with useless error対応中かも @cloudonly が 4 日前に担当しました。 オープンarea/cli kind/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
agent-substrate/substrate#3406 ·
メンテナーはふだん 1 日以内に返信
-
k8s-credential-provider manifest is missing ate-otel-config envFrom, failing OTLP metric exports to [::1]:4317 / 127.0.0.1:4317 every 60s対応中かも @ericcurtin が 5 日前に担当しました。 オープンarea/dev-infra area/observability area/security kind/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
agent-substrate/substrate#3282 ·
メンテナーはふだん 1 日以内に返信
-
filecachegc.runPass suppresses eviction logs when FreedBytes < target and consecutiveShortfalls > 3対応中かも @ericcurtin が 4 日前に担当しました。 オープンarea/node area/observability area/storage kind/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
agent-substrate/substrate#3281 ·
メンテナーはふだん 1 日以内に返信
agent-substrate/substrate の issue をすべて見る
似ている issue
-
date_time, url_encode, html_escape, to_unix_time, contains_all and contains_any panic when called without arguments対応中かも @antcybersec が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
projectdiscovery/dsl#372 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
JuliusBrussee/caveman#1449 ·
メンテナーはふだん 1 日以内に返信
-
bot-found bug priority: P3
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
madenvel/KalinkaPlayer#498 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
clawsweeper:fix-shape-clear clawsweeper:needs-maintainer-review clawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P2
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
openclaw/gogcli#1291 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信