/* Package external implements external names for kubernetes clusters. This plugin only handles three qtypes (except the apex queries, because those are handled differently). We support A, AAAA and SRV request, for all other types we return NODATA or NXDOMAIN depending on the state of the cluster. A plugin willing to provide these services must implement the Externaler interface, although it likely only makes sense for the *kubernetes* plugin. */ package external import ( "context" "github.com/coredns/coredns/plugin" "github.com/coredns/coredns/plugin/etcd/msg" "github.com/coredns/coredns/plugin/pkg/upstream" "github.com/coredns/coredns/request" "github.com/miekg/dns" ) // Externaler defines the interface that a plugin should implement in order to be used by External. type Externaler interface { // External returns a slice of msg.Services that are looked up in the backend and match // the request. External(request.Request) ([]msg.Service, int) // ExternalAddress should return a string slice of addresses for the nameserving endpoint. ExternalAddress(state request.Request) []dns.RR } // External resolves Ingress and Loadbalance IPs from kubernetes clusters. type External struct { Next plugin.Handler Zones []string hostmaster string apex string ttl uint32 upstream *upstream.Upstream externalFunc func(request.Request) ([]msg.Service, int) externalAddrFunc func(request.Request) []dns.RR } // New returns a new and initialized *External. func New() *External { e := &External{hostmaster: "hostmaster", ttl: 5, apex: "dns"} return e } // ServeDNS implements the plugin.Handle interface. func (e *External) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) { state := request.Request{W: w, Req: r} zone := plugin.Zones(e.Zones).Matches(state.Name()) if zone == "" { return plugin.NextOrFailure(e.Name(), e.Next, ctx, w, r) } if e.externalFunc == nil { return plugin.NextOrFailure(e.Name(), e.Next, ctx, w, r) } state.Zone = zone for _, z := range e.Zones { // TODO(miek): save this in the External struct. if state.Name() == z { // apex query ret, err := e.serveApex(state) return ret, err } if dns.IsSubDomain(e.apex+"."+z, state.Name()) { // dns subdomain test for ns. and dns. queries ret, err := e.serveSubApex(state) return ret, err } } svc, rcode := e.externalFunc(state) m := new(dns.Msg) m.SetReply(state.Req) if len(svc) == 0 { m.Rcode = rcode m.Ns = []dns.RR{e.soa(state)} w.WriteMsg(m) return 0, nil } switch state.QType() { case dns.TypeA: m.Answer = e.a(ctx, svc, state) case dns.TypeAAAA: m.Answer = e.aaaa(ctx, svc, state) case dns.TypeSRV: m.Answer, m.Extra = e.srv(svc, state) default: m.Ns = []dns.RR{e.soa(state)} } // If we did have records, but queried for the wrong qtype return a nodata response. if len(m.Answer) == 0 { m.Ns = []dns.RR{e.soa(state)} } w.WriteMsg(m) return 0, nil } // Name implements the Handler interface. func (e *External) Name() string { return "k8s_external" } es-handling'>densities-handling Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/examples/with-markdown-shiki/src (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2022-09-30[@astrojs/image] fixes a bug in dev when <Image /> is used with no transforma...Gravatar Tony Sullivan 5-6/+30
2022-09-30Update seven-shrimps-hope.md (#4934)Gravatar Tony Sullivan 1-1/+1
2022-09-30[ci] update lockfile (#4927)Gravatar Fred K. Bot 1-280/+280
2022-09-30Move module declarations for Markdown and MDX so they're available everywhere...Gravatar Erika 4-35/+46
2022-09-29[ci] formatGravatar tony-sull 4-17/+29
2022-09-29[@astrojs/image] adding caching support for SSG builds (#4909)Gravatar Tony Sullivan 8-10/+240
2022-09-29[ci] release (#4903)astro@1.4.0@astrojs/vue@1.1.0@astrojs/vercel@2.1.0@astrojs/telemetry@1.0.1@astrojs/tailwind@2.0.2@astrojs/svelte@1.0.1@astrojs/rss@1.0.2@astrojs/preact@1.1.1@astrojs/node@1.1.0@astrojs/netlify@1.1.0@astrojs/mdx@0.11.3@astrojs/markdown-remark@1.1.3@astrojs/image@0.8.1@astrojs/deno@1.1.0@astrojs/cloudflare@2.1.0Gravatar Fred K. Bot 65-235/+512
2022-09-29[ci] update lockfile (#4899)Gravatar Fred K. Bot 1-735/+718
2022-09-29[ci] formatGravatar matthewp 1-1/+3
2022-09-29fix trailing slash mismatch in dev vs build in docs example (#4912)Gravatar Rishi Raj Jain 1-1/+1
2022-09-29[ci] formatGravatar bluwy 1-1/+1
2022-09-29Support Vue JSX (#4897)Gravatar Bjorn Lu 12-5/+329
2022-09-28[ci] formatGravatar matthewp 1-8/+4
2022-09-28Fix CSS ordering between imported and Astro styles (#4907)Gravatar Matthew Phillips 12-7/+218
2022-09-28[ci] formatGravatar matthewp 23-137/+127
2022-09-28Astro.cookies implementation (#4876)Gravatar Matthew Phillips 32-29/+943
2022-09-28Fix: let Squoosh default image quality internally (#4906)Gravatar Tony Sullivan 5-11/+20
2022-09-28Update README.md (#4898)Gravatar stijlmassi 1-2/+3
2022-09-28Fix test (#4904)Gravatar Bjorn Lu 2-1/+7
2022-09-28[ci] formatGravatar FredKSchott 2-4/+4
2022-09-28redesign basics template (#4879)Gravatar Fred K. Schott 3-88/+34
2022-09-28[ci] formatGravatar bluwy 1-2/+2
2022-09-28Remove shamefully-hoist (#4842)Gravatar Bjorn Lu 104-527/+768
2022-09-28[ci] formatGravatar matthewp 4-14/+16
2022-09-28Hoist hydration script out of slot templates (#4891)Gravatar Matthew Phillips 13-43/+165
2022-09-28Ensure head content rendered once with lazy layouts (#4892)Gravatar Matthew Phillips 9-3/+59
2022-09-27fixed typing (#4893)Gravatar tweenietomatoes 1-1/+1
2022-09-27[ci] release (#4846)create-astro@1.1.0astro@1.3.1@astrojs/webapi@1.1.0@astrojs/vercel@2.0.1@astrojs/mdx@0.11.2@astrojs/image@0.8.0Gravatar Fred K. Bot 60-185/+169
2022-09-27fix: post API routes in SSG should warn or error during dev mode (#4878)Gravatar Rishi Raj Jain 3-2/+17
2022-09-27docs: Fix links to Tailwind examples (#4883)Gravatar Deanmv 1-1/+1
2022-09-27Set SSR target webworker for Vercel edge (#4884)Gravatar Bjorn Lu 2-0/+6
2022-09-27[ci] update lockfile (#4885)Gravatar Fred K. Bot 1-86/+79
2022-09-26[ci] formatGravatar bholmesdev 3-23/+19
2022-09-26Fix: correctly transform `import.meta.env.*` in MDX (#4858)Gravatar Ben Holmes 12-233/+454
2022-09-26Change negative lookbehind to lookahead (#4866)Gravatar Rishi Raj Jain 1-1/+1
2022-09-26add double check on astro file return type to display more human readable err...Gravatar Steven Yung 6-2/+61
2022-09-26[ci] update lockfile (#4862)Gravatar Fred K. Bot 1-81/+81
2022-09-26fix: Script with innerHTML not working on Safari (#4861)Gravatar Rishi Raj Jain 3-3/+10
2022-09-26Prevent /undefined catch-all routes in dev (#4873)Gravatar Bjorn Lu 6-9/+66
2022-09-26fix: 🐛 BUG: class:list directive adding class attribute when undefined (#4...Gravatar Rishi Raj Jain 2-2/+9
2022-09-26docs: Standardize common integration READMEs (#4874)Gravatar Jake Strawn 7-6/+66
2022-09-26docs: Update references to support channel in Discord. (#4872)Gravatar Jake Strawn 12-12/+12
2022-09-26[ci] formatGravatar bluwy 1-1/+1
2022-09-26fix: "chunks" directory appears in build output, if custom modules are import...Gravatar Rishi Raj Jain 2-6/+34
2022-09-23[ci] formatGravatar matthewp 1-1/+1
2022-09-23Define toStringTag another way (#4855)Gravatar Matthew Phillips 2-4/+12
2022-09-23update SSR example to match recent change on Astro API Context (#4854)Gravatar Steven Yung 2-4/+6
2022-09-23[ci] update lockfile (#4852)Gravatar Fred K. Bot 1-373/+402