Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Daniel Yu 2017-07-26 16:15:17 +08:00
commit 7af31c9c1f
222 changed files with 9021 additions and 199 deletions

View File

@ -3,6 +3,7 @@
version: "v0.1.9-rancher1" version: "v0.1.9-rancher1"
description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version 0.44.0" description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version 0.44.0"
minimum_rancher_version: v1.2.0-pre4-rc1 minimum_rancher_version: v1.2.0-pre4-rc1
maximum_rancher_version: v1.2.0-pre4-rc1
questions: questions:
- variable: "CLOUDFLARE_EMAIL" - variable: "CLOUDFLARE_EMAIL"
label: "CloudFlare email address" label: "CloudFlare email address"

View File

@ -3,6 +3,7 @@
version: "v0.2.1-rancher1" version: "v0.2.1-rancher1"
description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version 0.44.0" description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version 0.44.0"
minimum_rancher_version: v1.2.0-pre4-rc1 minimum_rancher_version: v1.2.0-pre4-rc1
maximum_rancher_version: v1.2.0-pre4-rc1
questions: questions:
- variable: "CLOUDFLARE_EMAIL" - variable: "CLOUDFLARE_EMAIL"
label: "CloudFlare email address" label: "CloudFlare email address"

View File

@ -3,6 +3,7 @@
version: "v0.4.0-rancher1" version: "v0.4.0-rancher1"
description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version 0.44.0" description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version 0.44.0"
minimum_rancher_version: v1.2.0-pre4-rc1 minimum_rancher_version: v1.2.0-pre4-rc1
maximum_rancher_version: v1.2.0-pre4-rc1
questions: questions:
- variable: "CLOUDFLARE_EMAIL" - variable: "CLOUDFLARE_EMAIL"
label: "CloudFlare email address" label: "CloudFlare email address"

View File

@ -3,6 +3,7 @@
version: "v0.6.0-rancher1" version: "v0.6.0-rancher1"
description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version v1.1.0" description: "Rancher External DNS service powered by CloudFlare. Requires Rancher version v1.1.0"
minimum_rancher_version: v1.2.0-pre4-rc1 minimum_rancher_version: v1.2.0-pre4-rc1
maximum_rancher_version: v1.5.99
questions: questions:
- variable: "CLOUDFLARE_EMAIL" - variable: "CLOUDFLARE_EMAIL"
label: "CloudFlare email address" label: "CloudFlare email address"

View 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.

View 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"

View 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

View File

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

View File

@ -3,6 +3,7 @@
version: "v0.6.3" version: "v0.6.3"
description: "Rancher External DNS service powered by DigitalOcean" description: "Rancher External DNS service powered by DigitalOcean"
minimum_rancher_version: v1.5.0 minimum_rancher_version: v1.5.0
maximum_rancher_version: v1.5.0
questions: questions:
- variable: "DO_PAT" - variable: "DO_PAT"
label: "DigitalOcean Personal Access Token" label: "DigitalOcean Personal Access Token"

View File

@ -3,6 +3,7 @@
version: "v0.6.4" version: "v0.6.4"
description: "Rancher External DNS service powered by DigitalOcean" description: "Rancher External DNS service powered by DigitalOcean"
minimum_rancher_version: v1.5.0 minimum_rancher_version: v1.5.0
maximum_rancher_version: v1.5.99
questions: questions:
- variable: "DO_PAT" - variable: "DO_PAT"
label: "DigitalOcean Personal Access Token" label: "DigitalOcean Personal Access Token"

View 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.

View 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"

View 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

View File

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

View File

@ -3,6 +3,7 @@
version: "v0.1.9-rancher1" version: "v0.1.9-rancher1"
description: "Rancher External DNS service powered by DNSimple. Requires Rancher version 0.44.0" description: "Rancher External DNS service powered by DNSimple. Requires Rancher version 0.44.0"
minimum_rancher_version: v1.2.0-pre4-rc1 minimum_rancher_version: v1.2.0-pre4-rc1
maximum_rancher_version: v1.2.0-pre4-rc1
questions: questions:
- variable: "DNSIMPLE_EMAIL" - variable: "DNSIMPLE_EMAIL"
label: "DNSimple account email address" label: "DNSimple account email address"

View File

@ -3,6 +3,7 @@
version: "v0.2.1-rancher1" version: "v0.2.1-rancher1"
description: "Rancher External DNS service powered by DNSimple. Requires Rancher version 0.44.0" description: "Rancher External DNS service powered by DNSimple. Requires Rancher version 0.44.0"
minimum_rancher_version: v1.2.0-pre4-rc1 minimum_rancher_version: v1.2.0-pre4-rc1
maximum_rancher_version: v1.2.0-pre4-rc1
questions: questions:
- variable: "DNSIMPLE_EMAIL" - variable: "DNSIMPLE_EMAIL"
label: "DNSimple account email address" label: "DNSimple account email address"

View File

@ -3,6 +3,7 @@
version: "v0.6.0-rancher1" version: "v0.6.0-rancher1"
description: "Rancher External DNS service powered by DNSimple. Requires Rancher version v1.1.0" description: "Rancher External DNS service powered by DNSimple. Requires Rancher version v1.1.0"
minimum_rancher_version: v1.2.0-pre4-rc1 minimum_rancher_version: v1.2.0-pre4-rc1
maximum_rancher_version: v1.5.99
questions: questions:
- variable: "DNSIMPLE_EMAIL" - variable: "DNSIMPLE_EMAIL"
label: "DNSimple Account Email Address" label: "DNSimple Account Email Address"

View 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.

View 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"

View 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

View File

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

View File

@ -3,6 +3,7 @@
version: "v0.5.0-rancher1" version: "v0.5.0-rancher1"
description: "Rancher External DNS service powered by any RFC2136 compatible DNS" description: "Rancher External DNS service powered by any RFC2136 compatible DNS"
minimum_rancher_version: v1.2.0-pre4-rc1 minimum_rancher_version: v1.2.0-pre4-rc1
maximum_rancher_version: v1.2.0-pre4-rc1
questions: questions:
- variable: "RFC2136_HOST" - variable: "RFC2136_HOST"
label: "Domain Name Server IP" label: "Domain Name Server IP"

View File

@ -3,6 +3,7 @@
version: "v0.6.0-rancher1" version: "v0.6.0-rancher1"
description: "Rancher External DNS service powered by any RFC2136 compatible DNS server. Requires Rancher version v1.1.0" 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 minimum_rancher_version: v1.2.0-pre4-rc1
maximum_rancher_version: v1.2.0-pre4-rc1
questions: questions:
- variable: "RFC2136_HOST" - variable: "RFC2136_HOST"
label: "DNS Server IP" label: "DNS Server IP"

View File

@ -3,6 +3,7 @@
version: "v0.6.2-rancher1" version: "v0.6.2-rancher1"
description: "Rancher External DNS service powered by any RFC2136 compatible DNS server. Requires Rancher version v1.1.0" 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 minimum_rancher_version: v1.2.0-pre4-rc1
maximum_rancher_version: v1.5.99
questions: questions:
- variable: "RFC2136_HOST" - variable: "RFC2136_HOST"
label: "DNS Server IP" label: "DNS Server IP"

View 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.

View 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"

View 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

View File

