add Edka, 2 templates - #1509
Merged
pawel-kow merged 1 commit intoAug 9, 2026
Merged
Conversation
New templates for Edka (edka.io): cluster domain routing (A/AAAA, wildcard CNAME, ACME DNS-01 delegation CNAME) and a hostRequired variant for exact-host CNAME routing. Synchronous flow only, signed via syncPubKeyDomain=domainconnect.edka.io (key published at _dck1.domainconnect.edka.io). Record values are derived server-side from authenticated cluster state, never from the browser.
|
✅ JSON Filename Check Passed |
PR Description Check PassedAll required sections are filled in correctly. Details |
|
✅ JSON Schema Validation Passed |
Linter OK
|
| Level | Code | Note |
|---|
edka.io.cluster.json
| Level | Code | Note |
|---|
pawel-kow
approved these changes
Aug 9, 2026
|
Thanks @camilb for contributing to the template. 🎉 This template has been reviewed and merged by @pawel-kow. 🙌 This template repository and its review process are maintained by independent individuals in their spare time, not as part of a paid role. If you or your company benefit from this protocol and its tools, please show your appreciation by buying a beer for @pawel-kow: https://github.com/sponsors/pawel-kow |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Two new templates for Edka (edka.io), a Kubernetes cluster management platform. Users add a domain (exact host or wildcard) to their cluster and the templates create the routing records plus an ACME DNS-01 delegation CNAME used for certificate issuance:
edka.io.cluster.json: apex/exact-host and wildcard A + AAAA routing, wildcard CNAME routing, and the_acme-challengedelegation CNAME.edka.io.cluster-cname.json(hostRequired: true): exact-host CNAME routing variant. Split into its own template so the CNAME on host@complies with the schema's hostRequired rule; our backend refuses to use it at the bare zone apex.Only the synchronous flow is used. Every apply URL is signed (
syncPubKeyDomain=domainconnect.edka.io, key already published at_dck1.domainconnect.edka.io), and the variable values are derived server-side from the authenticated, account-scoped cluster state (load balancer IPs, cluster hostname, delegation target). They are never taken from the browser.Both templates pass
dc-template-linter -loglevel error -tolerate info -logos(also clean in-cloudflaremode).Type of change
How Has This Been Tested?
<providerId>.<serviceId>.jsonlogoUrlis actually served by a webserverChecklist of common problems
syncPubKeyDomainis set — this is mandatory; omitting it requires explicit justification in the PR description or the PR will be rejectedwarnPhishingis not set alongsidesyncPubKeyDomain— the two must not appear togethersyncRedirectDomainis set whenever the template usesredirect_uriin the synchronous flow"v=spf1 ...") — use theSPFMrecord type instead (no TXT records in these templates)txtConflictMatchingModeis set on every TXT record that must be unique per label or content prefix (n/a, no TXT records)@ TXT "%foo%") unless necessary — justification: the record values are cluster load balancer IPv4/IPv6 addresses (%ip4_n%/%ip6_n%), a per-customer cluster hostname (%cnameTarget%), and a per-domain ACME delegation target (%tlsTarget%). None of these admit a fixed prefix or suffix: IPs cannot be prefixed, the CNAME target can be a customer-owned hostname (e.g. a Tailscale tailnet host), and the delegation zone must remain rotatable without a template version bump. As mitigation, all apply URLs are signed and the values are computed by our backend from authenticated cluster state, never accepted from the client.hostlabel — hosts are fixed (@,*,_acme-challenge)hostfield to create a subdomain — thehostparameter is used%host%does not appear explicitly in anyhostattributeessentialis set toOnApplyon records the end user may need to modify or remove without breaking the template — not set: every record in the selected groups is required for the service to function, and the TLS delegation record is already independently selectable via its owntlsgroup.Online Editor test results
Editor test link(s):
Test edka.io/cluster example.com/@
Test edka.io/cluster example.com/apps
Test edka.io/cluster-cname example.com/app