Comments (7)
I'm not very savvy with the networking, so forgive me if this response is silly...
The first step in the doc you pointed to says:
Manually create a DNS zone for your "root" domain (i.e. hive.example.com in the example below) and ensure your DNS is operational.
Is that referring to the SOA record in question?
from hive.
@2uasimojo my understanding of Hive's "native" support of DNS is as follows. We have two options:
- First option is when you create a
ClusterDeployment
withmanageDNS
set tofalse
. In this case no delegation happens and all the records for all clusters deployed this way being created under the "root" DNS zone Azure resource (hive.example.com
in my example). - Second option is when you create a
ClusterDeployment
withmanageDNS
set totrue
. In this case Hive creates delegated child DNS zone for each cluster (cluster.hive.example.com
in my example) under the "root" DNS zone resource (hive.example.com
in my example).
Is my understanding correct?
So the issue I'm reporting is with the second option (manageDNS: true
): Hive creates delegated child DNS zone, but doesn't not create NS
records under the "root" dns zone. And because of that it can not resolve SOA
record for the child domain.
The first step in the doc you pointed to says:
Manually create a DNS zone for your "root" domain (i.e. hive.example.com in the example below) and ensure your DNS is operational.
I did create "root" domain: it is hive.example.com
in the docs and in my example. And now hive is failing to lookup SOA record for child domain cluster.hive.example.com
.
So the picture should be something like this when you do dig cluster.hive.example.com SOA +trace
:
- Root NS servers
- NS servers for
com.
- NS servers for
example.com.
- NS servers for
hive.example.com.
- NS servers for
cluster.hive.example.com.
SOA
record forcluster.hive.example.com.
Instead it looks like this:
- Root NS servers
- NS servers for
com.
- NS servers for
example.com.
- NS servers for
hive.example.com.
SOA
record forhive.example.com.
I believe NS server which serves hive.example.com.
also replies for cluster.hive.example.com
due to lack of delegation/NS records.
from hive.
level=info msg="Existing hosted zone found. Syncing with DNSZone resource" controller=dnszone
This is the problematic part, if I recall correctly from my outdated experience. Hive will only do the NS records if it is creating the zone for the cluster's base domain. It that zone already existed, then Hive must assume that the zone is already functional.
from hive.
This is the problematic part, if I recall correctly from my outdated experience. Hive will only do the NS records if it is creating the zone for the cluster's base domain. It that zone already existed, then Hive must assume that the zone is already functional.
@staebler Hive did create a new zone cluster.hive.example.com
as it did not exist prior to creation of ClusterDeployment
, but did not create NS
records. The logs I provided above are from Hive controller which is stuck in a reconciliation loop. Unfortunately I did not capture logs from the first attempt to reconcile the DNS zone (when it was actually created by the hive controller).
I had a very quick look at the Hive codebase and I do not see any code which sets NS records on DNS zone creation at all: I only see zone creation itself:
hive/pkg/controller/dnszone/azureactuator.go
Lines 69 to 75 in bfb69ae
And implementation of CreateOrUpdateZone
:
hive/pkg/azureclient/client.go
Lines 68 to 75 in bfb69ae
Nothing about NS records here or anywhere near apart from getting nameservers in the actuator here:
hive/pkg/controller/dnszone/azureactuator.go
Lines 147 to 157 in bfb69ae
I have a feeling that there was an assumption that CreateOrUpdateZone
API call will create a delegated DNS zone in Azure (with appropriate NS
records, etc).
from hive.
Are there any logs from the dnsendpoint controller? That is the controller responsible for adding the NS records.
from hive.
There should be a ParentLinkCreated condition on the DNSZone that indicates whether Hive was able to create the NS records pointing from the managed DNS zone to the cluster's base-domain zone.
from hive.
Ok it was my fault. At some point I messed up role assignments for the service principal which I used for DNS zone management. I'm sorry for the noise. Closing this one.
from hive.
Related Issues (20)
- Error "Required value: must specify a platform" for field "spec.platform". HOT 2
- Internal Install using Private Link - Logs HOT 6
- hive upgrade to 1.1.6 is expecting CRD API version to be v1beta instead of v1 HOT 5
- Ability to Override httpCustomErrorCodePages in ClusterDeployment HOT 7
- Implement Openstack Hibernation HOT 9
- Pass skip_provider_registration flag HOT 2
- How to make Hive trust new API cert in managed cluster? HOT 6
- Hive Cluster Relocation is stuck on kube-root-ca.crt and openshift-service-ca.crt already exists HOT 5
- Rotating the admin kubeconfig after 10 years HOT 6
- Install fails on ClusterRoleBinding HOT 7
- Consider tagging submodule "apis"? HOT 2
- How if Hive released? HOT 1
- ClusterClaim-controller should watch for changes to RoleBindings as well HOT 1
- ClusterSync-controller's requeueAfter duration could be insufficient HOT 2
- Availability of Hive in ARM HOT 5
- hive-clustersync-0 - CreateContainerConfigError
- Provided SSH keypair not used for bootstrap node HOT 11
- Add IBM resource group flag in hiveutil HOT 3
- Missing Role and/or RoleBinding block clustercleanup HOT 4
- How to troubleshoot clusterpools? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hive.