@ -1,7 +1,7 @@
name: DNS Update (RFC2136) name: DNS Update (RFC2136)
description: | description: |
Rancher External DNS service powered by any RFC2136 compatible DNS Rancher External DNS service powered by any RFC2136 compatible DNS
version: v0.6.2-rancher1 version: v0.6.2-rancher2
category: External DNS category: External DNS
labels: labels:
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes' io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'

View 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"

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

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

View 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"

View 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

View File

@ -1,7 +1,7 @@
name: PowerDNS External name: PowerDNS External
description: | description: |
Rancher External DNS service for PowerDNS Rancher External DNS service for PowerDNS
version: v0.5.0-rancher1 version: v0.7.1
category: External DNS category: External DNS
labels: labels:
io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes' io.rancher.orchestration.supported: 'cattle,mesos,swarm,kubernetes'

View File

@ -9,23 +9,42 @@ spec:
template: template:
spec: spec:
containers: 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 - name: mongo-sec
image: husseingalal/mongo-k8s image: mongo:3.4
ports: ports:
- containerPort: 27017 - containerPort: 27017
volumeMounts: volumeMounts:
- name: mongo-ephermal-storage - name: mongo-datadir
mountPath: /data/db mountPath: /data/db
- mountPath: /opt/rancher/bin
name: utility
command: command:
- /run.sh - /opt/rancher/bin/run.sh
- mongod - mongod
- "--replSet" - "--replSet"
- rs0 - rs0
- "--smallfiles" - "--smallfiles"
- "--noprealloc" - "--noprealloc"
env:
- name: PRIMARY
value: "false"
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
volumes: volumes:
- name: mongo-ephermal-storage - name: mongo-datadir
emptyDir: {} hostPath:
path: ${mongo_volume}
- name: utility
emptyDir: {}
metadata: metadata:
labels: labels:
secondary: "true" secondary: "true"

View File

@ -9,33 +9,49 @@ spec:
- port: 27017 - port: 27017
targetPort: 27017 targetPort: 27017
selector: selector:
name: mongo-master name: mongo-primary
--- ---
apiVersion: v1 apiVersion: v1
kind: Pod kind: Pod
metadata: metadata:
labels: labels:
name: mongo-master name: mongo-primary
name: mongo-master name: mongo-primary
spec: spec:
containers: containers:
- name: mongo-master - name: mongo-config
image: "husseingalal/mongo-k8s" 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: env:
- name: PRIMARY - name: PRIMARY
value: "true" value: "true"
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
ports: ports:
- containerPort: 27017 - containerPort: 27017
command: command:
- /run.sh - /opt/rancher/bin/run.sh
- mongod - mongod
- "--replSet" - "--replSet"
- rs0 - rs0
- "--smallfiles" - "--smallfiles"
- "--noprealloc" - "--noprealloc"
volumeMounts: volumeMounts:
- mountPath: /opt/rancher/bin
name: utility
- mountPath: /data/db - mountPath: /data/db
name: mongo-primary-ephermal-storage name: mongo-datadir
volumes: volumes:
- name: mongo-primary-ephermal-storage - name: mongo-datadir
emptyDir: {} hostPath:
path: ${mongo_volume}
- name: utility
emptyDir: {}

View File

@ -2,6 +2,7 @@
name: MongoDB name: MongoDB
version: 3.2-rancher1 version: 3.2-rancher1
description: MongoDB Replica Set description: MongoDB Replica Set
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "sec_no" - variable: "sec_no"
label: "Number of Secondary nodes" label: "Number of Secondary nodes"
@ -9,3 +10,8 @@
type: int type: int
default: 2 default: 2
description: "should be even number" description: "should be even number"
- variable: "mongo_volume"
label: "hostpath volume for mongodb"
required: true
type: string
default: "/data/db"

View File

@ -4,6 +4,7 @@
description: "Prometheus Monitoring Solution" description: "Prometheus Monitoring Solution"
uuid: prometheus-1 uuid: prometheus-1
minimum_rancher_version: v0.56.0 minimum_rancher_version: v0.56.0
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "cattle_config_url" - variable: "cattle_config_url"
label: "Rancher Server URL" label: "Rancher Server URL"

View File

@ -2,6 +2,7 @@
name: "K8s Example Cassandra" name: "K8s Example Cassandra"
version: "1.0.0" version: "1.0.0"
description: "" description: ""
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "NODE_COUNT" - variable: "NODE_COUNT"
label: "Initial number of Cassandra nodes" label: "Initial number of Cassandra nodes"

View File

@ -4,6 +4,7 @@
(Experimental) Cloud 9 SDK (Experimental) Cloud 9 SDK
version: 3.0-k8s1 version: 3.0-k8s1
minimum_rancher_version: v1.0.0 minimum_rancher_version: v1.0.0
maximum_rancher_version: v1.3.99
maintainer: "Raul Sanchez <rawmind@gmail.com>" maintainer: "Raul Sanchez <rawmind@gmail.com>"
uuid: cloud9-0 uuid: cloud9-0
questions: questions:

View File

@ -2,6 +2,7 @@
name: Ghost name: Ghost
version: 0.7.8-rancher1 version: 0.7.8-rancher1
description: Open source publishing platform description: Open source publishing platform
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "mysql_root_pass" - variable: "mysql_root_pass"
label: "MySQL root password" label: "MySQL root password"

View File

@ -2,6 +2,7 @@
name: "K8s Guestbook" name: "K8s Guestbook"
version: "1.0.0" version: "1.0.0"
description: "It's a guestbook, I guess" description: "It's a guestbook, I guess"
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "SERVICE_NAME" - variable: "SERVICE_NAME"
label: "Service Name" label: "Service Name"

View File

@ -2,6 +2,7 @@
name: Heapster Grafana InfluxDB name: Heapster Grafana InfluxDB
version: canary-rancher1 version: canary-rancher1
description: A cluster-wide aggregator of monitoring and event data. description: A cluster-wide aggregator of monitoring and event data.
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "GRAFANA_PORT" - variable: "GRAFANA_PORT"
label: "Node port for Grafana" label: "Node port for Grafana"

View File

@ -4,6 +4,7 @@
description: | description: |
(Experimental) Apache Kafka cluster. (Experimental) Apache Kafka cluster.
minimum_rancher_version: v0.59.0 minimum_rancher_version: v0.59.0
maximum_rancher_version: v1.3.99
maintainer: "Raul Sanchez <rawmind@gmail.com>" maintainer: "Raul Sanchez <rawmind@gmail.com>"
uuid: kafka-0 uuid: kafka-0
questions: questions:

View 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..

View 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: {}

View 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"

View 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

View 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..

View 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: {}

View 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"

View 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

View File

@ -1,7 +1,7 @@
name: Apache Kafka name: Apache Kafka
description: | description: |
(Experimental) Kafka cluster (Experimental) Kafka cluster
version: 0.10.0.1-k8s version: 0.10.2.1-k8s
category: Clustering category: Clustering
maintainer: "Raul Sanchez <rawmind@gmail.com>" maintainer: "Raul Sanchez <rawmind@gmail.com>"
minimum_rancher_version: v0.59.0 minimum_rancher_version: v0.59.0

View File

