-
Notifications
You must be signed in to change notification settings - Fork 1
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
feat: implement graceful, modifiable UDS Core CoreDNS overrides #112
Conversation
Local tests were performed to ensure the override works with UDS Core (slim-dev):
EDIT: let me know if this is something you want me to automate into a CI test. |
Co-authored-by: Micah Nagel <micah.nagel@defenseunicorns.com>
@rjferguson21 @mjnagel I sort of modified things based on a combination of your guys' comments. Please let me know if there's more you'd like me to change. Thank you! |
@rjferguson21 @mjnagel turns out, the wrong indent type was used, thanks @rjferguson21 for pointing it out! Everything is in working order now. feel free to run things without and with an override to see how they work. |
Final output without providing the override at deployment: apiVersion: v1
data:
uds.override: |
rewrite stop {
name regex (.*\.admin\.uds\.dev) admin-ingressgateway.istio-admin-gateway.svc.cluster.local answer auto
}
rewrite stop {
name regex (.*\.uds\.dev) tenant-ingressgateway.istio-tenant-gateway.svc.cluster.local answer auto
}
rewrite stop {
name regex (.*\.uds\.dev) host.k3d.internal answer auto
}
kind: ConfigMap
metadata:
annotations:
meta.helm.sh/release-name: uds-dev-stack
meta.helm.sh/release-namespace: uds-dev-stack
labels:
app.kubernetes.io/managed-by: Helm
name: coredns-custom
namespace: kube-system Final output when supplying the override within docs/DNS.md: apiVersion: v1
data:
uds.override: |
rewrite stop {
name regex (.*\.uds\.dev) host.k3d.internal answer auto
}
kind: ConfigMap
metadata:
annotations:
meta.helm.sh/release-name: uds-dev-stack
meta.helm.sh/release-namespace: uds-dev-stack
labels:
app.kubernetes.io/managed-by: Helm
name: coredns-custom
namespace: kube-system |
Description
Implements an alternative CoreDNS override that relies on UDS Core's base service mesh, Istio. Uses the admin and tenant ingress gateways as the rewrite targets to gracefully handle ungraceful Docker restarts/stops, where
host.k3d.internal
fails. Also handles the case of integrating and routing to potential/future alternative service meshes via CoreDNS (e.g., kong). Another added benefit is the end-user's ability to add further rewrites based on additional or alternative gateways, domains, subdomains, services and/or virtual services.Related Issue
Fixes #99
Type of change
Checklist before merging