Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Daniel Yu 2017-05-08 14:13:25 +08:00
commit 4582687496
38 changed files with 1044 additions and 15 deletions

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,34 @@
.catalog:
name: "DigitalOcean DNS"
version: "v0.6.4"
description: "Rancher External DNS service powered by DigitalOcean"
minimum_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

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

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,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.1"

View File

@ -0,0 +1 @@
6891ca3791f23264ac3ca6576e856349

View File

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

View File

@ -0,0 +1 @@
http://machine-driver.oss-cn-shanghai.aliyuncs.com/qingcloud/ui/v1.0.1/component.js

View File

@ -0,0 +1 @@
http://machine-driver.oss-cn-shanghai.aliyuncs.com/qingcloud/driver/v1.0.1/docker-machine-driver-qingcloud-linux-amd64.tar.gz

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -0,0 +1,2 @@
name: qingcloud
version: "v1.0.1"

View File

@ -1,4 +1,4 @@
name: Wordpress
name: WordPress
description: |
Blog tool, publishing platform and CMS
version: 1.0.0-latest-rancher1

View File

@ -0,0 +1,32 @@
# Consul Cluster
### Info:
This template creates 3 Consul nodes that uses RPC encryption with TLS and gossip encryption to secure connection between consul cluster nodes, configuration is generated with confd from Rancher metadata.
TLS is used to verify the authenticity of the servers and the clients using the verify_incoming and verify_outgoing options.
The variables used in this template include:
- Certificates and keys for Consul nodes.
- CA certificate.
- 16-bytes, Base64 encoded gossip encryption key.
- Web UI option.
- ACL options.
The templates uses two Docker images one as the main image and the other one is the sidekick:
- consul.
- [consul-config](https://github.com/galal-hussein/consul-config).
### Usage:
Select Consul from catalog.
Enter the certificates and keys for consul nodes, ca certificates, and the encryption key.
Click deploy.
The consul nodes will be bound to the Rancher managed network IPs.

View File

@ -0,0 +1,41 @@
consul-base:
image: consul:0.8.1
entrypoint:
- /opt/rancher/bin/start_consul.sh
net: "container:consul"
labels:
io.rancher.container.hostname_override: container_name
volumes_from:
- consul-data
consul-data:
image: alpine:latest
entrypoint:
- /bin/true
labels:
io.rancher.container.hostname_override: container_name
io.rancher.container.start_once: true
volumes:
- /var/consul
- /opt/rancher/bin
- /opt/rancher/ssl
- /opt/rancher/config
net: none
consul:
image: husseingalal/consul-config:0.1.2
labels:
io.rancher.container.hostname_override: container_name
io.rancher.sidekicks: consul-base,consul-data
volumes_from:
- consul-data
{{- if eq .Values.ui "true"}}
consul-lb:
ports:
- 8500:8500/tcp
expose:
- 8500:8500/tcp
tty: true
image: rancher/load-balancer-service
links:
- consul:consul-base
stdin_open: true
{{- end }}

View File

@ -0,0 +1,93 @@
.catalog:
name: "Consul"
description: "Secure Consul cluster"
version: "0.8-rancher1"
upgrade_from: 0.0.0-rancher1
uuid: consul-0
questions:
- variable: ca_crt
label: "CA certificate"
type: "multiline"
required: true
- variable: consul1_key
label: "First consul key"
type: "multiline"
required: true
- variable: consul1_crt
label: "First consul certificate"
type: "multiline"
required: true
- variable: consul2_key
label: "Second consul key"
type: "multiline"
required: true
- variable: consul2_crt
label: "Second consul certificate"
type: "multiline"
required: true
- variable: consul3_key
label: "Third consul key"
type: "multiline"
required: true
- variable: consul3_crt
label: "Third consul certificate"
type: "multiline"
required: true
- variable: gossip_key
label: "Communication gossip key"
type: "multiline"
required: true
- variable: enable_acl
label: "ACL Access"
type: "boolean"
required: true
default: false
- variable: acl_default_policy
label: "ACL Default Policy"
type: "enum"
options:
- "allow"
- "deny"
default: "allow"
required: true
- variable: acl_down_policy
label: "ACL Down Policy"
type: "enum"
options:
- "allow"
- "deny"
default: "allow"
required: true
- variable: acl_master_token
label: "ACL Master Token"
type: "string"
default: ""
required: false
- variable: ui
label: "Enable UI"
type: "boolean"
default: false
required: true
consul:
scale: 3
metadata:
ca.crt: |
${ca_crt}
consul1.crt: |
${consul1_crt}
consul1.key: |
${consul1_key}
consul2.crt: |
${consul2_crt}
consul2.key: |
${consul2_key}
consul3.crt: |
${consul3_crt}
consul3.key: |
${consul3_key}
enc.key: "${gossip_key}"
acl.enabled: "${enable_acl}"
acl.default_policy: "${acl_default_policy}"
acl.down_policy: "${acl_down_policy}"
acl.master_token: "${acl_master_token}"
ui.enabled: ${ui}

View File

@ -1,5 +1,5 @@
name: Consul Cluster
description: |
Consul cluster
version: 0.6-rancher1
version: 0.8-rancher1
category: Clustering

View File

@ -0,0 +1,19 @@
# Drone
### Info:
This template creates an instance of Drone CI server 0.5 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.5
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.5
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

View File

@ -0,0 +1,123 @@
version: 2
catalog:
name: Drone
version: 0.5-rancher1
upgrade_from: 0.5-rancher1
description: |
Drone CI Server ref http://readme.drone.io/admin/installation-guide/
questions:
- variable: host_port
label: Drone server Host Port
description: |
Port that will be exposed on service creation
required: true
default: 8000
type: int
- variable: agent_scale
label: Drone agent scale
description: Drone agent scale to deploy
required: true
default: 1
type: int
- variable: drone_secret
label: Server and agents sercret.
description: Server and agents secret to be communicate. http://readme.drone.io/admin/user-registration/
type: password
required: true
- variable: gin_mode
label: Run mode
description: "Drone run mode, GIN_MODE"
type: enum
default: "release"
options:
- "release"
- "debug"
required: true
- variable: drone_open
label: Open registration
description: |
Users self register. http://readme.drone.io/admin/user-registration/
required: true
default: true
type: enum
options:
- true
- false
- variable: drone_admin
label: Drone Admin
description: List of admins for drone coma seperated. http://readme.drone.io/admin/user-admins/
type: string
required: false
- variable: drone_orgs
label: Organizations
description: Comman seperated list of org that can access drone. http://readme.drone.io/admin/user-registration/
type: string
required: false
- variable: "drone_driver"
type: "enum"
required: true
label: "Remote Driver"
default: "github"
description: "Remote Git and Auth scheme. ref http://readme.drone.io/admin"
options:
- github
- bitbucket
- gitlab
- gogs
- variable: drone_driver_client
label: Remote Driver client
description: "Client key from remote driver. Required for github, bitbucket and gitlab."
type: string
required: false
- variable: drone_driver_secret
label: Remote Driver secret
description: "Secret key from remote driver. Required for github, bitbucket and gitlab."
type: string
required: false
- variable: drone_driver_url
label: Remote Driver url
description: "Remote Driver server url. Required for gitlab and gogs, http://readme.drone.io/admin"
type: string
required: false
- variable: database_driver
label: Database Driver
description: "Database driver. If sqlite, additional volume would be mounted at /var/lib/drone."
type: enum
default: "sqlite"
options:
- "sqlite"
- "mysql"
- "postgres"
required: true
- variable: "database_source"
type: "string"
label: "Database source"
description: "Database datasource. Required if database driver is mysql or postgres, http://readme.drone.io/admin/database-engines/"
required: false
services:
agent:
scale: ${agent_scale}
start_on_create: true
server:
scale: 1
start_on_create: true
health_check:
port: 8000
interval: 2000
unhealthy_threshold: 3
strategy: recreate
request_line: GET / HTTP/1.0
healthy_threshold: 2
response_timeout: 2000
lb:
scale: 1
start_on_create: true
load_balancer_config:
haproxy_config: {}
health_check:
healthy_threshold: 2
response_timeout: 2000
port: 42
unhealthy_threshold: 3
interval: 2000
strategy: recreate

View File

@ -1,5 +1,5 @@
name: Drone
description: |
Drone CI Server
version: 0.4-rancher2
version: 0.5-rancher1
category: Continuous Integration

View File

@ -5,7 +5,7 @@ services:
tty: true
image: webcenter/alpine-gocd-server:17.3.0-1
volumes:
{{- if (contains .Values.VOLUME_DRIVER_SERVER "/")}}
{{- if eq (printf "%.1s" .Values.VOLUME_DRIVER_SERVER) "/" }}
- ${VOLUME_DRIVER_SERVER}:/data
{{- else}}
- gocd-server-data:/data
@ -36,7 +36,7 @@ services:
- GOCD_PLUGIN_google-auth=https://github.com/gocd-contrib/gocd-oauth-login/releases/download/v2.3/google-oauth-login-2.3.jar
- GOCD_PLUGIN_github-auth=https://github.com/gocd-contrib/gocd-oauth-login/releases/download/v2.3/github-oauth-login-2.3.jar
{{- end}}
{{- if (ne .Values.DEPLOY_LB "true") and .Values.PUBLISH_PORT}}
{{- if and (ne .Values.DEPLOY_LB "true") (.Values.PUBLISH_PORT)}}
ports:
- ${PUBLISH_PORT}:8153
{{- end}}
@ -46,7 +46,7 @@ services:
{{- if eq .Values.DEPLOY_LB "true"}}
lb:
image: rancher/lb-service-haproxy:v0.6.2
{{- if .Values.PUBLISH_PORT}}
{{- if (.Values.PUBLISH_PORT)}}
ports:
- ${PUBLISH_PORT}:8153/tcp
{{- else}}
@ -65,7 +65,7 @@ services:
tty: true
image: webcenter/alpine-gocd-agent:17.3.0-1
volumes:
{{- if (contains .Values.VOLUME_DRIVER_AGENT "/")}}
{{- if eq (printf "%.1s" .Values.VOLUME_DRIVER_AGENT) "/"}}
- ${VOLUME_DRIVER_AGENT}:/data
{{- else}}
- gocd-agent-data:/data
@ -102,7 +102,7 @@ services:
io.rancher.container.hostname_override: container_name
image: index.docker.io/docker:1.13-dind
volumes:
{{- if (contains .Values.VOLUME_DRIVER_AGENT "/")}}
{{- if eq (printf "%.1s" .Values.VOLUME_DRIVER_AGENT) "/"}}
- ${VOLUME_DRIVER_AGENT}:/data
{{- else}}
- gocd-agent-data:/data
@ -114,12 +114,12 @@ volumes:
gocd-scheduler-setting:
driver: local
per_container: true
{{- if not (contains .Values.VOLUME_DRIVER_AGENT "/")}}
{{- if ne (printf "%.1s" .Values.VOLUME_DRIVER_AGENT) "/"}}
gocd-agent-data:
driver: ${VOLUME_DRIVER_AGENT}
per_container: true
{{- end}}
{{- if not (contains .Values.VOLUME_DRIVER_SERVER "/")}}
{{- if ne (printf "%.1s" .Values.VOLUME_DRIVER_SERVER) "/"}}
gocd-server-data:
driver: ${VOLUME_DRIVER_SERVER}
{{- end}}

View File

@ -0,0 +1,20 @@
# Influxdb
### Info:
This template deploys a Influxdb.
### Usage:
Select influxdb from catalog.
Change the following cloud9 default parameters, if you need:
- Expose influxdb=true # Exposed influxdb service
- Influxdb port=8086 # Influxdb exposed port
Click deploy.
Influxdb can now be accessed over the Rancher network and over exposed port.

View File

@ -0,0 +1,36 @@
version: '2'
services:
{{- if eq .Values.EXPOSE_SERVICE "true"}}
lb:
image: rancher/lb-service-haproxy:v0.6.2
ports:
- ${influxdb_port}:8086/tcp
labels:
io.rancher.container.agent.role: environmentAdmin
io.rancher.container.create_agent: 'true'
{{- end}}
influxdb:
image: influxdb:1.2.2-alpine
stdin_open: true
tty: true
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
io.rancher.sidekicks: influxdb-volume
volumes_from:
- influxdb-volume
influxdb-volume:
network_mode: "none"
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
io.rancher.container.start_once: true
environment:
- SERVICE_UID=0
- SERVICE_GID=0
- SERVICE_VOLUME=/var/lib/influxdb
volumes:
- /var/lib/influxdb
volume_driver: local
image: rawmind/alpine-volume:0.0.2-1

View File

@ -0,0 +1,55 @@
.catalog:
name: Influxdb
description: |
Influxdb
version: 1.2.2-rancher1
minimum_rancher_version: v1.0.0
maintainer: "Raul Sanchez <rawmind@gmail.com>"
uuid: influxdb-0
questions:
- variable: "EXPOSE_SERVICE"
description: "Expose Influxdb"
label: "Expose influxdb:"
required: true
type: enum
default: "true"
options:
- "true"
- "false"
- variable: "influxdb_port"
description: |
Port to expose.
label: "Influxdb port:"
default: "8086"
required: true
type: "int"
version: '2'
services:
lb:
scale: 1
start_on_create: true
lb_config:
certs: []
port_rules:
- hostname: ''
priority: 1
protocol: http
service: influxdb
source_port: ${influxdb_port}
target_port: 8086
health_check:
response_timeout: 2000
healthy_threshold: 2
port: 42
unhealthy_threshold: 3
interval: 2000
influxdb:
scale: 1
start_on_create: true
health_check:
response_timeout: 2000
healthy_threshold: 2
port: 8086
unhealthy_threshold: 3
interval: 2000

View File

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<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 672 250" style="enable-background:new 0 0 672 250;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#symbol_1_);}
.st1{fill:url(#SVGID_1_);}
.st2{fill:url(#SVGID_2_);}
.st3{fill:url(#SVGID_3_);}
.st4{fill:url(#SVGID_4_);}
.st5{fill:url(#SVGID_5_);}
.st6{fill:url(#SVGID_6_);}
.st7{fill:url(#SVGID_7_);}
</style>
<g id="influxdb_logo">
<linearGradient id="symbol_1_" gradientUnits="userSpaceOnUse" x1="205.3238" y1="125" x2="483.0884" y2="125">
<stop offset="0" style="stop-color:#4591ED"/>
<stop offset="1" style="stop-color:#00C9FF"/>
</linearGradient>
<path id="symbol_2_" class="st0" d="M242.5,133.3l-7.6-33.2c-0.4-1.8-2.1-3.6-3.9-4.1l-34.9-10.7c-0.5-0.1-1-0.2-1.5-0.2
c-1.5,0-3.1,0.6-4,1.5l-25,23.2c-1.3,1.2-2.1,3.6-1.7,5.4l8.1,35.5c0.4,1.8,2.1,3.6,3.9,4.1l32.6,10c0.5,0.1,1,0.2,1.5,0.2
c1.5,0,3.1-0.6,4-1.5l26.7-24.8C242.2,137.5,242.9,135.1,242.5,133.3z M199.7,93.1l23.9,7.3c0.9,0.3,0.9,0.7,0,0.9l-12.6,2.9
c-1,0.2-2.3-0.2-2.9-0.9l-8.8-9.5C198.6,93.2,198.8,92.9,199.7,93.1z M214.6,136c0.2,1-0.4,1.5-1.3,1.2l-25.8-7.9
c-0.9-0.3-1.1-1.1-0.4-1.7l19.8-18.4c0.7-0.7,1.5-0.4,1.7,0.5L214.6,136z M172.1,112.6l21-19.5c0.7-0.7,1.8-0.6,2.5,0.1l10.5,11.3
c0.7,0.7,0.6,1.8-0.1,2.5l-21,19.5c-0.7,0.7-1.8,0.6-2.5-0.1L172,115.1C171.4,114.4,171.4,113.3,172.1,112.6z M177.2,143.6
l-5.6-24.3c-0.2-1,0.1-1.1,0.8-0.4l8.8,9.5c0.7,0.7,1,2.1,0.7,3l-3.8,12.3C177.9,144.5,177.4,144.5,177.2,143.6z M207.9,157.7
l-27.3-8.4c-0.9-0.3-1.5-1.3-1.2-2.2l4.5-14.8c0.3-0.9,1.3-1.5,2.2-1.2l27.3,8.4c0.9,0.3,1.5,1.3,1.2,2.2l-4.5,14.8
C209.8,157.5,208.8,158,207.9,157.7z M232.2,137.8l-18.3,17c-0.7,0.7-1.1,0.4-0.8-0.5l3.8-12.3c0.3-0.9,1.3-1.9,2.3-2.1l12.6-2.9
C232.7,136.8,232.9,137.2,232.2,137.8z M234.2,134.2l-15.1,3.4c-1,0.2-1.9-0.4-2.1-1.3l-6.4-27.9c-0.2-1,0.4-1.9,1.3-2.1l15.1-3.4
c1-0.2,1.9,0.4,2.1,1.3l6.4,27.9C235.7,133,235.1,134,234.2,134.2z"/>
<g id="type_2_">
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="205.3238" y1="120.5383" x2="483.0884" y2="120.5383">
<stop offset="0" style="stop-color:#4591ED"/>
<stop offset="1" style="stop-color:#00C9FF"/>
</linearGradient>
<path class="st1" d="M273.5,111.4l8.9-1.2l-6.3,35.8h-8.7L273.5,111.4z M276.1,96.3l8.9-1.2l-1.7,9.8l-8.9,1.3L276.1,96.3z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="205.3238" y1="127.9909" x2="483.0884" y2="127.9909">
<stop offset="0" style="stop-color:#4591ED"/>
<stop offset="1" style="stop-color:#00C9FF"/>
</linearGradient>
<path class="st2" d="M310.2,120.9c0.1-0.4,0.1-0.8,0.1-0.9c0-0.9-0.4-1.5-1.8-1.5c-2.3,0-7.2,2.2-10.5,4.1l-4.1,23.4h-8.7
l6.1-34.5l7.5-1.3l-0.1,4.3c4.6-2.5,10.1-4.4,14.3-4.4c4.8,0,6.4,3.2,6.4,7c0,1.4-0.1,2.3-0.4,3.5l-4.5,25.5h-8.7L310.2,120.9z"
/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="205.3238" y1="127.9185" x2="483.0884" y2="127.9185">
<stop offset="0" style="stop-color:#4591ED"/>
<stop offset="1" style="stop-color:#00C9FF"/>
</linearGradient>
<path class="st3" d="M347.4,117.8h-8.1l-5.3,29.8c-1,5.7-3.1,9.3-7.7,13.3l-5.6-5.2c2.8-2.7,4.1-5.1,4.7-8.9l5.1-29h-5.4l1.2-7.1
h5.4l0.9-5.1c1.3-7.5,4.3-10.8,13.2-10.8c2.9,0,6.7,0.4,11.1,1.4l8.9-1.2l-9,50.9h-8.7l7.6-43.1c-3.5-0.7-7-1.1-9.8-1.1
c-3,0-4.2,1-4.6,3.5l-0.9,5.4h8.8L347.4,117.8z"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="205.3238" y1="128.4249" x2="483.0884" y2="128.4249">
<stop offset="0" style="stop-color:#4591ED"/>
<stop offset="1" style="stop-color:#00C9FF"/>
</linearGradient>
<path class="st4" d="M376.1,135.8c-0.1,0.5-0.1,0.8-0.1,0.9c0,0.9,0.4,1.5,1.8,1.5c2.3,0,7.2-2.2,10.5-4.1l4-22.8l8.9-1.2
L395,146h-7.4l0.1-3.7c-4.6,2.5-10.1,4.4-14.3,4.4c-4.8,0-6.4-3.2-6.4-7c0-1.4,0.1-2.3,0.4-3.5l4.3-24.8l8.9-1.2L376.1,135.8z"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="205.3238" y1="128.0632" x2="483.0884" y2="128.0632">
<stop offset="0" style="stop-color:#4591ED"/>
<stop offset="1" style="stop-color:#00C9FF"/>
</linearGradient>
<path class="st5" d="M414.9,128.2l-7.6-16.6l8.1-1.5l5.3,12.5l8.7-11.9h9.3l-14.4,18.6L432,146h-8.8l-4.8-10.2l-8.5,10.2h-9.3
L414.9,128.2z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="205.3238" y1="120.9" x2="483.0884" y2="120.9">
<stop offset="0" style="stop-color:#4591ED"/>
<stop offset="1" style="stop-color:#00C9FF"/>
</linearGradient>
<path class="st6" d="M465.3,146h-7.4v-3.9c-3,2.7-6.8,4.6-12,4.6c-6.1,0-8.2-3.3-8.2-8c0-1.2,0.1-2.4,0.4-3.7l1.8-10.3
c1.6-9,3.3-14.7,17.1-14.7c1.3,0,3.8,0.2,5.8,0.7l2.5-14.3l8.9-1.2L465.3,146z M461.6,117.8c-1.6-0.4-3.9-0.4-5.1-0.4
c-5.6,0-7,2.2-7.8,6.9l-2.2,12.4c-0.1,0.4-0.1,0.7-0.1,0.9c0,1.3,0.9,1.9,2.5,1.9c3.7,0,8-3,9.8-5.3L461.6,117.8z"/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="205.3238" y1="120.9" x2="483.0884" y2="120.9">
<stop offset="0" style="stop-color:#4591ED"/>
<stop offset="1" style="stop-color:#00C9FF"/>
</linearGradient>
<path class="st7" d="M483.1,96.3l8.9-1.2l-3.2,18c3.9-2.2,7.6-3.1,11.1-3.1c6.1,0,8.2,3.3,8.2,8c0,1.2-0.1,2.4-0.4,3.7L506,132
c-1.9,10.6-5.5,14.7-18.2,14.7c-3.3,0-9.7-1.1-13.2-2.3L483.1,96.3z M484.2,138.9c1.6,0.3,3.3,0.5,5.1,0.5c5.6,0,7-2.3,7.8-6.9
l2.2-12.4c0.1-0.4,0.1-0.7,0.1-0.9c0-1.3-0.9-1.9-2.5-1.9c-2.7,0-6.4,1.2-9.5,3.3L484.2,138.9z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1,7 @@
name: Influxdb
description: |
Influxdb
version: 1.2.2-rancher1
category: Database
maintainer: "Raul Sanchez <rawmind@gmail.com>"
license:

View File

@ -0,0 +1,33 @@
kibana-vip:
ports:
- "${public_port}:80"
restart: always
tty: true
image: rancher/load-balancer-service
links:
- nginx-proxy:kibana5
stdin_open: true
nginx-proxy-conf:
image: rancher/nginx-conf:v0.2.0
command: "-backend=rancher --prefix=/2015-07-25"
labels:
io.rancher.container.hostname_override: container_name
nginx-proxy:
image: rancher/nginx:v1.9.4-3
volumes_from:
- nginx-proxy-conf
labels:
io.rancher.container.hostname_override: container_name
io.rancher.sidekicks: nginx-proxy-conf,kibana5
external_links:
- ${elasticsearch_source}:elasticsearch
kibana5:
restart: always
tty: true
image: kibana:5.3.0
net: "container:nginx-proxy"
stdin_open: true
environment:
ELASTICSEARCH_URL: "http://elasticsearch:9200"
labels:
io.rancher.container.hostname_override: container_name

View File

@ -0,0 +1,24 @@
.catalog:
name: "Kibana"
version: "5.3.0-rancher1"
description: "Kibana: Explore & Visualize Your Data"
questions:
- variable: "elasticsearch_source"
description: "Link to elasticsearch service or stack/service"
label: "Elasticsearch source"
type: "service"
required: true
default: "es/elasticsearch-clients"
- variable: "public_port"
label: "Public Port"
description: "Unique public port for Kibana"
type: "int"
default: 80
required: true
nginx-proxy:
metadata:
nginx:
conf:
servername: "kibana"
upstream_port: 5601

View File

@ -0,0 +1,79 @@
# Traefik active load balancer (Experimental)
### Info:
This template deploys traefik active load balancers on top of Rancher. The configuration is generated and updated with confd from Rancher metadata.
It would be deployed in hosts with label traefik_lb=true.
### Config:
- host_label = "traefik_lb=true" # Host label where to run traefik service.
- http_port = 8080 # Port exposed to get access to the published services.
- https_port = 8443 # Port exposed to get secured access to the published services.
- admin_port = 8000 # Port exposed to get admin access to the traefik service.
- https_enable = <false | true | only>
- false: Enable http enpoints and disable https ones.
- true: Enable http and https endpoints.
- only: Enable https endpoints and redirect http to https.
- acme_enable = false # Enable/Disable acme traefik support.
- acme_email = "test@traefik.io" # acme user email
- acme_ondemand = true # acme ondemand parameter.
- acme_onhostrule = true # acme onHostRule parameter.
- ssl_key # Paste your ssl key. *Required if you enable https
- ssl_crt # Paste your ssl crt. *Required if you enable https
- insecure_skip = false # Enable InsecureSkipVerify param.
- refresh_interval = 10s # Interval to refresh traefik rules.toml from rancher-metadata.
NOTE: If you enable acme support, additional sidekick will be created for acme persistance.
### Service configuration labels:
Traefik labels has to be added in your services, in order to get included in traefik dynamic config.
- traefik.enable = <true | false>
- true: the service will be published as *service_name.stack_name.traefik_domain*
- stack: the service will be published as *stack_name.traefik_domain*. WARNING: You could have collisions inside services within your stack
- false: the service will not be published
- traefik.priority = <priority> # Override for frontend priority. 5 by default
- traefik.protocol = < http | https > # Override the default http protocol
- traefik.sticky = < true | false > # Enable/disable sticky sessions to the backend
- traefik.alias = < alias > # Alternate names to route rule. Multiple values separated by ",". traefik.domain is appended. WARNING: You could have collisions BE CAREFULL
- traefik.alias.fqdn = < alias fqdn > # Alternate names to route rule. Multiple values separated by ",". traefik.domain must be defined but is not appended here.
- traefik.domain = < domain.name > # Domain names to route rules. Multiple domains separated by ","
- traefik.domain.regexp = < domain.regexp > # Domain name regexp rule. Multiple domains separated by ","
- traefik.port = < port > # Port to expose throught traefik
- traefik.acme = < true | false > # Enable/disable ACME traefik feature
- traefik.path = < path > # Path rule. Multiple values separated by ","
- traefik.path.strip = < path > # Path strip rule. Multiple values separated by ","
- traefik.path.prefix = < path > # Path prefix rule. Multiple values separated by ","
- traefik.path.prefix.strip = < path > # Path prefix strip rule. Multiple values separated by ","
Details for configuring the traefik rules can be found at: https://docs.traefik.io/basics/#frontends
WARNING: Only services with healthy state are added to traefik, so health checks are mandatory.
### Usage:
Select Traefik from catalog.
Set the params.
Click deploy.
Services will be accessed throught hosts ip's whith $host_label:
- http://${service_name}.${stack_name}.${traefik.domain}:${http_port}
- https://${service_name}.${stack_name}.${traefik.domain}:${https_port}
or
- http://${stack_name}.${traefik.domain}:${http_port}
- https://${stack_name}.${traefik.domain}:${https_port}
If you set traefik.alias you service could also be acceses through
- http://${traefik.alias}.${traefik.domain}:${http_port}
- https://${traefik.alias}.${traefik.domain}:${https_port}
Note: To access the services, you need to create A or CNAMES dns entries for every one.

View File

@ -0,0 +1,64 @@
traefik:
ports:
- ${admin_port}:8000/tcp
- ${http_port}:${http_port}/tcp
- ${https_port}:${https_port}/tcp
log_driver: ''
labels:
io.rancher.scheduler.global: 'true'
io.rancher.scheduler.affinity:host_label: ${host_label}
io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}/$${service_name}
io.rancher.sidekicks: traefik-conf
{{- if eq .Values.acme_enable "true" -}}
,traefik-acme
{{- end}}
io.rancher.container.hostname_override: container_name
tty: true
log_opt: {}
image: rawmind/alpine-traefik:1.2.3-1
environment:
- CONF_INTERVAL=${refresh_interval}
- TRAEFIK_HTTP_PORT=${http_port}
- TRAEFIK_HTTPS_PORT=${https_port}
- TRAEFIK_HTTPS_ENABLE=${https_enable}
{{- if eq .Values.acme_enable "true"}}
- TRAEFIK_ACME_ENABLE=${acme_enable}
- TRAEFIK_ACME_EMAIL=${acme_email}
- TRAEFIK_ACME_ONDEMAND=${acme_ondemand}
- TRAEFIK_ACME_ONHOSTRULE=${acme_onhostrule}
{{- end}}
- TRAEFIK_INSECURE_SKIP=${insecure_skip}
volumes_from:
- traefik-conf
{{- if eq .Values.acme_enable "true"}}
- traefik-acme
{{- end}}
traefik-conf:
log_driver: ''
labels:
io.rancher.scheduler.global: 'true'
io.rancher.scheduler.affinity:host_label: ${host_label}
io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}/$${service_name}
io.rancher.container.start_once: 'true'
tty: true
log_opt: {}
image: rawmind/rancher-traefik:0.3.4-19
net: none
volumes:
- /opt/tools
{{- if eq .Values.acme_enable "true"}}
traefik-acme:
net: none
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
io.rancher.container.start_once: true
environment:
- SERVICE_UID=10001
- SERVICE_GID=10001
- SERVICE_VOLUME=/opt/traefik/acme
volumes:
- /opt/traefik/acme
volume_driver: ${VOLUME_DRIVER}
image: rawmind/alpine-volume:0.0.2-1
{{- end}}

View File

@ -0,0 +1,107 @@
.catalog:
name: traefik
version: v1.2.3-1-rancher1
description: |
(Experimental) Traefik load balancer.
minimum_rancher_version: v0.59.0
maintainer: "Raul Sanchez <rawmind@gmail.com>"
uuid: traefik-0
questions:
- variable: "host_label"
description: "Host label where to run traefik service."
label: "Host label:"
required: true
default: "traefik_lb=true"
type: "string"
- variable: "http_port"
description: "Traefik http public port to listen."
label: "Http port:"
required: true
default: 8080
type: "int"
- variable: "https_port"
description: "Traefik https public port to listen."
label: "Https port:"
required: true
default: 8443
type: "int"
- variable: "admin_port"
description: "Traefik admin public port to listen."
label: "Admin port:"
required: true
default: 8000
type: "int"
- variable: "https_enable"
label: "Enable HTTPS:"
description: |
Enable https working mode. If you activate, you need to fill SSL key and SSL crt in order to work.
default: false
required: true
type: enum
options:
- false
- true
- only
- variable: "acme_enable"
description: "Enable acme support on traefik."
label: "Enable ACME:"
required: true
default: false
type: "boolean"
- variable: "acme_email"
description: "ACME user email."
label: "ACME email:"
required: true
default: "test@traefik.io"
type: "string"
- variable: "acme_ondemand"
description: "Enable acme ondemand."
label: "ACME ondemand:"
required: true
default: true
type: "boolean"
- variable: "acme_onhostrule"
description: "Enable acme onHostRule."
label: "ACME onHostRule:"
required: true
default: true
type: "boolean"
- variable: "ssl_key"
description: "SSL key to secure the service. *Required if you enable https"
label: "SSL key"
type: "multiline"
required: false
default: ""
- variable: "ssl_crt"
description: "SSL cert to secure the service. *Required if you enable https"
label: "SSL crt"
type: "multiline"
required: false
default: ""
- variable: "insecure_skip"
description: "Enable InsecureSkipVerify param."
label: "InsecureSkipVerify:"
required: true
default: false
type: "boolean"
- variable: "refresh_interval"
description: "Interval to poll/apply configuration changes."
label: "Refresh Interval (s):"
required: true
default: 10
type: "int"
traefik:
retain_ip: true
health_check:
port: 8000
interval: 5000
unhealthy_threshold: 3
request_line: 'GET /dashboard/# HTTP/1.0'
healthy_threshold: 2
response_timeout: 5000
metadata:
traefik:
ssl_key: |
${ssl_key}
ssl_crt: |
${ssl_crt}

View File

@ -1,7 +1,7 @@
name: Traefik
description: |
(Experimental) Traefik active load balancer
version: v1.1.2-rancher1
version: v1.2.3-1-rancher1
category: Load Balancing
maintainer: "Raul Sanchez <rawmind@gmail.com>"
minimum_rancher_version: v0.59.0

View File

@ -3,7 +3,7 @@ version: '2'
services:
elasticsearch:
image: zammad/zammad-docker-compose:elasticsearch
image: zammad/zammad-docker-compose:zammad-elasticsearch
labels:
io.rancher.container.pull_image: always
restart: always
@ -11,7 +11,7 @@ services:
nginx:
depends_on:
- zammad
image: zammad/zammad-docker-compose:nginx
image: zammad/zammad-docker-compose:zammad-nginx
labels:
io.rancher.container.pull_image: always
links:
@ -24,7 +24,7 @@ services:
- data-zammad:/home/zammad
postgresql:
image: zammad/zammad-docker-compose:postgresql
image: zammad/zammad-docker-compose:zammad-postgresql
labels:
io.rancher.container.pull_image: always
restart: always