mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-26 03:11:00 +02:00
65 lines
1.2 KiB
Markdown
65 lines
1.2 KiB
Markdown
## 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
|
|
|
|
### CI/CD
|
|
|
|
- Travis CI - https://github.com/kubernetes-incubator/external-dns/issues/9
|
|
|
|
|