Skip to content

admin-console Service name reaches 66 characters, so long release names cannot install at all #24

Description

@tada5hi

Found while fixing #21. Same root cause, worse blast radius: this one needs no opt-in flag, it breaks a default install.

Problem

authup.adminConsole.fullname is trunc 52 of the base plus -admin-console, i.e. up to 66 characters, and that name is used for the admin-console Service.

A Service's metadata.name must be a DNS-1035 label, capped at 63 characters. So any release whose authup.fullname reaches 50 characters or more produces a Service the API server rejects, and the install fails outright.

Reproduce:

helm template $(python3 -c "print('n'*53)") charts/authup | python3 -c "
import sys, yaml
for d in yaml.safe_load_all(sys.stdin):
    if d and d['kind'] in ('Service','Job') and len(d['metadata']['name']) > 63:
        print(len(d['metadata']['name']), d['kind'], d['metadata']['name'])
"
# -> 66 Service <release>-admin-console

Scope

That render is the full audit, and the admin-console Service is the only name over the limit once #21 capped the migration Job. Everything else fits:

Suffix Base trunc Total Ceiling that applies
-admin-console (14) 52 66 63 (Service) ❌
-postgresql (11) 52 63 63 (Service) ✅ exactly at it
-server (7) 52 59 63 (Service) ✅
-valkey (7) 52 59 63 (Service) ✅
-mysql (6) 52 58 63 (Service) ✅

-admin-console-env reaches 70, but that is a ConfigMap, where 253 applies.

Suggested fix

One number: trunc the base to 49 in authup.adminConsole.fullname, so 49 + 14 = 63. That keeps architecture rule 9's property (the component suffix always survives, names stay distinct) while respecting the real ceiling.

Renaming is safe: every release name in the affected range is currently un-installable, so no working deployment has a name that would move.

A more general variant is to derive the base trunc from the suffix length per component, so the next component suffix cannot reintroduce this. -postgresql sitting exactly on 63 today suggests it is worth doing properly rather than adjusting one constant.

Related

Rule 9 in .agents/architecture.md was amended in #20 to say it keeps names distinct, not short, and that 63 rather than 253 is the ceiling wherever a name becomes a label value or a DNS-1035 label. This is the remaining instance of that.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions