Merge remote-tracking branch 'upstream/master' into zammad

This commit is contained in:
André Bauer 2017-09-13 22:19:23 +02:00
commit fabac8bae3
409 changed files with 19401 additions and 249 deletions

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

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

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

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

View File

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

View File

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

View File

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

View File

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

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
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'

View File

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

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

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

View 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

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

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
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'

View File

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

View File

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

View File

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

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
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'

View File

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

View File

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

View File

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

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

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

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

View 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

View File

@ -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'

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
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'

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,9 +1,10 @@
.catalog:
name: Cloud9
description: |
(Experimental) Cloud 9 SDK
(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:

View File

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

View File

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

View File

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

View File

@ -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:

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

View File

@ -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

View File

@ -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

View File

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

View File

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

View File

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

View File

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

View File

@ -3,6 +3,7 @@
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
version: "latest"
maximum_rancher_version: v1.3.99
questions:
- variable: "WEAVE_CLOUD_SERVICE_TOKEN"
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"
version: "1.0.0"
description: ""
maximum_rancher_version: v1.3.99
questions:
- variable: "WP_PASSWORD"
label: "Mysql database password"

View File

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

View File

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

View File

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

View File

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

View File

@ -4,4 +4,4 @@ description: |
version: 3.4.9-k8s1
category: Clustering
maintainer: "Raul Sanchez <rawmind@gmail.com>"
projectURL: https://github.com/rawmind0/alpine-zk
projectURL: https://github.com/rawmind0/alpine-zk

View File

@ -0,0 +1 @@
bea9144384d543353b75ed0bea872fbe

View File

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

View File

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

View File

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

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

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="833pt" height="833pt" viewBox="0 0 833 833" version="1.1" xmlns="http://www.w3.org/2000/svg">
<path fill="none" d=" M 0.00 0.00 L 833.00 0.00 L 833.00 833.00 L 0.00 833.00 L 0.00 0.00 Z" />
<path fill="#515254" d=" M 360.82 95.91 C 365.44 93.10 370.53 90.45 376.10 90.69 C 383.38 91.38 390.89 95.57 393.42 102.77 C 397.80 111.74 393.47 123.46 384.72 127.98 C 349.57 148.16 314.42 168.33 279.21 188.41 C 279.22 188.85 279.24 189.74 279.25 190.18 C 302.89 203.99 326.26 218.27 349.83 232.21 C 353.70 234.50 357.96 236.66 360.47 240.57 C 363.23 244.71 365.15 249.99 363.68 254.96 C 362.17 261.77 356.87 267.86 349.97 269.46 C 345.63 269.98 340.85 270.31 336.91 268.04 C 311.03 252.89 285.48 237.18 259.56 222.08 C 259.45 261.38 259.53 300.68 259.52 339.98 C 259.63 345.13 256.76 349.75 253.41 353.43 C 248.24 358.64 240.11 360.04 233.23 357.89 C 227.10 355.81 222.52 350.42 220.54 344.37 C 219.24 340.33 220.31 336.08 220.13 331.95 C 219.63 315.64 220.12 299.33 220.03 283.03 C 220.35 273.35 219.55 263.67 220.10 253.99 C 219.52 237.34 220.47 220.67 219.89 204.01 C 219.86 195.63 219.91 187.24 219.96 178.86 C 219.87 177.47 220.57 176.17 221.89 175.64 C 268.11 148.92 314.57 122.59 360.82 95.91 Z" />
<path fill="#515254" d=" M 420.23 106.84 C 421.94 97.68 430.73 90.66 439.99 90.68 C 446.92 90.95 452.71 95.16 458.48 98.52 C 503.10 124.63 547.71 150.77 592.32 176.93 C 592.34 229.62 592.28 282.32 592.35 335.01 C 593.22 345.47 584.43 355.63 573.97 356.35 C 563.19 357.36 552.50 347.91 552.79 336.94 C 552.80 307.64 552.79 278.34 552.80 249.04 C 552.71 240.34 553.05 231.62 552.40 222.94 C 540.35 229.46 528.95 237.19 517.16 244.19 C 504.53 251.80 492.05 259.66 479.45 267.32 C 473.37 270.64 465.47 270.34 459.83 266.23 C 454.20 262.57 451.18 255.58 451.81 248.97 C 452.34 243.39 455.61 238.35 460.22 235.23 C 478.17 224.12 496.19 213.09 514.18 202.02 C 520.98 197.65 528.15 193.82 534.70 189.06 C 500.00 168.90 465.41 148.53 430.78 128.25 C 423.30 124.25 418.28 115.32 420.23 106.84 Z" />
<path fill="#df2d25" d=" M 399.56 257.82 C 408.64 255.43 418.71 257.06 426.40 262.52 C 439.53 271.06 443.99 289.86 436.73 303.60 C 432.20 312.24 423.74 318.88 414.08 320.62 C 407.14 321.34 399.74 321.28 393.49 317.76 C 381.68 312.31 374.57 298.85 376.08 286.02 C 376.69 272.82 386.96 261.15 399.56 257.82 Z" />
<path fill="#515254" d=" M 394.33 349.40 C 399.08 343.87 407.28 342.00 414.10 344.34 C 421.31 346.96 426.73 354.22 426.69 361.97 C 426.75 388.24 426.62 414.51 426.75 440.78 C 462.27 419.38 497.56 397.61 533.04 376.15 C 536.34 374.19 540.23 373.59 544.02 373.74 C 552.55 373.76 560.18 380.51 562.23 388.61 C 563.63 394.88 562.20 401.97 557.54 406.57 C 554.17 410.37 549.51 412.54 545.25 415.13 C 501.75 441.72 458.16 468.16 414.64 494.73 C 412.52 495.92 410.54 497.59 408.06 497.93 C 405.08 497.49 402.73 495.40 400.17 493.99 C 356.41 467.64 312.54 441.50 268.80 415.13 C 264.90 412.82 260.77 410.73 257.57 407.47 C 253.75 403.01 251.46 396.97 252.49 391.07 C 253.50 386.08 255.99 381.15 260.25 378.18 C 265.54 374.09 272.96 373.24 279.16 375.58 C 282.42 376.89 285.41 378.78 288.35 380.69 C 315.71 396.93 342.92 413.42 370.23 429.76 C 376.59 433.41 382.69 437.57 389.27 440.83 C 389.31 414.56 389.29 388.28 389.28 362.01 C 389.12 357.32 391.44 352.94 394.33 349.40 Z" />
<path fill="#515254" d=" M 130.47 584.24 C 134.00 578.32 137.58 572.43 141.10 566.50 C 150.57 566.48 160.03 566.49 169.50 566.50 C 169.53 593.69 169.48 620.88 169.52 648.06 C 169.60 660.22 179.91 671.32 192.05 672.17 C 197.44 672.36 202.84 672.17 208.24 672.24 C 208.27 680.49 208.25 688.74 208.25 697.00 C 198.85 696.65 189.20 698.26 180.09 695.23 C 163.60 690.52 150.18 676.63 146.11 659.97 C 144.27 653.47 144.81 646.69 144.75 640.03 C 144.75 621.44 144.75 602.85 144.75 584.25 C 139.99 584.24 135.23 584.25 130.47 584.24 Z" />
<path fill="#515254" d=" M 500.00 573.75 C 508.25 573.75 516.51 573.74 524.76 573.76 C 524.76 597.53 524.76 621.30 524.77 645.06 C 524.65 662.66 514.81 679.78 499.77 688.88 C 489.78 695.11 477.67 697.78 465.98 696.44 C 448.72 694.65 432.74 683.59 425.00 668.05 C 419.79 658.30 418.18 646.86 419.77 635.97 C 422.12 620.19 431.99 605.67 446.00 597.95 C 462.42 588.39 483.97 589.03 500.00 599.16 C 500.00 590.69 500.00 582.22 500.00 573.75 Z" />
<path fill="#515254" d=" M 59.36 597.33 C 73.83 589.23 92.20 588.71 107.18 595.79 C 122.29 602.70 133.81 617.11 136.83 633.50 C 128.19 633.51 119.55 633.51 110.91 633.50 C 108.36 627.70 104.08 622.64 98.53 619.51 C 90.53 614.90 80.17 614.72 71.99 618.99 C 65.28 622.39 60.07 628.61 57.85 635.80 C 54.87 645.55 57.65 656.82 65.03 663.92 C 72.86 671.79 85.51 674.27 95.70 669.82 C 102.62 666.92 108.03 661.10 110.93 654.24 C 119.57 654.24 128.22 654.23 136.86 654.25 C 134.02 668.95 124.70 682.27 111.71 689.77 C 97.09 698.49 78.16 699.49 62.74 692.27 C 52.46 687.60 43.69 679.62 38.34 669.64 C 30.17 655.12 29.54 636.68 36.62 621.61 C 41.34 611.36 49.39 602.66 59.36 597.33 Z" />
<path fill="#515254" d=" M 243.44 591.67 C 254.47 589.62 266.23 590.72 276.33 595.78 C 291.83 603.07 303.57 617.97 306.69 634.85 C 308.76 645.90 306.90 657.60 301.57 667.50 C 293.86 682.38 279.07 693.47 262.50 696.26 C 250.67 698.03 238.15 696.18 227.71 690.19 C 213.97 682.67 204.37 668.45 202.01 653.02 C 199.66 638.91 202.87 623.87 211.17 612.17 C 218.72 601.51 230.61 594.05 243.44 591.67 Z" />
<path fill="#515254" d=" M 314.76 590.75 C 322.98 590.73 331.21 590.78 339.44 590.72 C 339.59 610.48 339.47 630.24 339.50 650.00 C 339.54 661.18 349.70 671.54 360.92 671.53 C 371.80 670.83 381.44 660.91 381.48 649.94 C 381.57 630.20 381.36 610.45 381.58 590.70 C 389.80 590.81 398.02 590.72 406.25 590.76 C 406.25 626.00 406.25 661.25 406.25 696.50 C 397.99 696.51 389.74 696.51 381.49 696.50 C 381.50 695.66 381.52 693.97 381.54 693.12 C 374.24 696.56 365.98 696.52 358.08 696.41 C 334.25 695.34 313.28 673.01 314.74 648.99 C 314.77 629.58 314.73 610.17 314.76 590.75 Z" />
<path fill="#df2d25" d=" M 604.07 596.17 C 618.96 588.78 637.45 589.08 652.08 597.01 C 666.08 604.21 676.34 618.05 679.33 633.50 C 670.67 633.50 662.01 633.56 653.36 633.47 C 649.82 625.19 642.38 618.59 633.55 616.59 C 626.78 615.18 619.45 616.01 613.44 619.56 C 603.76 624.82 597.82 636.17 599.31 647.14 C 600.57 660.08 611.92 671.06 624.89 671.92 C 636.99 673.18 648.93 665.45 653.37 654.25 C 662.03 654.21 670.68 654.24 679.34 654.23 C 676.52 668.53 667.74 681.62 655.19 689.14 C 641.01 698.07 622.49 699.58 607.05 693.10 C 595.86 688.55 586.33 680.04 580.63 669.38 C 572.05 653.90 572.05 634.05 580.60 618.56 C 585.82 608.88 594.14 600.91 604.07 596.17 Z" />
<path fill="#df2d25" d=" M 715.08 597.18 C 729.64 589.18 748.09 588.70 763.02 595.98 C 780.96 604.21 793.10 623.36 793.13 643.06 C 793.38 660.97 793.26 678.89 793.19 696.81 C 784.87 696.72 776.55 696.80 768.24 696.76 C 768.22 694.11 768.22 691.46 768.23 688.82 C 758.65 694.73 747.21 697.58 735.99 696.61 C 718.54 695.31 701.99 684.78 693.69 669.33 C 687.11 657.45 685.47 643.00 689.06 629.92 C 692.78 616.06 702.39 603.91 715.08 597.18 Z" />
<path fill="#fefefe" d=" M 246.49 616.59 C 262.70 611.62 280.14 624.98 282.40 641.10 C 283.90 654.55 273.48 667.00 261.11 671.01 C 247.61 675.13 232.01 666.73 227.83 653.30 C 222.24 638.70 231.23 620.48 246.49 616.59 Z" />
<path fill="#fefefe" d=" M 466.42 616.61 C 481.20 613.15 497.11 624.20 499.44 639.10 C 502.07 652.13 493.81 666.05 481.26 670.25 C 472.32 673.46 461.79 671.72 454.45 665.66 C 446.90 659.62 442.83 649.44 444.39 639.87 C 446.01 628.58 455.15 618.71 466.42 616.61 Z" />
<path fill="#fefefe" d=" M 732.51 616.82 C 746.22 612.52 762.04 620.82 766.58 634.36 C 771.15 646.22 766.15 660.67 755.37 667.33 C 745.99 673.64 732.65 673.30 723.71 666.34 C 713.80 659.28 709.57 645.35 714.07 634.02 C 717.10 625.83 724.17 619.31 732.51 616.82 Z" />
<path fill="#df2d25" d=" M 544.31 661.24 C 552.42 658.91 561.66 662.86 565.49 670.40 C 569.22 677.36 567.74 686.59 562.02 692.05 C 555.93 698.21 545.39 698.92 538.46 693.76 C 531.27 688.81 528.81 678.37 532.86 670.68 C 535.07 666.06 539.38 662.57 544.31 661.24 Z" />
</svg>

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -0,0 +1,2 @@
name: cloudca
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,3 @@
.catalog:
name: "interoutevdc"
version: "0.2.0"

View File

@ -0,0 +1 @@
https://myservices.interoute.com/rancher/component.js

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