feat: distribute bazel JKS truststore via squid-ca-cert (Vault) - #19
feat: distribute bazel JKS truststore via squid-ca-cert (Vault)#19ccijunk wants to merge 16 commits into
Conversation
…sults - 3 new refresh_patterns: .crate / .zip / .pth|pt|safetensors - helm upgrade REVISION 14 (squid-rpardini-0.1.4), ArgoCD ownership + kubelet volume-sync gotchas - retest: cargo 11% -> ~95% hit, wget 94MB .pth TCP_HIT zero-origin feat(chart): 0.1.4 — force-cache rules for cargo/model-weight traffic - refresh_pattern for .crate (cargo), .zip, .pth/.pt/.safetensors (model weights) - measured: cargo hit 11% -> ~95%, wget 94MB .pth TCP_HIT zero-origin (gy-006) - verified via helm upgrade REVISION 14
JKS truststore (Bazel/JDK) fetched from Vault (secrets/data/ascend/ci) and synced into squid-ca-cert SecretDefinition for CI namespaces (buildkitd, ascend-gha-runners, nv-action, squid). Align caBundleKey/ caPublicKey to v3 vault properties.
CLA Signature Passccijunk, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
Linking Issue Notice@ccijunk , the pull request must be linked to at least one issue. |
…alid options - immutable rules only for content-addressed/A-class artifacts (.whl/.crate/.deb) - .zip/.tar.gz/.pth demoted to LM-aging (0/20%/4320): ref-addressed & overwritable - codeload refs/tags + github releases/download get immutable; refs/heads short TTL - remove dead .docker.io rule, unescape domains, max 525960->525600 (no cropped warning) - add CACHE-STRATEGY.md (full per-rule audit + CI scenario analysis)
- wait_case: wait on Volcano Job phase (pods scheduled in batches polluted subsequent case windows); fix missing -n $NS - analyze: awk printf %d truncated >2GB byte counters to -2^32 (%.0f) - 01-pip: add set -o pipefail so pip failures are not masked by tail
CLA Signature Passccijunk, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
- analyze: window ends DONE+180s; Volcano marks Job Completed while late-batch pods still stream (case 01 window held only background api.github CONNECTs → false 0% HIT) - run-tool-traffic.sh: wait_pods_done helper (pods may outlive vj phase) - CACHE-STRATEGY.md §10.1: document Volcano batching, background TLS noise (A000412 = bad_certificate alert from unknown 10.0.0.209/225), epoch access.log timestamps - verified case 01 (pip) = 99.9% HIT (7.5GB out, 0.1% origin)
CLA Signature Passccijunk, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
…data fallback Document first-match-wins ordering: extension immutable rules (whl/crate/deb) intercept artifacts before domain rules, so .pypi.org/.golang.org/.debian.org/ .ubuntu.com actually only fallback to index metadata + unclassified content. Ordering-sensitive: moving domain rules above extension rules drops .deb/.whl from immutable to 0 20% 4320.
CLA Signature Passccijunk, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
…& gitcode 0% - CACHE-STRATEGY.md §10.2: squid 7.6 stable-build swapout race triggered by SWAPFAIL under cold-cache concurrency; SFS shared volume 92% full as amplifier; fixes: free registry-cache / collapsed_forwarding / aufs-disks; 7.6 is a stable tag (SQUID_7_6), not dev — no upstream fix yet - TOOL-RESULTS.md: gitcode clone 0% (POST pack, structural); non-git paths WAF-blocked (418/403/verification page); single-case cold apt = 65.4% HIT - run-tool-traffic.sh: wait_pods_done must 'seen' a pod before trusting zero running pods (vj may be Completed before any pod is scheduled)
CLA Signature Passccijunk, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
- run-tool-traffic.sh wait_pods_done: 'seen' must trigger on ANY pod
(incl. Succeeded); previous version stuck 30min when pods finished
before the first poll
- analyze-tool-traffic.py:
- cluster clock offset (+128s observed) — timeline is local, access.log
is cluster; without it every window is misaligned
- drop DONE+180 tail (DONE is now precise; back-to-back cases made
+180 swallow the next case's traffic) — clamp e to next SUBMIT
- read access.log from PREVIOUS container stdout (current access.log
is recreated on restart, ~2min only); pod-IP filtering removed
(Volcano rebuilds pods, IPs no longer match)
- tool/03-github.yaml: curl raw.githubusercontent.com --max-time 120
(was hanging forever without timeout)
CLA Signature Passccijunk, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
…probe - 01-pip.yaml: replace jsdelivr CDN with gh-proxy for requirements.txt fetch - 03-github.yaml: remove github.com reachability probe (meaningless per request) - cachedemo.yaml: add hf-mirror.com to NO_PROXY - run-tool-traffic.sh: make LOG_DIR configurable via env var - run-per-case-wlcb.sh: new wrapper for sequential per-case monitoring on wlcb-001
CLA Signature Passccijunk, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
16-tool sequential run on wlcb-001 with per-case Prometheus monitoring. Reports client/origin throughput, hitrate, and pattern classification (steady, burst, spike, decay) for each tool.
…s, huaweicloud mirror - statefulset.yaml: add nodeAffinity and tolerations support (template) - values.yaml: add nodeAffinity default (empty), switch alpine mirror to huaweicloud - values-wlcb-001.yaml: new — wlcb-001 cluster values (amd64, node 192.168.1.49, cache toleration) - values-gy-001.yaml: new — gy-001 cluster values (amd64, node 192.168.1.191, cache toleration)
CLA Signature Passccijunk, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
Summary
Distribution of the Bazel/JVM truststore (
squid-bazel-trust.jks) from Vault via thesquid-ca-certSecretDefinition, plus the 0.1.6 cache strategy (per-addressing refresh_pattern rules) and traffic-test tooling fixes.Changes
squid-ca-certkeysMap 增加squid-bazel-trust.jks(Vault propertysquid_bazel_trust_v3_jks),随 CA 一起分发到 buildkitd / ascend-gha-runners / nv-action / squidcaBundleKey/caPublicKey对齐线上 v3 名(squid_ca_bundle_v3_pem/squid_ca_v3_pem),新增caTruststoreKey.whl/.crate/.deb:10080 100% 525600 ignore-reload override-expire ignore-no-store).pth/.pt/.safetensors、codeloadrefs/heads、索引页)降级0 20% 4320(尊重 LM 老化)refs/tags+ githubreleases/download→ immutableignore-no-cache/override-vary(ERROR/Unknown option)、删除失效.docker.io规则、域名转义\\.pypi\\.org等、max=525600(消除 cropped 告警)wait_case改为等待 Volcano Job phase(vj 分批调度导致窗口污染),修复缺失-n $NS;新增wait_pods_done(pods 可能比 vj phase 晚结束);LOG_DIR改为可配置环境变量printf %d将 >2GB 字节计数截断为负值 →%.0f;窗口终点DONE+180s捕获分批调度尾部流量;HIT% 与 Prometheusclient_out/origin_in交叉验证set -o pipefail(避免 tail 掩盖失败)、PIP_CERT 去重;jsdelivr CDN 替换为 gh-proxy 获取 requirements.txthf-mirror.com加入 NO_PROXY/etc/squid-bazel-trust/squid-bazel-trust.jks再写.bazelrc关键坑
JAVA_TOOL_OPTIONS,trustStore 参数只能走.bazelrcstartupignore-no-cache;override-vary是未知选项(ERROR);override-expire/ignore-reload/ignore-no-store为 legacy WARNING 但有效subPath挂载不热更新,配置变更须rollout restart(kubelet 不会重载 subPath 文件)10.0.0.209/10.0.0.225,不在任何 pod/Service 列表)每 1-5s 对api.github.com:443发 CONNECT + TLS 失败(cache.logA000412= SSL alertbad certificate),每分钟 ~10-20 条 24/7 持续,与 case 流量无关Test (gy-006, 0.1.6 复测)
DONE+180s修复后实测 99.9% HITgh-proxy.test.osinfra.cn(03-github.yaml 用insteadOf把 github.com 重写到 gh-proxy 镜像),client_out/origin_in交叉验证全程走代理wlcb-001 测试 (warm cache, 16 工具)
traffic-test/WLCB-001-TRAFFIC-REPORT.md— 逐 case 流量模式分析。关键发现: