Kuadrant / Kuadrant/dns-operator

soft delete based on service endpoints

Open
#348 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
12
Forks
23
Avg merge
1d 4h
Merged PRs (30d)
14

Description

Blocked by: #356 , #367

**What**

Currently healthchecks have to be defined and use a HTTP request response model to check the health. This is good for checking the end to end connectivity. However it requires some effort from the developer and the platform engineer in order to get into a good state and it will not work for a wildcard listener. Ideally we would have a default health check that could be performed without the need for additional configuration.

I would like that the DNS operator on a given cluster automatically checked for available endpoints via an endpointslice for a given backend ref if that backend ref was of type Service. If there were no available endpoints across all services associated with a listener, it should label those gateways addresses with soft_delete to attempt removal from the DNS Response.

**Additional Context**

Each Listener on a gateway that results in a DNSRecord has at least one HTTPRoute attached. We can inspect the attached HTTPRoutes for a given listener and check each of their backend refs for available endpoints. If there are available endpoints for given listener then we publish or keep the record in place. If there are none we remove the the records for that gateway listener host. We can achieve this without need to make http requests to an application and instead just use the k8s API.

If we chose to go with this, it should be on by default but be something that can be disabled explicitly via the policy for a gateway or listener.

**Tests**
TBD

Contributor guide

Open the contributing guide

Research direction

Start by tracing how gateway listeners, HTTPRoutes, backendRefs, EndpointSlices, and DNSRecord addresses are handled. Confirm how the existing health-check and policy paths work, then define tests for available versus unavailable Service endpoints and for explicitly disabling the behavior; the issue notes that tests are still TBD and work is blocked by #356 and #367.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
infrastructure, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.