[baremetal & friends] Move on-prem api-int record to dnsmasq#2374
[baremetal & friends] Move on-prem api-int record to dnsmasq#2374cybertron wants to merge 1 commit intoopenshift:masterfrom
Conversation
|
/test e2e-openstack |
|
/hold @crawford @miabbott looks like others had my idea too -- moving from From the perspective of the MCO, I think using Given the discussions about |
There was a problem hiding this comment.
Perhaps using this as an ExecStartPre and then using ExecStart=/usr/bin/dnsmasq -k?
There was a problem hiding this comment.
Makes sense. This is a holdover from the nodeip-configuration service I stole the pattern from, but in that case the podman call is the only thing being run.
One of our primary motivations for wanting this over /etc/hosts is that we need to be able to modify the records, potentially after initial deployment. With /etc/hosts I believe we'd have to restart all of the pods on the system to pick up changes. With dnsmasq, we just make the change, SIGHUP it (or the dbus equivalent), and all of the pods will use the new address immediately. |
I've spoken with a few folks and the consensus is that using |
|
/unhold |
|
Don't you need to update CoreDNS port also for 'friends' platforms files (e.g: https://github.com/openshift/machine-config-operator/blob/master/templates/common/vsphere/files/coredns-corefile.yaml) ? |
Hmm, that seems bad. It means both the on-prem and the vsphere template are going to be written to the same location. I guess it must happen to work out, but we should probably work with the vsphere team to converge those files. |
This is in preparation for moving the cluster-hosted network services to a separate operator. With coredns no longer running as a static pod, it will not be usable for providing the api-int record needed for the node to register. We decided to use dnsmasq instead of /etc/hosts because when a deployer wants to use an external loadbalancer it will be necessary to change the api-int record. If it's in /etc/hosts, that will require restarting many/all of the pods to pick up the change. Using dnsmasq allows us to just change the record in dnsmasq and SIGHUP it. To allow dnsmasq and coredns to coexist on the node, coredns is moved to port 5333 and dnsmasq has a server entry added to send queries for the cluster domain to coredns.
5083958 to
eb88780
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: cybertron The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Okay, I moved the config rendering to Pre and removed the Reload command because we aren't using it and I'm not sure it was working correctly anyway. I also have #2410 up to de-dupe the Corefiles because I think that's something we should do anyway. We either need to merge that or I'll need to change the port in those configs as well. /hold |
|
This is probably going to be superseded by #2450 but since that's a more significant change there's a possibility it will be nacked by the associated enhancement review. |
|
@cybertron: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
Issues go stale after 90d of inactivity. Mark the issue as fresh by commenting If this issue is safe to close now please do so with /lifecycle stale |
|
Stale issues rot after 30d of inactivity. Mark the issue as fresh by commenting If this issue is safe to close now please do so with /lifecycle rotten |
|
Rotten issues close after 30d of inactivity. Reopen the issue by commenting /close |
|
@openshift-bot: Closed this PR. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
This is in preparation for moving the cluster-hosted network services
to a separate operator. With coredns no longer running as a static
pod, it will not be usable for providing the api-int record needed
for the node to register.
We decided to use dnsmasq instead of /etc/hosts because when a
deployer wants to use an external loadbalancer it will be necessary
to change the api-int record. If it's in /etc/hosts, that will require
restarting many/all of the pods to pick up the change. Using dnsmasq
allows us to just change the record in dnsmasq and SIGHUP it.
To allow dnsmasq and coredns to coexist on the node, coredns is moved
to port 5333 and dnsmasq has a server entry added to send queries
for the cluster domain to coredns.
- Description for the changelog
Move api-int record for on-prem platforms to dnsmasq service.