Skip to content

api: standardize sandbox_class representation across ateapi.proto (SandboxClass enum vs string) #2406

Closed

Description

Background

sandbox_class is currently represented inconsistently within pkg/proto/ateapipb/ateapi.proto and across the rest of Substrate:

  • ateapi.SandboxConfig.sandbox_class (ateapi.proto:1050) and ateom.WorkloadStatsSample.sandbox_class (ateom.proto:445) use enum SandboxClass (SANDBOX_CLASS_GVISOR, SANDBOX_CLASS_MICROVM).
  • ateapi.Worker.sandbox_class (ateapi.proto:2078) and atelet.SandboxAssets.sandbox_class (atelet.proto:276) use string ("gvisor", "microvm").
  • Kubernetes CRDs (WorkerPool, SandboxConfig in pkg/api/v1alpha1), snapshot manifests, and OpenTelemetry metrics (ate.sandbox.class) all use lowercase strings ("gvisor", "microvm").

Proposed Changes

Standardize on lowercase string ("gvisor", "microvm") everywhere:

  1. pkg/proto/ateapipb/ateapi.proto:
    • Change SandboxConfig.sandbox_class from SandboxClass enum to string (validated against "gvisor" and "microvm").
    • Remove enum SandboxClass.
  2. internal/proto/ateompb/ateom.proto:
    • Change WorkloadStatsSample.sandbox_class from SandboxClass enum to string and remove enum SandboxClass.
  3. Callers, CLI & tests:
    • Remove sandboxClassString conversion helpers in cmd/ateapi/internal/controlapi/converter.go and internal/ateomstats/usage.go.
    • Update kubectl-ate templates/tests and e2e fixtures to use sandboxClass: gvisor / sandboxClass: microvm.

Benjamin Elder (@BenTheElder) Tim Hockin (@thockin)

Metadata

Metadata

Labels

area/apiUser-facing API changeskind/cleanupSmall fixes that are not bugs, for example a typo in a code comment

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions