oxidecomputer / oxidecomputer/omicron

External DNS should be configurable

Open
#8,255 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

in https://github.com/oxidecomputer/omicron/issues/6944 and #8047 we got external DNS to serving an SOA record, but the fields of that SOA record are basically hardcoded. i mentioned the current hardcoded values in this comment. we really ought to have a few things here:

  • the SOA RNAME should be configurable to the email address a rack's operator can receive email at. the rack has no reason to send email to this address, but operators deserve to have reasonable DNS records.
  • TTL/REFRESH/RETRY/EXPIRE/MINIMUM for the external zone's SOA record should be configurable. this is presumably more immediately observable: these are fields that DNS caching/replication systems might operate in terms of.
  • the delegated domain ought to be configurable. it's currently set at RSS time, we have no mechanism to change it at the moment.

i think SOA fields are just a question of storage and API plumbing. wherever those fields live, it's probably worth asking if it should be with the delegated domain.

the SOA fields we have are definitely not ideal, and i expect it's likely someone will want to configure them sooner than later.

i'm not aware of anyone wanting to change the delegated domain today, but it seems pretty reasonable to want. changing the delegated domain is probably a more complicated separate operation - at the very least one would want to track down what, if any, names get derived from it and would need to be updated.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how external DNS currently serves the SOA record and how the delegated domain is set at RSS time. Identify where the SOA fields and delegated domain are stored and exposed through API plumbing. Done means the SOA RNAME, TTL, REFRESH, RETRY, EXPIRE, MINIMUM, and delegated domain can be configured, with derived names updated safely when the domain changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.