fix(kubernetes): validate sandbox names against RFC 1123 requirements (#2295)

Signed-off-by: Krzysztof Malczuk <kmalczuk@redhat.com>
This commit is contained in:
Krzysztof Malczuk
2026-07-17 19:11:26 +00:00
committed by GitHub
parent 98f253b846
commit 1fd4d2b950
@@ -781,6 +781,11 @@ impl KubernetesComputeDriver {
validate_gpu_request(gpu_requirements).map_err(|status| {
KubernetesDriverError::InvalidArgument(status.message().to_string())
})?;
// Validate sandbox name against Kubernetes naming requirements
validate_kubernetes_dns1123_label(&sandbox.name, "sandbox name")
.map_err(KubernetesDriverError::InvalidArgument)?;
let name = sandbox.name.as_str();
info!(
sandbox_id = %sandbox.id,
@@ -5598,4 +5603,18 @@ mod tests {
let storage = &vct[0]["spec"]["resources"]["requests"]["storage"];
assert_eq!(storage, DEFAULT_WORKSPACE_STORAGE_SIZE);
}
#[test]
fn sandbox_name_validation_accepts_valid_dns_labels() {
assert!(validate_kubernetes_dns1123_label("my-sandbox", "sandbox name").is_ok());
assert!(validate_kubernetes_dns1123_label("test123", "sandbox name").is_ok());
assert!(validate_kubernetes_dns1123_label("123abc", "sandbox name").is_ok());
}
#[test]
fn sandbox_name_validation_rejects_invalid_dns_labels() {
assert!(validate_kubernetes_dns1123_label("my_sandbox", "sandbox name").is_err());
assert!(validate_kubernetes_dns1123_label("MySandbox", "sandbox name").is_err());
assert!(validate_kubernetes_dns1123_label("dotted.name", "sandbox name").is_err());
}
}