mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-06 17:46:57 +02:00
Merge pull request #5453 from InterWorks/master
feat(cloudflare): change defaultCA from google to empty string
This commit is contained in:
commit
36bc7d6bc4
@ -92,7 +92,7 @@
|
|||||||
| `--[no-]cloudflare-proxied` | When using the Cloudflare provider, specify if the proxy mode must be enabled (default: disabled) |
|
| `--[no-]cloudflare-proxied` | When using the Cloudflare provider, specify if the proxy mode must be enabled (default: disabled) |
|
||||||
| `--[no-]cloudflare-custom-hostnames` | When using the Cloudflare provider, specify if the Custom Hostnames feature will be used. Requires "Cloudflare for SaaS" enabled. (default: disabled) |
|
| `--[no-]cloudflare-custom-hostnames` | When using the Cloudflare provider, specify if the Custom Hostnames feature will be used. Requires "Cloudflare for SaaS" enabled. (default: disabled) |
|
||||||
| `--cloudflare-custom-hostnames-min-tls-version=1.0` | When using the Cloudflare provider with the Custom Hostnames, specify which Minimum TLS Version will be used by default. (default: 1.0, options: 1.0, 1.1, 1.2, 1.3) |
|
| `--cloudflare-custom-hostnames-min-tls-version=1.0` | When using the Cloudflare provider with the Custom Hostnames, specify which Minimum TLS Version will be used by default. (default: 1.0, options: 1.0, 1.1, 1.2, 1.3) |
|
||||||
| `--cloudflare-custom-hostnames-certificate-authority=google` | When using the Cloudflare provider with the Custom Hostnames, specify which Cerrtificate Authority will be used by default. (default: google, options: google, ssl_com, lets_encrypt) |
|
| `--cloudflare-custom-hostnames-certificate-authority=none` | When using the Cloudflare provider with the Custom Hostnames, specify which Certificate Authority will be used. A value of none indicates no Certificate Authority will be sent to the Cloudflare API (default: none, options: google, ssl_com, lets_encrypt, none) |
|
||||||
| `--cloudflare-dns-records-per-page=100` | When using the Cloudflare provider, specify how many DNS records listed per page, max possible 5,000 (default: 100) |
|
| `--cloudflare-dns-records-per-page=100` | When using the Cloudflare provider, specify how many DNS records listed per page, max possible 5,000 (default: 100) |
|
||||||
| `--cloudflare-region-key=CLOUDFLARE-REGION-KEY` | When using the Cloudflare provider, specify the region (default: earth) |
|
| `--cloudflare-region-key=CLOUDFLARE-REGION-KEY` | When using the Cloudflare provider, specify the region (default: earth) |
|
||||||
| `--cloudflare-record-comment=""` | When using the Cloudflare provider, specify the comment for the DNS records (default: '') |
|
| `--cloudflare-record-comment=""` | When using the Cloudflare provider, specify the comment for the DNS records (default: '') |
|
||||||
|
@ -80,6 +80,8 @@ curl https://localhost:7979/metrics
|
|||||||
| http_request_duration_seconds |
|
| http_request_duration_seconds |
|
||||||
| process_cpu_seconds_total |
|
| process_cpu_seconds_total |
|
||||||
| process_max_fds |
|
| process_max_fds |
|
||||||
|
| process_network_receive_bytes_total |
|
||||||
|
| process_network_transmit_bytes_total |
|
||||||
| process_open_fds |
|
| process_open_fds |
|
||||||
| process_resident_memory_bytes |
|
| process_resident_memory_bytes |
|
||||||
| process_start_time_seconds |
|
| process_start_time_seconds |
|
||||||
|
@ -312,7 +312,7 @@ If not set the value will default to `global`.
|
|||||||
|
|
||||||
## Setting cloudflare-custom-hostname
|
## Setting cloudflare-custom-hostname
|
||||||
|
|
||||||
Automatic configuration of Cloudflare custom hostnames (using A/CNAME DNS records as custom origin servers) is enabled by the --cloudflare-custom-hostnames flag and the `external-dns.alpha.kubernetes.io/cloudflare-custom-hostname: <custom hostname>` annotation.
|
Automatic configuration of Cloudflare custom hostnames (using A/CNAME DNS records as custom origin servers) is enabled by the `--cloudflare-custom-hostnames` flag and the `external-dns.alpha.kubernetes.io/cloudflare-custom-hostname: <custom hostname>` annotation.
|
||||||
|
|
||||||
Multiple hostnames are supported via a comma-separated list: `external-dns.alpha.kubernetes.io/cloudflare-custom-hostname: <custom hostname 1>,<custom hostname 2>`.
|
Multiple hostnames are supported via a comma-separated list: `external-dns.alpha.kubernetes.io/cloudflare-custom-hostname: <custom hostname 1>,<custom hostname 2>`.
|
||||||
|
|
||||||
@ -320,6 +320,8 @@ See [Cloudflare for Platforms](https://developers.cloudflare.com/cloudflare-for-
|
|||||||
|
|
||||||
This feature is disabled by default and supports the `--cloudflare-custom-hostnames-min-tls-version` and `--cloudflare-custom-hostnames-certificate-authority` flags.
|
This feature is disabled by default and supports the `--cloudflare-custom-hostnames-min-tls-version` and `--cloudflare-custom-hostnames-certificate-authority` flags.
|
||||||
|
|
||||||
|
`--cloudflare-custom-hostnames-certificate-authority` defaults to `none`, which explicitly means no Certificate Authority (CA) is set when using the Cloudflare API. Specifying a custom CA is only possible for enterprise accounts.
|
||||||
|
|
||||||
The custom hostname DNS must resolve to the Cloudflare DNS record (`external-dns.alpha.kubernetes.io/hostname`) for automatic certificate validation via the HTTP method. It's important to note that the TXT method does not allow automatic validation and is not supported.
|
The custom hostname DNS must resolve to the Cloudflare DNS record (`external-dns.alpha.kubernetes.io/hostname`) for automatic certificate validation via the HTTP method. It's important to note that the TXT method does not allow automatic validation and is not supported.
|
||||||
|
|
||||||
Requires [Cloudflare for SaaS](https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/) product and "SSL and Certificates" API permission.
|
Requires [Cloudflare for SaaS](https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/) product and "SSL and Certificates" API permission.
|
||||||
|
@ -254,7 +254,7 @@ var defaultConfig = &Config{
|
|||||||
CFAPIEndpoint: "",
|
CFAPIEndpoint: "",
|
||||||
CFPassword: "",
|
CFPassword: "",
|
||||||
CFUsername: "",
|
CFUsername: "",
|
||||||
CloudflareCustomHostnamesCertificateAuthority: "google",
|
CloudflareCustomHostnamesCertificateAuthority: "none",
|
||||||
CloudflareCustomHostnames: false,
|
CloudflareCustomHostnames: false,
|
||||||
CloudflareCustomHostnamesMinTLSVersion: "1.0",
|
CloudflareCustomHostnamesMinTLSVersion: "1.0",
|
||||||
CloudflareDNSRecordsPerPage: 100,
|
CloudflareDNSRecordsPerPage: 100,
|
||||||
@ -538,7 +538,7 @@ func App(cfg *Config) *kingpin.Application {
|
|||||||
app.Flag("cloudflare-proxied", "When using the Cloudflare provider, specify if the proxy mode must be enabled (default: disabled)").BoolVar(&cfg.CloudflareProxied)
|
app.Flag("cloudflare-proxied", "When using the Cloudflare provider, specify if the proxy mode must be enabled (default: disabled)").BoolVar(&cfg.CloudflareProxied)
|
||||||
app.Flag("cloudflare-custom-hostnames", "When using the Cloudflare provider, specify if the Custom Hostnames feature will be used. Requires \"Cloudflare for SaaS\" enabled. (default: disabled)").BoolVar(&cfg.CloudflareCustomHostnames)
|
app.Flag("cloudflare-custom-hostnames", "When using the Cloudflare provider, specify if the Custom Hostnames feature will be used. Requires \"Cloudflare for SaaS\" enabled. (default: disabled)").BoolVar(&cfg.CloudflareCustomHostnames)
|
||||||
app.Flag("cloudflare-custom-hostnames-min-tls-version", "When using the Cloudflare provider with the Custom Hostnames, specify which Minimum TLS Version will be used by default. (default: 1.0, options: 1.0, 1.1, 1.2, 1.3)").Default("1.0").EnumVar(&cfg.CloudflareCustomHostnamesMinTLSVersion, "1.0", "1.1", "1.2", "1.3")
|
app.Flag("cloudflare-custom-hostnames-min-tls-version", "When using the Cloudflare provider with the Custom Hostnames, specify which Minimum TLS Version will be used by default. (default: 1.0, options: 1.0, 1.1, 1.2, 1.3)").Default("1.0").EnumVar(&cfg.CloudflareCustomHostnamesMinTLSVersion, "1.0", "1.1", "1.2", "1.3")
|
||||||
app.Flag("cloudflare-custom-hostnames-certificate-authority", "When using the Cloudflare provider with the Custom Hostnames, specify which Cerrtificate Authority will be used by default. (default: google, options: google, ssl_com, lets_encrypt)").Default("google").EnumVar(&cfg.CloudflareCustomHostnamesCertificateAuthority, "google", "ssl_com", "lets_encrypt")
|
app.Flag("cloudflare-custom-hostnames-certificate-authority", "When using the Cloudflare provider with the Custom Hostnames, specify which Certificate Authority will be used. A value of none indicates no Certificate Authority will be sent to the Cloudflare API (default: none, options: google, ssl_com, lets_encrypt, none)").Default("none").EnumVar(&cfg.CloudflareCustomHostnamesCertificateAuthority, "google", "ssl_com", "lets_encrypt", "none")
|
||||||
app.Flag("cloudflare-dns-records-per-page", "When using the Cloudflare provider, specify how many DNS records listed per page, max possible 5,000 (default: 100)").Default(strconv.Itoa(defaultConfig.CloudflareDNSRecordsPerPage)).IntVar(&cfg.CloudflareDNSRecordsPerPage)
|
app.Flag("cloudflare-dns-records-per-page", "When using the Cloudflare provider, specify how many DNS records listed per page, max possible 5,000 (default: 100)").Default(strconv.Itoa(defaultConfig.CloudflareDNSRecordsPerPage)).IntVar(&cfg.CloudflareDNSRecordsPerPage)
|
||||||
app.Flag("cloudflare-region-key", "When using the Cloudflare provider, specify the region (default: earth)").StringVar(&cfg.CloudflareRegionKey)
|
app.Flag("cloudflare-region-key", "When using the Cloudflare provider, specify the region (default: earth)").StringVar(&cfg.CloudflareRegionKey)
|
||||||
app.Flag("cloudflare-record-comment", "When using the Cloudflare provider, specify the comment for the DNS records (default: '')").Default("").StringVar(&cfg.CloudflareRecordComment)
|
app.Flag("cloudflare-record-comment", "When using the Cloudflare provider, specify the comment for the DNS records (default: '')").Default("").StringVar(&cfg.CloudflareRecordComment)
|
||||||
|
@ -76,7 +76,7 @@ var (
|
|||||||
CloudflareProxied: false,
|
CloudflareProxied: false,
|
||||||
CloudflareCustomHostnames: false,
|
CloudflareCustomHostnames: false,
|
||||||
CloudflareCustomHostnamesMinTLSVersion: "1.0",
|
CloudflareCustomHostnamesMinTLSVersion: "1.0",
|
||||||
CloudflareCustomHostnamesCertificateAuthority: "google",
|
CloudflareCustomHostnamesCertificateAuthority: "none",
|
||||||
CloudflareDNSRecordsPerPage: 100,
|
CloudflareDNSRecordsPerPage: 100,
|
||||||
CloudflareDNSRecordsComment: "",
|
CloudflareDNSRecordsComment: "",
|
||||||
CloudflareRegionKey: "",
|
CloudflareRegionKey: "",
|
||||||
|
@ -810,15 +810,20 @@ func (p *CloudFlareProvider) listCustomHostnamesWithPagination(ctx context.Conte
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getCustomHostnamesSSLOptions(customHostnamesConfig CustomHostnamesConfig) *cloudflare.CustomHostnameSSL {
|
func getCustomHostnamesSSLOptions(customHostnamesConfig CustomHostnamesConfig) *cloudflare.CustomHostnameSSL {
|
||||||
return &cloudflare.CustomHostnameSSL{
|
ssl := &cloudflare.CustomHostnameSSL{
|
||||||
Type: "dv",
|
Type: "dv",
|
||||||
Method: "http",
|
Method: "http",
|
||||||
CertificateAuthority: customHostnamesConfig.CertificateAuthority,
|
|
||||||
BundleMethod: "ubiquitous",
|
BundleMethod: "ubiquitous",
|
||||||
Settings: cloudflare.CustomHostnameSSLSettings{
|
Settings: cloudflare.CustomHostnameSSLSettings{
|
||||||
MinTLSVersion: customHostnamesConfig.MinTLSVersion,
|
MinTLSVersion: customHostnamesConfig.MinTLSVersion,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
// Set CertificateAuthority if provided
|
||||||
|
// We're not able to set it at all (even with a blank) if you're not on an enterprise plan
|
||||||
|
if customHostnamesConfig.CertificateAuthority != "none" {
|
||||||
|
ssl.CertificateAuthority = customHostnamesConfig.CertificateAuthority
|
||||||
|
}
|
||||||
|
return ssl
|
||||||
}
|
}
|
||||||
|
|
||||||
func shouldBeProxied(ep *endpoint.Endpoint, proxiedByDefault bool) bool {
|
func shouldBeProxied(ep *endpoint.Endpoint, proxiedByDefault bool) bool {
|
||||||
|
Loading…
Reference in New Issue
Block a user