New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug 1851541: Correctly handle requests for ipv4/ipv6 records #1870
Bug 1851541: Correctly handle requests for ipv4/ipv6 records #1870
Conversation
Previously the ingress record was hard-coded to be an A record, which does not work when deploying with an ipv6 ingress VIP. While fixing that, an issue with the api and api-int records was also exposed. According to RFC 4074, when a query for a record comes in that asks for the wrong type of record (i.e. asking for an A record when only a AAAA record exists), the server should return NOERROR with an empty list of records. This indicates to the client resolver that a record of that name exists, but not with that type. For our purposes, it was necessary to convert all of the records to use the template plugin in order to get this behavior. The hosts plugin previously used for the api records does not correctly handle requests for the wrong record type, at least with the fallthrough option that we also need. The file plugin, which does correctly handle requests for the wrong record type, has a different issue. We want to allow external records in the same subdomain (and this is necessary for development purposes), but there is no way to make the file plugin forward requests it can't handle. To make the template plugin behave correctly, two entries are needed for each record: one with the correct type and the appropriate answer, and one with the incorrect type and an empty answer. This gets us RFC-compliant behavior while still allowing fallthrough for requests that are not present in the local server. This change requires new fields from baremetal-runtimecfg that are added in openshift/baremetal-runtimecfg#60.
@cybertron: No Bugzilla bug is referenced in the title of this pull request. In 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. |
/retest |
@cybertron: This pull request references Bugzilla bug 1851541, which is valid. The bug has been updated to refer to the pull request using the external bug tracker. 6 validation(s) were run on this bug
In 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. |
/hold This needs openshift/baremetal-runtimecfg#69 |
/hold cancel |
/assign @celebdor |
/approve |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: bcrochet, cybertron, runcom The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@cybertron: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. 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. I understand the commands that are listed here. |
/retest Please review the full test history for this PR and help us cut down flakes. |
@cybertron: All pull requests linked via external trackers have merged: openshift/machine-config-operator#1870, openshift/baremetal-runtimecfg#69. Bugzilla bug 1851541 has been moved to the MODIFIED state. In 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. |
Previously the ingress record was hard-coded to be an A record, which
does not work when deploying with an ipv6 ingress VIP. While fixing
that, an issue with the api and api-int records was also exposed.
According to RFC 4074, when a query for a record comes in that asks
for the wrong type of record (i.e. asking for an A record when only
a AAAA record exists), the server should return NOERROR with an
empty list of records. This indicates to the client resolver that
a record of that name exists, but not with that type.
For our purposes, it was necessary to convert all of the records to
use the template plugin in order to get this behavior. The hosts
plugin previously used for the api records does not correctly handle
requests for the wrong record type, at least with the fallthrough
option that we also need. The file plugin, which does correctly
handle requests for the wrong record type, has a different issue.
We want to allow external records in the same subdomain (and this is
necessary for development purposes), but there is no way to make
the file plugin forward requests it can't handle.
To make the template plugin behave correctly, two entries are needed
for each record: one with the correct type and the appropriate answer,
and one with the incorrect type and an empty answer. This gets us
RFC-compliant behavior while still allowing fallthrough for requests
that are not present in the local server.
This change requires new fields from baremetal-runtimecfg that are
added in openshift/baremetal-runtimecfg#60.
- What I did
- How to verify it
- Description for the changelog