@ -6,6 +6,7 @@
re-assembling of raw materials. It may be an elaborate parody of the re-assembling of raw materials. It may be an elaborate parody of the
Australian economy. Australian economy.
maintainer: "Rancher" maintainer: "Rancher"
maximum_rancher_version: v1.3.99
questions: questions:
- variable: REPLICAS - variable: REPLICAS
default: 1 default: 1

View File

@ -2,6 +2,7 @@
name: RabbitMQ name: RabbitMQ
version: 3.6.0-rancher1 version: 3.6.0-rancher1
description: A reliable, distributed messaging broker description: A reliable, distributed messaging broker
maximum_rancher_version: v1.3.99
questions: questions:
- variable: REPLICAS - variable: REPLICAS
default: 1 default: 1

View File

@ -2,6 +2,7 @@
name: Redis name: Redis
version: 2.8.23-rancher1 version: 2.8.23-rancher1
description: A highly-available in-memory data structure store description: A highly-available in-memory data structure store
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "REDIS_REPLICAS" - variable: "REDIS_REPLICAS"
label: "Initial number of Redis nodes" label: "Initial number of Redis nodes"

View File

@ -3,6 +3,7 @@
version: 0.1.0-rancher1 version: 0.1.0-rancher1
description: "Spark cluster" description: "Spark cluster"
maintainer: "Rancher" maintainer: "Rancher"
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "SPARK_WORKER_REPLICAS" - variable: "SPARK_WORKER_REPLICAS"
type: "string" type: "string"

View File

@ -2,6 +2,7 @@
name: "Sysdig Cloud" name: "Sysdig Cloud"
version: "0.1" version: "0.1"
description: "Container-Native Application and Infrastructure Monitoring" description: "Container-Native Application and Infrastructure Monitoring"
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "SDC_ACCESS_KEY" - variable: "SDC_ACCESS_KEY"
label: "Sysdig Cloud access key" label: "Sysdig Cloud access key"

View File

@ -4,6 +4,7 @@
description: | description: |
Traefik load balancer. Traefik load balancer.
minimum_rancher_version: v0.59.0 minimum_rancher_version: v0.59.0
maximum_rancher_version: v1.3.99
maintainer: "German Ramos <german.ramos@gmail.com>" maintainer: "German Ramos <german.ramos@gmail.com>"
uuid: traefik-0 uuid: traefik-0
questions: questions:

View File

@ -3,6 +3,7 @@
description: | description: |
Weave Cloud is a add-on to Kubernetes which provides Continuous Delivery, along with hosted Prometheus Monitoring and a visual dashboard for exploring & debugging microservices Weave Cloud is a add-on to Kubernetes which provides Continuous Delivery, along with hosted Prometheus Monitoring and a visual dashboard for exploring & debugging microservices
version: "latest" version: "latest"
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "WEAVE_CLOUD_SERVICE_TOKEN" - variable: "WEAVE_CLOUD_SERVICE_TOKEN"
description: "Service token for your Weave Cloud instance, get one at https://cloud.weave.works" description: "Service token for your Weave Cloud instance, get one at https://cloud.weave.works"

View File

@ -2,6 +2,7 @@
name: "K8s Example Wordpress" name: "K8s Example Wordpress"
version: "1.0.0" version: "1.0.0"
description: "" description: ""
maximum_rancher_version: v1.3.99
questions: questions:
- variable: "WP_PASSWORD" - variable: "WP_PASSWORD"
label: "Mysql database password" label: "Mysql database password"

View File

@ -4,6 +4,7 @@
description: | description: |
(Experimental) Apache Zookeeper cluster. (Experimental) Apache Zookeeper cluster.
minimum_rancher_version: v0.59.0 minimum_rancher_version: v0.59.0
maximum_rancher_version: v1.3.99
maintainer: "Raul Sanchez <rawmind@gmail.com>" maintainer: "Raul Sanchez <rawmind@gmail.com>"
uuid: zk-0 uuid: zk-0
questions: questions:

View File

@ -4,6 +4,7 @@
description: | description: |
(Experimental) Apache Zookeeper cluster. (Experimental) Apache Zookeeper cluster.
minimum_rancher_version: v0.59.0 minimum_rancher_version: v0.59.0
maximum_rancher_version: v1.3.99
maintainer: "Raul Sanchez <rawmind@gmail.com>" maintainer: "Raul Sanchez <rawmind@gmail.com>"
uuid: zk-0 uuid: zk-0
questions: questions:

View File

@ -17,7 +17,7 @@ spec:
spec: spec:
containers: containers:
- name: "zk-conf" - name: "zk-conf"
image: "rawmind/k8s-zk:3.4.8-10" image: "rawmind/k8s-zk:3.4.9"
volumeMounts: volumeMounts:
- mountPath: "/opt/tools" - mountPath: "/opt/tools"
name: "zk-conf" name: "zk-conf"
@ -40,7 +40,7 @@ spec:
ports: ports:
imagePullPolicy: "IfNotPresent" imagePullPolicy: "IfNotPresent"
- name: "zk-service" - name: "zk-service"
image: "rawmind/alpine-zk:3.4.9" image: "rawmind/alpine-zk:3.4.9-3"
env: env:
- name: JVMFLAGS - name: JVMFLAGS
value: "-Xmx${zk_mem}m -Xms${zk_mem}m" value: "-Xmx${zk_mem}m -Xms${zk_mem}m"

View File

@ -21,3 +21,4 @@ spec:
protocol: "TCP" protocol: "TCP"
selector: selector:
name: "${zk_name}" name: "${zk_name}"

View File

@ -0,0 +1 @@
100bf1dc97f5016602457ba397433561

View File

@ -0,0 +1,3 @@
.catalog:
name: cloudca
version: "v1.0.2"

View File

@ -0,0 +1 @@
https://objects-east.cloud.ca/v1/5ef827605f884961b94881e928e7a250/rancher-ui-driver/v1.0.2/component.js

View File

@ -0,0 +1 @@
https://objects-east.cloud.ca/v1/5ef827605f884961b94881e928e7a250/docker-machine-driver-cloudca/v1.0.2/docker-machine-driver-cloudca_v1.0.2_linux-amd64.zip

View File

@ -1,2 +1,2 @@
name: cloudca name: cloudca
version: "v1.0.1" version: "v1.0.2"

View File

@ -0,0 +1 @@
ff59f432259784194a296837069154b7

View File

@ -0,0 +1,3 @@
.catalog:
name: ecl
version: "v1.0.0"

View File

@ -0,0 +1 @@
https://mittz.github.io/rancher/uidbinary/v1.0.0/component.js

View File

@ -0,0 +1 @@
https://github.com/mittz/docker-machine-driver-ecl/releases/download/v1.0.0/docker-machine-driver-ecl-v1.0.0-linux-amd64.tar.gz

View File

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="256px" height="256px" viewBox="0 0 256 256" enable-background="new 0 0 256 256" xml:space="preserve"> <image id="image0" width="256" height="256" x="0" y="0"
xlink:href="data:image/png;base64,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
ZWFkeXHJZTwAAAAASUVORK5CYII=" />
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,2 @@
name: ecl
version: "v1.0.0"

View File

