This project essentially is continuously running code that updates your primary DNS record in Cloudflare.
While some might argue that a cronjob could be better suited for this, I believe that the container uses such a small amount of resources that you can only benefit by having it run all the time.
Some environment variables are required:
ACCOUNT_TOKEN
- The API token for your Cloudflare account.OR
API_KEY
- The API Key for the Cloudflare accountACCOUNT_EMAIL
- The Cloudflare account email address--zone-name
: The name of the zone you wish to modify.--record-name
: The name of the record you wish to modify inside your zone.--provider
: The provider you wish to use can be: ipify
, icanhazip
, icanhaz
. Anything other than these three will be considered as "random"--ticker
: Directly uses Golang's implementation of time.Duration
. Default is "3m", you can set this to whatever you'd like.--create-missing
: This will create the missing DNS record in the target if set to true, it is false
by default.--record-ttl
: This will set the DNS record to this TTL. 300
by default.Does not use pflag
library, set the environment variables above for Cloudflare and these
ZONE_NAME=<your name name>
RECORD_NAME=<your record name>
Helm Release - Container Example Helm Release - Serverless Example