From 465e8a809add755a9941eaa650e393d194752821 Mon Sep 17 00:00:00 2001 From: Yoan Blanc Date: Wed, 4 Jul 2018 08:08:41 +0200 Subject: [PATCH] exoscale: rename exo into exoscale Signed-off-by: Yoan Blanc --- Gopkg.lock | 14 +++++++++++++- Gopkg.toml | 4 ++++ README.md | 1 + main.go | 2 +- pkg/apis/externaldns/types.go | 12 ++++++------ provider/exoscale.go | 10 +++++----- 6 files changed, 30 insertions(+), 13 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 5bec243174..76304ae1ac 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -189,6 +189,12 @@ ] revision = "09691a3b6378b740595c1002f40c34dd5f218a22" +[[projects]] + name = "github.com/exoscale/egoscale" + packages = ["."] + revision = "631ee6ea16ccb48a0c98054fdbf0f6e94d8f4a8c" + version = "v0.9.31" + [[projects]] branch = "master" name = "github.com/ffledgling/pdns-go" @@ -287,6 +293,12 @@ packages = ["."] revision = "e2811d86bed7bb487eeb0806337b6f9e9d93d5e7" +[[projects]] + branch = "master" + name = "github.com/jinzhu/copier" + packages = ["."] + revision = "7e38e58719c33e0d44d585c4ab477a30f8cb82dd" + [[projects]] name = "github.com/jmespath/go-jmespath" packages = ["."] @@ -666,6 +678,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "8d8869be9b64013c9670a0ba7f6a6eeaf31941fcfbdfc13f0fa57626e767c517" + inputs-digest = "ae5cbe56f98ce3856d7794059b6ca81993a6ad1b7ed4c2af3a9d6b4d33f81a6c" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index 106171ae0d..a10f445b4f 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -67,3 +67,7 @@ ignored = ["github.com/kubernetes/repo-infra/kazel"] [[constraint]] name = "github.com/nesv/go-dynect" version = "0.6.0" + +[[constraint]] + name = "github.com/exoscale/egoscale" + version = "~0.9.31" diff --git a/README.md b/README.md index ac810f12a1..304811942e 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ ExternalDNS' current release is `v0.5`. This version allows you to keep selected * [OpenStack Designate](https://docs.openstack.org/designate/latest/) * [PowerDNS](https://www.powerdns.com/) * [CoreDNS](https://coredns.io/) +* [Exoscale](https://www.exoscale.com/dns/) From this release, ExternalDNS can become aware of the records it is managing (enabled via `--registry=txt`), therefore ExternalDNS can safely manage non-empty hosted zones. We strongly encourage you to use `v0.5` (or greater) with `--registry=txt` enabled and `--txt-owner-id` set to a unique value that doesn't change for the lifetime of your cluster. You might also want to run ExternalDNS in a dry run mode (`--dry-run` flag) to see the changes to be submitted to your DNS Provider API. diff --git a/main.go b/main.go index b3a691f3a2..4db0532bc2 100644 --- a/main.go +++ b/main.go @@ -143,7 +143,7 @@ func main() { case "coredns", "skydns": p, err = provider.NewCoreDNSProvider(domainFilter, cfg.DryRun) case "exoscale": - p, err = provider.NewExoscaleProvider(cfg.ExoEndpoint, cfg.ExoAPIKey, cfg.ExoAPISecret, provider.ExoWithDomain(domainFilter), provider.ExoWithLogging()), nil + p, err = provider.NewExoscaleProvider(cfg.ExoscaleEndpoint, cfg.ExoscaleAPIKey, cfg.ExoscaleAPISecret, provider.ExoscaleWithDomain(domainFilter), provider.ExoscaleWithLogging()), nil case "inmemory": p, err = provider.NewInMemoryProvider(provider.InMemoryInitZones(cfg.InMemoryZones), provider.InMemoryWithDomain(domainFilter), provider.InMemoryWithLogging()), nil case "designate": diff --git a/pkg/apis/externaldns/types.go b/pkg/apis/externaldns/types.go index bb6bb1472a..1b7ef0e0aa 100644 --- a/pkg/apis/externaldns/types.go +++ b/pkg/apis/externaldns/types.go @@ -79,9 +79,9 @@ type Config struct { MetricsAddress string LogLevel string TXTCacheInterval time.Duration - ExoEndpoint string - ExoAPIKey string - ExoAPISecret string + ExoscaleEndpoint string + ExoscaleAPIKey string + ExoscaleAPISecret string } var defaultConfig = &Config{ @@ -197,9 +197,9 @@ func (cfg *Config) ParseFlags(args []string) error { app.Flag("pdns-server", "When using the PowerDNS/PDNS provider, specify the URL to the pdns server (required when --provider=pdns)").Default(defaultConfig.PDNSServer).StringVar(&cfg.PDNSServer) app.Flag("pdns-api-key", "When using the PowerDNS/PDNS provider, specify the URL to the pdns server (required when --provider=pdns)").Default(defaultConfig.PDNSAPIKey).StringVar(&cfg.PDNSAPIKey) - app.Flag("exo-endpoint", "Provide the endpoint for the Exoscale provider").Default("").StringVar(&cfg.ExoEndpoint) - app.Flag("exo-apikey", "Provide your API Key for the Exoscale provider").Default("").StringVar(&cfg.ExoAPIKey) - app.Flag("exo-apisecret", "Provide your API Secret for the Exoscale provider").Default("").StringVar(&cfg.ExoAPISecret) + app.Flag("exoscale-endpoint", "Provide the endpoint for the Exoscale provider").Default("https://api.exoscale.ch/dns").StringVar(&cfg.ExoscaleEndpoint) + app.Flag("exoscale-apikey", "Provide your API Key for the Exoscale provider").Default("").StringVar(&cfg.ExoscaleAPIKey) + app.Flag("exoscale-apisecret", "Provide your API Secret for the Exoscale provider").Default("").StringVar(&cfg.ExoscaleAPISecret) // Flags related to policies app.Flag("policy", "Modify how DNS records are sychronized between sources and providers (default: sync, options: sync, upsert-only)").Default(defaultConfig.Policy).EnumVar(&cfg.Policy, "sync", "upsert-only") diff --git a/provider/exoscale.go b/provider/exoscale.go index 70fe6102e8..f7412d9259 100644 --- a/provider/exoscale.go +++ b/provider/exoscale.go @@ -129,7 +129,7 @@ func (ep *ExoscaleProvider) Records() ([]*endpoint.Endpoint, error) { } for _, r := range record { switch r.RecordType { - case "A", "CNAME", "TXT": + case "A", "AAAA", "CNAME", "TXT": break default: continue @@ -143,15 +143,15 @@ func (ep *ExoscaleProvider) Records() ([]*endpoint.Endpoint, error) { return endpoints, nil } -// ExoWithDomain modifies the domain on which dns zones are filtered -func ExoWithDomain(domainFilter DomainFilter) ExoscaleOption { +// ExoscaleWithDomain modifies the domain on which dns zones are filtered +func ExoscaleWithDomain(domainFilter DomainFilter) ExoscaleOption { return func(p *ExoscaleProvider) { p.domain = domainFilter } } -// ExoWithLogging injects logging when ApplyChanges is called -func ExoWithLogging() ExoscaleOption { +// ExoscaleWithLogging injects logging when ApplyChanges is called +func ExoscaleWithLogging() ExoscaleOption { return func(p *ExoscaleProvider) { p.OnApplyChanges = func(changes *plan.Changes) { for _, v := range changes.Create {