docs/egress-trust-bundle.md documents ActorTemplate as a Kubernetes CRD rejected by kubectl ate create actor-template and uses mismatched trust-bundle mount paths
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 1/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 88/100
- Loại issue
- Tài liệu
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- go, kubernetes
- Lĩnh vực
- documentation
Hướng nghiên cứu
Đọc docs/egress-trust-bundle.md cùng với cmd/kubectl-ate/internal/cmd/actortemplate.go:158-174 để xác nhận cấu trúc ActorTemplate được chấp nhận. Cập nhật ví dụ manifest để dùng các trường protobuf và điều chỉnh đường dẫn CA của wrapper cho khớp với đường dẫn bundle được mount. Hoàn tất khi cả hai đoạn mẫu hoạt động cùng nhau với kubectl ate create actor-template và container có thể đọc bundle.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary & Root Cause
ActorTemplate is not a Kubernetes CRD. It is an ateapi protobuf record that kubectl ate create actor-template -f parses with strict protojson.Unmarshal (actortemplate.go:170). The doc example wraps the fields in apiVersion/kind/spec and uses metadata.namespace, so the parser stops at the first unknown key, apiVersion. The valid shape has metadata.name, metadata.atespace, and top-level volumes/containers. Separately, the entrypoint wrapper in the same doc reads the bundle from /run/ate/trust-bundle.pem (line 110). The volume from line 67 puts the file at /run/ate/egress-trust-bundle/trust-bundle.pem. Because the script uses set -eu, a user who copies both snippets gets a container that exits immediately.
Affected Code Locations
docs/egress-trust-bundle.md:43-68: the example is a Kubernetes-style manifest (apiVersion: ate.dev/v1,kind: ActorTemplate,metadata.namespace,spec:), and line 67 mounts the volume atmountPath: /run/ate/egress-trust-bundle/.docs/egress-trust-bundle.md:83-90: the runtime table points everySSL_CERT_FILEstyle variable at/run/ate/egress-trust-bundle/trust-bundle.pem. This matches line 67.docs/egress-trust-bundle.md:106-116: the "Example entrypoint wrapper" setsca=/run/ate/trust-bundle.pemon line 110. That path does not exist with the mount from line 67.cmd/kubectl-ate/internal/cmd/actortemplate.go:158-174:actorTemplateFromManifestrunsprotojson.Unmarshalstrictly intoateapi.ActorTemplate(line 170). Unknown fields are an error.cmd/kubectl-ate/internal/cmd/actortemplate.go:113: wraps the parse error asfailed to parse actor template manifest %q: %w.
Detailed Reproduction Guide
- Copy the doc snippet and try to create it:
git show 15b58199:docs/egress-trust-bundle.md | sed -n '44,67p' > doc-template.yaml
kubectl ate create actor-template -f doc-template.yaml
- Fix the schema, keep the doc's mount path, and run the doc's wrapper line inside the actor:
metadata:
name: s11-trust-test
atespace: ate-demo-counter
workerSelector:
matchLabels:
workload: counter
resources:
limits:
cpuMillicores: "250"
memoryBytes: "134217728"
volumes:
- name: system-info
systemInfo:
dataSources:
- trustBundle:
names:
- egress-mitm.ate.dev
- system-roots.ate.dev
path: trust-bundle.pem
containers:
- name: app
image: busybox:1.36
command:
- /bin/sh
- -c
- |
ls -la /run/ate/egress-trust-bundle/trust-bundle.pem
ca=/run/ate/trust-bundle.pem
cat "$ca" 2>&1 || echo "EXIT_CODE=$?"
httpd -f -p 80
volumeMounts:
- name: system-info
mountPath: /run/ate/egress-trust-bundle
kubectl ate create actor-template -f s11-mount.yaml
kubectl ate create actor s11-actor -a ate-demo-counter --template s11-trust-test
kubectl ate resume actor s11-actor -a ate-demo-counter
kubectl ate logs actor s11-actor -a ate-demo-counter
Expected vs. Actual Behavior
- Expected: The doc snippet is a valid
ateapi.ActorTemplate(metadata.name,metadata.atespace, top-levelvolumesandcontainers), and the wrapper reads the same path the volume mounts (/run/ate/egress-trust-bundle/trust-bundle.pem). - Actual:
create actor-templatefails withproto: (line 1:2): unknown field "apiVersion"(RC=1). With the schema fixed, the bundle is mounted at/run/ate/egress-trust-bundle/trust-bundle.pem(222672 bytes), and the doc'sca=/run/ate/trust-bundle.pemfails withNo such file or directory.
Observed Output & Logs
$ kubectl ate create actor-template -f doc-template.yaml
Error: failed to parse actor template manifest "doc-template.yaml": proto: (line 1:2): unknown field "apiVersion"
RC=1
{"time":"2026-10-27T00:37:39.775804217Z","message":"=== Actual mounted file at /run/ate/egress-trust-bundle/trust-bundle.pem ==="}
{"time":"2026-10-27T00:37:39.866679041Z","message":"-rw-r--r-- 1 root root 222672 Oct 27 00:37 /run/ate/egress-trust-bundle/trust-bundle.pem"}
{"time":"2026-10-27T00:37:39.867271594Z","message":"=== Running docs/egress-trust-bundle.md:110 (ca=/run/ate/trust-bundle.pem) ==="}
{"time":"2026-10-27T00:37:39.871715713Z","message":"cat: can't open '/run/ate/trust-bundle.pem': No such file or directory"}
{"time":"2026-10-27T00:37:39.872259528Z","message":"EXIT_CODE=1"}
$ kubectl ate create actor-template -f doc-template.yaml
Error: failed to parse actor template manifest "doc-template.yaml": proto: (line 1:2): unknown field "apiVersion"
RC=1
$ kubectl ate logs actor r3-s11 -a ate-demo-counter
2026-10-27T01:59:08.293022919Z === Actual mounted file at /run/ate/egress-trust-bundle/trust-bundle.pem ===
2026-10-27T01:59:08.300867659Z -rw-r--r-- 1 root root 222672 Oct 27 01:59 /run/ate/egress-trust-bundle/trust-bundle.pem
2026-10-27T01:59:08.301570776Z === Running docs/egress-trust-bundle.md:110 (ca=/run/ate/trust-bundle.pem) ===
2026-10-27T01:59:08.390553539Z cat: can't open '/run/ate/trust-bundle.pem': No such file or directory
2026-10-27T01:59:08.391026414Z EXIT_CODE=1
- Ngôn ngữ chính
- Go
- Star
- 5.9k
- Fork
- 637
- Merge trung bình
- 2 ngày 10 giờ
- Pull request đã merge (30 ngày)
- 562
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của agent-substrate/substrate
-
kubectl-ate create actor-template -f <file> fails with useless errorCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởarea/cli kind/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
agent-substrate/substrate#3406 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
k8s-credential-provider manifest is missing ate-otel-config envFrom, failing OTLP metric exports to [::1]:4317 / 127.0.0.1:4317 every 60sCó thể đã có người làm @ericcurtin đã nhận 1 ngày trước. Đang mởarea/dev-infra area/observability area/security kind/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
agent-substrate/substrate#3282 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
filecachegc.runPass suppresses eviction logs when FreedBytes < target and consecutiveShortfalls > 3Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởarea/node area/observability area/storage kind/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
agent-substrate/substrate#3281 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[bug bash] Actor logs are controlled by Kubernetes RBAC on the pool namespace, not atespace rolesĐang mởarea/cli area/security bug-bash kind/docs
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 80/100
agent-substrate/substrate#3242 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area/security bug-bash kind/docs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 83/100
agent-substrate/substrate#3235 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của agent-substrate/substrate
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
google/go-containerregistry#2491 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
aiac enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
phase:v1 type:harness
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
scttfrdmn/burroughs#1181 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
compiler-explorer/ce-ci#28 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày