mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-25 10:50:59 +02:00
1.2 KiB
1.2 KiB
Development specifications
Proposal regarding the project structure and related tools
How to run
external-dns --in-cluster=false --dnsprovider=aws --source=ingress --source=service
Project structure
./main.go
./config - store configurations, flag parsing
config.go
./controller - main controlling loop
controller.go
./plan/
plan.go - implements the logic for managing records
./kubernetes/
manager.go - provides watching capabilities + clientset
./dnsprovider/ - dns providers
aws.go
google.go
fake.go
dnsprovider.go - interface
./source/ - list of sources
fake.go
ingress.go
service.go
source.go - interface
Vendoring tool
- glide - to be used
- alternatives: govendor, godep
Dependencies
Logging
- logrus - to be used
- alternatives: uber-go/zap, glog
Flags
- spf13/pflag - to be used
- alternatives - kingpin, jessevdk/go-flags
Clients
- k8s.io/client-go
- aws-sdk-go
- google.golang.org/api/dns/v1
Build
- Makefile - to be used
- alternatives: bazel.io