DNS done GitOps way
apiVersion: 1
config:
- ip: 127.0.0.1
domain: example.org
aliases:
- foo.example.org:
- bar.example.org
- baz.example.org
- foobar.example.org
The configuration consists of a number of items.
Each item must contain ip
, domain
and aliases
. aliases
is a list of trees.
dnser
will create an A record of domain
to ip
. Then it will create ALIAS tree roots to domain
,
and then alias each tree node to their parent.
dnser
will also delete all records that resolve to domain
but not present in any of the aliases
trees.
config := config.LoadFromString(yamlString)
r53Adapter := adapter.NewRoute53(id, secret)
records, err := r53Adapter.List(context.Background())
if err != nil {
panic(err)
}
m := massager.Massager{
Desired: config,
Current: records,
}
chset := m.CalculateNeededActions()
err = r53Adapter.Process(context.Background(), chset)
if err != nil {
panic(err)
}