@ -0,0 +1,41 @@
# Artifactory
[Artifactory][artifactory] is a universal Binary Repository Manager for use by build tools (like Maven and Gradle),
dependency management tools (like Ivy and NuGet) and build servers (like Jenkins, Hudson, TeamCity and Bamboo).
Repository managers serve two purposes: they act as highly configurable proxies between your organization and
external repositories and they also provide build servers with a deployment destination for your internally
generated artifacts.
### Usage:
- Select Artifactory from catalog.
- Select artifactory version.
- Select artifactory release, OSS or PRO.
- Set the params and select certificate.
Click "Launch".
### Notes:
- To use the PRO version, you need to get a free trial.
- You need a certificate imported in rancher enviroment before deploy this package.
- If you use self signed certificates, you should implement [self-signed-certificates][using-self-signed-certificates] in your hosts.
- If you use http schema, you should implement [insecure-registry][insecure-registry] in your hosts.
- KNOWN LIMITATION: "SSL certificate" is required for http and https publish schema.
### More info:
- [Resources][artifactory-resources]
- [Free-trial][artifactory-trial]
- [Self-signed-certificates][using-self-signed-certificates]
- [Insecure-registry][insecure-registry]
[artifactory]: https://www.jfrog.com/artifactory/
[artifactory-resources]: https://www.jfrog.com/support-service/resources/
[artifactory-trial]: https://www.jfrog.com/artifactory/free-trial/
[using-self-signed-certificates]: https://docs.docker.com/registry/insecure/#using-self-signed-certificates
[insecure-registry]: https://docs.docker.com/registry/insecure/# Artifactory

View File

@ -0,0 +1,59 @@
version: '2'
services:
artifactory:
{{- if eq .Values.ARTIFACTORY_VERSION "OSS"}}
image: docker.bintray.io/jfrog/artifactory-oss:5.4.5
{{- else}}
image: docker.bintray.io/jfrog/artifactory-pro:5.4.5
{{- end}}
volumes:
- artifactory-data:/var/opt/jfrog/artifactory
environment:
- EXTRA_JAVA_OPTIONS=${EXTRA_JAVA_OPTIONS}
artifactory-rp:
image: rawmind/alpine-nginx:1.12.1-3
external_links:
- artifactory:artifactory
environment:
NGINX_SERVER_NAME: artifactory
NGINX_SERVER_CONF: |
server {
listen ${PUBLISH_PORT};
server_name ~(?<repo>.+)\.${PUBLISH_NAME} ${PUBLISH_NAME};
set $$http_x_forwarded_proto ${PUBLISH_SCHEMA};
## Application specific logs
## access_log /var/log/nginx/oss.local-access.log timing;
## error_log /var/log/nginx/oss.local-error.log;
chunked_transfer_encoding on;
client_max_body_size 0;
proxy_read_timeout 900;
proxy_pass_header Server;
proxy_cookie_path ~*^/.* /;
location /v2 {
proxy_pass http://artifactory:8081/artifactory/api/docker/$$repo/v2/;
}
location / {
proxy_pass http://artifactory:8081/artifactory/;
}
proxy_set_header X-Artifactory-Override-Base-Url $$http_x_forwarded_proto://$$host:$$server_port;
proxy_set_header X-Forwarded-Port $$server_port;
proxy_set_header X-Forwarded-Proto $$http_x_forwarded_proto;
proxy_set_header Host $$http_host;
proxy_set_header X-Forwarded-For $$proxy_add_x_forwarded_for;
}
{{- if (.Values.PUBLISH_PORT)}}
artifactory-lb:
image: rancher/lb-service-haproxy:v0.6.4
ports:
- ${PUBLISH_PORT}:${PUBLISH_PORT}
{{- end}}
volumes:
artifactory-data:
driver: ${VOLUME_DRIVER}

View File

@ -0,0 +1,93 @@
version: '2'
catalog:
name: "Artifactory"
version: "5.4.5"
description: "Artifactory is a universal Binary Repository Manager"
questions:
- variable: "ARTIFACTORY_VERSION"
label: "Version"
description: |
Select the Artifactory server version. OSS or PRO
required: true
default: "OSS"
type: enum
options:
- OSS
- PRO
- variable: "PUBLISH_SCHEMA"
description: "Publish schema"
label: "Publish schema:"
required: true
default: "https"
type: "enum"
options:
- http
- https
- variable: "PUBLISH_NAME"
label: "Publish name"
description: |
Set publish fqdn for Artifactory server.
required: true
type: "string"
default: "artifactory.local"
- variable: "PUBLISH_PORT"
label: "Publish port"
description: |
Set port if you want publish external port for Artifactory server.
required: true
type: "int"
default: 8081
- variable: "SSL_CERT"
description: "Select SSL certificate."
label: "SSL certificate:"
required: true
default: ""
type: "certificate"
- variable: "EXTRA_JAVA_OPTIONS"
label: "Extra Java options"
description: |
type: "string"
default: ""
- variable: "VOLUME_DRIVER"
type: "string"
label: "Volume driver for Artifactory data"
description: |
Specifiy docker volume driver to use
default: "local"
required: true
services:
artifactory-lb:
scale: 1
lb_config:
certs: []
default_cert: ${SSL_CERT}
port_rules:
- protocol: ${PUBLISH_SCHEMA}
service: artifactory-rp
source_port: ${PUBLISH_PORT}
target_port: ${PUBLISH_PORT}
health_check:
response_timeout: 2000
healthy_threshold: 2
port: 42
unhealthy_threshold: 3
artifactory-rp:
scale: 1
retain_ip: true
health_check:
port: ${PUBLISH_PORT}
interval: 5000
unhealthy_threshold: 3
request_line: 'GET / HTTP/1.0'
healthy_threshold: 2
response_timeout: 5000
artifactory:
scale: 1
retain_ip: true
health_check:
port: 8081
interval: 5000
unhealthy_threshold: 3
request_line: 'GET / HTTP/1.0'
healthy_threshold: 2
response_timeout: 5000

View File

@ -0,0 +1,9 @@
# Artifactory
Artifactory is a universal Binary Repository Manager for use by build tools (like Maven and Gradle),
dependency management tools (like Ivy and NuGet) and build servers (like Jenkins, Hudson, TeamCity and Bamboo).
Repository managers serve two purposes: they act as highly configurable proxies between your organization and
external repositories and they also provide build servers with a deployment destination for your internally
generated artifacts.

View File

