Skip to content

Commit 3108d32

Browse files
Add a fix for user validation. Still need to test
1 parent 0d770d9 commit 3108d32

File tree

1 file changed

+13
-5
lines changed
  • src/azure-cli/azure/cli/command_modules/containerapp

1 file changed

+13
-5
lines changed

src/azure-cli/azure/cli/command_modules/containerapp/_utils.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -509,12 +509,15 @@ def _update_revision_env_secretrefs(containers, name):
509509

510510

511511
def store_as_secret_and_return_secret_ref(secrets_list, registry_user, registry_server, registry_pass, update_existing_secret=False, disable_warnings=False):
512+
def make_dns1123_compliant(name):
513+
# Replace invalid characters with a hyphen and ensure lowercase
514+
return re.sub(r'[^a-z0-9\-]', '-', name.lower())
515+
512516
if registry_pass.startswith("secretref:"):
513517
# If user passed in registry password using a secret
514-
515518
registry_pass = registry_pass.split("secretref:")
516519
if len(registry_pass) <= 1:
517-
raise ValidationError("Invalid registry password secret. Value must be a non-empty value starting with \'secretref:\'.")
520+
raise ValidationError("Invalid registry password secret. Value must be a non-empty value starting with 'secretref:'.")
518521
registry_pass = registry_pass[1:]
519522
registry_pass = ''.join(registry_pass)
520523

@@ -526,9 +529,15 @@ def store_as_secret_and_return_secret_ref(secrets_list, registry_user, registry_
526529
# If user passed in registry password
527530
registry_server = registry_server.replace(':', '-')
528531
if urlparse(registry_server).hostname is not None:
529-
registry_secret_name = "{server}-{user}".format(server=urlparse(registry_server).hostname.replace('.', ''), user=registry_user.lower())
532+
registry_secret_name = "{server}-{user}".format(
533+
server=urlparse(registry_server).hostname.replace('.', ''),
534+
user=make_dns1123_compliant(registry_user)
535+
)
530536
else:
531-
registry_secret_name = "{server}-{user}".format(server=registry_server.replace('.', ''), user=registry_user.lower())
537+
registry_secret_name = "{server}-{user}".format(
538+
server=registry_server.replace('.', ''),
539+
user=make_dns1123_compliant(registry_user)
540+
)
532541

533542
for secret in secrets_list:
534543
if secret['name'].lower() == registry_secret_name.lower():
@@ -548,7 +557,6 @@ def store_as_secret_and_return_secret_ref(secrets_list, registry_user, registry_
548557

549558
return registry_secret_name
550559

551-
552560
def parse_list_of_strings(comma_separated_string):
553561
comma_separated = comma_separated_string.split(',')
554562
return [s.strip() for s in comma_separated]

0 commit comments

Comments
 (0)