From 495d7efdc05fbee068a8eb0ba05a6827abf81203 Mon Sep 17 00:00:00 2001 From: Matthias Schneider Date: Tue, 19 Dec 2017 12:16:53 +0100 Subject: [PATCH] Added: template for NSQ cluster --- templates/nsq/0/README.md | 14 ++++++ templates/nsq/0/docker-compose.yml.tpl | 43 +++++++++++++++++ templates/nsq/0/rancher-compose.yml | 64 +++++++++++++++++++++++++ templates/nsq/catalogIcon-nsq.png | Bin 0 -> 8317 bytes templates/nsq/config.yml | 7 +++ 5 files changed, 128 insertions(+) create mode 100644 templates/nsq/0/README.md create mode 100644 templates/nsq/0/docker-compose.yml.tpl create mode 100644 templates/nsq/0/rancher-compose.yml create mode 100644 templates/nsq/catalogIcon-nsq.png create mode 100644 templates/nsq/config.yml diff --git a/templates/nsq/0/README.md b/templates/nsq/0/README.md new file mode 100644 index 0000000..3317ccb --- /dev/null +++ b/templates/nsq/0/README.md @@ -0,0 +1,14 @@ +# Nsq.io + +### Info: + +This template creates, scale in and scale out a nsqd cluster on top of Rancher. By default there are 3 static nsqlookupd provisioned. +NSQD can be reached internally by using the nsq-lb Loadbalancer or directly. + +### Usage: + +Select NSQ from catalog. + +Enter the number of nodes for your NSQD cluster. + +Click deploy. diff --git a/templates/nsq/0/docker-compose.yml.tpl b/templates/nsq/0/docker-compose.yml.tpl new file mode 100644 index 0000000..0593a20 --- /dev/null +++ b/templates/nsq/0/docker-compose.yml.tpl @@ -0,0 +1,43 @@ +nsqlookupd01: + image: nsqio/nsq + command: /nsqlookupd +nsqlookupd02: + image: nsqio/nsq + command: /nsqlookupd +nsqlookupd03: + image: nsqio/nsq + command: /nsqlookupd +nsqd: + image: nsqio/nsq + command: + - /bin/sh + - -c + - nsqd --data-path=/data --lookupd-tcp-address=nsqlookupd01:4160 --lookupd-tcp-address=nsqlookupd02:4160 --lookupd-tcp-address=nsqlookupd03:4160 -broadcast-address=$$HOSTNAME + labels: + io.rancher.scheduler.affinity:host_label_soft: nsqd=true + io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}/$${service_name} + io.rancher.sidekicks: data + io.rancher.container.hostname_override: container_name + volumes_from: + - data +nsqadmin: + image: nsqio/nsq + command: /nsqadmin --lookupd-http-address=nsqlookupd01:4161 --lookupd-http-address=nsqlookupd02:4161 --lookupd-http-address=nsqlookupd03:4161 +nsq-lb: + image: rancher/lb-service-haproxy:v0.7.9 + ports: + - 4150:4150/tcp + - 4151:4151/tcp + - 4171:4171/tcp + labels: + io.rancher.container.agent.role: environmentAdmin + io.rancher.container.create_agent: 'true' + io.rancher.scheduler.global: 'true' +data: + image: busybox + command: /bin/true + net: none + volumes: + - /data + labels: + io.rancher.container.start_once: 'true' diff --git a/templates/nsq/0/rancher-compose.yml b/templates/nsq/0/rancher-compose.yml new file mode 100644 index 0000000..a0477a9 --- /dev/null +++ b/templates/nsq/0/rancher-compose.yml @@ -0,0 +1,64 @@ +version: '2' +catalog: + name: NSQD + version: v1.0.0-compat + questions: + - variable: "NSQD_SCALE" + description: "Number of NSQD nodes." + label: "Nsqd Nodes" + required: true + default: "3" + type: "int" + - variable: "NSQADMIN_SCALE" + description: "Number of NSQ Admin nodes." + label: "Nsqadmin Nodes" + required: true + default: "3" + type: "int" +services: + nsqlookupd01: + scale: 1 + start_on_create: true + nsqlookupd02: + scale: 1 + start_on_create: true + nsqlookupd03: + scale: 1 + start_on_create: true + nsqadmin: + scale: ${NSQADMIN_SCALE} + start_on_create: true + data: + scale: ${NSQD_SCALE} + start_on_create: true + nsq-lb: + start_on_create: true + lb_config: + certs: [] + port_rules: + - priority: 1 + protocol: tcp + service: nsqd + source_port: 4150 + target_port: 4150 + - priority: 2 + protocol: http + service: nsqd + source_port: 4151 + target_port: 4151 + - priority: 3 + protocol: http + service: nsqadmin + source_port: 4171 + target_port: 4171 + health_check: + response_timeout: 2000 + healthy_threshold: 2 + port: 42 + unhealthy_threshold: 3 + initializing_timeout: 60000 + interval: 2000 + reinitializing_timeout: 60000 + nsqd: + scale: ${NSQD_SCALE} + start_on_create: true diff --git a/templates/nsq/catalogIcon-nsq.png b/templates/nsq/catalogIcon-nsq.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f50194b9b54aace4674ad82e810fc4209eab09 GIT binary patch literal 8317 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%0AE=yAF9#G z40QvN?0PsmdW6AFI5F=d0w%7*ad_p10{~56$^(qj%P2I7fURY!y=MXJNet#b@1)lr z#HAR>d?nUR3xoE@vG&xslllH7OuqT}523r+H!7a)6+1PIYHm zV|gLDC}Gz3 z8S4S3lrU?igtq;sq1`SUy-Swi2d8`_k)S8l80=U3`+h~t;w{sn@_)z<$54{abYT9W z8F4+HS;!0PV5LF{0@4Fec7OgwuXz7o`yj>b%(Ii1#}>#_bMaE!1L9*T5+$^MDR6AW zwMM~TNS}sBY{RNF-Ckpim^@}chQPE^6yQGOIpA7XnRx4FF03U_q*IWbZ&xo&OZ?wk gc??R^iK9jV=r;|%E75ho0Q5O|%;spBnOn^N11!RDK>z>% literal 0 HcmV?d00001 diff --git a/templates/nsq/config.yml b/templates/nsq/config.yml new file mode 100644 index 0000000..eb7289d --- /dev/null +++ b/templates/nsq/config.yml @@ -0,0 +1,7 @@ +name: NSQ +description: | + A realtime distributed messaging platform +version: v1.0.0-compat +category: Message queues +maintainer: "Matthias Schneider " +projectURL: https://nsq.io/