@ -0,0 +1,634 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 1012 302"
height="302"
width="1012"
id="svg3734"
version="1.1">
<defs
id="defs3738" />
<image
y="0"
x="0"
id="image3742"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA/QAAAEuCAYAAAAgH1kCAAAABHNCSVQICAgIfAhkiAAAIABJREFU
eJzs3XecZFWZPvDnec+tnsQwZBDJkkSWUSZ19RDdNaHowi4j02G6e1zMu4ZV/C2GDbrBtCqmdRWm
u6e7GgbDurAYVhcDM91DUIK6BjCtCiIocaC77j3v74/qHib2dFXd6jA83w8DTPW9577VVXXrvvec
8x5ARERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERmHE53
AJKPjlLz2UDIAN/X3I81ME60fYRnsPhjImTRs4f6WjffMVWxioiIiIiISP2U0M8Cr7x2yfyRR5ND
6MkJcD+d9OPd8UwQhxM0Bwj4fBLuzoTw+QB9oja98s9jAEAyBTAKhwNI4f5jEL+Ojpsd/tMyy7f9
ZmSfR7/Z/c0npuL5ioiIiIiIyJ4poZ9huvqb/4hmK5x4Nh2LHP5MACc1zU328ehwB9zH0vFtU/Zt
/jJhJr8Nbvt/27wTyLGHjCABj0Bazu4ncSec97r7zxz2A1i6sXf15p/X8XRFRERERESkRkroZ4A1
/c0X0OxCcywDsdCB/ZOCzXN3eATgvn3yPg1IgobKWIAIuPsjcH8Q4EPR8W0S1/W0brp+eqMUERER
ERF56lBCP8Uu2nDKPgvSRW0ET3NHiwU8OxQMMRtL3vFkD/xMVunFr7x9zAgGIh1JRwAMO3iLe/xu
b9vwwLQGKSIiIiIishdTQj9F1vQ3XxBoa0E/BeDhoWBzK0n8DM/cq8CxYfogEDN/xN3vAXALGS9f
t3rz5umOT0REREREZG+ihL6BOkvFN5I4lc41yRwrxHT7OfB7s/EefBpggSiPZPeC+I/o+FZf69Dg
dMcnIiIiIiIy2ymhb4DOgeJHjTwHwCmhYBbTOO1z4KcbrZLcZ2l8FMBP3b2nt234Q9Mdl4iIiIiI
yGylhD4PDnaWmteSbA8FO4dgZU78U6AnvlrjPfchIcqjEQT6wey6das3Xz3dsYmIiIiIiMwmSujr
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
"
preserveAspectRatio="none"
height="302"
width="1012" />
</svg>

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,6 @@
name: Artifactory
description: |
Artifactory is a universal Binary Repository Manager
version: 5.4.5
category: Repository

View File

