add infoblox dns provider support

This commit is contained in:
Aiwantaozi 2017-09-20 18:32:05 +08:00
parent 75f4db112a
commit 3dd3418f1d
5 changed files with 126 additions and 0 deletions

View File

@ -0,0 +1,40 @@
## Infoblox DNS
Rancher External DNS service powered by Infoblox DNS
#### Usage
##### Supported host labels
`io.rancher.host.external_dns_ip`
Override the IP address used in DNS records for containers running on the host. Defaults to the IP address the host is registered with in Rancher.
`io.rancher.host.external_dns`
Accepts 'true' (default) or 'false'
When this is set to 'false' no DNS records will ever be created for containers running on this host.
##### Supported service labels
`io.rancher.service.external_dns`
Accepts 'always', 'never' or 'auto' (default)
- `always`: Always create DNS records for this service
- `never`: Never create DNS records for this service
- `auto`: Create DNS records for this service if it exposes ports on the host
`io.rancher.service.external_dns_name_template`
Custom DNS name template that overrides global custom DNS name template (see below) of default DNS name template for a specific service
##### Custom DNS name template
By default DNS entries are named `<service>.<stack>.<environment>.<domain>`.
You can specify a custom name template used to construct the subdomain part (left of the domain/zone name) of the DNS records. The following placeholders are supported:
* `%{{service_name}}`
* `%{{stack_name}}`
* `%{{environment_name}}`
**Example:**
`%{{stack_name}}-%{{service_name}}.statictext`
Make sure to only use characters in static text and separators that your provider allows in DNS names.

View File

@ -0,0 +1,16 @@
infoblox:
image: rancher/external-dns:v0.7.5
command: -provider=infoblox
expose:
- 1000
environment:
INFOBLOX_URL: ${INFOBLOX_URL}
INFOBLOX_USER_NAME: ${INFOBLOX_USER_NAME}
INFOBLOX_PASSWORD: ${INFOBLOX_PASSWORD}
ROOT_DOMAIN: ${ROOT_DOMAIN}
SSL_VERIFY: ${SSL_VERIFY}
USE_COOKIES: ${USE_COOKIES}
TTL: ${TTL}
labels:
io.rancher.container.create_agent: "true"
io.rancher.container.agent.role: "external-dns"

View File

@ -0,0 +1,63 @@
# notemplating
.catalog:
name: "Infoblox DNS"
version: "v0.1.0"
description: "Rancher External DNS service powered by Infoblox"
minimum_rancher_version: v1.6.0
questions:
- variable: "INFOBLOX_URL"
label: "Infoblox url"
description: "Infoblox url for your Infoblox service"
type: "string"
required: true
- variable: "INFOBLOX_USER_NAME"
label: "Infoblox user name"
description: "Infoblox user name for your Infoblox service"
type: "string"
required: true
- variable: "INFOBLOX_PASSWORD"
label: "Infoblox password"
description: "Infoblox password for your Infoblox service"
type: "string"
required: true
- variable: "SSL_VERIFY"
label: "Ssl verify"
description: "Infoblox Ssl verify for your Infoblox service"
type: "boolean"
required: true
- variable: "USE_COOKIES"
label: "Use cookies"
description: "Uses cookies if specified, re-creating the request and falling back to basic auth if a cookie is not present"
type: "boolean"
required: true
- variable: "ROOT_DOMAIN"
label: "Domain"
description: "The DNS zone name (root domain) managed by Infoblox. DNS entries will be created for <service>.<stack>.<environment>.<domain>"
type: "string"
required: true
- variable: "TTL"
label: "TTL"
description: "The resource record cache time to live (TTL), in seconds"
type: "int"
default: 600
min: 1
max: 86400
required: false
- variable: "NAME_TEMPLATE"
label: "DNS Name Template"
description: |
Name template used to construct the subdomain part (left of the domain) of the DNS record names.
Supported placeholders: %{{service_name}}, %{{stack_name}}, %{{environment_name}}.
By default DNS entries will be named '<service>.<stack>.<environment>.<domain>'.
type: "string"
default: "%{{service_name}}.%{{stack_name}}.%{{environment_name}}"
required: false
infoblox:
health_check:
port: 1000
interval: 5000
unhealthy_threshold: 3
request_line: GET / HTTP/1.0
healthy_threshold: 2
response_timeout: 2000

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1,7 @@
name: Infoblox DNS
description: |
Rancher External DNS service powered by Infoblox
version: v0.1.0
category: External DNS
labels:
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'