Sign inSign up

deinstapel/domainik

By deinstapel

Updated over 4 years ago

domainik is a Kubernetes operator, which setups DNS records pointing to your k8s cluster.

Image
0

402

deinstapel/domainik repository overview

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.

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"

Versions

TODO: Release Versions

Tag summary

Content type

Image

Digest

Size

8.9 MB

Last updated

over 4 years ago

docker pull deinstapel/domainik:0.1.7