Resolve internal (on-premise) DNS server in AWS EKS via CoreDNS
Domino users often need to access on-premise services from their Domino workspace. This article explains how to configure Amazon Web Services (AWS) Elastic Kubernetes Service (EKS) CoreDNS to forward DNS queries to an on-premise DNS server, then update a Domino environment to resolve the corresponding search domain. This configuration assumes you have already established a VPN tunnel or equivalent network connectivity between AWS and your on-premise network.Prerequisites
- CoreDNS running on your EKS cluster (default since EKS v1.12). If CoreDNS isn’t installed, follow the AWS CoreDNS documentation to install it.
kubectlaccess to the EKS cluster running your Domino deployment. Update your local kubeconfig or connect directly in AWS before proceeding.
Update the CoreDNS configmap
-
Open the CoreDNS configmap for editing:
-
Locate the
Corefilesection. It looks similar to this: -
Add a new forwarding block after the closing
}of the existing stanza. Replacegoogle.comwith your on-premise domain and8.8.8.8with the IP address of your DNS server (for example, the load balancer IP for your VPN tunnel). Keep the period (.) betweenforwardand the IP address. The updatedCorefilesection should look like this: - Save the file. The editor displays a confirmation message when the configmap saves successfully.
-
Restart the CoreDNS pods to apply the change immediately:
-
Verify that the CoreDNS pods return to a Running status:
All listed pods should show
Runningin the STATUS column before you proceed.
Configure the Domino environment
Add a pre-setup script to the Domino environment. This script appends the search domain to/etc/resolv.conf inside each workspace container.
- In Domino, navigate to Environments and select the environment you want to update.
- Click Edit Definition.
- Scroll down and expand the Advanced section.
-
Enter the following script in the Pre Setup Script field, replacing
google.comwith your on-premise domain: - Save and build the environment.
Verify DNS resolution
- Start a new Jupyter workspace and open a terminal.
-
Run an
nslookupfor a hostname in your domain. Using the Google example: -
Confirm that the output resolves the short hostname to a fully qualified domain name (FQDN). Expected output:
Successful output shows the short name resolving to the FQDN (for example,
maps→maps.google.com), confirming that on-premise DNS resolution is working