Hostname Naming Standard Checker
Audit hostname inventories against RFC and Kubernetes syntax, organization regex rules and duplicate policy with browser-local evidence.{{ summaryTitle }} {{ summaryValue }} {{ summaryLine }} {{ badge.label }} {{ badge.value }}
| Input | Normalized hostname | Source kind | Outcome | Failed or review rules | Evidence | Copy |
|---|---|---|---|---|---|---|
| {{ row.input }} | {{ row.hostname }} | {{ row.source_kind }} | {{ outcomeLabel(row.outcome) }} | {{ row.rules }} | {{ row.evidence }} |
| Priority | Finding | Affected | Example | Suggested next step | Copy |
|---|---|---|---|---|---|
| {{ row.priority }} | {{ row.finding }} | {{ row.affected }} | {{ row.example }} | {{ row.next_step }} |
Names that work in one system can fail in another. DNS comparisons may accept uppercase letters, an automation convention may require lowercase, Kubernetes narrows the allowed shape further, and an organization may encode site, role, service, and sequence in a regular expression. A naming review must separate protocol syntax from local policy instead of treating every convention as an Internet rule.
A fully qualified domain name contains labels separated by dots. Each label identifies one level of the DNS hierarchy, while the leftmost label often carries the machine or workload name. That distinction matters when a convention should match only dc01-rtr-edge-01 rather than the complete dc01-rtr-edge-01.example.internal.
| Context | What it constrains | Common reason to choose it |
|---|---|---|
| Hostname or FQDN | One or more DNS-style labels | Server inventories and ordinary host identities |
| Single host label | Exactly one label without dots | Short names stored separately from a DNS suffix |
| Kubernetes name | Lowercase DNS-style label or subdomain rules | Names consumed directly by Kubernetes resources |
| Organization pattern | RFC-style syntax plus a chosen regular expression | Asset names that encode operational meaning |
Passing a syntax review does not mean the name exists in DNS, reaches the intended host, matches a certificate, or belongs to the right asset. Renaming also affects monitoring, SSH trust, certificates, local host mappings, configuration management, and application references. Treat the result as input to a controlled rename or inventory cleanup, not as proof that the wider system is ready.
Internationalized names need a separate Internationalized Domain Names in Applications (IDNA) conversion step. This review accepts ASCII hostname presentation and reports Unicode labels as syntax failures rather than silently converting them to Punycode.
How to Use This Tool:
Choose the profile used by the system that will consume the names, then audit a representative inventory.
- Paste Hostname inventory as one nonblank item per line, or drop a TXT, CSV, or LOG file up to 1 MiB. Use no more than 500 entries.
- Choose Input format. Auto detect handles absolute URLs, host assignments, CSV first columns, and plain hostname lines; pin a format when a copied line could be read more than one way.
- Select Standards profile. For organization profiles, enter a valid Naming regex and choose whether it applies to the first host label or the full hostname.
- Set Lowercase policy, an optional Required suffix, and the duplicate policy. Kubernetes profiles require lowercase regardless of the separate lowercase setting.
- Review Hostname ledger for the exact evidence, then use the remediation queue to group affected names by rule. Fix an invalid regex or suffix first because either one stops the review.
Interpreting Results:
Pass means the normalized name has no finding under the selected profile and policies. Review means only a review-level rule, such as the default duplicate policy or optional uppercase warning, was triggered. Fail means at least one blocking extraction, syntax, regex, case, suffix, or duplicate rule failed.
The overall gate passes only when every row passes; one Review row keeps it from passing. A high pass rate can still hide a small number of consequential failures, so use the ledger and remediation queue rather than relying on the percentage alone. DNS resolution, reachability, and ownership remain separate checks.
Technical Details:
The review first extracts one candidate hostname per nonblank line, removes wrapping quotes and a trailing root dot, strips a numeric port from a plain host value, and then applies syntax and policy rules. The original line remains available beside the normalized hostname so a bad extraction can be traced back to its source.
Transformation Core:
Input mode controls only how the candidate hostname is extracted. It does not weaken the selected hostname profile.
| Input mode | Extraction path |
|---|---|
| Hostname list | Use the complete trimmed line as the candidate. |
| URL list | Require an absolute URL and extract its hostname. |
| CSV first column | Parse quoted CSV cells and use the first column. |
| Auto detect | Try a host assignment, then an absolute URL, then a CSV first column, otherwise use the first whitespace-delimited token. |
A suffix is lowercased and trimmed of leading or trailing dots. A candidate matches when it equals the suffix or ends with a dot followed by that suffix, so notexample.internal does not satisfy example.internal. Duplicate comparison is also case-insensitive.
Rule Core:
Syntax is evaluated in UTF-8 bytes. The limits below apply to the displayed hostname without a final root dot.
| Rule | Exact behavior |
|---|---|
| Total length | At most 253 bytes. |
| Label length | Every dot-separated label is at most 63 bytes and cannot be empty. |
| Characters | RFC-style profiles allow ASCII letters, digits, and hyphens; Kubernetes profiles allow lowercase letters, digits, and hyphens. |
| Label edges | Every label starts and ends with an alphanumeric character. |
| Single-label profiles | Exactly one label is accepted; dotted input fails. |
| Kubernetes label profile | The single label must start with a lowercase letter. |
| Dotted numeric ending | The final label of a multi-label hostname cannot contain digits only. |
| IP address | A dotted-decimal IPv4 address is rejected as a hostname. |
| Organization regex | The selected expression must match either the first label or full hostname; JavaScript global and sticky flags are removed before matching. |
| Lowercase policy | Uppercase is Fail, Review, or ignored for non-Kubernetes profiles; it always fails a Kubernetes profile. |
| Duplicate policy | A repeated normalized name becomes Review, Fail, or no finding according to the selected policy. |
Rules are additive. A row can fail both syntax and organization policy, and the ledger preserves every applicable explanation. Remediation priorities place extraction, syntax, pattern, and suffix failures at P1; case and duplicate findings default to P2 unless the selected duplicate policy makes them blocking.
Privacy Notes:
Inventory text, naming expressions, and suffixes are processed in the current browser tab and are not added to shareable query state. No DNS request is made. Internal hostnames can still leave the browser when you copy, download, or share an exported ledger, so handle those artifacts according to your organization’s data policy.
Worked Examples:
Policy drift in a valid hostname
DC02-FW-EDGE-01.example.internal can satisfy RFC-style label syntax because ASCII uppercase letters are allowed there, yet it fails when Lowercase policy is Require. Under the equivalent Kubernetes profile, uppercase is blocking regardless of the separate case setting.
Host-label regex with a preserved suffix
With Regex target set to the first label, the organization expression checks dc01-rtr-edge-01 while .example.internal is assessed by hostname syntax and the optional suffix rule. Selecting the full hostname instead sends the complete dotted name to the same expression.
References:
- RFC 1123, Host Names and Numbers, RFC Editor, October 1989.
- RFC 1035, Size Limits, RFC Editor, November 1987.
- Object Names and IDs, Kubernetes Documentation.
- How to change hostname in Linux, Simplified Guide.