Skip to content

Commit e96b64d

Browse files
committed
fix(kubernetes): validate sandbox names against RFC 1123 requirements
Signed-off-by: Krzysztof Malczuk <kmalczuk@redhat.com>
1 parent 94cdd69 commit e96b64d

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

  • crates/openshell-driver-kubernetes/src

crates/openshell-driver-kubernetes/src/driver.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,11 @@ impl KubernetesComputeDriver {
781781
validate_gpu_request(gpu_requirements).map_err(|status| {
782782
KubernetesDriverError::InvalidArgument(status.message().to_string())
783783
})?;
784+
785+
// Validate sandbox name against Kubernetes naming requirements
786+
validate_kubernetes_dns1123_label(&sandbox.name, "sandbox name")
787+
.map_err(KubernetesDriverError::InvalidArgument)?;
788+
784789
let name = sandbox.name.as_str();
785790
info!(
786791
sandbox_id = %sandbox.id,
@@ -5625,4 +5630,18 @@ mod tests {
56255630
let storage = &vct[0]["spec"]["resources"]["requests"]["storage"];
56265631
assert_eq!(storage, DEFAULT_WORKSPACE_STORAGE_SIZE);
56275632
}
5633+
5634+
#[test]
5635+
fn sandbox_name_validation_accepts_valid_dns_labels() {
5636+
assert!(validate_kubernetes_dns1123_label("my-sandbox", "sandbox name").is_ok());
5637+
assert!(validate_kubernetes_dns1123_label("test123", "sandbox name").is_ok());
5638+
assert!(validate_kubernetes_dns1123_label("123abc", "sandbox name").is_ok());
5639+
}
5640+
5641+
#[test]
5642+
fn sandbox_name_validation_rejects_invalid_dns_labels() {
5643+
assert!(validate_kubernetes_dns1123_label("my_sandbox", "sandbox name").is_err());
5644+
assert!(validate_kubernetes_dns1123_label("MySandbox", "sandbox name").is_err());
5645+
assert!(validate_kubernetes_dns1123_label("dotted.name", "sandbox name").is_err());
5646+
}
56285647
}

0 commit comments

Comments
 (0)