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

This commit is contained in:
André Bauer 2017-12-08 22:29:15 +01:00
commit b47ddaa283
123 changed files with 4614 additions and 75 deletions

View File

@ -3,7 +3,7 @@
This catalog provides templates created by the community, and they are not maintained or supported by Rancher Labs.
# License
Copyright (c) 2014-2016 [Rancher Labs, Inc.](http://rancher.com)
Copyright (c) 2014-2017 [Rancher Labs, Inc.](http://rancher.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

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.5
command: -provider=alidns
expose:
- 1000
environment:
ALICLOUD_ACCESS_KEY_ID: ${ALICLOUD_ACCESS_KEY_ID}
ALICLOUD_ACCESS_KEY_SECRET: ${ALICLOUD_ACCESS_KEY_SECRET}
ROOT_DOMAIN: ${ROOT_DOMAIN}
NAME_TEMPLATE: ${NAME_TEMPLATE}
TTL: ${TTL}
labels:
io.rancher.container.create_agent: "true"
io.rancher.container.agent.role: "external-dns"

View File

@ -0,0 +1,48 @@
# notemplating
.catalog:
name: "Alibaba Cloud DNS"
version: "v0.2.0"
description: "Rancher External DNS service powered by Alibaba Cloud"
minimum_rancher_version: v1.6.8-rc1
questions:
- variable: "ALICLOUD_ACCESS_KEY_ID"
label: "Access Key ID"
description: "Access key id for your Alibaba Cloud account"
type: "string"
required: true
- variable: "ALICLOUD_ACCESS_KEY_SECRET"
label: "Access Key Secret"
description: "Access key secret for your Alibaba Cloud account"
type: "string"
required: true
- variable: "ROOT_DOMAIN"
label: "Domain"
description: "The DNS zone (domain) managed by Alibaba Cloud. DNS entries will be created for <service>.<stack>.<environment>.<domain>"
type: "string"
required: true
- variable: "TTL"
label: "TTL"
description: "The resource record cache time to live (TTL), in seconds"
type: "int"
default: 600
min: 1
max: 86400
required: false
- variable: "NAME_TEMPLATE"
label: "DNS Name Template"
description: |
Name template used to construct the subdomain part (left of the domain) of the DNS record names.
Supported placeholders: %{{service_name}}, %{{stack_name}}, %{{environment_name}}.
By default DNS entries will be named '<service>.<stack>.<environment>.<domain>'.
type: "string"
default: "%{{service_name}}.%{{stack_name}}.%{{environment_name}}"
required: false
alidns:
health_check:
port: 1000
interval: 5000
unhealthy_threshold: 3
request_line: GET / HTTP/1.0
healthy_threshold: 2
response_timeout: 2000

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.9
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.3.0"
description: "Rancher External DNS service powered by Alibaba Cloud"
minimum_rancher_version: v1.6.13-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

View File

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

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -0,0 +1,7 @@
# AWS Spot Instance Helper
### Info
This is a simple service that runs globally. It monitors the state of the host, if the host is running on a spot instance it will check to see if the host is scheduled for termination then it will automatically deactive the host and evaculate the containers.
The source code is available at [https://www.github.com/chrisurwin/aws-spot-instance-helper](https://www.github.com/chrisurwin/aws-spot-instance-helper)

View File

@ -0,0 +1,8 @@
aws-spot-instance-helper:
image: chrisurwin/aws-spot-instance-helper:v0.1.0
tty: true
labels:
io.rancher.container.create_agent: 'true'
io.rancher.container.agent.role: environment
io.rancher.container.pull_image: always
io.rancher.scheduler.global: 'true'

View File

@ -0,0 +1,16 @@
.catalog:
name: "AWS Spot Instance Helper"
version: "v0.1.0"
description: "AWS Spot Instance Helper"
minimum_rancher_version: v1.5.5
aws-spot-instance-helper:
health_check:
port: 9777
interval: 2000
unhealthy_threshold: 3
strategy: recreate
response_timeout: 2000
request_line: GET /ping HTTP/1.0
healthy_threshold: 2

View File

@ -0,0 +1,9 @@
# AWS Spot Instance Helper
### Info
This is a simple service that runs globally. It monitors the state of the host, if the host is running on a spot instance it will check to see if the host is scheduled for termination then it will automatically deactive the host and evaculate the containers.
The source code is available at [https://www.github.com/chrisurwin/aws-spot-instance-helper](https://www.github.com/chrisurwin/aws-spot-instance-helper)
This version support notification to slack.

View File

@ -0,0 +1,10 @@
aws-spot-instance-helper:
image: chrisurwin/aws-spot-instance-helper:v0.2.0
tty: true
labels:
io.rancher.container.create_agent: 'true'
io.rancher.container.agent.role: environment
io.rancher.container.pull_image: always
io.rancher.scheduler.global: 'true'
environment:
SLACK_WEBHOOK: "${SLACK_WEBHOOK}"

View File

@ -0,0 +1,21 @@
.catalog:
name: "AWS Spot Instance Helper"
version: "v0.2.0"
description: "AWS Spot Instance Helper"
minimum_rancher_version: v1.5.5
questions:
- variable: "SLACK_WEBHOOK"
description: "Slack Webhook"
label: "Slack Webhook"
required: false
type: "string"
aws-spot-instance-helper:
health_check:
port: 9777
interval: 2000
unhealthy_threshold: 3
strategy: recreate
response_timeout: 2000
request_line: GET /ping HTTP/1.0
healthy_threshold: 2

View File

@ -0,0 +1,25 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="1200.000000pt" height="1200.000000pt" viewBox="0 0 1200.000000 1200.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,1200.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M0 6000 l0 -6000 6000 0 6000 0 0 6000 0 6000 -6000 0 -6000 0 0
-6000z m6369 5085 c174 -42 319 -177 377 -355 17 -50 18 -112 22 -717 l3 -663
-1798 0 c-1983 0 -1850 4 -1977 -63 -118 -61 -226 -200 -255 -327 -7 -30 -11
-651 -11 -1882 l0 -1838 -602 0 c-368 0 -628 4 -667 11 -228 37 -401 216 -432
447 -6 51 -9 910 -7 2527 l3 2450 23 66 c43 129 132 234 250 297 121 64 -55
60 2592 61 2121 1 2423 -1 2479 -14z m2142 -2183 c164 -46 299 -177 349 -340
19 -61 20 -94 20 -728 l0 -664 -1804 0 c-1771 0 -1805 0 -1868 -20 -161 -50
-286 -176 -344 -350 -18 -53 -19 -133 -22 -1892 l-2 -1838 -628 0 c-684 0
-689 0 -796 58 -28 15 -81 57 -119 93 -78 78 -130 177 -147 279 -14 90 -14
4900 0 4990 30 189 188 365 371 414 46 13 394 15 2489 15 2331 1 2438 0 2501
-17z m2160 -2190 c82 -27 175 -88 230 -150 50 -57 105 -167 119 -241 15 -79
14 -4962 -1 -5033 -40 -192 -212 -361 -404 -398 -44 -8 -715 -10 -2490 -8
l-2430 3 -58 22 c-150 57 -263 170 -320 320 l-22 58 -3 2495 c-1 1709 1 2511
8 2546 43 209 223 375 435 404 33 4 1142 7 2465 6 l2405 -1 66 -23z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,5 @@
name: AWS Spot Instance Helper
description: |
Automatically evacuates spot instances that are marked for termination
version: v0.2.0
category: Rancher Services

View File

@ -0,0 +1,13 @@
gandidns:
image: rancher/external-dns:v0.7.6
command: -provider=gandi
expose:
- 1000
environment:
GANDI_APIKEY: ${GANDI_APIKEY}
ROOT_DOMAIN: ${ROOT_DOMAIN}
NAME_TEMPLATE: ${NAME_TEMPLATE}
TTL: ${TTL}
labels:
io.rancher.container.create_agent: "true"
io.rancher.container.agent.role: "external-dns"

View File

@ -0,0 +1,43 @@
# notemplating
.catalog:
name: "Gandi DNS"
version: "v0.1.1"
description: "Rancher External DNS service powered by Gandi. Requires Rancher version v1.1.0"
maintainer: "Frederic Leger <contact@webofmars.com>"
minimum_rancher_version: v1.6.0-rc1
#maximum_rancher_version:
questions:
- variable: "GANDI_APIKEY"
label: "Gandi API key"
description: "API key for your Gandi account"
type: "string"
required: true
- variable: "ROOT_DOMAIN"
label: "Root Domain"
description: "The domain name managed by Gandi."
type: "string"
required: true
- variable: "TTL"
label: "TTL"
description: "The resource record cache time to live (TTL), in seconds (minimum 300)"
type: "int"
default: 300
required: false
- variable: "NAME_TEMPLATE"
label: "DNS Name Template"
description: |
Name template used to construct the subdomain part (left of the root domain name) of the DNS record names.
Supported placeholders: %{{service_name}}, %{{stack_name}}, %{{environment_name}}.
By default DNS entries will be named '<service>.<stack>.<environment>.<domain>'.
type: "string"
default: "%{{service_name}}.%{{stack_name}}.%{{environment_name}}"
required: false
gandidns:
health_check:
port: 1000
interval: 15000
unhealthy_threshold: 2
request_line: GET / HTTP/1.0
healthy_threshold: 2
response_timeout: 2000

View File

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

View File

@ -0,0 +1,40 @@
## Infoblox DNS
Rancher External DNS service powered by Infoblox DNS
#### Usage
##### Supported host labels
`io.rancher.host.external_dns_ip`
Override the IP address used in DNS records for containers running on the host. Defaults to the IP address the host is registered with in Rancher.
`io.rancher.host.external_dns`
Accepts 'true' (default) or 'false'
When this is set to 'false' no DNS records will ever be created for containers running on this host.
##### Supported service labels
`io.rancher.service.external_dns`
Accepts 'always', 'never' or 'auto' (default)
- `always`: Always create DNS records for this service
- `never`: Never create DNS records for this service
- `auto`: Create DNS records for this service if it exposes ports on the host
`io.rancher.service.external_dns_name_template`
Custom DNS name template that overrides global custom DNS name template (see below) of default DNS name template for a specific service
##### Custom DNS name template
By default DNS entries are named `<service>.<stack>.<environment>.<domain>`.
You can specify a custom name template used to construct the subdomain part (left of the domain/zone name) of the DNS records. The following placeholders are supported:
* `%{{service_name}}`
* `%{{stack_name}}`
* `%{{environment_name}}`
**Example:**
`%{{stack_name}}-%{{service_name}}.statictext`
Make sure to only use characters in static text and separators that your provider allows in DNS names.

View File

@ -0,0 +1,16 @@
infoblox:
image: rancher/external-dns:v0.7.5
command: -provider=infoblox
expose:
- 1000
environment:
INFOBLOX_URL: ${INFOBLOX_URL}
INFOBLOX_USER_NAME: ${INFOBLOX_USER_NAME}
INFOBLOX_PASSWORD: ${INFOBLOX_PASSWORD}
ROOT_DOMAIN: ${ROOT_DOMAIN}
SSL_VERIFY: ${SSL_VERIFY}
USE_COOKIES: ${USE_COOKIES}
TTL: ${TTL}
labels:
io.rancher.container.create_agent: "true"
io.rancher.container.agent.role: "external-dns"

View File

@ -0,0 +1,63 @@
# notemplating
.catalog:
name: "Infoblox DNS"
version: "v0.1.0"
description: "Rancher External DNS service powered by Infoblox"
minimum_rancher_version: v1.6.0
questions:
- variable: "INFOBLOX_URL"
label: "Infoblox url"
description: "Infoblox url for your Infoblox service"
type: "string"
required: true
- variable: "INFOBLOX_USER_NAME"
label: "Infoblox user name"
description: "Infoblox user name for your Infoblox service"
type: "string"
required: true
- variable: "INFOBLOX_PASSWORD"
label: "Infoblox password"
description: "Infoblox password for your Infoblox service"
type: "string"
required: true
- variable: "SSL_VERIFY"
label: "Ssl verify"
description: "Infoblox Ssl verify for your Infoblox service"
type: "boolean"
required: true
- variable: "USE_COOKIES"
label: "Use cookies"
description: "Uses cookies if specified, re-creating the request and falling back to basic auth if a cookie is not present"
type: "boolean"
required: true
- variable: "ROOT_DOMAIN"
label: "Domain"
description: "The DNS zone name (root domain) managed by Infoblox. DNS entries will be created for <service>.<stack>.<environment>.<domain>"
type: "string"
required: true
- variable: "TTL"
label: "TTL"
description: "The resource record cache time to live (TTL), in seconds"
type: "int"
default: 600
min: 1
max: 86400
required: false
- variable: "NAME_TEMPLATE"
label: "DNS Name Template"
description: |
Name template used to construct the subdomain part (left of the domain) of the DNS record names.
Supported placeholders: %{{service_name}}, %{{stack_name}}, %{{environment_name}}.
By default DNS entries will be named '<service>.<stack>.<environment>.<domain>'.
type: "string"
default: "%{{service_name}}.%{{stack_name}}.%{{environment_name}}"
required: false
infoblox:
health_check:
port: 1000
interval: 5000
unhealthy_threshold: 3
request_line: GET / HTTP/1.0
healthy_threshold: 2
response_timeout: 2000

View File

@ -0,0 +1,40 @@
## Infoblox DNS
Rancher External DNS service powered by Infoblox DNS
#### Usage
##### Supported host labels
`io.rancher.host.external_dns_ip`
Override the IP address used in DNS records for containers running on the host. Defaults to the IP address the host is registered with in Rancher.
`io.rancher.host.external_dns`
Accepts 'true' (default) or 'false'
When this is set to 'false' no DNS records will ever be created for containers running on this host.
##### Supported service labels
`io.rancher.service.external_dns`
Accepts 'always', 'never' or 'auto' (default)
- `always`: Always create DNS records for this service
- `never`: Never create DNS records for this service
- `auto`: Create DNS records for this service if it exposes ports on the host
`io.rancher.service.external_dns_name_template`
Custom DNS name template that overrides global custom DNS name template (see below) of default DNS name template for a specific service
##### Custom DNS name template
By default DNS entries are named `<service>.<stack>.<environment>.<domain>`.
You can specify a custom name template used to construct the subdomain part (left of the domain/zone name) of the DNS records. The following placeholders are supported:
* `%{{service_name}}`
* `%{{stack_name}}`
* `%{{environment_name}}`
**Example:**
`%{{stack_name}}-%{{service_name}}.statictext`
Make sure to only use characters in static text and separators that your provider allows in DNS names.

View File

@ -0,0 +1,16 @@
infoblox:
image: rancher/external-dns:v0.7.8
command: -provider=infoblox
expose:
- 1000
environment:
INFOBLOX_URL: ${INFOBLOX_URL}
INFOBLOX_USER_NAME: ${INFOBLOX_USER_NAME}
INFOBLOX_PASSWORD: ${INFOBLOX_PASSWORD}
ROOT_DOMAIN: ${ROOT_DOMAIN}
SSL_VERIFY: ${SSL_VERIFY}
USE_COOKIES: ${USE_COOKIES}
TTL: ${TTL}
labels:
io.rancher.container.create_agent: "true"
io.rancher.container.agent.role: "external-dns"

View File

@ -0,0 +1,63 @@
# notemplating
.catalog:
name: "Infoblox DNS"
version: "v0.2.0"
description: "Rancher External DNS service powered by Infoblox"
minimum_rancher_version: v1.6.0
questions:
- variable: "INFOBLOX_URL"
label: "Infoblox url"
description: "Infoblox url for your Infoblox service"
type: "string"
required: true
- variable: "INFOBLOX_USER_NAME"
label: "Infoblox user name"
description: "Infoblox user name for your Infoblox service"
type: "string"
required: true
- variable: "INFOBLOX_PASSWORD"
label: "Infoblox password"
description: "Infoblox password for your Infoblox service"
type: "password"
required: true
- variable: "SSL_VERIFY"
label: "Ssl verify"
description: "Infoblox Ssl verify for your Infoblox service"
type: "boolean"
required: true
- variable: "USE_COOKIES"
label: "Use cookies"
description: "Uses cookies if specified, re-creating the request and falling back to basic auth if a cookie is not present"
type: "boolean"
required: true
- variable: "ROOT_DOMAIN"
label: "Domain"
description: "The DNS zone name (root domain) managed by Infoblox. DNS entries will be created for <service>.<stack>.<environment>.<domain>"
type: "string"
required: true
- variable: "TTL"
label: "TTL"
description: "The resource record cache time to live (TTL), in seconds"
type: "int"
default: 600
min: 1
max: 86400
required: false
- variable: "NAME_TEMPLATE"
label: "DNS Name Template"
description: |
Name template used to construct the subdomain part (left of the domain) of the DNS record names.
Supported placeholders: %{{service_name}}, %{{stack_name}}, %{{environment_name}}.
By default DNS entries will be named '<service>.<stack>.<environment>.<domain>'.
type: "string"
default: "%{{service_name}}.%{{stack_name}}.%{{environment_name}}"
required: false
infoblox:
health_check:
port: 1000
interval: 5000
unhealthy_threshold: 3
request_line: GET / HTTP/1.0
healthy_threshold: 2
response_timeout: 2000

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -0,0 +1,3 @@
.catalog:
name: "profitbricks"
version: "v1.3.3"

View File

@ -0,0 +1 @@
https://profitbricks.github.io/ui-driver-profitbricks/docs/1.2.0/component.js

View File

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

32
templates/avi/1/README.md Normal file
View File

@ -0,0 +1,32 @@
Avi Vantage Platform Load Balancer Provider
========
## About Avi Vantage Platform
The [Avi Vantage Platform](https://avinetworks.com/software-load-balancer-for-any-cloud/) is built on software-defined architectural principles to create a centrally managed pool of distributed load balancers to deliver application services close to the applications.
## About this provider
This provider load balances Rancher services using Avi Vantage Platform Load Balancer. It uses REST API to update the Avi controller which enables the Avi Service Engines to load balance the Rancher Services.
## Usage
1. Deploy the stack for this provider from Rancher Community Catalog.
While deploying, you need to give the username, password (optional,
read below), Avi Controller IP address, Avi Controller Port, the
Cloud name where Virtual Services and Pools are created.
2. Create Virtual Services using Avi Controller console. Make sure you
create VS in given cloud in Avi. Leave the Virtual Service pool as
empty. Configure any policies or rules for Virtual Service.
3. Create services in Rancher with public host port mapping and adding
label `io.rancher.service.external_lb.endpoint` with value as Virtual
Service name created in previous step. You can scale out/in the
service or stop the service and the changes will get reflected on Avi
Controller and Service Engine.
### Using Rancher Secrets for Avi Password
Optionally, you can use the Rancher Secrets to pass the Avi controller
password instead of using environment variable.
1. Run the Rancher Secrets service before deploying this provider stack.
2. Create a secret named "avi-creds".
3. While deploying the Avi provider stack, use the "avi-creds" secret
for Avi Provider service.

View File

@ -0,0 +1,16 @@
avi:
image: rancher/external-lb:v0.3.4
command: -provider=Avi
expose:
- 1000
environment:
AVI_USER: ${AVI_USER}
AVI_PASSWORD: ${AVI_PASSWORD}
AVI_CONTROLLER_ADDR: ${AVI_CONTROLLER_ADDR}
AVI_CONTROLLER_PORT: ${AVI_CONTROLLER_PORT}
AVI_SSL_VERIFY: ${AVI_SSL_VERIFY}
AVI_CLOUD_NAME: ${AVI_CLOUD_NAME}
LB_TARGET_RANCHER_SUFFIX: ${LB_TARGET_RANCHER_SUFFIX}
labels:
io.rancher.container.create_agent: "true"
io.rancher.container.agent.role: "external-lb"

View File

@ -0,0 +1,52 @@
.catalog:
name: Avi Vantange Platform Load Balancer
version: "v0.3.4-rancher1"
description: "External LB service powered by Avi Vantage Platform"
minimum_rancher_version: v1.1.0
questions:
- variable: "AVI_USER"
label: "Avi account username"
description: "User name for your account on Avi Controller"
type: "string"
required: true
- variable: "AVI_PASSWORD"
label: "Avi user account password"
description: "Password for your account on Avi Controller"
type: "string"
required: false
- variable: "AVI_CONTROLLER_ADDR"
label: "Avi Controller IP Address"
description: "IP Address of the Avi Controller"
type: "string"
required: true
- variable: "AVI_CONTROLLER_PORT"
label: "Avi Controller Port (Optional)"
description: "Port on which Avi Controller is listening for API requests"
type: "string"
required: false
- variable: "AVI_CLOUD_NAME"
label: "Avi Cloud Name (Optional)"
description: "Name of Avi Cloud in which Virtual Services are created"
required: false
type: "string"
- variable: "AVI_SSL_VERIFY"
label: "Avi SSL Verify (Optional)"
description: "SSL certificate validation while connecting to Avi Controller"
required: false
type: "boolean"
default: false
- variable: "LB_TARGET_RANCHER_SUFFIX"
label: "Avi pool name suffix"
description: "Pool names in Avi created/updated by Rancher will have this suffix"
type: "string"
required: true
default: rancher.internal
avi:
health_check:
port: 1000
interval: 5000
unhealthy_threshold: 2
request_line: GET / HTTP/1.0
healthy_threshold: 2
response_timeout: 2000

29
templates/avi/2/README.md Normal file
View File

@ -0,0 +1,29 @@
Avi Vantage Platform Load Balancer Provider
========
## About Avi Vantage Platform
The [Avi Vantage Platform](https://avinetworks.com/software-load-balancer-for-any-cloud/) is built on software-defined architectural principles to create a centrally managed pool of distributed load balancers to deliver application services close to the applications.
## About this provider
This provider load balances Rancher services using Avi Vantage Platform Load Balancer. It uses REST API to update the Avi controller which enables the Avi Service Engines to load balance the Rancher Services.
## Usage
1. Deploy the stack for this provider from Rancher Community Catalog.
While deploying, you need to give the username, password,
Avi Controller IP address, Avi Controller Port, the Cloud name
where Virtual Services and Pools are created.
2. Create services in Rancher with public host port mapping and corresponding
Virtual services are created in Avi. All CRUD operations on services get
reflected in Avi Controller and Service Engine.
3. You can scale out/in the service and the changes will get reflected on
Avi Controller and Service Engine.
### Using Rancher Secrets for Avi Password
Optionally, you can use the Rancher Secrets to pass the Avi controller
password instead of using environment variable.
1. Run the Rancher Secrets service before deploying this provider stack.
2. Create a secret named "avi-creds".
3. While deploying the Avi provider stack, use the "avi-creds" secret
for Avi Provider service.

View File

@ -0,0 +1,13 @@
avi:
image: avinetworks/avi-rancher-controller:2017-12-01T194110.475015629Z
expose:
- 1000
environment:
AVI_USER: ${AVI_USER}
AVI_PASSWORD: ${AVI_PASSWORD}
AVI_CONTROLLER_ADDR: ${AVI_CONTROLLER_ADDR}
AVI_CONTROLLER_PORT: ${AVI_CONTROLLER_PORT}
AVI_SSL_VERIFY: ${AVI_SSL_VERIFY}
AVI_CLOUD_NAME: ${AVI_CLOUD_NAME}
AVI_DNS_SUBDOMAIN: ${AVI_DNS_SUBDOMAIN}
AVI_TENANT: ${AVI_TENANT}

View File

@ -0,0 +1,57 @@
.catalog:
name: Avi Vantange Platform Load Balancer
version: "v1-Avi"
description: "External LB service powered by Avi Vantage Platform"
minimum_rancher_version: v1.1.0
questions:
- variable: "AVI_USER"
label: "Avi account username"
description: "User name for your account on Avi Controller"
type: "string"
required: true
- variable: "AVI_PASSWORD"
label: "Avi user account password"
description: "Password for your account on Avi Controller"
type: "password"
required: false
- variable: "AVI_CONTROLLER_ADDR"
label: "Avi Controller IP Address"
description: "IP Address of the Avi Controller"
type: "string"
required: true
- variable: "AVI_CONTROLLER_PORT"
label: "Avi Controller Port (Optional)"
description: "Port on which Avi Controller is listening for API requests"
type: "string"
required: false
- variable: "AVI_CLOUD_NAME"
label: "Avi Cloud Name (Optional)"
description: "Name of Avi Cloud in which Virtual Services are created"
required: false
type: "string"
- variable: "AVI_SSL_VERIFY"
label: "Avi SSL Verify (Optional)"
description: "SSL certificate validation while connecting to Avi Controller"
required: false
type: "boolean"
default: false
- variable: "AVI_DNS_SUBDOMAIN"
label: "Avi VS subdomain"
description: "Avi Virtual services are created with the subdomain config"
type: "string"
required: false
- variable: "AVI_TENANT"
label: "Avi tenant name"
description: "Avi Virtual service created in tenant"
type: "string"
required: false
default: admin
avi:
health_check:
port: 1000
interval: 5000
unhealthy_threshold: 2
request_line: GET / HTTP/1.0
healthy_threshold: 2
response_timeout: 2000

View File

@ -1,5 +1,5 @@
name: Avi Vantage Platform
description: |
External LB service powered by Avi Vantage Platform
version: v0.3.2-rancher1
version: v1-Avi
category: Load Balancing

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,23 @@
# Datadog agent
This template deploys a [Datadog](https://www.datadoghq.com/) agent stack consisting of the official [docker-dd-agent](https://www.github.com/Datadog/docker-dd-agent) image and a configuration sidekick that provides closer integration with Rancher:
* Hosts in Datadog are named correctly
* Host labels can be exported as Datadog host tags
* Service labels can be exported as Datadog metric tags
## Service Discovery
Please refer to the Datadog documentation [here](http://docs.datadoghq.com/guides/servicediscovery/) to learn how to provide configuration templates for Service Discovery in etcd or Consul.
## Changelog
**1.1.1-11.0.5140**
* Datadog image updated to v5.1.40 which includes the following Rancher specific changes:
* Service Discovery: Add ability to get docker IP address from Rancher labels for Rancher
* Docker: Fix cgroup parsing on RancherOS
* Switched to use the Alpine based agent image
* Added template configuration of Proxy settings
* Added template configuration to disable DogStatsD
* Added template configuration to overwrite DD intake URL

View File

@ -0,0 +1,47 @@
datadog-init:
image: janeczku/datadog-rancher-init:v2.2.5
net: none
command: /bin/true
volumes:
- /opt/rancher
labels:
io.rancher.container.start_once: "true"
io.rancher.container.pull_image: always
datadog-agent:
image: datadog/docker-dd-agent:11.0.5140
command: supervisord -n -c /etc/dd-agent/supervisor.conf
entrypoint: /opt/rancher/entrypoint-wrapper.py
restart: always
environment:
# Evaluated by datadog-agent image
API_KEY: ${api_key}
EC2_TAGS: ${dd_ec2_tags}
DD_LOG_LEVEL: ${dd_log_level}
USE_DOGSTATSD: ${dd_dogstatsd_enabled}
STATSD_METRIC_NAMESPACE: ${statsd_namespace}
DD_URL: ${custom_dd_url}
PROXY_HOST: ${proxy_host}
PROXY_PORT: ${proxy_port}
DD_APM_ENABLED: ${dd_apm_enabled}
# Evaluated by datadog-init script
DD_HOST_LABELS: ${host_labels}
DD_HOST_TAGS: ${host_tags}
DD_CONTAINER_LABELS: ${service_labels}
DD_SERVICE_DISCOVERY: ${service_discovery}
DD_SD_CONFIG_BACKEND: ${sd_config_backend}
DD_SD_BACKEND_HOST: ${sd_backend_host}
DD_SD_BACKEND_PORT: ${sd_backend_port}
DD_SD_TEMPLATE_DIR: ${sd_template_dir}
DD_CONSUL_TOKEN: ${dd_consul_token}
DD_CONSUL_SCHEME: ${dd_consul_scheme}
DD_CONSUL_VERIFY: ${dd_consul_verify}
DD_METADATA_HOSTNAME: rancher-metadata
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /proc/:/host/proc/:ro
- ${cgroups_location}:/host/sys/fs/cgroup:ro
volumes_from:
- datadog-init
labels:
io.rancher.scheduler.global: "${global_service}"
io.rancher.sidekicks: "datadog-init"

View File

@ -0,0 +1,168 @@
.catalog:
name: "Datadog"
version: "1.1.1-11.0.5140"
description: "Real-time performance tracking and visualization of your container-based application deployment"
minimum_rancher_version: v1.2.0
questions:
- variable: "api_key"
label: "Datadog API Key"
description: |
Enter your Datadog API key.
required: true
type: "string"
- variable: "global_service"
label: "Global Service"
description: |
Enable this option to run a Datadog agent container on every host in the environment.
required: true
type: "boolean"
default: true
- variable: "host_labels"
label: "Export Host Labels as Tags"
description: |
Comma delimited list of host labels to export as Datadog host tags, e.g. 'region,zone'.
required: false
type: "string"
- variable: "service_labels"
label: "Export Service Labels as Tags"
description: |
Comma delimited list of service labels to export as Datadog metric tags.
'io.rancher.stack.name' and 'io.rancher.stack_service.name' are exported by default.
required: false
type: "string"
- variable: "host_tags"
label: "Global Host Tags"
description: |
Comma delimited list of host tags to apply to metrics, e.g. 'simple-tag-0,tag-key-1:tag-value-1'.
required: false
type: "string"
- variable: "dd_ec2_tags"
label: "Collect AWS EC2 Tags"
description: |
Collect AWS EC2 custom tags as agent tags (requires an IAM role associated with the instance).
required: true
type: "boolean"
default: false
- variable: cgroups_location
label: Cgroup directory location
description: |
Set this to '/cgroups/' if your hosts are running Amazon Linux AMIs.
required: true
type: enum
default: '/sys/fs/cgroup/'
options:
- '/sys/fs/cgroup/'
- '/cgroups/'
- variable: "dd_apm_enabled"
label: "Enable APM agent"
description: |
Enable the Datadog trace-agent along with the infrastructure agent, allowing the container to accept traces on 8126/tcp.
This will run the agent from the Debian based Datadog image instead of the Alpine based one.
required: true
type: "boolean"
default: false
- variable: "service_discovery"
label: "Enable Service Discovery"
description: |
Collect metrics from supported applications running in Docker containers.
required: true
type: "boolean"
default: false
- variable: "sd_config_backend"
label: Service Discovery Configuration Backend
description: |
Choose a key/value store to use for looking up application configuration templates.
If none is provided only auto config templates will be used.
required: true
type: enum
default: none
options:
- none
- etcd
- consul
- variable: "sd_backend_host"
label: "Configuration Backend Host"
description: |
IP address or DNS name to use to connect to the configuration backend.
required: false
type: "string"
- variable: "sd_backend_port"
label: "Configuration Backend Port"
description: |
Port to use to connect to the configuration backend.
required: false
type: "int"
- variable: "sd_template_dir"
label: "Configuration Backend Template Path"
description: |
Specify a custom path where the agent should look for configuration templates in the backend.
The default is '/datadog/check_configs'.
required: false
type: "string"
- variable: "dd_consul_scheme"
label: "Consul Connection Scheme"
description: |
Scheme to use for requests to a Consul backend.
required: false
type: enum
default: http
options:
- http
- https
- variable: "dd_consul_verify"
label: "Verify Consul SSL Certificate"
description: |
Whether to verify the SSL certificate for HTTPS requests to a Consul backend.
required: false
type: "boolean"
default: true
- variable: "dd_consul_token"
label: "Consul ACL Token"
description: |
If the Consul backend uses ACL, specify a token granting read access to the configuration templates.
required: false
type: "string"
- variable: "dd_dogstatsd_enabled"
label: "Enable DogStatsD"
description: |
Enable a DogStatsD instance to run along with the infrastructure agent.
required: true
type: "boolean"
default: true
- variable: "statsd_namespace"
label: "StatsD Metric Namespace"
description: |
Optional namespace for aggregated StatsD metrics.
required: false
type: "string"
- variable: "custom_dd_url"
label: "Custom Datadog Intake URL"
description: |
Set a custom Intake URL to send Agent data to.
required: false
type: "string"
- variable: "dd_log_level"
label: "Agent log level"
description: |
Set the logging verbosity of the Datadog agent.
required: false
type: enum
default: INFO
options:
- CRITICAL
- ERROR
- WARNING
- INFO
- DEBUG
- variable: "proxy_host"
label: "Proxy Host"
description: |
Use a proxy to send Agent data to the Datadog servers.
required: false
type: "string"
- variable: "proxy_port"
label: "Proxy Port"
description: |
Use a proxy to send Agent data to the Datadog servers.
required: false
type: "string"

View File

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

View File

@ -62,7 +62,7 @@ services:
{{- end}}
{{- if eq .Values.drone_driver "GitLab"}}
DRONE_GITLAB: true
DRONE_GITLAB_CLIENT: ${drone_driver_secret}
DRONE_GITLAB_CLIENT: ${drone_driver_client}
DRONE_GITLAB_SECRET: ${drone_driver_secret}
DRONE_GITLAB_URL: ${drone_driver_url}
{{- end}}

View File

@ -0,0 +1,19 @@
# Drone
### Info:
This template creates an instance of Drone CI server 0.8.1 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,116 @@
version: '2'
services:
agent:
image: drone/agent:${drone_version}
environment:
DRONE_SERVER: ${drone_server}
DRONE_SECRET: ${drone_secret}
{{- if (.Values.http_proxy)}}
HTTP_PROXY: ${http_proxy}
http_proxy: ${http_proxy}
{{- end}}
{{- if (.Values.https_proxy)}}
HTTPS_PROXY: ${https_proxy}
https_proxy: ${https_proxy}
{{- end}}
{{- if (.Values.no_proxy)}}
NO_PROXY: ${no_proxy}
no_proxy: ${no_proxy}
{{- end}}
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:${drone_version}
environment:
DRONE_HOST: ${drone_host}
GIN_MODE: ${gin_mode}
{{- if (.Values.drone_debug)}}
DRONE_DEBUG: '${drone_debug}'
{{- end}}
DRONE_SECRET: ${drone_secret}
DRONE_OPEN: ${drone_open}
{{- if (.Values.drone_admin)}}
DRONE_ADMIN: ${drone_admin}
{{- 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 Cloud"}}
DRONE_BITBUCKET: true
DRONE_BITBUCKET_CLIENT: ${drone_driver_client}
DRONE_BITBUCKET_SECRET: ${drone_driver_secret}
{{- end}}
{{- if eq .Values.drone_driver "Bitbucket Server"}}
DRONE_STASH: true
DRONE_STASH_GIT_USERNAME: ${drone_driver_user}
DRONE_STASH_GIT_PASSWORD: ${drone_driver_password}
DRONE_STASH_CONSUMER_KEY: ${drone_driver_client}
DRONE_STASH_CONSUMER_RSA_STRING: ${drone_driver_secret}
DRONE_STASH_URL: ${drone_driver_url}
{{- 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}}
{{- if (.Values.http_proxy)}}
HTTP_PROXY: ${http_proxy}
http_proxy: ${http_proxy}
{{- end}}
{{- if (.Values.https_proxy)}}
HTTPS_PROXY: ${https_proxy}
https_proxy: ${https_proxy}
{{- end}}
{{- if (.Values.no_proxy)}}
NO_PROXY: ${no_proxy}
no_proxy: ${no_proxy}
{{- 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/lb-service-haproxy:v0.6.4
ports:
- ${host_port}:${host_port}
labels:
io.rancher.scheduler.global: 'true'
io.rancher.scheduler.affinity:host_label_soft: ${drone_lb_host_label}

View File

@ -0,0 +1,188 @@
version: 2
catalog:
name: Drone
version: 0.8.1-rancher1
upgrade_from: 0.8.0-rc.1-rancher1
description: |
Drone CI Server ref http://readme.drone.io/admin/installation-guide/
questions:
- variable: drone_host
label: Drone Host URL
description: Intended URL Drone will be hosted on, e.g. http://drone.mycompany.com.
required: true
type: string
- variable: host_port
label: Drone Server Host Port
description: Public 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 Secret
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 comma 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
- GitLab
- Gogs
- Bitbucket Cloud
- Bitbucket Server
- variable: drone_driver_client
label: Remote Driver Client
description: "Client key from remote driver. Required for GitHub, Bitbucket Cloud, Bitbucket Server and GitLab."
type: string
required: false
- variable: drone_driver_secret
label: Remote Driver Secret
description: "Secret key from remote driver. Required for GitHub, Bitbucket Cloud, Bitbucket Server and GitLab."
type: multiline
required: false
- variable: drone_driver_url
label: Remote Driver URL
description: "Remote Driver server url. Required for GitLab, Gogs and Bitbucket Server; see http://readme.drone.io/admin."
type: string
required: false
- variable: drone_driver_user
label: Remote Driver Username
description: "Remote Driver username. Required for BitBucket Server; see http://docs.drone.io/install-for-bitbucket-server/."
type: string
required: false
- variable: drone_driver_password
label: Remote Driver Password
description: "Remote Driver password. Required for BitBucket Server, http://docs.drone.io/install-for-bitbucket-server/."
type: password
required: false
- variable: drone_server
label: Drone Server
description: "Drone sever identifier. Used by the agent to connect to the server (does not require change)."
type: string
default: "drone:9000"
- variable: drone_version
label: Drone Version
description: "Drone version/Docker tag used for the Drone container images."
type: enum
default: "0.8.1"
options:
- 0.8.1
- 0.8.0
- '0.8'
- latest
- 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
- variable: "http_proxy"
type: string
label: HTTP Proxy
description: "Optional: HTTP forward proxy URL."
required: false
- variable: "https_proxy"
type: string
label: HTTPS Proxy
description: "Optional: HTTPS forward proxy URL."
required: false
- variable: "no_proxy"
type: string
label: No Proxy
description: "Optional: No proxy hosts (comma-separated hostnames/IPs)."
required: false
default: "drone"
- variable: "drone_debug"
label: Drone Debug
description: "Enable debug output with the Drone server."
type: enum
options:
- 'true'
- 'false'
default: 'false'
- variable: drone_lb_host_label
label: Drone LB Host Label
description: Host label (soft affinity) for scheduling of the load balancer service.
required: true
default: "drone_lb=true"
type: string
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:
start_on_create: true
lb_config:
certs: []
port_rules:
- priority: 1
protocol: http
service: server
source_port: ${host_port}
target_port: 8000
health_check:
healthy_threshold: 2
response_timeout: 2000
port: 42
unhealthy_threshold: 3
interval: 2000
strategy: recreate

View File

@ -0,0 +1,19 @@
# Drone
### Info:
This template creates an instance of Drone CI server 0.8.2 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,116 @@
version: '2'
services:
agent:
image: drone/agent:${drone_version}
environment:
DRONE_SERVER: ${drone_server}
DRONE_SECRET: ${drone_secret}
{{- if (.Values.http_proxy)}}
HTTP_PROXY: ${http_proxy}
http_proxy: ${http_proxy}
{{- end}}
{{- if (.Values.https_proxy)}}
HTTPS_PROXY: ${https_proxy}
https_proxy: ${https_proxy}
{{- end}}
{{- if (.Values.no_proxy)}}
NO_PROXY: ${no_proxy}
no_proxy: ${no_proxy}
{{- end}}
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:${drone_version}
environment:
DRONE_HOST: ${drone_host}
GIN_MODE: ${gin_mode}
{{- if (.Values.drone_debug)}}
DRONE_DEBUG: '${drone_debug}'
{{- end}}
DRONE_SECRET: ${drone_secret}
DRONE_OPEN: ${drone_open}
{{- if (.Values.drone_admin)}}
DRONE_ADMIN: ${drone_admin}
{{- 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 Cloud"}}
DRONE_BITBUCKET: true
DRONE_BITBUCKET_CLIENT: ${drone_driver_client}
DRONE_BITBUCKET_SECRET: ${drone_driver_secret}
{{- end}}
{{- if eq .Values.drone_driver "Bitbucket Server"}}
DRONE_STASH: true
DRONE_STASH_GIT_USERNAME: ${drone_driver_user}
DRONE_STASH_GIT_PASSWORD: ${drone_driver_password}
DRONE_STASH_CONSUMER_KEY: ${drone_driver_client}
DRONE_STASH_CONSUMER_RSA_STRING: ${drone_driver_secret}
DRONE_STASH_URL: ${drone_driver_url}
{{- 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}}
{{- if (.Values.http_proxy)}}
HTTP_PROXY: ${http_proxy}
http_proxy: ${http_proxy}
{{- end}}
{{- if (.Values.https_proxy)}}
HTTPS_PROXY: ${https_proxy}
https_proxy: ${https_proxy}
{{- end}}
{{- if (.Values.no_proxy)}}
NO_PROXY: ${no_proxy}
no_proxy: ${no_proxy}
{{- 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/lb-service-haproxy:v0.7.15
ports:
- ${host_port}:${host_port}
labels:
io.rancher.scheduler.global: 'true'
io.rancher.scheduler.affinity:host_label_soft: ${drone_lb_host_label}

View File

@ -0,0 +1,189 @@
version: 2
catalog:
name: Drone
version: 0.8.2-rancher1
upgrade_from: 0.8.2-rc.1-rancher1
description: |
Drone CI Server ref http://readme.drone.io/admin/installation-guide/
questions:
- variable: drone_host
label: Drone Host URL
description: Intended URL Drone will be hosted on, e.g. http://drone.mycompany.com.
required: true
type: string
- variable: host_port
label: Drone Server Host Port
description: Public 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 Secret
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 comma 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
- GitLab
- Gogs
- Bitbucket Cloud
- Bitbucket Server
- variable: drone_driver_client
label: Remote Driver Client
description: "Client key from remote driver. Required for GitHub, Bitbucket Cloud, Bitbucket Server and GitLab."
type: string
required: false
- variable: drone_driver_secret
label: Remote Driver Secret
description: "Secret key from remote driver. Required for GitHub, Bitbucket Cloud, Bitbucket Server and GitLab."
type: multiline
required: false
- variable: drone_driver_url
label: Remote Driver URL
description: "Remote Driver server url. Required for GitLab, Gogs and Bitbucket Server; see http://readme.drone.io/admin."
type: string
required: false
- variable: drone_driver_user
label: Remote Driver Username
description: "Remote Driver username. Required for BitBucket Server; see http://docs.drone.io/install-for-bitbucket-server/."
type: string
required: false
- variable: drone_driver_password
label: Remote Driver Password
description: "Remote Driver password. Required for BitBucket Server, http://docs.drone.io/install-for-bitbucket-server/."
type: password
required: false
- variable: drone_server
label: Drone Server
description: "Drone sever identifier. Used by the agent to connect to the server (does not require change)."
type: string
default: "drone:9000"
- variable: drone_version
label: Drone Version
description: "Drone version/Docker tag used for the Drone container images."
type: enum
default: "0.8.2"
options:
- 0.8.2
- 0.8.1
- 0.8.0
- '0.8'
- latest
- 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
- variable: "http_proxy"
type: string
label: HTTP Proxy
description: "Optional: HTTP forward proxy URL."
required: false
- variable: "https_proxy"
type: string
label: HTTPS Proxy
description: "Optional: HTTPS forward proxy URL."
required: false
- variable: "no_proxy"
type: string
label: No Proxy
description: "Optional: No proxy hosts (comma-separated hostnames/IPs)."
required: false
default: "drone"
- variable: "drone_debug"
label: Drone Debug
description: "Enable debug output with the Drone server."
type: enum
options:
- 'true'
- 'false'
default: 'false'
- variable: drone_lb_host_label
label: Drone LB Host Label
description: Host label (soft affinity) for scheduling of the load balancer service.
required: true
default: "drone_lb=true"
type: string
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:
start_on_create: true
lb_config:
certs: []
port_rules:
- priority: 1
protocol: http
service: server
source_port: ${host_port}
target_port: 8000
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.8.0-rc.1-rancher1
version: 0.8.2-rancher1
category: Continuous Integration

View File

@ -4,10 +4,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.0
environment:
- "cluster.name=${cluster_name}"
@ -38,9 +35,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.0
environment:
- "cluster.name=${cluster_name}"
@ -71,10 +66,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.0
environment:
- "cluster.name=${cluster_name}"

View File

@ -4,10 +4,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.2
environment:
- "cluster.name=${cluster_name}"
@ -37,10 +34,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.2
environment:
- "cluster.name=${cluster_name}"
@ -71,10 +65,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.2
environment:
- "cluster.name=${cluster_name}"

View File

@ -4,10 +4,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.2
environment:
- "cluster.name=${cluster_name}"
@ -37,10 +34,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.2
environment:
- "cluster.name=${cluster_name}"
@ -71,10 +65,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.2
environment:
- "cluster.name=${cluster_name}"

View File

@ -4,10 +4,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.5.1
environment:
- "cluster.name=${cluster_name}"
@ -37,10 +34,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.5.1
environment:
- "cluster.name=${cluster_name}"
@ -71,10 +65,7 @@ services:
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: es-storage
{{- if eq .Values.UPDATE_SYSCTL "true" -}}
,es-sysctl
{{- end}}
io.rancher.sidekicks: es-storage{{- if eq .Values.UPDATE_SYSCTL "true" -}},es-sysctl{{- end}}
image: docker.elastic.co/elasticsearch/elasticsearch:5.5.1
environment:
- "cluster.name=${cluster_name}"

View File

@ -0,0 +1,20 @@
# Gitea - Git with a cup of tea
> A painless self-hosted Git service.
Gitea is a community managed fork of Gogs, lightweight code hosting solution written in Go and published under the MIT license.
## Installation
Note the mysql-root password from below, you will need it during installation.
When launching Gitea for the first time, you will greeted with an installer. You'll need to change two things:
* The database settings:
* Username: `root`
* Password: the previously mentioned password
* Database: `gitea`
* Database Host: `db:3306`
* Change the domain name to the one you use to access Gitea
* Change the public ssh port to the one you defined earlier if you want to enable ssh
* Change the public URL to the one you defined previously, this is needed to access Gitea's web UI.

View File

@ -0,0 +1,34 @@
version: '2'
services:
gitea:
image: gitea/gitea:1.3.0
volumes:
- gitea-data:/data
{{- if ne .Values.db_link ""}}
external_links:
- ${db_link}:db
{{- else}}
links:
- db:db
db:
image: mariadb:10
environment:
MYSQL_ROOT_PASSWORD: ${mysql_password}
MYSQL_DATABASE: 'gitea'
volumes:
- gitea-db:/var/lib/mysql
{{- end}}
lb:
image: rancher/lb-service-haproxy:v0.7.9
ports:
- ${http_port}:${http_port}/tcp
- ${ssh_port}:${ssh_port}/tcp
volumes:
gitea-data:
driver: ${volume_driver}
{{- if eq .Values.db_link ""}}
gitea-db:
driver: ${volume_driver}
{{- end}}

View File

@ -0,0 +1,82 @@
version: '2'
catalog:
name: "Gitea"
version: "v1.3"
description: "A painless self-hosted Git service."
uuid: gitea-0
minimum_rancher_version: v0.56.0
maintainer: "Konrad Langenberg <k@knt.li>"
questions:
- variable: http_port
description: "Public HTTP port to access Gitea's webui."
label: "HTTP Port"
required: true
default: "3000"
type: "int"
- variable: ssh_port
description: "Public ssh port to clone repositories via ssh."
label: "SSH Port"
required: true
default: "2222"
type: "int"
- variable: "volume_driver"
description: "Volume driver to associate with this service."
label: "Volume Driver"
required: true
default: "local"
type: enum
options: # List of options if using type of `enum`
- local
- rancher-nfs
- rancher-efs
- rancher-ebs
- variable: "db_link"
description: "External DB service to use with gitea instead of its own DB-Container."
label: "External DB service"
default: ""
required: false
type: "service"
- variable: mysql_password
description: "MySQL root password to use for Gitea."
label: "MySQL Password"
required: true
default: "default_pass"
type: "password"
services:
gitea:
scale: 1
retain_ip: true
health_check:
response_timeout: 2000
healthy_threshold: 2
port: 3000
unhealthy_threshold: 3
initializing_timeout: 300000
interval: 2000
strategy: recreate
request_line: GET "/" "HTTP/1.0"
reinitializing_timeout: 120000
lb:
scale: 1
start_on_create: true
lb_config:
certs: []
port_rules:
- priority: 1
protocol: http
service: gitea
source_port: ${http_port}
target_port: 3000
- priority: 2
protocol: tcp
service: gitea
source_port: ${ssh_port}
target_port: 22
health_check:
response_timeout: 2000
healthy_threshold: 2
port: 42
unhealthy_threshold: 3
initializing_timeout: 60000
interval: 2000
reinitializing_timeout: 60000

View File

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="512"
height="512"
viewBox="0 0 135.46667 135.46667"
version="1.1"
id="svg8"
sodipodi:docname="logo.svg"
inkscape:version="0.92.1 r15371"
inkscape:export-filename=""
inkscape:export-xdpi="48.000004"
inkscape:export-ydpi="48.000004">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="0.70710678"
inkscape:cx="418.13805"
inkscape:cy="177.57445"
inkscape:document-units="mm"
inkscape:current-layer="layer2"
showgrid="false"
units="px"
width="256px"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1137"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:pagecheckerboard="false"
inkscape:measure-start="283.373,243.952"
inkscape:measure-end="290.267,236.527">
<sodipodi:guide
position="0,0"
orientation="0,512"
id="guide3699"
inkscape:locked="false" />
<sodipodi:guide
position="135.46667,0"
orientation="-512,0"
id="guide3701"
inkscape:locked="false" />
<sodipodi:guide
position="135.46667,135.46667"
orientation="0,-512"
id="guide3703"
inkscape:locked="false" />
<sodipodi:guide
position="0,135.46667"
orientation="512,0"
id="guide3705"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-161.53334)"
style="display:inline">
<path
style="fill:#609926;fill-opacity:1;stroke:#428f29;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 27.709937,195.15095 c -9.546573,-0.0272 -22.3392732,6.79805 -21.6317552,23.90397 1.105534,26.72889 25.4565952,29.20839 35.1916502,29.42301 1.068023,5.01357 12.521798,22.30563 21.001818,23.21667 h 37.15277 c 22.27763,-1.66785 38.9607,-75.75671 26.59321,-76.03825 -46.781583,2.47691 -49.995146,2.13838 -88.599758,0 -2.495053,-0.0266 -5.972321,-0.49474 -9.707935,-0.5054 z m 2.491319,9.45886 c 1.351378,13.69267 3.555849,21.70359 8.018216,33.94345 -11.382872,-1.50473 -21.069822,-5.22443 -22.851515,-19.10984 -0.950962,-7.4112 2.390428,-15.16769 14.833299,-14.83361 z"
id="path3722"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscccccsccsc" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2"
style="display:inline">
<rect
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.24757317;stroke-opacity:1"
id="rect4599"
width="34.762054"
height="34.762054"
x="87.508659"
y="18.291576"
transform="rotate(25.914715)"
ry="5.4825778" />
<path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26644793px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 79.804947,57.359056 3.241146,1.609954 V 35.255731 h -3.262698 z"
id="path4525"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Layer 3"
style="display:inline">
<g
style="display:inline"
id="g4539">
<circle
transform="rotate(-19.796137)"
r="3.4745038"
cy="90.077766"
cx="49.064713"
id="path4606"
style="fill:#609926;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1" />
<circle
transform="rotate(-19.796137)"
r="3.4745038"
cy="102.1049"
cx="36.810425"
id="path4606-3"
style="fill:#609926;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1" />
<circle
transform="rotate(-19.796137)"
r="3.4745038"
cy="111.43928"
cx="46.484283"
id="path4606-1"
style="fill:#609926;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1" />
<rect
transform="rotate(26.024158)"
y="18.061695"
x="97.333458"
height="27.261492"
width="2.6726954"
id="rect4629-8"
style="fill:#609926;fill-opacity:1;stroke:none;stroke-width:0.27444693;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4514"
d="m 76.558096,68.116343 c 12.97589,6.395378 13.012989,4.101862 4.890858,20.907244"
style="fill:none;stroke:#609926;stroke-width:2.68000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1,5 @@
name: Gitea
description: |
A painless self-hosted Git service
version: v1.3
category: Git

View File

@ -0,0 +1,9 @@
# GitLab CE
GitLab CE is a free alternative to GitHub
Stack based on official GitLab version: latest
https://hub.docker.com/r/gitlab/gitlab-ce/

View File

@ -0,0 +1,27 @@
version: '2'
volumes:
gitlab-app-data:
driver: ${volumedriver}
gitlab-log-data:
driver: ${volumedriver}
gitlab-conf-files:
driver: ${volumedriver}
services:
gitlab-server:
ports:
- ${ssh_port}:22/tcp
- ${http_port}:80/tcp
- ${https_port}:443/tcp
labels:
io.rancher.container.hostname_override: container_name
image: gitlab/gitlab-ce:9.5.10-ce.0
volumes:
- gitlab-app-data:/var/opt/gitlab
- gitlab-log-data:/var/log/gitlab
- gitlab-conf-files:/etc/gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url '${gitlab_omnipus_prefix}${gitlab_hostname}'
registry_external_url '${gitlab_omnipus_prefix}${registry_gitlab_hostname}'
gitlab_rails['gitlab_shell_ssh_port'] = ${ssh_port}

View File

@ -0,0 +1,69 @@
.catalog:
name: Gitlab Community
version: 9.5.10-ce.0
description: |
Gitlab CE is a free GitHub alternative
minimum_rancher_version: v0.56.0
maintainer: "Alexis Ducastel <alexis@ducastel.net>"
uuid: gitlab-0
questions:
- variable: "gitlab_hostname"
description: "Gitlab hostname (without uri scheme http:// or https://)"
label: "Hostname:"
required: true
default: "git.example.com"
type: "string"
- variable: "registry_gitlab_hostname"
description: "Registry Gitlab hostname (without uri scheme http:// or https://)"
label: "Registry hostname:"
required: true
default: "registry.example.com"
type: "string"
- variable: "gitlab_omnipus_prefix"
label: "Gitlab external_url prefix:"
description: |
This is needed for the docker-compose file to set the correct external_url
default: 'http://'
required: true
type: "enum"
options:
- 'http://'
- 'https://'
- variable: "http_port"
description: "HTTP port to expose on host. Will be used to bind TCP"
label: "HTTP port:"
required: true
default: 80
type: "int"
- variable: "https_port"
description: "HTTPS port to expose on host. Will be used to bind TCP"
label: "HTTPS port:"
required: true
default: 443
type: "int"
- variable: "ssh_port"
description: "SSH port to expose on host. Will be used to bind TCP"
label: "SSH port:"
required: true
default: 22
type: "int"
- variable: "volumedriver"
description: "Choose the Volume Driver being used.(Option: local or rancher-nfs)"
label: "Volume Driver:"
required: true
default: local
type: "enum"
options:
- local
- rancher-nfs
gitlab-server:
scale: 1
retain_ip: true
health_check:
port: 80
interval: 30000
unhealthy_threshold: 3
strategy: recreate
response_timeout: 3000
healthy_threshold: 2

View File

@ -1,5 +1,5 @@
name: Gitlab Community
description: |
Gitlab CE is a free GitHub alternative
version: 9.5.1-ce.0
version: 9.5.10-ce.0
category: Versioning

View File

@ -0,0 +1,35 @@
version: '2'
services:
gogs:
image: gogs/gogs:0.11.34
volumes:
- gogs-data:/data
{{- if ne .Values.db_link ""}}
external_links:
- ${db_link}:db
{{- else}}
links:
- db:db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: ${mysql_password}
MYSQL_USER: ${mysql_user}
MYSQL_PASSWORD: ${mysql_password}
MYSQL_DATABASE: ${mysql_db}
volumes:
- gogs-db:/var/lib/mysql
{{- end}}
lb:
image: rancher/lb-service-haproxy:v0.7.9
ports:
- ${http_port}:${http_port}/tcp
- ${ssh_port}:${ssh_port}/tcp
volumes:
gogs-data:
driver: ${volume_driver}
{{- if eq .Values.db_link ""}}
gogs-db:
driver: ${volume_driver}
{{- end}}

View File

@ -0,0 +1,94 @@
version: '2'
catalog:
name: "Gogs"
version: "v0.11.34"
description: "A painless self-hosted Git service"
uuid: gogs-0
minimum_rancher_version: v0.51.0
questions:
- variable: http_port
description: "http port to access gogs webui"
label: "Http Port"
required: true
default: "8080"
type: "int"
- variable: ssh_port
description: "ssh port to access gogs cli"
label: "SSH Port"
required: true
default: "2222"
type: "int"
- variable: "volume_driver"
description: "Volume driver to associate with this service"
label: "Volume Driver"
required: true
default: "local"
type: enum
options: # List of options if using type of `enum`
- local
- rancher-nfs
- rancher-efs
- rancher-ebs
- variable: "db_link"
description: |
DB external service link cluster.
label: "External db service"
default: ""
required: false
type: "service"
- variable: mysql_db
description: "mysql db"
label: "Mysql db"
required: true
default: "gogs"
type: "string"
- variable: mysql_user
description: "mysql user"
label: "Mysql User"
required: true
default: "gogs"
type: "string"
- variable: mysql_password
description: "mysql root password"
label: "Mysql Password"
required: true
default: "default_pass"
type: "password"
services:
gogs:
scale: 1
retain_ip: true
health_check:
response_timeout: 2000
healthy_threshold: 2
port: 3000
unhealthy_threshold: 3
initializing_timeout: 300000
interval: 2000
strategy: recreate
request_line: GET "/" "HTTP/1.0"
reinitializing_timeout: 120000
lb:
scale: 1
start_on_create: true
lb_config:
certs: []
port_rules:
- priority: 1
protocol: http
service: gogs
source_port: ${http_port}
target_port: 3000
- priority: 2
protocol: tcp
service: gogs
source_port: ${ssh_port}
target_port: 22
health_check:
response_timeout: 2000
healthy_threshold: 2
port: 42
unhealthy_threshold: 3
initializing_timeout: 60000
interval: 2000
reinitializing_timeout: 60000

View File

@ -1,5 +1,5 @@
name: Gogs
description: |
A painless self-hosted Git service
version: v0.11.19
version: v0.11.34
category: Git

View File

@ -0,0 +1,20 @@
jenkins-primary:
image: "jenkins/jenkins:2.92"
ports:
- "${PORT}:8080"
labels:
io.rancher.sidekicks: jenkins-plugins,jenkins-datavolume
io.rancher.container.hostname_override: container_name
volumes_from:
- jenkins-plugins
- jenkins-datavolume
entrypoint: /usr/share/jenkins/rancher/jenkins.sh
jenkins-plugins:
image: rancher/jenkins-plugins:v0.1.1
jenkins-datavolume:
image: "busybox"
volumes:
- ${volume_work}:/var/jenkins_home
labels:
io.rancher.container.start_once: true
entrypoint: ["chown", "-R", "1000:1000", "/var/jenkins_home"]

View File

@ -0,0 +1,42 @@
.catalog:
name: Jenkins
version: 2.92-rancher1
description: |
Jenkins CI management server.
questions:
- variable: "PORT"
type: "int"
label: "Port Number"
description: "Which port should Jenkins listen on?"
default: 8080
required: true
- variable: "volume_work"
description: "Work volume to save jenkins data"
label: "Work volume:"
required: true
default: "/var/lib/docker/jenkins-ci"
type: "string"
- variable: "plugins"
type: "multiline"
label: "List of Plugins"
description: |
List of plugins in the format <plugin_name>[:<version>]
one entry per line.
default: |
credentials
git
git-client
github
github-api
github-oauth
greenballs
junit
plain-credentials
scm-api
ssh-credentials
ssh-slaves
swarm
jenkins-primary:
metadata:
plugins: |
${plugins}

View File

@ -1,5 +1,5 @@
name: Jenkins
description: |
Jenkins CI server (LTS)
version: 2.60.1-rancher1
version: 2.92-rancher1
category: Continuous Integration

View File

@ -0,0 +1,32 @@
# Apache Kafka
### Info:
This template creates, scale in and scale out a multinodes kafka broker cluster on top of Rancher. The configuration is generated with confd from Rancher metadata.
Cluster size are variable after deployment, and get reconfigured after refresh interval.
### 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_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_auto_create_topics="true" # kafka auto create topics
- kafka_replication_factor=1 # Kafka replication factor
- kafka_pub_ip= < true | false > # Advertise public ip to zookeeper.
- zk_link="kafka-zk/zk" # zookeeper stack/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,46 @@
broker:
tty: true
image: rawmind/alpine-kafka:1.0.0-2
volumes_from:
- broker-volume
- broker-conf
environment:
- JVMFLAGS=-Xmx${kafka_mem}m -Xms${kafka_mem}m
- CONFD_INTERVAL=${kafka_interval}
- ZK_SERVICE=${zk_link}
- KAFKA_DELETE_TOPICS=${kafka_delete_topics}
- KAFKA_LOG_DIRS=${kafka_log_dir}
- KAFKA_LOG_RETENTION_HOURS=${kafka_log_retention}
- KAFKA_NUM_PARTITIONS=${kafka_num_partitions}
- ADVERTISE_PUB_IP=${kafka_pub_ip}
- KAFKA_AUTO_CREATE_TOPICS=${kafka_auto_create_topics}
- KAFKA_REPLICATION_FACTOR=${kafka_replication_factor}
external_links:
- ${zk_link}:zk
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: broker-volume, broker-conf
broker-conf:
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
image: rawmind/rancher-kafka:0.11.0.0-1
volumes:
- /opt/tools
broker-volume:
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=10003
- SERVICE_GID=10003
- SERVICE_VOLUME=${kafka_log_dir}
volumes:
- ${kafka_log_dir}
volume_driver: local
image: rawmind/alpine-volume:0.0.2-1

View File

@ -0,0 +1,96 @@
.catalog:
name: Kafka
version: 1.0.0-rancher1
description: |
(Experimental) Apache Kafka cluster.
minimum_rancher_version: v0.59.0
maintainer: "Raul Sanchez <rawmind@gmail.com>"
uuid: kafka-0
questions:
- 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: "Delete topics:"
description: |
Enable delete topics in kafka.
default: false
required: true
type: enum
options:
- false
- true
- variable: "kafka_auto_create_topics"
label: "Auto create topics:"
description: |
Enable auto create topics in kafka.
default: true
required: true
type: enum
options:
- false
- true
- variable: "kafka_replication_factor"
description: "Topics replication factor"
label: "Replication factor:"
required: true
default: 1
type: "int"
- 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:"
required: false
default: false
type: "boolean"
- 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: "kafka-zk/zk"
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.11.0.0-rancher1
Kafka cluster
version: 1.0.0-rancher1
category: Clustering
maintainer: "Raul Sanchez <rawmind@gmail.com>"
minimum_rancher_version: v0.59.0

View File

@ -0,0 +1,13 @@
netdata:
image: titpetric/netdata:latest
labels:
io.rancher.scheduler.global: 'true'
uts: host
cap_add:
- SYS_PTRACE
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
NETDATA_PORT: "${NETDATA_PORT}"

View File

@ -0,0 +1,13 @@
.catalog:
name: netdata
version: v1.8.0
description: Real-time performance monitoring, done right!
questions:
- variable: NETDATA_PORT
label: Port
description: Container port to access netdata
required: true
type: int
default: 19999
netdata:
scale: 1

View File

@ -1,5 +1,5 @@
allinone:
image: neuvector/allinone:rancher1.2
image: neuvector/allinone:rancher1.3
container_name: neuvector.allinone
restart: always
privileged: true
@ -18,7 +18,7 @@ allinone:
io.rancher.scheduler.affinity:host_label: ${NV_ALLINONE_LABEL}
io.rancher.container.hostname_override: container_name
enforcer:
image: neuvector/enforcer:rancher1.2
image: neuvector/enforcer:rancher1.3
container_name: neuvector.enforcer
restart: always
privileged: true

View File

@ -1,7 +1,7 @@
.catalog:
name: "NeuVector"
version: "rancher1.2"
description: "Container Security Solution"
version: "rancher1.3"
description: "Cloud Native Container Firewall"
questions:
- variable: "NV_ALLINONE_LABEL"
label: "Allinone Host label"

View File

@ -1,6 +1,6 @@
name: NeuVector
description: |
Container Security Solution
version: rancher1.2
version: rancher1.3
category: Security
maintainer: neuvector support <support@neuvector.com>

View File

@ -0,0 +1,3 @@
This is a catalog that spins up an OpenFaaS(https://github.com/alexellis/faas) stack with Rancher as the backend. The `faas-rancher` container is the proxy that connects OpenFaas and Rancher.
`faas-rancher` is in an extremely early stage and is meant only to be used in development.

View File

@ -0,0 +1,56 @@
version: '2'
services:
lb:
image: rancher/lb-service-haproxy:v0.7.9
ports:
- 8080:8080/tcp
- 9090:9090/tcp
- 9093:9093/tcp
labels:
io.rancher.container.agent.role: environmentAdmin
io.rancher.container.create_agent: 'true'
prometheus:
image: kenfdev/prometheus:latest-cattle
environment:
no_proxy: gateway
stdin_open: true
tty: true
command:
- -config.file=/etc/prometheus/prometheus.yml
- -storage.local.path=/prometheus
- -storage.local.memory-chunks=10000
- --alertmanager.url=http://alertmanager:9093
labels:
io.rancher.container.pull_image: always
faas-rancher:
image: kenfdev/faas-rancher
environment:
FUNCTION_STACK_NAME: ${FUNCTION_STACK_NAME}
CATTLE_URL: ${CATTLE_URL}
CATTLE_ACCESS_KEY: ${CATTLE_ACCESS_KEY}
CATTLE_SECRET_KEY: ${CATTLE_SECRET_KEY}
stdin_open: true
tty: true
labels:
io.rancher.container.pull_image: always
gateway:
image: functions/gateway:0.6.2
environment:
dnsrr: 'true'
functions_provider_url: http://faas-rancher:8080/
stdin_open: true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
tty: true
labels:
io.rancher.container.pull_image: always
alertmanager:
image: functions/alertmanager:latest
environment:
no_proxy: gateway
stdin_open: true
tty: true
command:
- -config.file=/alertmanager.yml
labels:
io.rancher.container.pull_image: always

View File

@ -0,0 +1,72 @@
.catalog:
name: "OpenFaaS"
version: "v0.0.2"
description: "Enable Rancher as a backend for Functions as a Service (OpenFaaS)"
uuid: "openfaas-0"
minimum_rancher_version: v1.5.0
questions:
- variable: "CATTLE_URL"
description: "The v2-beta Rancher Server Endpoint. e.g. https://try.rancher.com/v2-beta"
label: "Rancher Server Endpoint URL"
required: true
type: "string"
- variable: "CATTLE_ACCESS_KEY"
description: "The Rancher API Access Key"
label: "API Access Key"
required: true
type: "string"
- variable: "CATTLE_SECRET_KEY"
description: "The Rancher API Secret Key"
label: "API Secret Key"
required: true
type: "string"
- variable: "FUNCTION_STACK_NAME"
description: "The stack name faas functions will be deployed to. It will automatically be created."
default: "faas-functions"
label: "Functions Stack Name"
required: true
type: "string"
version: '2'
services:
lb:
scale: 1
start_on_create: true
lb_config:
certs: []
port_rules:
- priority: 1
protocol: http
service: gateway
source_port: 8080
target_port: 8080
- priority: 2
protocol: http
service: prometheus
source_port: 9090
target_port: 9090
- priority: 3
protocol: http
service: alertmanager
source_port: 9093
target_port: 9093
health_check:
healthy_threshold: 2
response_timeout: 2000
port: 42
unhealthy_threshold: 3
initializing_timeout: 60000
interval: 2000
reinitializing_timeout: 60000
prometheus:
scale: 1
start_on_create: true
faas-rancher:
scale: 1
start_on_create: true
gateway:
scale: 1
start_on_create: true
alertmanager:
scale: 1
start_on_create: true

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,7 @@
name: OpenFaaS
description: |
Functions as a Service - a serverless framework for Docker
version: v0.0.2
category: Platform
license: MIT
projectURL: https://github.com/alexellis/faas

View File

@ -1,5 +1,6 @@
portworx:
labels:
io.rancher.container.dns: 'true'
io.rancher.container.create_agent: 'true'
io.rancher.scheduler.global: 'true'
io.rancher.container.pull_image: 'always'

View File

@ -0,0 +1,19 @@
## What is inside SonarQube Stack?
* [SonarQube Server](http://www.sonarqube.org/) + Sidekick for storing plugins
* Postgres Database + Sidekick for storing data
## Info
* In default SonarQube package will install alpine docker version and will create "sonar" postgres database, user and password.
* SonarQube service is exposed by a loadbalancer.
* Optional, you could install non alpine version. Use it if your software needs glibc.
* Optional, you could use an external postgres database link.
* Once SonarQube will start, make sure you setup correct information in setup page.
* For easy upgrades there are sidekicks for postgres data with dedicated storage.
## Installing Plugins Manually
* Go to [Plugin Library](http://docs.sonarqube.org/display/PLUG/Plugin+Library) and find your favourite plugins
* Execute `docker exec -it [sonarqube-data bash]`, go to /opt/sonarqube/extensions/plugins and put your plugins here
* Restart SonarQube container.
## First Start
* Use admin/admin to login to the SonarQube interface.

View File

@ -0,0 +1,67 @@
version: '2'
services:
sonarqube-lb:
image: rancher/lb-service-haproxy:v0.7.6
ports:
- ${http_port}:${http_port}
sonarqube-storage:
network_mode: none
labels:
io.rancher.container.hostname_override: container_name
io.rancher.container.start_once: true
environment:
- SERVICE_UID=0
- SERVICE_GID=0
- SERVICE_VOLUME=/opt/sonarqube/extensions/plugins
volumes:
- sonarqube-plugin:/opt/sonarqube/extensions/plugins
image: rawmind/alpine-volume:0.0.2-1
sonarqube:
labels:
io.rancher.container.hostname_override: container_name
io.rancher.sidekicks: sonarqube-storage
image: sonarqube:${docker_version}
environment:
SONARQUBE_WEB_JVM_OPTS: ${jvm_opts}
SONARQUBE_JDBC_USERNAME: ${postgres_user}
SONARQUBE_JDBC_PASSWORD: ${postgres_password}
SONARQUBE_JDBC_URL: jdbc:postgresql://db:${postgres_port}/${postgres_db}
volumes_from:
- sonarqube-storage
{{- if ne .Values.postgres_link ""}}
external_links:
- ${postgres_link}:db
{{- else}}
links:
- db:db
db:
labels:
io.rancher.container.hostname_override: container_name
io.rancher.sidekicks: db-storage
image: postgres:9.6.3-alpine
environment:
POSTGRES_USER: ${postgres_user}
POSTGRES_PASSWORD: ${postgres_password}
POSTGRES_DB: ${postgres_db}
volumes_from:
- db-storage
db-storage:
network_mode: none
labels:
io.rancher.container.hostname_override: container_name
io.rancher.container.start_once: true
environment:
- SERVICE_UID=0
- SERVICE_GID=0
- SERVICE_VOLUME=/var/lib/postgresql
volumes:
- db-data:/var/lib/postgresql
image: rawmind/alpine-volume:0.0.2-1
{{- end}}
volumes:
sonarqube-plugin:
driver: local
{{- if eq .Values.postgres_link ""}}
db-data:
driver: local
{{- end}}

View File

@ -0,0 +1,84 @@
version: '2'
catalog:
name: "SonarQube"
version: "v6.7"
description: "SonarQube"
uuid: sonarqube-0
minimum_rancher_version: v0.51.0
questions:
- variable: docker_version
description: "SonarQube docker version"
label: "SonarQube docker version"
required: true
default: "6.7-alpine"
type: "enum"
options:
- 6.7-alpine
- 6.7
- variable: http_port
description: "SonarQube http port"
label: "SonarQube http Port"
required: true
default: "9000"
type: "int"
- variable: jvm_opts
description: "SonarQube web jvm options"
label: "SonarQube web jvm options"
required: false
default: ""
type: "string"
- variable: postgres_port
description: "Postgres Port"
label: "Postgres Port"
required: true
default: "5432"
type: "int"
- variable: postgres_db
description: "Postgres Database Name"
label: "Postgres Database"
required: true
default: "sonar"
type: "string"
- variable: postgres_user
description: "Postgres User"
label: "Postgres User"
required: true
default: "sonar"
type: "string"
- variable: postgres_password
description: "Postgres Password"
label: "Postgres Password"
required: true
default: "sonar"
type: "password"
- variable: "postgres_link"
description: |
Optional external postgres service to use.
label: "Postgres stack/service"
default: ""
required: false
type: "service"
services:
sonarqube-lb:
scale: 1
lb_config:
port_rules:
- protocol: http
service: sonarqube
source_port: ${http_port}
target_port: 9000
health_check:
response_timeout: 2000
healthy_threshold: 2
port: 42
unhealthy_threshold: 3
sonarqube:
scale: 1
retain_ip: true
health_check:
port: 9000
interval: 5000
unhealthy_threshold: 3
request_line: 'GET / HTTP/1.0'
healthy_threshold: 2
response_timeout: 5000

View File

@ -1,5 +1,5 @@
name: SonarQube
description: |
SonarQube - an open source quality management platform.
version: v6.5
version: v6.7
category: Test Automation

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