Our docs state that the dns config resource should not be edited: You cannot modify the DNS settings for your cluster. You can view the DNS Operator status. But the api doc makes it seem like you can: oc explain dns.spec KIND: DNS VERSION: config.openshift.io/v1 RESOURCE: spec <Object> DESCRIPTION: spec holds user settable values for configuration FIELDS: baseDomain <string> baseDomain is the base domain of the cluster. All managed DNS records will be sub-domains of this base. For example, given the base domain `openshift.example.com`, an API server DNS record may be created for `cluster-api.openshift.example.com`. privateZone <Object> privateZone is the location where all the DNS records that are only available internally to the cluster exist. If this field is nil, no private records should be created. publicZone <Object> publicZone is the location where all the DNS records that are publicly accessible to the internet exist. If this field is nil, no public records should be created. The api doc should make it clear these fields should not be edited (and even better we should also enforce that they are not edited).
Verified with 4.2.0-0.nightly-2019-07-28-222114 and issue has been fixed. $ oc explain dns.spec --api-version=config.openshift.io/v1 KIND: DNS VERSION: config.openshift.io/v1 RESOURCE: spec <Object> DESCRIPTION: spec holds user settable values for configuration FIELDS: baseDomain <string> -required- baseDomain is the base domain of the cluster. All managed DNS records will be sub-domains of this base. For example, given the base domain `openshift.example.com`, an API server DNS record may be created for `cluster-api.openshift.example.com`. privateZone <Object> privateZone is the location where all the DNS records that are only available internally to the cluster exist. If this field is nil, no private records should be created. Once set, this field cannot be changed. publicZone <Object> publicZone is the location where all the DNS records that are publicly accessible to the internet exist. If this field is nil, no public records should be created. Once set, this field cannot be changed.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2019:2922