external-dns-bunny-webhook / README.md

1
# ExternalDNS - bunny.net provider
2
3
[ExternalDNS](https://github.com/kubernetes-sigs/external-dns) synchronises
4
exposed Kubernetes Services and Ingresses with DNS providers.
5
6
This repository contains an ExternalDNS provider for [bunny.net](https://bunny.net).
7
8
9
## Important
10
11
This is a fork of <https://github.com/contaimlabs/external-dns-bunny-webhook>.
12
As of writing, the upstream appears to be unmaintained.
13
14
This provider is not officially supported by [bunny.net](https://bunny.net).
15
16
17
## Deployment
18
19
An example of deploying the provider with Flux can be seen at
20
<https://nossa.ee/~talya/vyx/blob/main/-/flux/cassax/external-dns.yaml>.
21
22
Configuration options are available below and may be set using environment
23
variables on the webhook container.
24
25
26
## Configuration
27
28
The provider can be configured using the following environment variables:
29
30
| Environment Variable | Required | Description | Default |
31
|-------------------------|----------|------------------------------------------------------------------------------|-------------|
32
| `BUNNY_API_KEY` | Yes | The API key used to authenticate with the Bunny.net API. | |
33
| `BUNNY_DRY_RUN` | No | If set to `true`, the provider will not make any changes to the DNS records. | `false` |
34
| `WEBHOOK_HOST` | No | The host to use for the webhook endpoint. | `localhost` |
35
| `WEBHOOK_PORT` | No | The port to use for the webhook endpoint. | `8888` |
36
| `WEBHOOK_READ_TIMEOUT` | No | The read timeout for the webhook endpoint. | `60s` |
37
| `WEBHOOK_WRITE_TIMEOUT` | No | The write timeout for the webhook endpoint. | `60s` |
38
| `HEALTH_HOST` | No | The host to use for the health endpoint. | `0.0.0.0` |
39
| `HEALTH_PORT` | No | The port to use for the health endpoint. | `8080` |
40
| `HEALTH_READ_TIMEOUT` | No | The read timeout for the health endpoint. | `60s` |
41
| `HEALTH_WRITE_TIMEOUT` | No | The write timeout for the health endpoint. | `60s` |
42
43
44
## Provider-Specific Annotations
45
46
The following annotations may be added to sources to control behavior of the DNS
47
records created by this provider:
48
49
### `external-dns.alpha.kubernetes.io/webhook-bunny-disabled`
50
51
If set to `true`, the DNS record will be managed but set to disabled in the
52
Bunny API. This annotation is optional and will default to `false` if not
53
provided. Disabling a record will cause it to not respond to DNS queries, but
54
will still be managed by the provider and visible in the Bunny.net dashboard.
55
56
57
### `external-dns.alpha.kubernetes.io/webhook-bunny-monitor-type`
58
59
The monitor type to use for the DNS record. Valid values are `none` (default),
60
`http`, and `ping`. This annotation is optional and will default to `none` if
61
not provided, which will create a standard DNS record without any monitoring.
62
63
64
### `external-dns.alpha.kubernetes.io/webhook-bunny-weight`
65
66
The weight to use for the DNS record. Valid values are between 1 and 100. This
67
annotation is optional and will default to `100` if not provided. Any value
68
outside of the valid range will be set to the nearest valid value, and any
69
non-integer value will result in the default value being used.
70
71
72
## License
73
74
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
75