From c35dc7ea4a88f79ee7215261580f67a2323cc9d8 Mon Sep 17 00:00:00 2001 From: Sergio Garcia Date: Fri, 29 Nov 2024 08:55:58 -0400 Subject: [PATCH] fix(api): add EKS ARN to K8s validation (#5963) --- api/src/backend/api/models.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/api/src/backend/api/models.py b/api/src/backend/api/models.py index 664bc818fb..7cc7229961 100644 --- a/api/src/backend/api/models.py +++ b/api/src/backend/api/models.py @@ -187,10 +187,14 @@ class Provider(RowLevelSecurityProtectedModel): @staticmethod def validate_kubernetes_uid(value): - if not re.match(r"^[a-z0-9]([-a-z0-9]{1,61}[a-z0-9])?$", value): + if not re.match( + r"(^[a-z0-9]([-a-z0-9]{1,61}[a-z0-9])?$)|(^arn:aws(-cn|-us-gov|-iso|-iso-b)?:[a-zA-Z0-9\-]+:([a-z]{2}-[a-z]+-\d{1})?:(\d{12})?:[a-zA-Z0-9\-_\/:\.\*]+(:\d+)?$)", + value, + ): raise ModelValidationError( - detail="K8s provider ID must be up to 63 characters, start and end with a lowercase letter or number, " - "and contain only lowercase alphanumeric characters and hyphens.", + detail="The value must either be a valid Kubernetes UID (up to 63 characters, " + "starting and ending with a lowercase letter or number, containing only " + "lowercase alphanumeric characters and hyphens) or a valid EKS ARN.", code="kubernetes-uid", pointer="/data/attributes/uid", )