Updated infoblox package

This commit is contained in:
rawmind0 2018-04-06 12:18:32 +02:00
parent 4e255f2825
commit 729ff392dd
4 changed files with 167 additions and 1 deletions

View File

@ -0,0 +1,57 @@
## Infoblox DNS
Rancher External DNS service powered by Infoblox DNS
#### Usage
##### Infloblox Password
Infoblox password could be provided in 2 ways, depending what you set at `Infoblox password type` enum:
- `env` by environment var.
Infoblox password is provided at `Infoblox password | secret name` field. This generates an enviroment variable inside container, `INFOBLOX_PASSWORD`, that contains the password in CLEAR.
- `secret` by rancher secret.
Infoblox password is provided by a Rancher Secret to secure it. Secret name is provided at `Infoblox password | secret name` field.
Previous steps are required to use rancher secrets:
1. Deploy Rancher Secrets service from library catalog, before deploying this stack.
2. Create a rancher secret with your infoblox password. From ui, `Infrastructure -> Secrets`.
3. Deploy this stack, setting `Infoblox password type` enum to `secret` and setting `Infoblox password | secret name` field to previously created secret name.
##### 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,32 @@
version: '2'
services:
infoblox:
image: rancher/external-dns:v0.7.10
command: -provider=infoblox {{if eq .Values.DEBUG_MODE "true" -}}-debug{{- end}}
expose:
- 1000
labels:
io.rancher.container.create_agent: "true"
io.rancher.container.agent.role: "external-dns"
environment:
INFOBLOX_URL: ${INFOBLOX_URL}
INFOBLOX_USER_NAME: ${INFOBLOX_USER_NAME}
ROOT_DOMAIN: ${ROOT_DOMAIN}
SSL_VERIFY: ${SSL_VERIFY}
USE_COOKIES: ${USE_COOKIES}
TTL: ${TTL}
{{- if eq .Values.INFOBLOX_PASSWORD_TYPE "env"}}
INFOBLOX_PASSWORD: ${INFOBLOX_PASSWORD}
{{- else}}
INFOBLOX_PASSWORD: ''
INFOBLOX_SECRET: '/run/secrets/${INFOBLOX_PASSWORD}'
secrets:
- mode: '0444'
uid: '0'
gid: '0'
source: '${INFOBLOX_PASSWORD}'
target: ''
secrets:
{{- .Values.INFOBLOX_PASSWORD}}:
external: 'true'
{{- end}}

View File

@ -0,0 +1,77 @@
# notemplating
.catalog:
name: "Infoblox DNS"
version: "v0.2.1"
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_TYPE"
label: "Infoblox password type"
description: "How infoblox password is provided by environment var or by rancher secret"
required: true
default: env
type: enum
options:
- env
- secret
- variable: "INFOBLOX_PASSWORD"
label: "Infoblox password | secret name"
description: "Infoblox password or secret name for your Infoblox service "
type: "string"
required: true
- variable: "ROOT_DOMAIN"
label: "Infoblox zone"
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: "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: 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: true
- variable: "DEBUG_MODE"
label: "Debug mode"
description: "Activate debug mode"
type: "boolean"
required: true
default: false
- 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
infoblox:
health_check:
port: 1000
interval: 5000
unhealthy_threshold: 3
request_line: GET / HTTP/1.0
healthy_threshold: 2
response_timeout: 2000

View File

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