Skip to content

Implement OpenMCP internal DNS Platform Service #95

@reshnm

Description

@reshnm

Understand the Task

Description

OpenMCP spans a network of Kubernetes clusters with operators/services on them that want to communicate with each other across the boundaries of a Kubernetes cluster.
Therefore there is a need for a service to discover the endpoint of a remote service via DNS.

All clusters of a OpenMCP landscape should have a subdomain assigned, e.g.:

platform.openmcp.cluster
workload01.openmcp.cluster

Any service provider can then request a set of subdomains that can be assigned to the service endoints, e.g.:

service-1-tenant-a.workload01.openmcp.cluster

The service provider then creates a gateway resource that matches this host name.

A service like external-dns (https://github.com/kubernetes-sigs/external-dns) could read that host name automatically in the gateway resource and create a DNS entry in the OpenMCP local DNS server that is reachable by all Kubernetes clusters in an OpenMCP landscape.
This DNS service is responsible for resolving the openmcp.cluster zone.

➡️ Repository: https://github.com/openmcp-project/platform-service-dns

Image

Any further valuable resources.

No response

What is required to accept the Task as done.

Done Criteria

  • Use external-dns in combination with a local DNS server to set-up a OpenMCP landscape local DNS service with the Kind cluster provider
  • Kube API server can also use the local DNS to resolve webhook hostnames (e.g. ValidatingWebhook)
  • Create a Gateway resource on a Cluster on Cluster A with its hostname and test if it is resolvable from Cluster B
  • Put the results in written form
  • Present results in review/dev sync

The deployment of a local dns server was taken out of scope for now, because it is not required for the productive use-cases.

Sub-issues

Metadata

Metadata

Labels

area/open-mcpAll ManagedControlPlane related issueskind/taskGeneral task that needs to be done.

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions