Skip to content
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

Introduce new external facing domain, and kubernetes-sigs/external-dns #43

Merged
merged 24 commits into from
Jan 14, 2021

Conversation

anthr76
Copy link
Owner

@anthr76 anthr76 commented Jan 11, 2021

Resolves: #42

  • Create a CNAME to NWK1 dyndns on Kutara with external DNS CRD
  • Write ansible roles to sync tsig key for internal kubernetes zone between servers
  • Deploy internal external-dns
  • Deploy external external-dns
  • Create origin-ca-issuer cert with cert-manager for new domain
  • Remove all old entries
  • Set appropriate annotations/crds on services
  • Smoke test

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
* Did not reload any daemons.

* Manually applying ipa-bind zonemod for the key.

Not sure if this will work without bouncing the daemon.

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
@anthr76
Copy link
Owner Author

anthr76 commented Jan 12, 2021

ansible role has been added though unsure if I should be reloading the daemon for bind to see the key. The role is very messy and plan on iterating in the future when ansible and non-k8s infra get's a refresh.

Docs:

https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/rfc2136.md
https://www.freeipa.org/page/Howto/DNS_updates_and_zone_transfers_with_TSIG

Ensure configuration is read

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Currently failing on flux

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Signed-off-by: anthr76 <hello@anthonyrabbito.com>
* Try omitting target (see if it takes endpoint on ingress)
* Create external Load Balancer DNS entry
** No records on CNAMEs**

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
@anthr76
Copy link
Owner Author

anthr76 commented Jan 12, 2021

More safety should be added to ansible before finishing this PR. Internal is successfully setup and needs DNSEndpoints/Annotations on services

@anthr76
Copy link
Owner Author

anthr76 commented Jan 13, 2021

Flux alerts have been suspended while testing

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
* Use only one service
* Add DNS entrypoint

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Added new cert in with quick renewals. Testing to come

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Added grafana to Kutara

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Cloudflare strict will be used and instead of using SNI entry we'll use
a new A record.

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Currently wihtout built in LE Traefik has terrible suport for making the
instance aware of certs. A config-map has been implemented to add a
default TLSstore and a Kubernetes CRD was not working correctly. After
spending tons of hour debugging this it might be worth to go to lstio.
Along with this Traefik needs root privelages to properly upgrade HTTP
requests at the entry point.

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
@anthr76
Copy link
Owner Author

anthr76 commented Jan 13, 2021

Considering deploy lstio in place for traefik given these constraints:

  • Only one TLSStore in traefik.
  • CRDs are simply not working
  • TLS options are equally as rigid as TLS stores
  • HTTPs upgrades at the entrypoint requires root privileges

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Signed-off-by: anthr76 <hello@anthonyrabbito.com>
Signed-off-by: anthr76 <hello@anthonyrabbito.com>
* Move auth providers to external domain
* Semi-split horizon DNS
* Specify ingressclass, this is not nessecary on some charts as they're
using the new ingress API but on some charts it's required.
* Specify target's on DNSEndpoints
* Rotate secrets
* Auto-DNS setting on ingresses regardless of zone. DNSEndpoint CRD on
IngressRoute CRDs
* Use secret name instead of specifiying hostname in TLS spec on
ingress. This prevents traefik logs of getting flooded

Signed-off-by: anthr76 <hello@anthonyrabbito.com>
@anthr76 anthr76 marked this pull request as ready for review January 14, 2021 03:01
Signed-off-by: anthr76 <hello@anthonyrabbito.com>
@anthr76
Copy link
Owner Author

anthr76 commented Jan 14, 2021

This can be merged.

Takeaways

lstio soon.

@anthr76 anthr76 merged commit a9da332 into main Jan 14, 2021
@anthr76 anthr76 deleted the external-dns branch January 14, 2021 03:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Introduce new external facing domain, and kubernetes-sigs/external-dns
1 participant