diff --git a/infra-templates/infoblox/0/README.md b/infra-templates/infoblox/0/README.md new file mode 100644 index 0000000..3f3636b --- /dev/null +++ b/infra-templates/infoblox/0/README.md @@ -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 `...`. +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. \ No newline at end of file diff --git a/infra-templates/infoblox/0/docker-compose.yml b/infra-templates/infoblox/0/docker-compose.yml new file mode 100644 index 0000000..fb89ebc --- /dev/null +++ b/infra-templates/infoblox/0/docker-compose.yml @@ -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" diff --git a/infra-templates/infoblox/0/rancher-compose.yml b/infra-templates/infoblox/0/rancher-compose.yml new file mode 100644 index 0000000..0ddd99d --- /dev/null +++ b/infra-templates/infoblox/0/rancher-compose.yml @@ -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 ..." + 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 '...'. + 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 \ No newline at end of file diff --git a/infra-templates/infoblox/catalogIcon-infoblox.png b/infra-templates/infoblox/catalogIcon-infoblox.png new file mode 100644 index 0000000..62ac6a9 Binary files /dev/null and b/infra-templates/infoblox/catalogIcon-infoblox.png differ diff --git a/infra-templates/infoblox/config.yml b/infra-templates/infoblox/config.yml new file mode 100644 index 0000000..46f51e2 --- /dev/null +++ b/infra-templates/infoblox/config.yml @@ -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'