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
Add A/AAAA record types for VIP DNS entries #60
Add A/AAAA record types for VIP DNS entries #60
Conversation
We add records for some of the VIPs to our internal coredns server. These records need to be of the appropriate type for the ip version used. This change adds record type fields to the cluster for use in the coredns config file. Two fields are added for each VIP: One that specifies the correct type of record, and one that specifies the other so that we are able to correctly handle requests for the wrong record type too.
2f7bce9
to
4691e53
Compare
/retest |
/retest packet host never came up |
/retest |
/retest It's failing progressively faster each time... |
/retest |
/retest Never deployed masters |
/retest |
1 similar comment
/retest |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: celebdor, cybertron, yboaron 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 |
/retest Please review the full test history for this PR and help us cut down flakes. |
4 similar comments
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/test e2e-metal-ipi |
/retest Please review the full test history for this PR and help us cut down flakes. |
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.
/cherry-pick release-4.5 |
@cybertron: new pull request created: #69 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.
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.
We add records for some of the VIPs to our internal coredns server.
These records need to be of the appropriate type for the ip version
used. This change adds record type fields to the cluster for use
in the coredns config file. Two fields are added for each VIP:
One that specifies the correct type of record, and one that specifies
the other so that we are able to correctly handle requests for the
wrong record type too.