@ -0,0 +1,15 @@
AWS ELB Classic External LB Service
==========
#### About ELB Classic Load Balancers
The [Classic Load Balancer](https://aws.amazon.com/elasticloadbalancing/classicloadbalancer/) option in AWS routes traffic based on application or network level information and is ideal for simple load balancing of traffic across multiple EC2 instances.
#### About this service
Load balance Rancher services using Elastic Load Balancing.
This service keeps existing ELB Classic load balancers updated with the EC2 instances on which Rancher services that have one or more exposed ports and the label `io.rancher.service.external_lb.endpoint` are running on.
#### Usage
1. Deploy this stack
2. Using the AWS Console create a Classic ELB load balancer with one or more listeners and configure it according to your applications requirements. Configure the listener(s) with an instance protocol and port matching that of the Rancher service that you want to forward traffic to.
3. Create or update your service to expose host ports that match the configuration of the ELB listener(s). Add the service label `io.rancher.service.external_lb.endpoint` using as value the name of the ELB load balancer you created.

View File

@ -0,0 +1,14 @@
elbv1:
image: rancher/external-lb:v0.3.0
command: -provider=elbv1
expose:
- 1000
environment:
ELBV1_AWS_ACCESS_KEY: ${ELBV1_AWS_ACCESS_KEY}
ELBV1_AWS_SECRET_KEY: ${ELBV1_AWS_SECRET_KEY}
ELBV1_AWS_REGION: ${ELBV1_AWS_REGION}
ELBV1_AWS_VPCID: ${ELBV1_AWS_VPCID}
ELBV1_USE_PRIVATE_IP: ${ELBV1_USE_PRIVATE_IP}
labels:
io.rancher.container.create_agent: "true"
io.rancher.container.agent.role: "external-dns"

View File

@ -0,0 +1,41 @@
.catalog:
name: ELB Classic Load Balancer
version: "v0.3.0-rancher1"
description: "External LB service powered by AWS Elastic Load Balancing"
minimum_rancher_version: v1.1.0
questions:
- variable: "ELBV1_AWS_ACCESS_KEY"
label: "AWS Access Key ID"
description: "Access key ID for your AWS account"
type: "string"
required: false
- variable: "ELBV1_AWS_SECRET_KEY"
label: "AWS Secret Access Key"
description: "Secret access key for your AWS account"
type: "string"
required: false
- variable: "ELBV1_AWS_REGION"
label: "AWS Region (Optional)"
description: "The region for load balancers and EC2 instances in this Rancher environment. Defaults to the region of the instance the service will be running on."
type: "string"
required: false
- variable: "ELBV1_AWS_VPCID"
label: "AWS VPC ID (Optional)"
description: "The VPC for the load balancers and EC2 instances in this Rancher environment. Defaults to the VPC of the instance the service will be running on."
type: "string"
required: false
- variable: "ELBV1_USE_PRIVATE_IP"
label: "EC2 Private IP Lookup"
description: "If your EC2 instances are registered in Rancher with their private IP addresses, then this must be set to true."
required: true
type: "boolean"
default: false
elbv1:
health_check:
port: 1000
interval: 5000
unhealthy_threshold: 2
request_line: GET / HTTP/1.0
healthy_threshold: 2
response_timeout: 2000

View File

@ -1,5 +1,5 @@
name: ELB Classic Load Balancer name: ELB Classic Load Balancer
description: | description: |
External LB service powered by AWS Elastic Load Balancing External LB service powered by AWS Elastic Load Balancing
version: v0.2.1-rancher1 version: v0.3.0-rancher1
category: Load Balancing category: Load Balancing

View File

@ -0,0 +1,24 @@
version: '2'
services:
bitbucket:
image: atlassian/bitbucket-server:5.1
volumes_from:
- bitbucket-data
ports:
- ${BITBUCKET_PORT}:7990
labels:
io.rancher.sidekicks: bitbucket-data
io.rancher.container.hostname_override: container_name
bitbucket-data:
image: atlassian/bitbucket-server:5.1
entrypoint:
- /bin/true
volumes:
- /var/atlassian/application-data/bitbucket
labels:
io.rancher.container.start_once: 'true'
io.rancher.container.hostname_override: container_name

View File

@ -0,0 +1,24 @@
version: '2'
catalog:
name: bitbucket
version: 0.0.1
description: Git Server
questions:
- variable: BITBUCKET_PORT
label: Port
default: 80
required: true
type: int
services:
bitbucket:
scale: 1
start_on_create: true
bitbucket-data:
scale: 1
start_on_create: true

View File

@ -0,0 +1,4 @@
# Bitbucket
Read more in the official Bitbucket Docker [Documentation](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server).

View File

@ -0,0 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 138 35" enable-background="new 0 0 138 35" xml:space="preserve">
<g>
<g>
<g>
<g>
<path fill="#205081" d="M45.6,12.9h-3.1c-0.3,0-0.5,0.2-0.5,0.5v2.7c0,0.3,0.2,0.5,0.5,0.5h3.1c0.3,0,0.5-0.2,0.5-0.5v-2.7
C46.1,13.2,45.9,12.9,45.6,12.9z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#205081" d="M30.4,0.3c0-0.1-0.1-0.1-0.2-0.1h-1.8c-0.1,0-0.2,0.1-0.2,0.1l-2.3,7.3c0,0.1,0,0.1,0,0.2
c0,0.1,0.1,0.1,0.2,0.1h1.3c0.1,0,0.2-0.1,0.2-0.1l1.6-5.4c0,0,0-0.1,0.2-0.1c0.1,0,0.2,0.1,0.2,0.1l0.7,2.5h-1
c-0.1,0-0.2,0.1-0.2,0.1l-0.3,1c0,0.1,0,0.1,0,0.2c0,0,0.1,0.1,0.2,0.1h1.7l0.4,1.4c0,0.1,0.1,0.1,0.2,0.1h1.3
c0.1,0,0.1,0,0.2-0.1c0,0,0-0.1,0-0.2L30.4,0.3z"/>
<path fill="#205081" d="M35.9,6.7c0-0.1,0-0.1-0.1-0.1c0,0-0.1,0-0.2,0c-0.2,0.1-0.4,0.1-0.6,0.1c-0.3,0-0.4-0.1-0.4-0.4V3.4h1.1
c0.1,0,0.2-0.1,0.2-0.2V2.4c0-0.1-0.1-0.2-0.2-0.2h-1.1V0.8c0-0.1,0-0.1-0.1-0.1c0,0-0.1-0.1-0.2,0l-1.2,0.2
c-0.1,0-0.2,0.1-0.2,0.2v1.2h-0.6c-0.1,0-0.2,0.1-0.2,0.2v0.9c0,0.1,0.1,0.2,0.2,0.2h0.6v3c0,1,0.5,1.5,1.6,1.5
c0.3,0,0.8-0.1,1.1-0.2C36,7.7,36,7.7,36,7.6L35.9,6.7z"/>
<path fill="#205081" d="M38,0h-1.2c-0.1,0-0.2,0.1-0.2,0.2v7.5c0,0.1,0.1,0.2,0.2,0.2H38c0.1,0,0.2-0.1,0.2-0.2V0.2
C38.2,0.1,38.1,0,38,0z"/>
<path fill="#205081" d="M41,2.1c-0.6,0-1.3,0.1-1.8,0.2c-0.1,0-0.2,0.1-0.1,0.2l0.1,0.8c0,0.1,0,0.1,0.1,0.1c0,0,0.1,0,0.1,0
c0.5-0.1,1-0.1,1.4-0.1c0.8,0,1,0.2,1,0.7v0.5h-1.2c-1.2,0-1.7,0.5-1.7,1.6c0,1.1,0.6,1.7,1.5,1.7c0.6,0,1.1-0.2,1.6-0.4l0,0.2
c0,0.1,0.1,0.1,0.2,0.1h0.9c0.1,0,0.2-0.1,0.2-0.2V4.1C43.3,2.6,42.7,2.1,41,2.1z M41.7,5.8v0.7c-0.2,0.1-0.5,0.2-1,0.2
c-0.4,0-0.5-0.1-0.5-0.5c0-0.3,0.1-0.5,0.5-0.5H41.7z"/>
<path fill="#205081" d="M46.2,4.3c-0.7-0.2-0.7-0.2-0.7-0.6c0-0.3,0-0.4,0.6-0.4c0.4,0,1,0.1,1.4,0.1c0.1,0,0.1,0,0.1,0
c0,0,0.1-0.1,0.1-0.1l0.1-0.9c0-0.1-0.1-0.2-0.2-0.2c-0.4-0.1-1.1-0.2-1.6-0.2c-1.8,0-2.1,0.7-2.1,1.7c0,1.1,0.2,1.5,1.6,1.8
c0.9,0.2,0.9,0.4,0.9,0.6c0,0.3,0,0.5-0.6,0.5c-0.5,0-1-0.1-1.5-0.2c-0.1,0-0.1,0-0.2,0c0,0-0.1,0.1-0.1,0.1l-0.2,0.8
c0,0.1,0,0.2,0.1,0.2C44.6,7.8,45.3,8,45.9,8c1.7,0,2.1-0.7,2.1-1.8C47.9,5,47.7,4.7,46.2,4.3z"/>
<path fill="#205081" d="M50.7,4.3c-0.7-0.2-0.7-0.2-0.7-0.6c0-0.3,0-0.4,0.6-0.4c0.4,0,1,0.1,1.4,0.1c0.1,0,0.1,0,0.2,0
c0,0,0.1-0.1,0.1-0.1l0.1-0.9c0-0.1-0.1-0.2-0.1-0.2c-0.4-0.1-1.1-0.2-1.6-0.2c-1.8,0-2.1,0.7-2.1,1.7c0,1.1,0.2,1.5,1.6,1.8
c0.9,0.2,0.9,0.4,0.9,0.6c0,0.3,0,0.5-0.6,0.5c-0.5,0-1-0.1-1.5-0.2c-0.1,0-0.1,0-0.2,0c0,0-0.1,0.1-0.1,0.1l-0.2,0.8
c0,0.1,0,0.2,0.1,0.2C49,7.8,49.8,8,50.3,8c1.7,0,2.1-0.7,2.1-1.8C52.4,5,52.2,4.7,50.7,4.3z"/>
<path fill="#205081" d="M54.4,0h-1.2C53.1,0,53,0.1,53,0.2v1c0,0.1,0.1,0.2,0.2,0.2h1.2c0.1,0,0.2-0.1,0.2-0.2v-1
C54.6,0.1,54.5,0,54.4,0z"/>
<path fill="#205081" d="M54.4,2.2h-1.2c-0.1,0-0.2,0.1-0.2,0.2v5.3c0,0.1,0.1,0.2,0.2,0.2h1.2c0.1,0,0.2-0.1,0.2-0.2V2.4
C54.6,2.3,54.5,2.2,54.4,2.2z"/>
<path fill="#205081" d="M57.4,2.1c-0.6,0-1.3,0.1-1.8,0.2c-0.1,0-0.2,0.1-0.1,0.2l0.1,0.8c0,0.1,0,0.1,0.1,0.1c0,0,0.1,0,0.1,0
c0.5-0.1,1-0.1,1.4-0.1c0.8,0,1,0.2,1,0.7v0.5h-1.2c-1.2,0-1.7,0.5-1.7,1.6c0,1.1,0.6,1.7,1.5,1.7c0.6,0,1.1-0.2,1.6-0.4l0.1,0.2
c0,0.1,0.1,0.1,0.2,0.1h0.9c0.1,0,0.2-0.1,0.2-0.2V4.1C59.7,2.6,59.1,2.1,57.4,2.1z M58.2,5.8v0.7c-0.2,0.1-0.5,0.2-1,0.2
c-0.4,0-0.5-0.1-0.5-0.5c0-0.3,0.1-0.5,0.5-0.5H58.2z"/>
<path fill="#205081" d="M64,2.1c-0.6,0-1.4,0.2-2.2,0.5l-0.1-0.3c0-0.1-0.1-0.1-0.2-0.1h-0.9c-0.1,0-0.2,0.1-0.2,0.2v5.3
c0,0.1,0.1,0.2,0.2,0.2h1.2c0.1,0,0.2-0.1,0.2-0.2V4c0.4-0.2,1-0.4,1.4-0.4c0.3,0,0.4,0.1,0.4,0.4v3.7c0,0.1,0.1,0.2,0.2,0.2h1.2
c0.1,0,0.2-0.1,0.2-0.2V3.8C65.3,2.6,64.9,2.1,64,2.1z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<g>
<path fill="#205081" d="M67.3,18.4c-1.5,0-3.1,0.4-4.1,0.8v-5.7c0-0.3-0.2-0.5-0.5-0.5h-3.1c-0.3,0-0.5,0.2-0.5,0.5v19.8
c0,0.3,0.2,0.5,0.4,0.5c1.9,0.3,4.2,0.5,5.5,0.5c5.8,0,7-2.5,7-6.2v-4.3C72,20.2,70.4,18.4,67.3,18.4z M65.2,30.6
c-0.8,0-1.4,0-2-0.1v-7.7c0.9-0.4,2.1-0.8,3-0.8c1.2,0,1.7,0.5,1.7,1.6v4.5C67.9,29.8,67.5,30.6,65.2,30.6z"/>
<path fill="#205081" d="M86.3,18.7h-3.1c-0.3,0-0.5,0.2-0.5,0.5V29c-1.1,0.6-2.7,1.2-3.6,1.2c-0.7,0-1-0.3-1-1v-10
c0-0.3-0.2-0.5-0.5-0.5h-3.1c-0.3,0-0.5,0.2-0.5,0.5v10.4c0,3,1.2,4.6,3.6,4.6c1.6,0,3.9-0.6,5.8-1.5l0.2,0.8
c0.1,0.2,0.3,0.4,0.5,0.4l2.3,0c0.3,0,0.5-0.2,0.5-0.5V19.2C86.8,19,86.6,18.7,86.3,18.7z"/>
<path fill="#205081" d="M98.7,30.7c0-0.1-0.1-0.3-0.2-0.4c-0.1-0.1-0.3-0.1-0.4-0.1c-0.9,0.2-1.8,0.3-2.7,0.3
c-2,0-2.5-0.5-2.5-2.2v-4.1c0-1.7,0.6-2.2,2.5-2.2c0.5,0,1.6,0.1,2.7,0.3c0.1,0,0.3,0,0.4-0.1c0.1-0.1,0.2-0.2,0.2-0.4l0.4-2.4
c0-0.3-0.1-0.5-0.4-0.6c-1.2-0.4-2.6-0.5-3.4-0.5c-4.7,0-6.6,1.7-6.6,5.9v4c0,4.2,1.9,5.9,6.6,5.9c1.1,0,2.4-0.2,3.4-0.5
c0.3-0.1,0.4-0.3,0.4-0.6L98.7,30.7z"/>
<path fill="#205081" d="M120.1,18.4c-4.2,0-6.3,2.1-6.3,6v3.9c0,4,2.1,5.9,6.5,5.9c1.8,0,3.7-0.3,5.3-0.9
c0.2-0.1,0.4-0.3,0.3-0.6l-0.5-2.2c0-0.1-0.1-0.3-0.2-0.3c-0.1-0.1-0.3-0.1-0.4-0.1c-1.4,0.4-2.8,0.6-4.1,0.6
c-2.3,0-2.7-0.7-2.7-2.3v-0.5h7.7c0.3,0,0.5-0.2,0.5-0.5v-2.8C126.1,20.4,124.2,18.4,120.1,18.4z M117.9,24.5V24
c0-1.5,0.7-2.1,2.2-2.1c1.7,0,2,0.8,2,2.1v0.5H117.9z"/>
<path fill="#205081" d="M45.6,18.7h-3.1c-0.3,0-0.5,0.2-0.5,0.5v14.2c0,0.3,0.2,0.5,0.5,0.5h3.1c0.3,0,0.5-0.2,0.5-0.5V19.2
C46.1,18.9,45.9,18.7,45.6,18.7z"/>
<path fill="#205081" d="M45.6,12.9h-3.1c-0.3,0-0.5,0.2-0.5,0.5v2.7c0,0.3,0.2,0.5,0.5,0.5h3.1c0.3,0,0.5-0.2,0.5-0.5v-2.7
C46.1,13.2,45.9,12.9,45.6,12.9z"/>
<g>
<path fill="#205081" d="M37.8,23.1c1.3-0.7,1.8-1.7,1.8-3.2v-2.1c0-3-1.8-4.5-5.6-4.5h-7.6c-0.3,0-0.5,0.2-0.5,0.5v19.6
c0,0.3,0.2,0.5,0.5,0.5h8.2c3.6,0,5.7-1.8,5.7-4.9v-2.1C40.3,25.1,39.4,23.7,37.8,23.1z M30.1,16.9h3.4c1.6,0,1.8,0.7,1.8,1.4
v1.8c0,1.2-0.5,1.7-1.8,1.7h-0.7c-0.3,0-0.5,0.2-0.5,0.5v2.5c0,0.3,0.2,0.5,0.5,0.5h1.3c1.4,0,1.9,0.5,1.9,1.8v1.5
c0,1.3-0.6,1.7-2.2,1.7h-3.7V16.9z"/>
</g>
<path fill="#205081" d="M57.2,30.9c0-0.1-0.1-0.3-0.2-0.4c-0.1-0.1-0.3-0.1-0.4-0.1c-0.5,0.1-1.1,0.2-1.5,0.2
c-0.8,0-1.1-0.3-1.1-1.1v-7.5h3c0.3,0,0.5-0.2,0.5-0.5v-2.3c0-0.3-0.2-0.5-0.5-0.5h-3v-3.6c0-0.2-0.1-0.3-0.2-0.4
c-0.1-0.1-0.3-0.1-0.4-0.1L50.3,15c-0.3,0-0.5,0.3-0.5,0.5v3.2h-1.7c-0.3,0-0.5,0.2-0.5,0.5v2.3c0,0.3,0.2,0.5,0.5,0.5h1.7v8
c0,2.7,1.4,4.1,4.3,4.1c0.8,0,2.2-0.2,3.1-0.5c0.2-0.1,0.4-0.3,0.3-0.6L57.2,30.9z"/>
<path fill="#205081" d="M136.3,30.9c0-0.1-0.1-0.3-0.2-0.4c-0.1-0.1-0.3-0.1-0.4-0.1c-0.6,0.1-1.1,0.2-1.5,0.2
c-0.8,0-1.1-0.3-1.1-1.1v-7.5h3c0.3,0,0.5-0.2,0.5-0.5v-2.3c0-0.3-0.2-0.5-0.5-0.5h-3v-3.6c0-0.2-0.1-0.3-0.2-0.4
c-0.1-0.1-0.3-0.1-0.4-0.1l-3.1,0.4c-0.3,0-0.5,0.3-0.5,0.5v3.2h-1.7c-0.3,0-0.5,0.2-0.5,0.5v2.3c0,0.3,0.2,0.5,0.5,0.5h1.7v8
c0,2.7,1.4,4.1,4.3,4.1c0.8,0,2.2-0.2,3.1-0.5c0.2-0.1,0.4-0.3,0.3-0.6L136.3,30.9z"/>
</g>
</g>
</g>
</g>
<path fill="#205081" d="M113.2,33l-4.1-6.8l4-6.7c0.1-0.2,0.1-0.4,0-0.5c-0.1-0.2-0.3-0.3-0.5-0.3h-3.4c-0.2,0-0.4,0.1-0.5,0.3
l-3.8,6.6V13.4c0-0.3-0.2-0.5-0.5-0.5h-3.1c-0.3,0-0.5,0.2-0.5,0.5v19.9c0,0.3,0.2,0.5,0.5,0.5h3.1c0.3,0,0.5-0.2,0.5-0.5v-6.5
l4,6.8c0.1,0.2,0.3,0.3,0.4,0.3h3.4c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5C113.3,33.2,113.3,33.1,113.2,33z"/>
<path fill="#205081" d="M10.2,11.5L10.2,11.5L10.2,11.5C4.6,11.5,0,13,0,14.9c0,0.5,1.2,7.6,1.7,10.4c0.2,1.3,3.5,3.1,8.5,3.1l0,0v0
c5,0,8.2-1.8,8.5-3.1c0.5-2.8,1.7-9.9,1.7-10.4C20.3,13,15.8,11.5,10.2,11.5z M10.2,26.1c-1.8,0-3.2-1.4-3.2-3.2
c0-1.8,1.4-3.2,3.2-3.2c1.8,0,3.2,1.4,3.2,3.2C13.4,24.6,12,26.1,10.2,26.1z M10.2,15.9c-3.6,0-6.5-0.6-6.5-1.4
c0-0.8,2.9-1.4,6.5-1.4c3.6,0,6.5,0.6,6.5,1.4C16.7,15.3,13.8,15.9,10.2,15.9z"/>
<path fill="#205081" d="M17.5,28c-0.2,0-0.3,0.1-0.3,0.1s-2.5,2-7,2c-4.5,0-7-2-7-2S3,28,2.9,28c-0.2,0-0.4,0.1-0.4,0.4
c0,0,0,0.1,0,0.1c0.4,2.1,0.7,3.6,0.7,3.8c0.3,1.5,3.3,2.7,6.9,2.7l0,0h0h0l0,0c3.6,0,6.6-1.2,6.9-2.7c0-0.2,0.3-1.7,0.7-3.8
c0,0,0-0.1,0-0.1C17.8,28.2,17.7,28,17.5,28z"/>
<circle fill="#205081" cx="10.2" cy="22.8" r="1.6"/>
</svg>

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -0,0 +1,6 @@
name: bitbucket
description: Git Server
version: 0.0.1
category: Versioning
projectURL: https://github.com/ellerbrock/rancher-collection

View File

@ -8,7 +8,7 @@ datadog-init:
io.rancher.container.start_once: 'true' io.rancher.container.start_once: 'true'
io.rancher.container.pull_image: always io.rancher.container.pull_image: always
datadog-agent: datadog-agent:
image: datadog/docker-dd-agent:11.0.5110 image: datadog/docker-dd-agent:11.0.5123
entrypoint: /opt/rancher/entrypoint-wrapper.py entrypoint: /opt/rancher/entrypoint-wrapper.py
command: command:
- supervisord - supervisord

View File

@ -1,6 +1,6 @@
.catalog: .catalog:
name: "Datadog" name: "Datadog"
version: "1.1.0-11.0.5110" version: "1.1.0-11.0.5123"
description: "Real-time performance tracking and visualization of your container-based application deployment" description: "Real-time performance tracking and visualization of your container-based application deployment"
minimum_rancher_version: v1.2.0 minimum_rancher_version: v1.2.0
questions: questions:

View File

@ -1,7 +1,7 @@
name: Datadog name: Datadog
description: | description: |
Real-time performance tracking and visualization of your container-based application deployment Real-time performance tracking and visualization of your container-based application deployment
version: 1.1.0-11.0.5110 version: 1.1.0-11.0.5123
category: Monitoring category: Monitoring
maintainer: "Jan Bruder <jan@rancher.com>" maintainer: "Jan Bruder <jan@rancher.com>"
license: The MIT License license: The MIT License

View File

@ -18,7 +18,7 @@
type: "password" type: "password"
required: true required: true
label: "Remote Config" label: "Remote Config"
description: "Must be the full connection string. see http://readme.drone.io/setup/overview/ for more info" description: "Must be the full connection string. See http://readme.drone.io/admin/ for more info"
- variable: "public_port" - variable: "public_port"
type: "int" type: "int"
required: true required: true
@ -38,7 +38,7 @@
label: "Database Config" label: "Database Config"
type: "password" type: "password"
required: true required: true
description: "Must be full db string. The hostname for the DB will be 'database'. See http://readme.drone.io/setup/overview/ for more info" description: "Must be full db string. The hostname for the DB will be 'database'. See http://docs.drone.io/databases.html for more info"
- variable: "database_service" - variable: "database_service"
type: "service" type: "service"
label: "Database Service" label: "Database Service"

View File

@ -0,0 +1,19 @@
# Drone
### Info:
This template creates an instance of Drone CI server 0.6 along with selectable number of agents to perform the builds.
### Usage:
Select the Drone template from the catalog. Provide the following information:
1. Publish port
2. Agents scale
3. Drone secret
4. Run mode. debug | release
3. Remote driver and config. (Ie. GitHub)
4. Database driver and config. (Ie. sqlite)
See [Drone documentation](http://readme.drone.io/admin) for complete information.

View File

@ -0,0 +1,79 @@
version: '2'
services:
agent:
image: drone/drone:0.7.1
environment:
DRONE_SERVER: ws://drone:8000/ws/broker
DRONE_SECRET: ${drone_secret}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
links:
- server:drone
command:
- agent
labels:
io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}/$${service_name}
io.rancher.container.hostname_override: container_name
server:
image: drone/drone:0.7.1
environment:
GIN_MODE: ${gin_mode}
DRONE_SECRET: ${drone_secret}
DRONE_OPEN: ${drone_open}
{{- if (.Values.drone_admin)}}
DRONE_ADMIN: ${drone_admins}
{{- end}}
{{- if (.Values.drone_orgs)}}
DRONE_ORGS: ${drone_orgs}
{{- end}}
{{- if eq .Values.drone_driver "github"}}
DRONE_GITHUB: true
DRONE_GITHUB_CLIENT: ${drone_driver_client}
DRONE_GITHUB_SECRET: ${drone_driver_secret}
{{- end}}
{{- if eq .Values.drone_driver "bitbucket"}}
DRONE_BITBUCKET: true
DRONE_BITBUCKET_CLIENT: ${drone_driver_client}
DRONE_BITBUCKET_SECRET: ${drone_driver_secret}
{{- end}}
{{- if eq .Values.drone_driver "gitlab"}}
DRONE_GITLAB: true
DRONE_GITLAB_CLIENT: ${drone_driver_secret}
DRONE_GITLAB_SECRET: ${drone_driver_secret}
DRONE_GITLAB_URL: ${drone_driver_url}
{{- end}}
{{- if eq .Values.drone_driver "gogs"}}
DRONE_GOGS: true
DRONE_GOGS_URL: ${drone_driver_url}
{{- end}}
{{- if ne .Values.database_driver "sqlite"}}
DRONE_DATABASE_DRIVER: ${database_driver}
DRONE_DATABASE_DATASOURCE: ${database_source}
{{- end}}
labels:
io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}/$${service_name}
io.rancher.container.hostname_override: container_name
{{- if eq .Values.database_driver "sqlite"}}
io.rancher.sidekicks: server-volume
volumes_from:
- server-volume
server-volume:
image: rawmind/alpine-volume:0.0.2-1
environment:
SERVICE_GID: '0'
SERVICE_UID: '0'
SERVICE_VOLUME: /var/lib/drone
network_mode: none
volumes:
- /var/lib/drone
labels:
io.rancher.container.start_once: 'true'
io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}/$${service_name}
io.rancher.container.hostname_override: container_name
{{- end}}
lb:
image: rancher/load-balancer-service
ports:
- ${host_port}:8000/tcp
links:
- server:server

Some files were not shown because too many files have changed in this diff Show More