Disk provider enum leaks through launcher to sandbox volume controller
buildServicesConfig in servers/build/build.go converts appconfig.DiskConfig to core_v1alpha.ConfigSpecServicesDisks but never maps the Provider field (lines 441-450). Fixed in PR #713.
However, there's a second bug in the same chain: controllers/deployment/launcher.go:659 does provider := string(disk.Provider) which casts the full entity enum string (component.config_spec.services.disks.provider.local) instead of mapping it to the short form ("local") that the sandbox volume controller expects.
The sandbox runner (controllers/sandbox/volume.go:23) switches on short strings like "local", "miren", "host" — so the full enum leaks through to the default case and produces:
unsupported volume provider: component.config_spec.services.disks.provider.local
Fix in launcher.go ~line 658:
var provider string
switch disk.Provider {
case core_v1alpha.ConfigSpecServicesDisksLOCAL:
provider = "local"
case core_v1alpha.ConfigSpecServicesDisksMIREN:
provider = "miren"
default:
provider = "miren"
}
Discovered while: deploying the Around appcast server with an explicit [[services.web.disks]] block with provider = "local".