[Bug]: ate-setup delete demo returns before the demo namespace finishes terminating

Abierto
#3,525 1 comentario 0 reacciones 2 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@HavenXia ya está trabajando en esto.

Desde el 31/10/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

area/cli area/demos kind/bug
What happened?

ate-setup delete demo <name> (Substrate.Delete in cmd/ate-setup/internal/demos/substrate.go) calls e.Kube.DeleteBytes(ctx, manifest) on the demo's WorkerPoolManifest and returns while the demo Namespace is still Terminating.

Running ate-setup deploy demo <name> right after ate-setup delete demo <name> (for example, redeploying counter with --with-external-volume) fails because the Kubernetes NamespaceLifecycle admission controller rejects new objects in a terminating namespace:

Error: while applying workerpool/counter -n ate-demo-counter: workerpools.ate.dev "counter" is forbidden: unable to create new content in namespace ate-demo-counter because it is being terminated
Expected Behavior

ate-setup delete demo <name> and ate-setup deploy demo <name> can be run back to back, or the async behavior is an explicit CLI contract.

Steps to Reproduce
  1. Deploy ate-system and the counter demo on a cluster:
    go run ./cmd/ate-setup deploy demo counter
    
  2. Delete and immediately redeploy the demo:
    go run ./cmd/ate-setup delete demo counter
    go run ./cmd/ate-setup deploy demo counter
    
  3. deploy demo counter fails applying workerpool/counter while namespace/ate-demo-counter is still terminating.
Sandbox Runtime

Both / Runtime Agnostic

Agent Substrate Version / Commit SHA

8a2c01563

Kubernetes Version & Environment

kind v0.31.0 / Kubernetes v1.35

Host OS & Architecture

Linux (x86_64)

Relevant Logs and Diagnostic Output
[step]: demo-counter_deploy
[step]: ensure_crds
[step]: images: built from source with ko
  (ko resolve -f - took 7.003s)
  (apply of 2 objects took 0.017s)
Error: while applying workerpool/counter -n ate-demo-counter: workerpools.ate.dev "counter" is forbidden: unable to create new content in namespace ate-demo-counter because it is being terminated
Additional Context

Client.Delete (cmd/ate-setup/internal/kube/apply.go) documents itself as the kubectl delete --ignore-not-found -f equivalent. kubectl delete defaults to --wait=true, whereas Client.DeleteOne calls ri.Delete via client-go and returns as soon as deletion is requested.

Meanwhile, Substrate.Deploy blocks synchronously on workload rollouts and golden snapshot creation, and DeleteAteSystem (cmd/ate-setup/internal/steps/delete.go) calls e.Kube.WaitDeleted on ate-system and podcertificate-controller-system.

For discussion: should ate-setup delete demo <name> wait on demo Namespace deletion by default (matching kubectl delete and DeleteAteSystem), or keep deletion asynchronous and leave kubectl wait --for=delete namespace/<ns> to callers that immediately redeploy?

Confirmation
  • I have searched existing issues and verified that this is not a duplicate.
  • I have verified that this issue occurs on the latest commit on main.
Lenguaje dominante
Go
Estrellas
5.9k
Forks
637
Merge medio
2 d 1 h
PR fusionados (30 d)
523

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de agent-substrate/substrate

Todos los issues de agent-substrate/substrate

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.