Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: update readme #17

Merged
merged 1 commit into from
May 25, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 63 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,64 @@
# ExternalDNS - Unifi Webhook
# ExternalDNS webhook provider for UniFi

There be dragons ...
⚠️ This software is experimental and **NOT FIT FOR PRODUCTION USE!**

[ExternalDNS](https://github.com/kubernetes-sigs/external-dns) is a Kubernetes add-on for automatically managing DNS records for Kubernetes ingresses and services by using different DNS providers. This webhook allows to manage your UniFi domains inside your Kubernetes cluster.

## Requirements

- ExternalDNS >= v0.14.0
- UniFi OS >= 4.0.3 (currently Early Access only)
- UniFi Network >= 8.2.87 (currently Early Access only)

## Deployment

1. Create a local user with a password in your UniFi OS, this user only needs read/write access to the UniFi Network appliance.

2. Add the ExternalDNS Helm repository to your cluster.

```shell
helm repo add external-dns https://kubernetes-sigs.github.io/external-dns/
```

3. Create the helm values file, for example `external-dns-unifi-values.yaml`:

```yaml
fullnameOverride: external-dns-unifi
logLevel: debug
provider:
name: webhook
webhook:
image:
repository: ghcr.io/kashalls/external-dns-unifi-webhook
tag: main # replace with a versioned release tag
env:
- name: UNIFI_HOST
value: https://192.168.1.1 # replace with the address to your UniFi router
- name: SERVER_HOST
value: 0.0.0.0
- name: UNIFI_USER
valueFrom:
secretKeyRef:
name: external-dns-unifi-secret
key: username
- name: UNIFI_PASS
valueFrom:
secretKeyRef:
name: external-dns-unifi-secret
key: password
- name: LOG_LEVEL
value: debug
- name: UNIFI_SKIP_TLS_VERIFY
value: "true"
policy: sync
sources: ["ingress", "service"]
txtOwnerId: default
txtPrefix: k8s.
domainFilters: ["example.com"] # replace with your domain
```

4. Install the Helm chart

```shell
helm install external-dns-unifi external-dns/external-dns -f external-dns-unifi-values yaml --version 1.14.3 -n external-dns
```