Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta Adatta ai principianti
#3,278 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@moficodes ci sta già lavorando.

Dal 28/10/2026.

  • #3368 di @moficodes — aperta

Valutazione

Difficoltà
1/5
Tempo stimato
1-3 ore
Idoneità per principianti
88/100
Tipo di issue
Documentazione
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
go, kubernetes
Ambito
documentation

Direzione di ricerca

Leggi docs/egress-trust-bundle.md insieme a cmd/kubectl-ate/internal/cmd/actortemplate.go:158-174 per confermare la struttura ActorTemplate accettata. Aggiorna l’esempio del manifest in modo che usi i campi protobuf e fai corrispondere il percorso CA del wrapper al percorso del bundle montato. Il lavoro è completato quando entrambi gli snippet funzionano insieme con kubectl ate create actor-template e il container può leggere il bundle.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

area/network area/security kind/docs
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 at mountPath: /run/ate/egress-trust-bundle/.
  • docs/egress-trust-bundle.md:83-90: the runtime table points every SSL_CERT_FILE style 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" sets ca=/run/ate/trust-bundle.pem on line 110. That path does not exist with the mount from line 67.
  • cmd/kubectl-ate/internal/cmd/actortemplate.go:158-174: actorTemplateFromManifest runs protojson.Unmarshal strictly into ateapi.ActorTemplate (line 170). Unknown fields are an error.
  • cmd/kubectl-ate/internal/cmd/actortemplate.go:113: wraps the parse error as failed to parse actor template manifest %q: %w.
Detailed Reproduction Guide
  1. 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
  1. 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-level volumes and containers), and the wrapper reads the same path the volume mounts (/run/ate/egress-trust-bundle/trust-bundle.pem).
  • Actual: create actor-template fails with proto: (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's ca=/run/ate/trust-bundle.pem fails with No 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
Lingua principale
Go
Stelle
5.9k
Fork
637
Merge medio
2g 10h
PR unite (30g)
556

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di agent-substrate/substrate

Tutte le issue di agent-substrate/substrate

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.