commit
d0d3217943
40
infra-templates/alidns/0/README.md
Normal file
40
infra-templates/alidns/0/README.md
Normal file
@ -0,0 +1,40 @@
|
||||
## Alibaba Cloud DNS
|
||||
|
||||
Rancher External DNS service powered by Alibaba Cloud 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.
|
14
infra-templates/alidns/0/docker-compose.yml
Normal file
14
infra-templates/alidns/0/docker-compose.yml
Normal file
@ -0,0 +1,14 @@
|
||||
alidns:
|
||||
image: rancher/external-dns:v0.7.4
|
||||
command: -provider=alidns
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
ALICLOUD_ACCESS_KEY_ID: ${ALICLOUD_ACCESS_KEY_ID}
|
||||
ALICLOUD_ACCESS_KEY_SECRET: ${ALICLOUD_ACCESS_KEY_SECRET}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: ${TTL}
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
48
infra-templates/alidns/0/rancher-compose.yml
Normal file
48
infra-templates/alidns/0/rancher-compose.yml
Normal file
@ -0,0 +1,48 @@
|
||||
# notemplating
|
||||
.catalog:
|
||||
name: "Alibaba Cloud DNS"
|
||||
version: "v0.1.0"
|
||||
description: "Rancher External DNS service powered by Alibaba Cloud"
|
||||
minimum_rancher_version: v1.6.8-rc1
|
||||
questions:
|
||||
- variable: "ALICLOUD_ACCESS_KEY_ID"
|
||||
label: "Access Key ID"
|
||||
description: "Access key id for your Alibaba Cloud account"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ALICLOUD_ACCESS_KEY_SECRET"
|
||||
label: "Access Key Secret"
|
||||
description: "Access key secret for your Alibaba Cloud account"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Domain"
|
||||
description: "The DNS zone (domain) managed by Alibaba Cloud. 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
|
||||
|
||||
alidns:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 5000
|
||||
unhealthy_threshold: 3
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
40
infra-templates/alidns/1/README.md
Normal file
40
infra-templates/alidns/1/README.md
Normal file
@ -0,0 +1,40 @@
|
||||
## Alibaba Cloud DNS
|
||||
|
||||
Rancher External DNS service powered by Alibaba Cloud 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.
|
14
infra-templates/alidns/1/docker-compose.yml
Normal file
14
infra-templates/alidns/1/docker-compose.yml
Normal file
@ -0,0 +1,14 @@
|
||||
alidns:
|
||||
image: rancher/external-dns:v0.7.5
|
||||
command: -provider=alidns
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
ALICLOUD_ACCESS_KEY_ID: ${ALICLOUD_ACCESS_KEY_ID}
|
||||
ALICLOUD_ACCESS_KEY_SECRET: ${ALICLOUD_ACCESS_KEY_SECRET}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: ${TTL}
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
48
infra-templates/alidns/1/rancher-compose.yml
Normal file
48
infra-templates/alidns/1/rancher-compose.yml
Normal file
@ -0,0 +1,48 @@
|
||||
# notemplating
|
||||
.catalog:
|
||||
name: "Alibaba Cloud DNS"
|
||||
version: "v0.2.0"
|
||||
description: "Rancher External DNS service powered by Alibaba Cloud"
|
||||
minimum_rancher_version: v1.6.8-rc1
|
||||
questions:
|
||||
- variable: "ALICLOUD_ACCESS_KEY_ID"
|
||||
label: "Access Key ID"
|
||||
description: "Access key id for your Alibaba Cloud account"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ALICLOUD_ACCESS_KEY_SECRET"
|
||||
label: "Access Key Secret"
|
||||
description: "Access key secret for your Alibaba Cloud account"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Domain"
|
||||
description: "The DNS zone (domain) managed by Alibaba Cloud. 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
|
||||
|
||||
alidns:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 5000
|
||||
unhealthy_threshold: 3
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
BIN
infra-templates/alidns/catalogIcon-alidns.png
Normal file
BIN
infra-templates/alidns/catalogIcon-alidns.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
7
infra-templates/alidns/config.yml
Normal file
7
infra-templates/alidns/config.yml
Normal file
@ -0,0 +1,7 @@
|
||||
name: Alibaba Cloud DNS
|
||||
description: |
|
||||
Rancher External DNS service powered by Alibaba Cloud
|
||||
version: v0.2.0
|
||||
category: External DNS
|
||||
labels:
|
||||
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'
|
11
infra-templates/autospotting/0/README.md
Normal file
11
infra-templates/autospotting/0/README.md
Normal file
@ -0,0 +1,11 @@
|
||||
# Autospotting
|
||||
|
||||
### Info
|
||||
This service builds upon the open source autospotting at [https://github.com/cristim/autospotting](https://github.com/cristim/autospotting)
|
||||
|
||||
This has been turned into a Rancher catalog entry with a couple of minor tweaks and the removal of the requirement to run it as a lambda function, it now runs as a docker container.
|
||||
|
||||
Autospotting works by taking a tag that you specify and adding it to an AWS Auto-Scaling Group with a value of true.
|
||||
|
||||
The container will then run and check for on-demand instances and replace them with cheap spot instances. This is a gradual process and will only replace one host in an ASG at a time.
|
||||
|
13
infra-templates/autospotting/0/docker-compose.yml
Normal file
13
infra-templates/autospotting/0/docker-compose.yml
Normal file
@ -0,0 +1,13 @@
|
||||
aws-spot-instance-helper:
|
||||
image: chrisurwin/autospotting:v0.1.0
|
||||
tty: true
|
||||
labels:
|
||||
io.rancher.container.pull_image: always
|
||||
environment:
|
||||
AWS_ACCESS_KEY_ID: "${AWS_ACCESS_KEY_ID}"
|
||||
AWS_SECRET_ACCESS_KEY: "${AWS_SECRET_ACCESS_KEY}"
|
||||
regions: "${regions}"
|
||||
min_on_demand_number: "${min_on_demand_number}"
|
||||
min_on_demand_percentage: "${min_on_demand_percentage}"
|
||||
allowed_instance_types: "${allowed_instance_types}"
|
||||
tag_name: "${tag_name}"
|
51
infra-templates/autospotting/0/rancher-compose.yml
Normal file
51
infra-templates/autospotting/0/rancher-compose.yml
Normal file
@ -0,0 +1,51 @@
|
||||
.catalog:
|
||||
name: "Autospotting"
|
||||
version: "v0.1.0"
|
||||
description: "Autospotting"
|
||||
minimum_rancher_version: v1.0.0
|
||||
questions:
|
||||
- variable: "AWS_ACCESS_KEY_ID"
|
||||
description: "AWS Access Key"
|
||||
label: "AWS Access Key"
|
||||
required: true
|
||||
type: "string"
|
||||
- variable: "AWS_SECRET_ACCESS_KEY"
|
||||
description: "AWS Secret Key"
|
||||
label: "Access Secret"
|
||||
required: true
|
||||
type: "string"
|
||||
- variable: "regions"
|
||||
description: "Regions where it should be activated (comma or whitespace separated list, also supports globs), by default it runs on all regions. Example: 'eu-*,us-east-1"
|
||||
label: "AWS Regions"
|
||||
required: false
|
||||
type: "string"
|
||||
- variable: "min_on_demand_number"
|
||||
description: "On-demand capacity (as absolute number) ensured to be running in each of your groups"
|
||||
label: "Minimum on demand number"
|
||||
required: false
|
||||
type: "string"
|
||||
- variable: "min_on_demand_percentage"
|
||||
description: "On-demand capacity (percentage of the total number of instances in the group) ensured to be running in each of your groups. Defaults to 0"
|
||||
label: "Minimum on demand percentage"
|
||||
required: false
|
||||
type: "string"
|
||||
- variable: "allowed_instance_types"
|
||||
description: "If specified, the spot instances will have a specific instance type"
|
||||
label: "Allowed instance types"
|
||||
required: false
|
||||
type: "string"
|
||||
- variable: "tag_name"
|
||||
description: "If specified you can tag instances with a specific tag to process, default is spot-enabled"
|
||||
label: "Tag name"
|
||||
required: false
|
||||
type: "string"
|
||||
|
||||
aws-spot-instance-helper:
|
||||
health_check:
|
||||
port: 9777
|
||||
interval: 2000
|
||||
unhealthy_threshold: 3
|
||||
strategy: recreate
|
||||
response_timeout: 2000
|
||||
request_line: GET /ping HTTP/1.0
|
||||
healthy_threshold: 2
|
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 29 KiB |
5
infra-templates/autospotting/config.yml
Normal file
5
infra-templates/autospotting/config.yml
Normal file
@ -0,0 +1,5 @@
|
||||
name: AutoSpotting
|
||||
description: |
|
||||
Replaces AWS On-Demand instances with cheaper Spot-Instances where possible
|
||||
version: v0.1.0
|
||||
category: Infrastructure Services
|
7
infra-templates/aws-spot-instance-helper/0/README.md
Normal file
7
infra-templates/aws-spot-instance-helper/0/README.md
Normal file
@ -0,0 +1,7 @@
|
||||
# AWS Spot Instance Helper
|
||||
|
||||
### Info
|
||||
This is a simple service that runs globally. It monitors the state of the host, if the host is running on a spot instance it will check to see if the host is scheduled for termination then it will automatically deactive the host and evaculate the containers.
|
||||
|
||||
The source code is available at [https://www.github.com/chrisurwin/aws-spot-instance-helper](https://www.github.com/chrisurwin/aws-spot-instance-helper)
|
||||
|
@ -0,0 +1,8 @@
|
||||
aws-spot-instance-helper:
|
||||
image: chrisurwin/aws-spot-instance-helper:v0.1.0
|
||||
tty: true
|
||||
labels:
|
||||
io.rancher.container.create_agent: 'true'
|
||||
io.rancher.container.agent.role: environment
|
||||
io.rancher.container.pull_image: always
|
||||
io.rancher.scheduler.global: 'true'
|
@ -0,0 +1,16 @@
|
||||
.catalog:
|
||||
name: "AWS Spot Instance Helper"
|
||||
version: "v0.1.0"
|
||||
description: "AWS Spot Instance Helper"
|
||||
minimum_rancher_version: v1.5.5
|
||||
|
||||
|
||||
aws-spot-instance-helper:
|
||||
health_check:
|
||||
port: 9777
|
||||
interval: 2000
|
||||
unhealthy_threshold: 3
|
||||
strategy: recreate
|
||||
response_timeout: 2000
|
||||
request_line: GET /ping HTTP/1.0
|
||||
healthy_threshold: 2
|
9
infra-templates/aws-spot-instance-helper/1/README.md
Normal file
9
infra-templates/aws-spot-instance-helper/1/README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# AWS Spot Instance Helper
|
||||
|
||||
### Info
|
||||
This is a simple service that runs globally. It monitors the state of the host, if the host is running on a spot instance it will check to see if the host is scheduled for termination then it will automatically deactive the host and evaculate the containers.
|
||||
|
||||
The source code is available at [https://www.github.com/chrisurwin/aws-spot-instance-helper](https://www.github.com/chrisurwin/aws-spot-instance-helper)
|
||||
|
||||
This version support notification to slack.
|
||||
|
@ -0,0 +1,10 @@
|
||||
aws-spot-instance-helper:
|
||||
image: chrisurwin/aws-spot-instance-helper:v0.2.0
|
||||
tty: true
|
||||
labels:
|
||||
io.rancher.container.create_agent: 'true'
|
||||
io.rancher.container.agent.role: environment
|
||||
io.rancher.container.pull_image: always
|
||||
io.rancher.scheduler.global: 'true'
|
||||
environment:
|
||||
SLACK_WEBHOOK: "${SLACK_WEBHOOK}"
|
@ -0,0 +1,21 @@
|
||||
.catalog:
|
||||
name: "AWS Spot Instance Helper"
|
||||
version: "v0.2.0"
|
||||
description: "AWS Spot Instance Helper"
|
||||
minimum_rancher_version: v1.5.5
|
||||
questions:
|
||||
- variable: "SLACK_WEBHOOK"
|
||||
description: "Slack Webhook"
|
||||
label: "Slack Webhook"
|
||||
required: false
|
||||
type: "string"
|
||||
|
||||
aws-spot-instance-helper:
|
||||
health_check:
|
||||
port: 9777
|
||||
interval: 2000
|
||||
unhealthy_threshold: 3
|
||||
strategy: recreate
|
||||
response_timeout: 2000
|
||||
request_line: GET /ping HTTP/1.0
|
||||
healthy_threshold: 2
|
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="1200.000000pt" height="1200.000000pt" viewBox="0 0 1200.000000 1200.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
|
||||
<g transform="translate(0.000000,1200.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M0 6000 l0 -6000 6000 0 6000 0 0 6000 0 6000 -6000 0 -6000 0 0
|
||||
-6000z m6369 5085 c174 -42 319 -177 377 -355 17 -50 18 -112 22 -717 l3 -663
|
||||
-1798 0 c-1983 0 -1850 4 -1977 -63 -118 -61 -226 -200 -255 -327 -7 -30 -11
|
||||
-651 -11 -1882 l0 -1838 -602 0 c-368 0 -628 4 -667 11 -228 37 -401 216 -432
|
||||
447 -6 51 -9 910 -7 2527 l3 2450 23 66 c43 129 132 234 250 297 121 64 -55
|
||||
60 2592 61 2121 1 2423 -1 2479 -14z m2142 -2183 c164 -46 299 -177 349 -340
|
||||
19 -61 20 -94 20 -728 l0 -664 -1804 0 c-1771 0 -1805 0 -1868 -20 -161 -50
|
||||
-286 -176 -344 -350 -18 -53 -19 -133 -22 -1892 l-2 -1838 -628 0 c-684 0
|
||||
-689 0 -796 58 -28 15 -81 57 -119 93 -78 78 -130 177 -147 279 -14 90 -14
|
||||
4900 0 4990 30 189 188 365 371 414 46 13 394 15 2489 15 2331 1 2438 0 2501
|
||||
-17z m2160 -2190 c82 -27 175 -88 230 -150 50 -57 105 -167 119 -241 15 -79
|
||||
14 -4962 -1 -5033 -40 -192 -212 -361 -404 -398 -44 -8 -715 -10 -2490 -8
|
||||
l-2430 3 -58 22 c-150 57 -263 170 -320 320 l-22 58 -3 2495 c-1 1709 1 2511
|
||||
8 2546 43 209 223 375 435 404 33 4 1142 7 2465 6 l2405 -1 66 -23z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
5
infra-templates/aws-spot-instance-helper/config.yml
Normal file
5
infra-templates/aws-spot-instance-helper/config.yml
Normal file
@ -0,0 +1,5 @@
|
||||
name: AWS Spot Instance Helper
|
||||
description: |
|
||||
Automatically evacuates spot instances that are marked for termination
|
||||
version: v0.2.0
|
||||
category: Rancher Services
|
@ -3,6 +3,7 @@
|
||||
version: "v0.1.9-rancher1"
|
||||
description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version 0.44.0"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.2.0-pre4-rc1
|
||||
questions:
|
||||
- variable: "CLOUDFLARE_EMAIL"
|
||||
label: "CloudFlare email address"
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: "v0.2.1-rancher1"
|
||||
description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version 0.44.0"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.2.0-pre4-rc1
|
||||
questions:
|
||||
- variable: "CLOUDFLARE_EMAIL"
|
||||
label: "CloudFlare email address"
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: "v0.4.0-rancher1"
|
||||
description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version 0.44.0"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.2.0-pre4-rc1
|
||||
questions:
|
||||
- variable: "CLOUDFLARE_EMAIL"
|
||||
label: "CloudFlare email address"
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: "v0.6.0-rancher1"
|
||||
description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version v1.1.0"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.5.99
|
||||
questions:
|
||||
- variable: "CLOUDFLARE_EMAIL"
|
||||
label: "CloudFlare email address"
|
||||
|
36
infra-templates/cloudflare/4/README.md
Normal file
36
infra-templates/cloudflare/4/README.md
Normal file
@ -0,0 +1,36 @@
|
||||
## CloudFlare DNS
|
||||
|
||||
Rancher External DNS service powered by CloudFlare DNS
|
||||
|
||||
#### Changelog
|
||||
|
||||
##### v0.6.0
|
||||
|
||||
* Reduces the overall rate of API requests to the DNS provider
|
||||
* Adds support for custom DNS naming convention
|
||||
* Stack, service and environment names used in service DNS names are now sanitized to conform with RFC 1123. Characters other than `a-z`, `A-Z`, `0-9` or `dash` are replaced by dashes.
|
||||
* For internal use the service creates TXT records to track the FQDNs it manages. These TXT records are named `external-dns-<environemntUUID>.<domain>` and should not be deleted.
|
||||
|
||||
#### Usage
|
||||
|
||||
##### Upgrade Notes
|
||||
While upgrading from a version lower than v0.6.0 the TTL configuration value should not be changed. You may change it once the upgrade has been completed.
|
||||
|
||||
##### Limitation when running the service on multiple Rancher servers
|
||||
|
||||
When running multiple instances of the External DNS service configured to use the **same** domain name, then only one of them can run in the "Default" environment of a Rancher server instance.
|
||||
|
||||
##### 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 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 are allowed by your provider in DNS names.
|
14
infra-templates/cloudflare/4/docker-compose.yml
Normal file
14
infra-templates/cloudflare/4/docker-compose.yml
Normal file
@ -0,0 +1,14 @@
|
||||
cloudflare:
|
||||
image: rancher/external-dns:v0.6.0
|
||||
command: -provider=cloudflare
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
CLOUDFLARE_EMAIL: ${CLOUDFLARE_EMAIL}
|
||||
CLOUDFLARE_KEY: ${CLOUDFLARE_KEY}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: ${TTL}
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
48
infra-templates/cloudflare/4/rancher-compose.yml
Normal file
48
infra-templates/cloudflare/4/rancher-compose.yml
Normal file
@ -0,0 +1,48 @@
|
||||
# notemplating
|
||||
.catalog:
|
||||
name: "CloudFlare DNS"
|
||||
version: "v0.6.0-rancher2"
|
||||
description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version v1.1.0"
|
||||
minimum_rancher_version: v1.6.0-rc1
|
||||
questions:
|
||||
- variable: "CLOUDFLARE_EMAIL"
|
||||
label: "CloudFlare email address"
|
||||
description: "Email address associated with your CloudFlare account"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "CLOUDFLARE_KEY"
|
||||
label: "CloudFlare API key"
|
||||
description: "API key for your CloudFlare account"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Domain Name"
|
||||
description: "The domain name managed by CloudFlare."
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "TTL"
|
||||
label: "TTL"
|
||||
description: "The resource record cache time to live (TTL), in seconds (minimum 120)"
|
||||
type: "int"
|
||||
default: 120
|
||||
min: 120
|
||||
max: 3600
|
||||
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
|
||||
|
||||
cloudflare:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 5000
|
||||
unhealthy_threshold: 3
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
@ -1,7 +1,7 @@
|
||||
name: CloudFlare DNS
|
||||
description: |
|
||||
Rancher External DNS service powered by CloudFlare
|
||||
version: v0.6.0-rancher1
|
||||
version: v0.6.0-rancher2
|
||||
category: External DNS
|
||||
labels:
|
||||
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: "v0.6.2-rancher1"
|
||||
description: "Rancher External DNS service powered by DigitalOcean"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.4.99
|
||||
questions:
|
||||
- variable: "DO_PAT"
|
||||
label: "DigitalOcean Personal Access Token"
|
||||
|
48
infra-templates/digitalocean-dns/1/README.md
Normal file
48
infra-templates/digitalocean-dns/1/README.md
Normal file
@ -0,0 +1,48 @@
|
||||
## DigitalOcean DNS
|
||||
|
||||
Rancher External DNS service powered by DigitalOcean
|
||||
|
||||
#### Changelog
|
||||
|
||||
Initial version
|
||||
|
||||
#### Usage
|
||||
|
||||
##### DigitalOcean DNS record TTL
|
||||
The DigitalOcean API currently does not support per-record TTL setting. You should configure the global TTL setting for the domain manually and set it to a low value (e.g. 60).
|
||||
|
||||
##### Limitation when running the service on multiple Rancher servers
|
||||
|
||||
When running multiple instances of the External DNS service configured to use the same domain name, then only one of them can run in the "Default" environment of a Rancher server instance.
|
||||
|
||||
##### 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
|
||||
|
||||
##### 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.
|
13
infra-templates/digitalocean-dns/1/docker-compose.yml
Normal file
13
infra-templates/digitalocean-dns/1/docker-compose.yml
Normal file
@ -0,0 +1,13 @@
|
||||
digitalocean:
|
||||
image: rancher/external-dns:v0.6.3
|
||||
command: -provider=digitalocean
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
DO_PAT: ${DO_PAT}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: 300
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
35
infra-templates/digitalocean-dns/1/rancher-compose.yml
Normal file
35
infra-templates/digitalocean-dns/1/rancher-compose.yml
Normal file
@ -0,0 +1,35 @@
|
||||
.catalog:
|
||||
name: "DigitalOcean DNS"
|
||||
version: "v0.6.3"
|
||||
description: "Rancher External DNS service powered by DigitalOcean"
|
||||
minimum_rancher_version: v1.5.0
|
||||
maximum_rancher_version: v1.5.0
|
||||
questions:
|
||||
- variable: "DO_PAT"
|
||||
label: "DigitalOcean Personal Access Token"
|
||||
description: "Enter your personal access token"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Domain Name"
|
||||
description: "The domain name managed by DigitalOcean."
|
||||
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: false
|
||||
|
||||
digitalocean:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 5000
|
||||
unhealthy_threshold: 3
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
53
infra-templates/digitalocean-dns/2/README.md
Normal file
53
infra-templates/digitalocean-dns/2/README.md
Normal file
@ -0,0 +1,53 @@
|
||||
## DigitalOcean DNS
|
||||
|
||||
Rancher External DNS service powered by DigitalOcean
|
||||
|
||||
#### Changelog
|
||||
|
||||
##### v0.6.4
|
||||
|
||||
* Adds support for overriding name template for specific services by setting io.rancher.service.external_dns_name_template label to it in docker-compose.yml
|
||||
|
||||
#### Usage
|
||||
|
||||
##### DigitalOcean DNS record TTL
|
||||
The DigitalOcean API currently does not support per-record TTL setting. You should configure the global TTL setting for the domain manually and set it to a low value (e.g. 60).
|
||||
|
||||
##### Limitation when running the service on multiple Rancher servers
|
||||
|
||||
When running multiple instances of the External DNS service configured to use the same domain name, then only one of them can run in the "Default" environment of a Rancher server instance.
|
||||
|
||||
##### 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.
|
13
infra-templates/digitalocean-dns/2/docker-compose.yml
Normal file
13
infra-templates/digitalocean-dns/2/docker-compose.yml
Normal file
@ -0,0 +1,13 @@
|
||||
digitalocean:
|
||||
image: rancher/external-dns:v0.6.4
|
||||
command: -provider=digitalocean
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
DO_PAT: ${DO_PAT}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: 300
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
35
infra-templates/digitalocean-dns/2/rancher-compose.yml
Normal file
35
infra-templates/digitalocean-dns/2/rancher-compose.yml
Normal file
@ -0,0 +1,35 @@
|
||||
.catalog:
|
||||
name: "DigitalOcean DNS"
|
||||
version: "v0.6.4"
|
||||
description: "Rancher External DNS service powered by DigitalOcean"
|
||||
minimum_rancher_version: v1.5.0
|
||||
maximum_rancher_version: v1.5.99
|
||||
questions:
|
||||
- variable: "DO_PAT"
|
||||
label: "DigitalOcean Personal Access Token"
|
||||
description: "Enter your personal access token"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Domain Name"
|
||||
description: "The domain name managed by DigitalOcean."
|
||||
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: false
|
||||
|
||||
digitalocean:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 5000
|
||||
unhealthy_threshold: 3
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
53
infra-templates/digitalocean-dns/3/README.md
Normal file
53
infra-templates/digitalocean-dns/3/README.md
Normal file
@ -0,0 +1,53 @@
|
||||
## DigitalOcean DNS
|
||||
|
||||
Rancher External DNS service powered by DigitalOcean
|
||||
|
||||
#### Changelog
|
||||
|
||||
##### v0.6.4
|
||||
|
||||
* Adds support for overriding name template for specific services by setting io.rancher.service.external_dns_name_template label to it in docker-compose.yml
|
||||
|
||||
#### Usage
|
||||
|
||||
##### DigitalOcean DNS record TTL
|
||||
The DigitalOcean API currently does not support per-record TTL setting. You should configure the global TTL setting for the domain manually and set it to a low value (e.g. 60).
|
||||
|
||||
##### Limitation when running the service on multiple Rancher servers
|
||||
|
||||
When running multiple instances of the External DNS service configured to use the same domain name, then only one of them can run in the "Default" environment of a Rancher server instance.
|
||||
|
||||
##### 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.
|
13
infra-templates/digitalocean-dns/3/docker-compose.yml
Normal file
13
infra-templates/digitalocean-dns/3/docker-compose.yml
Normal file
@ -0,0 +1,13 @@
|
||||
digitalocean:
|
||||
image: rancher/external-dns:v0.6.4
|
||||
command: -provider=digitalocean
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
DO_PAT: ${DO_PAT}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: 300
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
35
infra-templates/digitalocean-dns/3/rancher-compose.yml
Normal file
35
infra-templates/digitalocean-dns/3/rancher-compose.yml
Normal file
@ -0,0 +1,35 @@
|
||||
# notemplating
|
||||
.catalog:
|
||||
name: "DigitalOcean DNS"
|
||||
version: "v0.6.4.1"
|
||||
description: "Rancher External DNS service powered by DigitalOcean"
|
||||
minimum_rancher_version: v1.6.0-rc1
|
||||
questions:
|
||||
- variable: "DO_PAT"
|
||||
label: "DigitalOcean Personal Access Token"
|
||||
description: "Enter your personal access token"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Domain Name"
|
||||
description: "The domain name managed by DigitalOcean."
|
||||
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: false
|
||||
|
||||
digitalocean:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 5000
|
||||
unhealthy_threshold: 3
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
@ -1,7 +1,7 @@
|
||||
name: DigitalOcean DNS
|
||||
description: |
|
||||
Rancher External DNS service powered by DigitalOcean
|
||||
version: v0.6.2-rancher1
|
||||
version: v0.6.4.1
|
||||
category: External DNS
|
||||
labels:
|
||||
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: "v0.1.9-rancher1"
|
||||
description: "Rancher External DNS service powered by DNSimple. Requires Rancher version 0.44.0"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.2.0-pre4-rc1
|
||||
questions:
|
||||
- variable: "DNSIMPLE_EMAIL"
|
||||
label: "DNSimple account email address"
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: "v0.2.1-rancher1"
|
||||
description: "Rancher External DNS service powered by DNSimple. Requires Rancher version 0.44.0"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.2.0-pre4-rc1
|
||||
questions:
|
||||
- variable: "DNSIMPLE_EMAIL"
|
||||
label: "DNSimple account email address"
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: "v0.6.0-rancher1"
|
||||
description: "Rancher External DNS service powered by DNSimple. Requires Rancher version v1.1.0"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.5.99
|
||||
questions:
|
||||
- variable: "DNSIMPLE_EMAIL"
|
||||
label: "DNSimple Account Email Address"
|
||||
|
36
infra-templates/dnsimple/3/README.md
Normal file
36
infra-templates/dnsimple/3/README.md
Normal file
@ -0,0 +1,36 @@
|
||||
## DNSimple DNS
|
||||
|
||||
Rancher External DNS service powered by DNSimple DNS
|
||||
|
||||
#### Changelog
|
||||
|
||||
##### v0.6.0
|
||||
|
||||
* Reduces the overall rate of API requests to the DNS provider
|
||||
* Adds support for custom DNS naming convention
|
||||
* Stack, service and environment names used in service DNS names are now sanitized to conform with RFC 1123. Characters other than `a-z`, `A-Z`, `0-9` or `dash` are replaced by dashes.
|
||||
* For internal use the service creates TXT records to track the FQDNs it manages. These TXT records are named `external-dns-<environemntUUID>.<domain>` and should not be deleted.
|
||||
|
||||
#### Usage
|
||||
|
||||
##### Upgrade Notes
|
||||
While upgrading from a version lower than v0.6.0 the TTL configuration value should not be changed. You may change it once the upgrade has been completed.
|
||||
|
||||
##### Limitation when running the service on multiple Rancher servers
|
||||
|
||||
When running multiple instances of the External DNS service configured to use the **same** domain name, then only one of them can run in the "Default" environment of a Rancher server instance.
|
||||
|
||||
##### 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.
|
14
infra-templates/dnsimple/3/docker-compose.yml
Normal file
14
infra-templates/dnsimple/3/docker-compose.yml
Normal file
@ -0,0 +1,14 @@
|
||||
dnsimple:
|
||||
image: rancher/external-dns:v0.6.0
|
||||
command: -provider=dnsimple
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
DNSIMPLE_TOKEN: ${DNSIMPLE_TOKEN}
|
||||
DNSIMPLE_EMAIL: ${DNSIMPLE_EMAIL}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: ${TTL}
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
46
infra-templates/dnsimple/3/rancher-compose.yml
Normal file
46
infra-templates/dnsimple/3/rancher-compose.yml
Normal file
@ -0,0 +1,46 @@
|
||||
# notemplating
|
||||
.catalog:
|
||||
name: "DNSimple DNS"
|
||||
version: "v0.6.0-rancher2"
|
||||
description: "Rancher External DNS service powered by DNSimple. Requires Rancher version v1.1.0"
|
||||
minimum_rancher_version: v1.6.0-rc1
|
||||
questions:
|
||||
- variable: "DNSIMPLE_EMAIL"
|
||||
label: "DNSimple Account Email Address"
|
||||
description: "Email address associated with your DNSimple account"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "DNSIMPLE_TOKEN"
|
||||
label: "DNSimple API Token"
|
||||
description: "API token for your DNSimple account"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Root Domain"
|
||||
description: "The domain name managed by DNSimple."
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "TTL"
|
||||
label: "TTL"
|
||||
description: "The resource record cache time to live (TTL), in seconds"
|
||||
type: "int"
|
||||
default: 60
|
||||
required: false
|
||||
- variable: "NAME_TEMPLATE"
|
||||
label: "DNS Name Template"
|
||||
description: |
|
||||
Name template used to construct the subdomain part (left of the root domain name) 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
|
||||
|
||||
dnsimple:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 15000
|
||||
unhealthy_threshold: 2
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
@ -1,7 +1,7 @@
|
||||
name: DNSimple DNS
|
||||
description: |
|
||||
Rancher External DNS service powered by DNSimple
|
||||
version: v0.6.0-rancher1
|
||||
version: v0.6.0-rancher2
|
||||
category: External DNS
|
||||
labels:
|
||||
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: "v0.5.0-rancher1"
|
||||
description: "Rancher External DNS service powered by any RFC2136 compatible DNS"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.2.0-pre4-rc1
|
||||
questions:
|
||||
- variable: "RFC2136_HOST"
|
||||
label: "Domain Name Server IP"
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: "v0.6.0-rancher1"
|
||||
description: "Rancher External DNS service powered by any RFC2136 compatible DNS server. Requires Rancher version v1.1.0"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.2.0-pre4-rc1
|
||||
questions:
|
||||
- variable: "RFC2136_HOST"
|
||||
label: "DNS Server IP"
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: "v0.6.2-rancher1"
|
||||
description: "Rancher External DNS service powered by any RFC2136 compatible DNS server. Requires Rancher version v1.1.0"
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
maximum_rancher_version: v1.5.99
|
||||
questions:
|
||||
- variable: "RFC2136_HOST"
|
||||
label: "DNS Server IP"
|
||||
|
52
infra-templates/dnsupdate-rfc2136/3/README.md
Normal file
52
infra-templates/dnsupdate-rfc2136/3/README.md
Normal file
@ -0,0 +1,52 @@
|
||||
## DNS Update (RFC2136)
|
||||
|
||||
Rancher External DNS service powered by any RFC2136 compatible DNS server
|
||||
|
||||
#### Changelog
|
||||
|
||||
##### v0.6.2
|
||||
|
||||
* Adds support for disabling/enforcing external DNS on the host and service level using labels
|
||||
* Adds support for insecure DNS Updates
|
||||
* Fixes an issue with lingering TCP keep-alive connections to the Rancher Metadata service
|
||||
|
||||
#### Usage
|
||||
|
||||
##### Upgrade Notes
|
||||
While upgrading from a version lower than v0.6.0 the TTL configuration value should not be changed. You may change it once the upgrade has been completed.
|
||||
|
||||
##### Limitation when running the service on multiple Rancher servers
|
||||
|
||||
When running multiple instances of the External DNS service configured to use the same domain name, then only one of them can run in the "Default" environment of a Rancher server instance.
|
||||
|
||||
##### 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
|
||||
|
||||
##### 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.
|
17
infra-templates/dnsupdate-rfc2136/3/docker-compose.yml
Normal file
17
infra-templates/dnsupdate-rfc2136/3/docker-compose.yml
Normal file
@ -0,0 +1,17 @@
|
||||
rfc2136dns:
|
||||
image: rancher/external-dns:v0.6.2
|
||||
command: -provider=rfc2136
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
RFC2136_HOST: ${RFC2136_HOST}
|
||||
RFC2136_PORT: ${RFC2136_PORT}
|
||||
RFC2136_TSIG_KEYNAME: ${RFC2136_TSIG_KEYNAME}
|
||||
RFC2136_TSIG_SECRET: ${RFC2136_TSIG_SECRET}
|
||||
RFC2136_INSECURE: ${RFC2136_INSECURE}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: ${TTL}
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
63
infra-templates/dnsupdate-rfc2136/3/rancher-compose.yml
Normal file
63
infra-templates/dnsupdate-rfc2136/3/rancher-compose.yml
Normal file
@ -0,0 +1,63 @@
|
||||
# notemplating
|
||||
.catalog:
|
||||
name: "DNS Update (RFC2136)"
|
||||
version: "v0.6.2-rancher2"
|
||||
description: "Rancher External DNS service powered by any RFC2136 compatible DNS server. Requires Rancher version v1.1.0"
|
||||
minimum_rancher_version: v1.6.0-rc1
|
||||
questions:
|
||||
- variable: "RFC2136_HOST"
|
||||
label: "DNS Server IP"
|
||||
description: "Server IP or Hostname"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "RFC2136_PORT"
|
||||
label: "DNS Server Port"
|
||||
description: "Server port"
|
||||
type: "string"
|
||||
required: true
|
||||
default: "53"
|
||||
- variable: "RFC2136_INSECURE"
|
||||
description: "Disables TSIG authentication for DNS Update requests"
|
||||
label: "Insecure DNS Update"
|
||||
required: true
|
||||
default: false
|
||||
type: "boolean"
|
||||
- variable: "RFC2136_TSIG_KEYNAME"
|
||||
label: "TSIG Key Name"
|
||||
description: "Name of the TSIG key used for authenticating with the DNS server"
|
||||
type: "string"
|
||||
required: false
|
||||
- variable: "RFC2136_TSIG_SECRET"
|
||||
label: "TSIG Key"
|
||||
description: "TSIG secret key used for authenticating with the DNS server (HMAC-MD5, base64 encoded)"
|
||||
type: "string"
|
||||
required: false
|
||||
- variable: "TTL"
|
||||
label: "TTL"
|
||||
description: "The resource record cache time to live (TTL), in seconds"
|
||||
type: "int"
|
||||
default: 60
|
||||
required: false
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Zone name"
|
||||
description: "The name of an existing zone in which to create the records."
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "NAME_TEMPLATE"
|
||||
label: "DNS Name Template"
|
||||
description: |
|
||||
Name template used to construct the subdomain part (left of the zone/domain name) 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
|
||||
|
||||
rfc2136dns:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 5000
|
||||
unhealthy_threshold: 3
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
60
infra-templates/dnsupdate-rfc2136/4/README.md
Normal file
60
infra-templates/dnsupdate-rfc2136/4/README.md
Normal file
@ -0,0 +1,60 @@
|
||||
## DNS Update (RFC2136)
|
||||
|
||||
Rancher External DNS service powered by any RFC2136 compatible DNS server
|
||||
|
||||
#### Changelog
|
||||
|
||||
##### v0.6.2
|
||||
|
||||
* Adds support for disabling/enforcing external DNS on the host and service level using labels
|
||||
* Adds support for insecure DNS Updates
|
||||
* Fixes an issue with lingering TCP keep-alive connections to the Rancher Metadata service
|
||||
|
||||
#### Usage
|
||||
|
||||
##### Upgrade Notes
|
||||
While upgrading from a version lower than v0.6.0 the TTL configuration value should not be changed. You may change it once the upgrade has been completed.
|
||||
|
||||
##### Limitation when running the service on multiple Rancher servers
|
||||
|
||||
When running multiple instances of the External DNS service configured to use the same domain name, then only one of them can run in the "Default" environment of a Rancher server instance.
|
||||
|
||||
##### 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`
|
||||
Accepts valid DNS name template
|
||||
|
||||
By default DNS entries are named based on default template defined on dnsupdate service.
|
||||
You can customize it per service by assigning `io.rancher.service.external_dns_name_template` label to each service.
|
||||
dnsupdate will use this template instead of default one when creating dns record for related 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.
|
17
infra-templates/dnsupdate-rfc2136/4/docker-compose.yml
Normal file
17
infra-templates/dnsupdate-rfc2136/4/docker-compose.yml
Normal file
@ -0,0 +1,17 @@
|
||||
rfc2136dns:
|
||||
image: rancher/external-dns:v0.7.2
|
||||
command: -provider=rfc2136
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
RFC2136_HOST: ${RFC2136_HOST}
|
||||
RFC2136_PORT: ${RFC2136_PORT}
|
||||
RFC2136_TSIG_KEYNAME: ${RFC2136_TSIG_KEYNAME}
|
||||
RFC2136_TSIG_SECRET: ${RFC2136_TSIG_SECRET}
|
||||
RFC2136_INSECURE: ${RFC2136_INSECURE}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: ${TTL}
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
63
infra-templates/dnsupdate-rfc2136/4/rancher-compose.yml
Normal file
63
infra-templates/dnsupdate-rfc2136/4/rancher-compose.yml
Normal file
@ -0,0 +1,63 @@
|
||||
# notemplating
|
||||
.catalog:
|
||||
name: "DNS Update (RFC2136)"
|
||||
version: "v0.7.2-rancher1"
|
||||
description: "Rancher External DNS service powered by any RFC2136 compatible DNS server. Requires Rancher version v1.1.0"
|
||||
minimum_rancher_version: v1.6.0-rc1
|
||||
questions:
|
||||
- variable: "RFC2136_HOST"
|
||||
label: "DNS Server IP"
|
||||
description: "Server IP or Hostname"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "RFC2136_PORT"
|
||||
label: "DNS Server Port"
|
||||
description: "Server port"
|
||||
type: "string"
|
||||
required: true
|
||||
default: "53"
|
||||
- variable: "RFC2136_INSECURE"
|
||||
description: "Disables TSIG authentication for DNS Update requests"
|
||||
label: "Insecure DNS Update"
|
||||
required: true
|
||||
default: false
|
||||
type: "boolean"
|
||||
- variable: "RFC2136_TSIG_KEYNAME"
|
||||
label: "TSIG Key Name"
|
||||
description: "Name of the TSIG key used for authenticating with the DNS server"
|
||||
type: "string"
|
||||
required: false
|
||||
- variable: "RFC2136_TSIG_SECRET"
|
||||
label: "TSIG Key"
|
||||
description: "TSIG secret key used for authenticating with the DNS server (HMAC-MD5, base64 encoded)"
|
||||
type: "string"
|
||||
required: false
|
||||
- variable: "TTL"
|
||||
label: "TTL"
|
||||
description: "The resource record cache time to live (TTL), in seconds"
|
||||
type: "int"
|
||||
default: 60
|
||||
required: false
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Zone name"
|
||||
description: "The name of an existing zone in which to create the records."
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "NAME_TEMPLATE"
|
||||
label: "DNS Name Template"
|
||||
description: |
|
||||
Name template used to construct the subdomain part (left of the zone/domain name) 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
|
||||
|
||||
rfc2136dns:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 5000
|
||||
unhealthy_threshold: 3
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
@ -1,7 +1,7 @@
|
||||
name: DNS Update (RFC2136)
|
||||
description: |
|
||||
Rancher External DNS service powered by any RFC2136 compatible DNS
|
||||
version: v0.6.2-rancher1
|
||||
version: v0.7.2-rancher1
|
||||
category: External DNS
|
||||
labels:
|
||||
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'
|
||||
|
13
infra-templates/gandi-dns/0/docker-compose.yml
Normal file
13
infra-templates/gandi-dns/0/docker-compose.yml
Normal file
@ -0,0 +1,13 @@
|
||||
gandidns:
|
||||
image: rancher/external-dns:v0.7.2
|
||||
command: -provider=gandi
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
GANDI_APIKEY: ${GANDI_APIKEY}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: ${TTL}
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
43
infra-templates/gandi-dns/0/rancher-compose.yml
Normal file
43
infra-templates/gandi-dns/0/rancher-compose.yml
Normal file
@ -0,0 +1,43 @@
|
||||
# notemplating
|
||||
.catalog:
|
||||
name: "Gandi DNS"
|
||||
version: "v0.1.0"
|
||||
description: "Rancher External DNS service powered by Gandi. Requires Rancher version v1.1.0"
|
||||
maintainer: "Frederic Leger <contact@webofmars.com>"
|
||||
minimum_rancher_version: v1.6.0-rc1
|
||||
#maximum_rancher_version:
|
||||
questions:
|
||||
- variable: "GANDI_APIKEY"
|
||||
label: "Gandi API key"
|
||||
description: "API key for your Gandi account"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Root Domain"
|
||||
description: "The domain name managed by Gandi."
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "TTL"
|
||||
label: "TTL"
|
||||
description: "The resource record cache time to live (TTL), in seconds (minimum 300)"
|
||||
type: "int"
|
||||
default: 300
|
||||
required: false
|
||||
- variable: "NAME_TEMPLATE"
|
||||
label: "DNS Name Template"
|
||||
description: |
|
||||
Name template used to construct the subdomain part (left of the root domain name) 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
|
||||
|
||||
gandidns:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 15000
|
||||
unhealthy_threshold: 2
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
13
infra-templates/gandi-dns/1/docker-compose.yml
Normal file
13
infra-templates/gandi-dns/1/docker-compose.yml
Normal file
@ -0,0 +1,13 @@
|
||||
gandidns:
|
||||
image: rancher/external-dns:v0.7.6
|
||||
command: -provider=gandi
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
GANDI_APIKEY: ${GANDI_APIKEY}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
NAME_TEMPLATE: ${NAME_TEMPLATE}
|
||||
TTL: ${TTL}
|
||||
labels:
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
43
infra-templates/gandi-dns/1/rancher-compose.yml
Normal file
43
infra-templates/gandi-dns/1/rancher-compose.yml
Normal file
@ -0,0 +1,43 @@
|
||||
# notemplating
|
||||
.catalog:
|
||||
name: "Gandi DNS"
|
||||
version: "v0.1.1"
|
||||
description: "Rancher External DNS service powered by Gandi. Requires Rancher version v1.1.0"
|
||||
maintainer: "Frederic Leger <contact@webofmars.com>"
|
||||
minimum_rancher_version: v1.6.0-rc1
|
||||
#maximum_rancher_version:
|
||||
questions:
|
||||
- variable: "GANDI_APIKEY"
|
||||
label: "Gandi API key"
|
||||
description: "API key for your Gandi account"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Root Domain"
|
||||
description: "The domain name managed by Gandi."
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "TTL"
|
||||
label: "TTL"
|
||||
description: "The resource record cache time to live (TTL), in seconds (minimum 300)"
|
||||
type: "int"
|
||||
default: 300
|
||||
required: false
|
||||
- variable: "NAME_TEMPLATE"
|
||||
label: "DNS Name Template"
|
||||
description: |
|
||||
Name template used to construct the subdomain part (left of the root domain name) 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
|
||||
|
||||
gandidns:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 15000
|
||||
unhealthy_threshold: 2
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
BIN
infra-templates/gandi-dns/catalogIcon-gandidns.jpg
Normal file
BIN
infra-templates/gandi-dns/catalogIcon-gandidns.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
7
infra-templates/gandi-dns/config.yml
Normal file
7
infra-templates/gandi-dns/config.yml
Normal file
@ -0,0 +1,7 @@
|
||||
name: GANDI DNS
|
||||
description: |
|
||||
Rancher External DNS service powered by Gandi.net
|
||||
version: v0.1.1
|
||||
category: External DNS
|
||||
labels:
|
||||
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'
|
40
infra-templates/infoblox/0/README.md
Normal file
40
infra-templates/infoblox/0/README.md
Normal 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.
|
16
infra-templates/infoblox/0/docker-compose.yml
Normal file
16
infra-templates/infoblox/0/docker-compose.yml
Normal 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"
|
63
infra-templates/infoblox/0/rancher-compose.yml
Normal file
63
infra-templates/infoblox/0/rancher-compose.yml
Normal 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
|
40
infra-templates/infoblox/1/README.md
Normal file
40
infra-templates/infoblox/1/README.md
Normal 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.
|
16
infra-templates/infoblox/1/docker-compose.yml
Normal file
16
infra-templates/infoblox/1/docker-compose.yml
Normal file
@ -0,0 +1,16 @@
|
||||
infoblox:
|
||||
image: rancher/external-dns:v0.7.8
|
||||
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"
|
63
infra-templates/infoblox/1/rancher-compose.yml
Normal file
63
infra-templates/infoblox/1/rancher-compose.yml
Normal file
@ -0,0 +1,63 @@
|
||||
# notemplating
|
||||
.catalog:
|
||||
name: "Infoblox DNS"
|
||||
version: "v0.2.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: "password"
|
||||
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
|
BIN
infra-templates/infoblox/catalogIcon-infoblox.png
Normal file
BIN
infra-templates/infoblox/catalogIcon-infoblox.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
7
infra-templates/infoblox/config.yml
Normal file
7
infra-templates/infoblox/config.yml
Normal file
@ -0,0 +1,7 @@
|
||||
name: Infoblox DNS
|
||||
description: |
|
||||
Rancher External DNS service powered by Infoblox
|
||||
version: v0.2.0
|
||||
category: External DNS
|
||||
labels:
|
||||
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'
|
14
infra-templates/powerdns-external-dns/1/docker-compose.yml
Normal file
14
infra-templates/powerdns-external-dns/1/docker-compose.yml
Normal file
@ -0,0 +1,14 @@
|
||||
powerdns:
|
||||
image: rancher/external-dns:v0.7.1
|
||||
command: "-provider=powerdns"
|
||||
expose:
|
||||
- 1000
|
||||
environment:
|
||||
POWERDNS_API_KEY: ${POWERDNS_API_KEY}
|
||||
POWERDNS_URL: ${POWERDNS_URL}
|
||||
ROOT_DOMAIN: ${ROOT_DOMAIN}
|
||||
TTL: ${TTL}
|
||||
labels:
|
||||
io.rancher.container.pull_image: always
|
||||
io.rancher.container.create_agent: "true"
|
||||
io.rancher.container.agent.role: "external-dns"
|
38
infra-templates/powerdns-external-dns/1/rancher-compose.yml
Normal file
38
infra-templates/powerdns-external-dns/1/rancher-compose.yml
Normal file
@ -0,0 +1,38 @@
|
||||
.catalog:
|
||||
name: "PowerDNS External"
|
||||
version: "v0.7.1"
|
||||
description: Rancher External DNS service for PowerDNS.
|
||||
minimum_rancher_version: v1.2.0-pre4-rc1
|
||||
uuid: powerdns-external-dns:v0.7.1
|
||||
questions:
|
||||
- variable: POWERDNS_URL
|
||||
label: PowerDNS URL
|
||||
type: string
|
||||
description: http[s] base url to PowerDNS
|
||||
required: true
|
||||
default: http://powerdns:8100
|
||||
- variable: POWERDNS_API_KEY
|
||||
label: PowerDNS API Key
|
||||
type: password
|
||||
description: API Key for PowerDNS
|
||||
required: true
|
||||
- variable: TTL
|
||||
label: TTL
|
||||
description: "The resource record cache time to live (TTL), in seconds"
|
||||
type: int
|
||||
default: 299
|
||||
required: false
|
||||
- variable: "ROOT_DOMAIN"
|
||||
label: "Hosted zone name"
|
||||
description: "Hosted zone name (zone has to be pre-created). DNS entries will be created for <service>.<stack>.<environment>.<hosted zone>"
|
||||
type: "string"
|
||||
required: true
|
||||
|
||||
powerdns:
|
||||
health_check:
|
||||
port: 1000
|
||||
interval: 30000
|
||||
unhealthy_threshold: 3
|
||||
request_line: GET / HTTP/1.0
|
||||
healthy_threshold: 2
|
||||
response_timeout: 2000
|
@ -1,7 +1,7 @@
|
||||
name: PowerDNS External
|
||||
description: |
|
||||
Rancher External DNS service for PowerDNS
|
||||
version: v0.5.0-rancher1
|
||||
version: v0.7.1
|
||||
category: External DNS
|
||||
labels:
|
||||
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'
|
||||
|
@ -9,23 +9,42 @@ spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- image: husseingalal/mongo-k8s-config:v0.2.0
|
||||
name: mongo-config
|
||||
volumeMounts:
|
||||
- mountPath: /opt/rancher/bin
|
||||
name: utility
|
||||
stdin: true
|
||||
tty: true
|
||||
- name: mongo-sec
|
||||
image: husseingalal/mongo-k8s
|
||||
image: mongo:3.4
|
||||
ports:
|
||||
- containerPort: 27017
|
||||
volumeMounts:
|
||||
- name: mongo-ephermal-storage
|
||||
- name: mongo-datadir
|
||||
mountPath: /data/db
|
||||
- mountPath: /opt/rancher/bin
|
||||
name: utility
|
||||
command:
|
||||
- /run.sh
|
||||
- /opt/rancher/bin/run.sh
|
||||
- mongod
|
||||
- "--replSet"
|
||||
- rs0
|
||||
- "--smallfiles"
|
||||
- "--noprealloc"
|
||||
env:
|
||||
- name: PRIMARY
|
||||
value: "false"
|
||||
- name: POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
volumes:
|
||||
- name: mongo-ephermal-storage
|
||||
emptyDir: {}
|
||||
- name: mongo-datadir
|
||||
hostPath:
|
||||
path: ${mongo_volume}
|
||||
- name: utility
|
||||
emptyDir: {}
|
||||
metadata:
|
||||
labels:
|
||||
secondary: "true"
|
||||
|
@ -9,33 +9,49 @@ spec:
|
||||
- port: 27017
|
||||
targetPort: 27017
|
||||
selector:
|
||||
name: mongo-master
|
||||
name: mongo-primary
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
labels:
|
||||
name: mongo-master
|
||||
name: mongo-master
|
||||
name: mongo-primary
|
||||
name: mongo-primary
|
||||
spec:
|
||||
containers:
|
||||
- name: mongo-master
|
||||
image: "husseingalal/mongo-k8s"
|
||||
- name: mongo-config
|
||||
image: husseingalal/mongo-k8s-config:v0.2.0
|
||||
volumeMounts:
|
||||
- mountPath: /opt/rancher/bin
|
||||
name: utility
|
||||
stdin: true
|
||||
tty: true
|
||||
- name: mongo-primary
|
||||
image: mongo:3.4
|
||||
env:
|
||||
- name: PRIMARY
|
||||
value: "true"
|
||||
- name: PRIMARY
|
||||
value: "true"
|
||||
- name: POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
ports:
|
||||
- containerPort: 27017
|
||||
command:
|
||||
- /run.sh
|
||||
- /opt/rancher/bin/run.sh
|
||||
- mongod
|
||||
- "--replSet"
|
||||
- rs0
|
||||
- "--smallfiles"
|
||||
- "--noprealloc"
|
||||
volumeMounts:
|
||||
- mountPath: /opt/rancher/bin
|
||||
name: utility
|
||||
- mountPath: /data/db
|
||||
name: mongo-primary-ephermal-storage
|
||||
name: mongo-datadir
|
||||
volumes:
|
||||
- name: mongo-primary-ephermal-storage
|
||||
emptyDir: {}
|
||||
- name: mongo-datadir
|
||||
hostPath:
|
||||
path: ${mongo_volume}
|
||||
- name: utility
|
||||
emptyDir: {}
|
||||
|
@ -2,6 +2,7 @@
|
||||
name: MongoDB
|
||||
version: 3.2-rancher1
|
||||
description: MongoDB Replica Set
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: "sec_no"
|
||||
label: "Number of Secondary nodes"
|
||||
@ -9,3 +10,8 @@
|
||||
type: int
|
||||
default: 2
|
||||
description: "should be even number"
|
||||
- variable: "mongo_volume"
|
||||
label: "hostpath volume for mongodb"
|
||||
required: true
|
||||
type: string
|
||||
default: "/data/db"
|
||||
|
@ -4,6 +4,7 @@
|
||||
description: "Prometheus Monitoring Solution"
|
||||
uuid: prometheus-1
|
||||
minimum_rancher_version: v0.56.0
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: "cattle_config_url"
|
||||
label: "Rancher Server URL"
|
||||
|
@ -2,6 +2,7 @@
|
||||
name: "K8s Example Cassandra"
|
||||
version: "1.0.0"
|
||||
description: ""
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: "NODE_COUNT"
|
||||
label: "Initial number of Cassandra nodes"
|
||||
|
@ -4,6 +4,7 @@
|
||||
(Experimental) Cloud 9 SDK
|
||||
version: 3.0-k8s1
|
||||
minimum_rancher_version: v1.0.0
|
||||
maximum_rancher_version: v1.3.99
|
||||
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
||||
uuid: cloud9-0
|
||||
questions:
|
||||
|
@ -2,6 +2,7 @@
|
||||
name: Ghost
|
||||
version: 0.7.8-rancher1
|
||||
description: Open source publishing platform
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: "mysql_root_pass"
|
||||
label: "MySQL root password"
|
||||
|
@ -2,6 +2,7 @@
|
||||
name: "K8s Guestbook"
|
||||
version: "1.0.0"
|
||||
description: "It's a guestbook, I guess"
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: "SERVICE_NAME"
|
||||
label: "Service Name"
|
||||
|
@ -2,6 +2,7 @@
|
||||
name: Heapster Grafana InfluxDB
|
||||
version: canary-rancher1
|
||||
description: A cluster-wide aggregator of monitoring and event data.
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: "GRAFANA_PORT"
|
||||
label: "Node port for Grafana"
|
||||
|
@ -4,6 +4,7 @@
|
||||
description: |
|
||||
(Experimental) Apache Kafka cluster.
|
||||
minimum_rancher_version: v0.59.0
|
||||
maximum_rancher_version: v1.3.99
|
||||
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
||||
uuid: kafka-0
|
||||
questions:
|
||||
|
33
kubernetes-templates/kafka/1/README.md
Normal file
33
kubernetes-templates/kafka/1/README.md
Normal file
@ -0,0 +1,33 @@
|
||||
# Apache Kafka (Experimental)
|
||||
|
||||
### Info:
|
||||
|
||||
This template creates, scale in and scale out a multinodes kafka broker cluster on top of k8s. The configuration is generated with confd from k8s.
|
||||
Cluster size are variable after deployment, and get reconfigured.
|
||||
|
||||
|
||||
### Usage:
|
||||
|
||||
Select Apache Kafka from catalog.
|
||||
|
||||
Enter the number of nodes, mem and refresh interval for the kafka cluster.
|
||||
|
||||
Change the following kafka default parameters, if you need:
|
||||
|
||||
- kafka_name="kafka" # kafka k8s service and rc name.
|
||||
- kafka_namespace="kafka" # kafka k8s namespace
|
||||
- kafka_scale=3 # kafka scale to deploy.
|
||||
- kafka_mem=512 # kafka broker memory.
|
||||
- kafka_log_dir="/opt/kafka/logs" # Kafka log dir.
|
||||
- kafka_log_retention="168" # kafka log retention.
|
||||
- kafka_num_partitions="1" # Kafka partitions number
|
||||
- kafka_delete_topics="false" # kafka delete topics
|
||||
- kafka_pub_ip= < true | false > # Advertise public ip to zookeeper.
|
||||
- zk_link="kafka-zk/zk" # zookeeper namespace/service to connect to.
|
||||
|
||||
Click deploy.
|
||||
|
||||
Kafka can now be accessed over the Rancher network.
|
||||
|
||||
Note: When you scale the cluster, zero downtime is not guaranteed..yet..
|
||||
|
77
kubernetes-templates/kafka/1/kafka-rc.yml
Normal file
77
kubernetes-templates/kafka/1/kafka-rc.yml
Normal file
@ -0,0 +1,77 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: "${kafka_name}"
|
||||
namespace: "${kafka_namespace}"
|
||||
labels:
|
||||
name: "${kafka_name}"
|
||||
spec:
|
||||
replicas: ${kafka_scale}
|
||||
selector:
|
||||
name: "${kafka_name}"
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: "${kafka_name}"
|
||||
spec:
|
||||
containers:
|
||||
- name: "broker-conf"
|
||||
image: "rawmind/k8s-kafka:0.10.2.0-1"
|
||||
volumeMounts:
|
||||
- mountPath: "/opt/tools"
|
||||
name: "broker-conf"
|
||||
ports:
|
||||
imagePullPolicy: "IfNotPresent"
|
||||
- name: "broker-volume"
|
||||
image: "rawmind/alpine-volume:0.0.2-1"
|
||||
env:
|
||||
- name: SERVICE_UID
|
||||
value: "10003"
|
||||
- name: SERVICE_GID
|
||||
value: "10003"
|
||||
- name: SERVICE_VOLUME
|
||||
value: "${kafka_log_dir}"
|
||||
- name: KEEP_ALIVE
|
||||
value: "1"
|
||||
volumeMounts:
|
||||
- mountPath: "${kafka_log_dir}"
|
||||
name: "broker-data"
|
||||
ports:
|
||||
imagePullPolicy: "IfNotPresent"
|
||||
- name: "broker-service"
|
||||
image: "rawmind/alpine-kafka:0.10.2.0-2"
|
||||
env:
|
||||
- name: JVMFLAGS
|
||||
value: "-Xmx${kafka_mem}m -Xms${kafka_mem}m"
|
||||
- name: CONFD_INTERVAL
|
||||
value: "${kafka_interval}"
|
||||
- name: KAFKA_ZK_SERVICE
|
||||
value: "${zk_link}"
|
||||
- name: KAFKA_DELETE_TOPICS
|
||||
value: "${kafka_delete_topics}"
|
||||
- name: KAFKA_LOG_DIRS
|
||||
value: "${kafka_log_dir}"
|
||||
- name: KAFKA_LOG_RETENTION_HOURS
|
||||
value: "${kafka_log_retention}"
|
||||
- name: KAFKA_NUM_PARTITIONS
|
||||
value: "${kafka_num_partitions}"
|
||||
- name: ADVERTISE_PUB_IP
|
||||
value: "${kafka_pub_ip}"
|
||||
- name: POD_NAMESPACE
|
||||
value: "${kafka_namespace}"
|
||||
volumeMounts:
|
||||
- mountPath: "${kafka_log_dir}"
|
||||
name: "broker-data"
|
||||
- mountPath: "/opt/tools"
|
||||
name: "broker-conf"
|
||||
ports:
|
||||
- containerPort: 9092
|
||||
name: "broker-client"
|
||||
protocol: "TCP"
|
||||
imagePullPolicy: "IfNotPresent"
|
||||
restartPolicy: "Always"
|
||||
volumes:
|
||||
- name: "broker-data"
|
||||
emptyDir: {}
|
||||
- name: "broker-conf"
|
||||
emptyDir: {}
|
15
kubernetes-templates/kafka/1/kafka-service.yml
Normal file
15
kubernetes-templates/kafka/1/kafka-service.yml
Normal file
@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: "${kafka_name}"
|
||||
labels:
|
||||
name: "${kafka_name}"
|
||||
spec:
|
||||
ports:
|
||||
- port: 9092
|
||||
targetPort: 9092
|
||||
name: "broker-client"
|
||||
protocol: "TCP"
|
||||
selector:
|
||||
name: "${kafka_name}"
|
||||
clusterIP: "None"
|
95
kubernetes-templates/kafka/1/rancher-compose.yml
Normal file
95
kubernetes-templates/kafka/1/rancher-compose.yml
Normal file
@ -0,0 +1,95 @@
|
||||
.catalog:
|
||||
name: Kafka
|
||||
version: 0.10.2.0-k8s
|
||||
description: |
|
||||
(Experimental) Apache Kafka cluster.
|
||||
minimum_rancher_version: v0.59.0
|
||||
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
||||
uuid: kafka-0
|
||||
questions:
|
||||
- variable: "kafka_name"
|
||||
description: "Name of kafka rc and service."
|
||||
label: "K8s rc name:"
|
||||
required: true
|
||||
default: "kafka"
|
||||
type: "string"
|
||||
- variable: "kafka_namespace"
|
||||
description: "Name of kafka namespace."
|
||||
label: "K8s namespace:"
|
||||
required: true
|
||||
default: "default"
|
||||
type: "string"
|
||||
- variable: "kafka_scale"
|
||||
description: "Number of brokers nodes. Note: Recommended an odd number"
|
||||
label: "Broker Nodes:"
|
||||
required: true
|
||||
default: 3
|
||||
type: "int"
|
||||
- variable: "kafka_mem"
|
||||
description: "Amount of memory to config brokers."
|
||||
label: "Broker Memory (mb):"
|
||||
required: true
|
||||
default: 1024
|
||||
type: "string"
|
||||
- variable: "kafka_log_dir"
|
||||
description: "Broker volume to log data"
|
||||
label: "Broker log volume:"
|
||||
required: true
|
||||
default: "/opt/kafka/logs"
|
||||
type: "string"
|
||||
- variable: "kafka_log_retention"
|
||||
description: "Broker log retention in hours"
|
||||
label: "Broker log retention (h):"
|
||||
required: true
|
||||
default: "168"
|
||||
type: "int"
|
||||
- variable: "kafka_num_partitions"
|
||||
description: "Number of broker partitions"
|
||||
label: "Broker partitions:"
|
||||
required: true
|
||||
default: "1"
|
||||
type: "int"
|
||||
- variable: "kafka_delete_topics"
|
||||
label: "Kafka delete topics:"
|
||||
description: |
|
||||
Enable delete topics in kafka.
|
||||
default: false
|
||||
required: true
|
||||
type: enum
|
||||
options:
|
||||
- false
|
||||
- true
|
||||
- variable: "kafka_interval"
|
||||
description: "Interval to poll/apply configuration changes. 0 to disable"
|
||||
label: "Broker Interval (s):"
|
||||
required: true
|
||||
default: 60
|
||||
type: "int"
|
||||
- variable: "kafka_pub_ip"
|
||||
description: "Advertise local and host public ip"
|
||||
label: "Broker public ip:"
|
||||
default: false
|
||||
required: true
|
||||
type: enum
|
||||
options:
|
||||
- false
|
||||
- true
|
||||
- variable: "zk_link"
|
||||
description: |
|
||||
Choose the Zookeeper service to use.
|
||||
It's really recommended a dedicated zookeeper service just for Kafka.
|
||||
label: "Zookeeper stack/service"
|
||||
default: "default/zookeeper"
|
||||
required: true
|
||||
type: "service"
|
||||
broker:
|
||||
scale: ${kafka_scale}
|
||||
retain_ip: true
|
||||
health_check:
|
||||
port: 9092
|
||||
interval: 5000
|
||||
unhealthy_threshold: 3
|
||||
request_line: ''
|
||||
healthy_threshold: 2
|
||||
response_timeout: 5000
|
||||
|
33
kubernetes-templates/kafka/2/README.md
Normal file
33
kubernetes-templates/kafka/2/README.md
Normal file
@ -0,0 +1,33 @@
|
||||
# Apache Kafka (Experimental)
|
||||
|
||||
### Info:
|
||||
|
||||
This template creates, scale in and scale out a multinodes kafka broker cluster on top of k8s. The configuration is generated with confd from k8s.
|
||||
Cluster size are variable after deployment, and get reconfigured.
|
||||
|
||||
|
||||
### Usage:
|
||||
|
||||
Select Apache Kafka from catalog.
|
||||
|
||||
Enter the number of nodes, mem and refresh interval for the kafka cluster.
|
||||
|
||||
Change the following kafka default parameters, if you need:
|
||||
|
||||
- kafka_name="kafka" # kafka k8s service and rc name.
|
||||
- kafka_namespace="kafka" # kafka k8s namespace
|
||||
- kafka_scale=3 # kafka scale to deploy.
|
||||
- kafka_mem=512 # kafka broker memory.
|
||||
- kafka_log_dir="/opt/kafka/logs" # Kafka log dir.
|
||||
- kafka_log_retention="168" # kafka log retention.
|
||||
- kafka_num_partitions="1" # Kafka partitions number
|
||||
- kafka_delete_topics="false" # kafka delete topics
|
||||
- kafka_pub_ip= < true | false > # Advertise public ip to zookeeper.
|
||||
- zk_link="kafka-zk/zk" # zookeeper namespace/service to connect to.
|
||||
|
||||
Click deploy.
|
||||
|
||||
Kafka can now be accessed over the Rancher network.
|
||||
|
||||
Note: When you scale the cluster, zero downtime is not guaranteed..yet..
|
||||
|
77
kubernetes-templates/kafka/2/kafka-rc.yml
Normal file
77
kubernetes-templates/kafka/2/kafka-rc.yml
Normal file
@ -0,0 +1,77 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: "${kafka_name}"
|
||||
namespace: "${kafka_namespace}"
|
||||
labels:
|
||||
name: "${kafka_name}"
|
||||
spec:
|
||||
replicas: ${kafka_scale}
|
||||
selector:
|
||||
name: "${kafka_name}"
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: "${kafka_name}"
|
||||
spec:
|
||||
containers:
|
||||
- name: "broker-conf"
|
||||
image: "rawmind/k8s-kafka:0.10.2.0-1"
|
||||
volumeMounts:
|
||||
- mountPath: "/opt/tools"
|
||||
name: "broker-conf"
|
||||
ports:
|
||||
imagePullPolicy: "IfNotPresent"
|
||||
- name: "broker-volume"
|
||||
image: "rawmind/alpine-volume:0.0.2-1"
|
||||
env:
|
||||
- name: SERVICE_UID
|
||||
value: "10003"
|
||||
- name: SERVICE_GID
|
||||
value: "10003"
|
||||
- name: SERVICE_VOLUME
|
||||
value: "${kafka_log_dir}"
|
||||
- name: KEEP_ALIVE
|
||||
value: "1"
|
||||
volumeMounts:
|
||||
- mountPath: "${kafka_log_dir}"
|
||||
name: "broker-data"
|
||||
ports:
|
||||
imagePullPolicy: "IfNotPresent"
|
||||
- name: "broker-service"
|
||||
image: "rawmind/alpine-kafka:0.10.2.1"
|
||||
env:
|
||||
- name: JVMFLAGS
|
||||
value: "-Xmx${kafka_mem}m -Xms${kafka_mem}m"
|
||||
- name: CONFD_INTERVAL
|
||||
value: "${kafka_interval}"
|
||||
- name: KAFKA_ZK_SERVICE
|
||||
value: "${zk_link}"
|
||||
- name: KAFKA_DELETE_TOPICS
|
||||
value: "${kafka_delete_topics}"
|
||||
- name: KAFKA_LOG_DIRS
|
||||
value: "${kafka_log_dir}"
|
||||
- name: KAFKA_LOG_RETENTION_HOURS
|
||||
value: "${kafka_log_retention}"
|
||||
- name: KAFKA_NUM_PARTITIONS
|
||||
value: "${kafka_num_partitions}"
|
||||
- name: ADVERTISE_PUB_IP
|
||||
value: "${kafka_pub_ip}"
|
||||
- name: POD_NAMESPACE
|
||||
value: "${kafka_namespace}"
|
||||
volumeMounts:
|
||||
- mountPath: "${kafka_log_dir}"
|
||||
name: "broker-data"
|
||||
- mountPath: "/opt/tools"
|
||||
name: "broker-conf"
|
||||
ports:
|
||||
- containerPort: 9092
|
||||
name: "broker-client"
|
||||
protocol: "TCP"
|
||||
imagePullPolicy: "IfNotPresent"
|
||||
restartPolicy: "Always"
|
||||
volumes:
|
||||
- name: "broker-data"
|
||||
emptyDir: {}
|
||||
- name: "broker-conf"
|
||||
emptyDir: {}
|
15
kubernetes-templates/kafka/2/kafka-service.yml
Normal file
15
kubernetes-templates/kafka/2/kafka-service.yml
Normal file
@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: "${kafka_name}"
|
||||
labels:
|
||||
name: "${kafka_name}"
|
||||
spec:
|
||||
ports:
|
||||
- port: 9092
|
||||
targetPort: 9092
|
||||
name: "broker-client"
|
||||
protocol: "TCP"
|
||||
selector:
|
||||
name: "${kafka_name}"
|
||||
clusterIP: "None"
|
95
kubernetes-templates/kafka/2/rancher-compose.yml
Normal file
95
kubernetes-templates/kafka/2/rancher-compose.yml
Normal file
@ -0,0 +1,95 @@
|
||||
.catalog:
|
||||
name: Kafka
|
||||
version: 0.10.2.1-k8s
|
||||
description: |
|
||||
(Experimental) Apache Kafka cluster.
|
||||
minimum_rancher_version: v0.59.0
|
||||
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
||||
uuid: kafka-0
|
||||
questions:
|
||||
- variable: "kafka_name"
|
||||
description: "Name of kafka rc and service."
|
||||
label: "K8s rc name:"
|
||||
required: true
|
||||
default: "kafka"
|
||||
type: "string"
|
||||
- variable: "kafka_namespace"
|
||||
description: "Name of kafka namespace."
|
||||
label: "K8s namespace:"
|
||||
required: true
|
||||
default: "default"
|
||||
type: "string"
|
||||
- variable: "kafka_scale"
|
||||
description: "Number of brokers nodes. Note: Recommended an odd number"
|
||||
label: "Broker Nodes:"
|
||||
required: true
|
||||
default: 3
|
||||
type: "int"
|
||||
- variable: "kafka_mem"
|
||||
description: "Amount of memory to config brokers."
|
||||
label: "Broker Memory (mb):"
|
||||
required: true
|
||||
default: 1024
|
||||
type: "string"
|
||||
- variable: "kafka_log_dir"
|
||||
description: "Broker volume to log data"
|
||||
label: "Broker log volume:"
|
||||
required: true
|
||||
default: "/opt/kafka/logs"
|
||||
type: "string"
|
||||
- variable: "kafka_log_retention"
|
||||
description: "Broker log retention in hours"
|
||||
label: "Broker log retention (h):"
|
||||
required: true
|
||||
default: "168"
|
||||
type: "int"
|
||||
- variable: "kafka_num_partitions"
|
||||
description: "Number of broker partitions"
|
||||
label: "Broker partitions:"
|
||||
required: true
|
||||
default: "1"
|
||||
type: "int"
|
||||
- variable: "kafka_delete_topics"
|
||||
label: "Kafka delete topics:"
|
||||
description: |
|
||||
Enable delete topics in kafka.
|
||||
default: false
|
||||
required: true
|
||||
type: enum
|
||||
options:
|
||||
- false
|
||||
- true
|
||||
- variable: "kafka_interval"
|
||||
description: "Interval to poll/apply configuration changes. 0 to disable"
|
||||
label: "Broker Interval (s):"
|
||||
required: true
|
||||
default: 60
|
||||
type: "int"
|
||||
- variable: "kafka_pub_ip"
|
||||
description: "Advertise local and host public ip"
|
||||
label: "Broker public ip:"
|
||||
default: false
|
||||
required: true
|
||||
type: enum
|
||||
options:
|
||||
- false
|
||||
- true
|
||||
- variable: "zk_link"
|
||||
description: |
|
||||
Choose the Zookeeper service to use.
|
||||
It's really recommended a dedicated zookeeper service just for Kafka.
|
||||
label: "Zookeeper stack/service"
|
||||
default: "default/zookeeper"
|
||||
required: true
|
||||
type: "service"
|
||||
broker:
|
||||
scale: ${kafka_scale}
|
||||
retain_ip: true
|
||||
health_check:
|
||||
port: 9092
|
||||
interval: 5000
|
||||
unhealthy_threshold: 3
|
||||
request_line: ''
|
||||
healthy_threshold: 2
|
||||
response_timeout: 5000
|
||||
|
@ -1,7 +1,7 @@
|
||||
name: Apache Kafka
|
||||
description: |
|
||||
(Experimental) Kafka cluster
|
||||
version: 0.10.0.1-k8s
|
||||
version: 0.10.2.1-k8s
|
||||
category: Clustering
|
||||
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
||||
minimum_rancher_version: v0.59.0
|
||||
|
@ -6,6 +6,7 @@
|
||||
re-assembling of raw materials. It may be an elaborate parody of the
|
||||
Australian economy.
|
||||
maintainer: "Rancher"
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: REPLICAS
|
||||
default: 1
|
||||
|
@ -2,6 +2,7 @@
|
||||
name: RabbitMQ
|
||||
version: 3.6.0-rancher1
|
||||
description: A reliable, distributed messaging broker
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: REPLICAS
|
||||
default: 1
|
||||
|
@ -2,6 +2,7 @@
|
||||
name: Redis
|
||||
version: 2.8.23-rancher1
|
||||
description: A highly-available in-memory data structure store
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: "REDIS_REPLICAS"
|
||||
label: "Initial number of Redis nodes"
|
||||
|
@ -3,6 +3,7 @@
|
||||
version: 0.1.0-rancher1
|
||||
description: "Spark cluster"
|
||||
maintainer: "Rancher"
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: "SPARK_WORKER_REPLICAS"
|
||||
type: "string"
|
||||
|
@ -2,6 +2,7 @@
|
||||
name: "Sysdig Cloud"
|
||||
version: "0.1"
|
||||
description: "Container-Native Application and Infrastructure Monitoring"
|
||||
maximum_rancher_version: v1.3.99
|
||||
questions:
|
||||
- variable: "SDC_ACCESS_KEY"
|
||||
label: "Sysdig Cloud access key"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user