ate-setup deploy ate-system fails on in-place upgrade when v1alpha1 CRDs exist (storedVersions: ["v1alpha1"] missing from spec.versions)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- go, kubernetes
Línea de trabajo
Read cmd/ate-setup/internal/steps/deploy.go at DeployCRDs and inspect the three generated CRDs named in the issue. First reproduce the upgrade failure using the supplied kubectl commands and go run ./cmd/ate-setup deploy ate-system. Done means an in-place upgrade succeeds while preserving existing custom resources; the issue describes keeping the old version during migration or migrating stored objects before removing it.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary & Root Cause
Commit 48f5744c replaced name: v1alpha1 with name: v1 in the generated CRDs and did not keep v1alpha1 as a served-false, storage-false version. A cluster installed before that change has status.storedVersions: ["v1alpha1"] on workerpools.ate.dev, sandboxconfigs.ate.dev and csidriverconfigs.ate.dev. The API server refuses any CRD update that drops a version still listed in storedVersions. DeployCRDs just re-applies the generated manifests and has no migration step (no StorageVersionMigration, no storedVersions rewrite), so the upgrade fails at the first step.
Affected Code Locations
manifests/ate-install/generated/ate.dev_workerpools.yaml:32, 52, 632-633(single versionv1,served: true,storage: true)manifests/ate-install/generated/ate.dev_sandboxconfigs.yaml:43(single versionname: v1)manifests/ate-install/generated/ate.dev_csidriverconfigs.yaml:40(single versionname: v1)cmd/ate-setup/internal/steps/deploy.go:666-676(DeployCRDs: appliesgeneratedwith no storage-version handling)- Commit
48f5744c("Move public APIs underapi/<api-name>/v1", #2996) renamed the CRD versionv1alpha1→v1in place, with no transitionalv1alpha1entry.
Detailed Reproduction Guide
-
On a cluster where a CRD was created with
v1alpha1as its storage version (simulated on a fresh cluster by applying av1alpha1-onlyworkerpools.ate.devbefore the first deploy), confirm:kubectl get crd workerpools.ate.dev -o jsonpath='{.status.storedVersions}' -
Run the deploy:
go run ./cmd/ate-setup deploy ate-system -
Control: delete the CRD and deploy again:
kubectl delete crd workerpools.ate.dev go run ./cmd/ate-setup deploy ate-system
Expected vs. Actual Behavior
- Expected:
deploy ate-systemupgrades CRDs in place, either by keepingv1alpha1inspec.versionswithserved: false, storage: falseuntil storage is migrated, or by migrating objects and trimmingstatus.storedVersionsbefore applying the new CRD. - Actual: The deploy fails immediately at
[step]: deploy_crds. It only succeeds after the operator deletes the custom resources and CRDs by hand, which destroys everyWorkerPoolandSandboxConfig.
Observed Output & Logs
[step]: deploy_crds
Error: while applying customresourcedefinition/workerpools.ate.dev: CustomResourceDefinition.apiextensions.k8s.io "workerpools.ate.dev" is invalid: status.storedVersions[0]: Invalid value: "v1alpha1": missing from spec.versions; v1alpha1 was previously a storage version, and must remain in spec.versions ...
versions after DeployCRDs: v1alpha1
[step]: deploy_crds
Error: ... status.storedVersions[0]: Invalid value: "v1alpha1": missing from spec.versions
- Lenguaje dominante
- Go
- Estrellas
- 6.1k
- Forks
- 676
- Merge medio
- 2 d 1 h
- PR fusionados (30 d)
- 481
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de agent-substrate/substrate
-
network-egress.md describes actor certificate checks the egress gateway doesn't makePosiblemente ocupada @ericcurtin la tomó hace 1 día. Abiertoarea/network area/security kind/docs
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
agent-substrate/substrate#3709 ·
Los mantenedores suelen responder en 1 día
-
Clean up the ko retry testsPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoarea/dev-infra area/reliability area/tests kind/cleanup
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
agent-substrate/substrate#3461 ·
Los mantenedores suelen responder en 1 día
-
egress: drop the empty-provider check in providerCredentialPosiblemente ocupada @cloudonly la tomó hace 8 días. Abiertoarea/network kind/cleanup
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
agent-substrate/substrate#3428 ·
Los mantenedores suelen responder en 1 día
-
kubectl-ate create actor-template -f <file> fails with useless errorPosiblemente ocupada @cloudonly la tomó hace 9 días. Abiertoarea/cli kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
agent-substrate/substrate#3406 ·
Los mantenedores suelen responder en 1 día
-
k8s-credential-provider manifest is missing ate-otel-config envFrom, failing OTLP metric exports to [::1]:4317 / 127.0.0.1:4317 every 60sPosiblemente ocupada @ericcurtin la tomó hace 10 días. Abiertoarea/dev-infra area/observability area/security kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
agent-substrate/substrate#3282 ·
Los mantenedores suelen responder en 1 día
Todos los issues de agent-substrate/substrate
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
shukiv/jabali-panel#2423 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
area/docs good first issue help wanted kind/docs priority/p2 triage/accepted
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
mattabate/life-distributable#158 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
router-for-me/CLIProxyAPI#7330 ·
Los mantenedores suelen responder en 1 día