Categorygithub.com/lab42/kdns
repositorypackage
0.1.12
Repository: https://github.com/lab42/kdns.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author

# README

kdns

Latest Tag Build Status Go Version License Go Report Card SonarCloud Quality Gate


Overview

kdns is a lightweight mDNS (Multicast DNS) server for Kubernetes that exposes services on the local network using DNS names with .local extensions. This service helps manage local DNS resolution in Kubernetes environments, facilitating service discovery for containers without the need for a full DNS solution.

Features

  • mDNS Server: Exposes services over mDNS using .local DNS names.
  • Kubernetes Integration: Works natively within Kubernetes environments.
  • Service Discovery: Automatically discovers and advertises services to the local network.
  • Security: Runs with minimal privileges for enhanced security.
  • Helm Chart: Deployable via Helm for easy integration into your Kubernetes clusters.

Prerequisites

  • Kubernetes Cluster
  • Helm (v3.8.0 or higher recommended)
  • A running Kubernetes environment (local only)

Install using Helm

To install kdns in your Kubernetes cluster, follow these steps:

  1. Add the Helm repository:
helm repo add lab42 https://ghcr.io/lab42/charts
helm repo update
  1. Install the kdns chart:
helm install kdns lab42/kdns

This will install the kdns service with default settings in your Kubernetes cluster.

Configuration

You can customize the installation by overriding values in your values.yaml. For example:

serviceAccount:
  create: true
  name: ingress-kdns

hostNetwork: true  # Exposes the pod on the host network

To configure the kdns chart with your custom values, create a values.yaml file and pass it to Helm:

helm install kdns lab42/kdns -f values.yaml

Usage

Once kdns is installed, it will expose services on the local network using mDNS. For example, if you have a service named my-service, it will be available under my-service.local.

Example

  • Deploy a service in your Kubernetes cluster (e.g., an HTTP server running in a pod).
  • The kdns server will automatically expose this service on the local network.
  • Access it using the .local domain name, like http://my-service.local.

Helm Chart Customization

For a full list of configurable parameters, check the Helm Chart values.

Contributors

Note on Windows Support

Please be aware that I do not use Windows as part of my workflow. As a result, I cannot provide support for Windows-related issues or configurations. However, I do generate Windows executables as a courtesy for those who need them.

Thank you for your understanding!

Contributing

I welcome contributions to this project! If you have ideas for new features or improvements, please submit a feature request or contribute directly to the project.

License

This project is licensed under the MIT License.