Skip to content

domainik is a Kubernetes operator, which automatically setup DNS records pointing to your Kubernetes cluster.

Notifications You must be signed in to change notification settings

deinstapel/domainik

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

domainik - Domain Manager Dominik

domainik is a Kubernetes operator, which automatically setup DNS records pointing to your Kubernetes cluster.

domainik currently supports the following vendors:

We defined an extensible API, so any other vendor can be implemented easily and we will be happy to merge Pull Requests.

Installation

kubectl apply -f kubernetes/crds.yaml
kubectl apply -f kubernetes/operator.yaml

Configuration

domainik is configured with CRDs and Annotations.

Domain Managers

We create a resource for every domain manager, which is backed by a secret containing the credentials.

Route53

apiVersion: dns.deinstapel.de/v1
kind: DomainManager
metadata:
  name: cloudflare
spec:
  route53: 
    secretRef:
      name: route53
      namespace: domains

Therefore you need a fitting secret with the keys apiMail, which contains your account mail address, and apiKey, which contains your API key.

Cloudflare

apiVersion: dns.deinstapel.de/v1
kind: DomainManager
metadata:
  name: cloudflare
spec:
  cloudflare:
    secretRef:
      name: cloudflare
      namespace: domains

Therefore you need a fitting secret with the keys accessKeyId, which contains your access key id, and secretAccessKey, which contains the corresponding secret.

Domains

We create a resource for every domain. domainik automagically determines which Domain Manager is responsible for this domain and uses this Domain Manager to create the correct DNS entries.

nodeSelector contains a standard Kubernetes node selector, which can be used to point domains to specific machines, which have an Ingress installed.

records contains an array of domains, which should be pointing to the matched nodes. The domains do not necessary need to be part of the same Domain Manager.

apiVersion: dns.deinstapel.de/v1
kind: Domain
metadata:
  name: test-domain
spec:
  nodeSelector:
     node-role.kubernetes.io/worker: ""
  records:
    - "deinstapel.de"
    - "*.deinstapel.de"

Annotations

We have some annotations for convenience functions.

Disabling a node forcefully.

dns.deinstapel.de/force-disable-node: true disables a node forcefully, regardless of their node state.

Versions

TODO: Release Versions

About

domainik is a Kubernetes operator, which automatically setup DNS records pointing to your Kubernetes cluster.

Resources

Stars

Watchers

Forks

Packages

No packages published