From 0498fcdd3fd83a99d9d7e904bc9f92fb6cf0c45e Mon Sep 17 00:00:00 2001 From: Josh Cox Date: Fri, 28 Jul 2017 11:53:25 -0500 Subject: [PATCH] rabbit-examples --- templates/rabbitmq-examples/0/README.md | 11 ++ .../rabbitmq-examples/0/docker-compose.yml | 171 ++++++++++++++++++ .../rabbitmq-examples/0/rancher-compose.yml | 38 ++++ .../catalogIcon-rabbitmq.png | Bin 0 -> 4090 bytes templates/rabbitmq-examples/config.yml | 7 + 5 files changed, 227 insertions(+) create mode 100644 templates/rabbitmq-examples/0/README.md create mode 100644 templates/rabbitmq-examples/0/docker-compose.yml create mode 100644 templates/rabbitmq-examples/0/rancher-compose.yml create mode 100755 templates/rabbitmq-examples/catalogIcon-rabbitmq.png create mode 100755 templates/rabbitmq-examples/config.yml diff --git a/templates/rabbitmq-examples/0/README.md b/templates/rabbitmq-examples/0/README.md new file mode 100644 index 0000000..a797d5a --- /dev/null +++ b/templates/rabbitmq-examples/0/README.md @@ -0,0 +1,11 @@ +# RabbitMQ Examples + +I needed to test a rabbitMQ with some basics so I forked the official tutorials and added a Dockerfile +[here](https://github.com/joshuacox/rabbitmq-tutorials/tree/jsdockerfile/javascript-nodejs) + +[dockerhub here](https://hub.docker.com/r/joshuacox/rabbitmq-tutorials/) + +In that fork, there is a `Makefile` that can run through the proof of +concept. `make` will start a rabbitmq container, then start all the +listeners as deamons, and the emitters to run once. The emitters are +ephemeral and will go away once their message is sent or they error out. diff --git a/templates/rabbitmq-examples/0/docker-compose.yml b/templates/rabbitmq-examples/0/docker-compose.yml new file mode 100644 index 0000000..cbe638b --- /dev/null +++ b/templates/rabbitmq-examples/0/docker-compose.yml @@ -0,0 +1,171 @@ +version: '2' +services: +{{- if eq .Values.rabbitmq_link ""}} + rabbit: + hostname: rabbit + image: rabbitmq:3 + send: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + io.rancher.container.start_once: true + environment: + - AMQ_HOST=rabbit + command: send +{{- end}} + receive: + command: receive +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + environment: + - AMQ_HOST=rabbit + send: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + io.rancher.container.start_once: true + environment: + - AMQ_HOST=rabbit + command: send +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + + worker: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + environment: + - AMQ_HOST=rabbit + command: worker +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + newtask: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + io.rancher.container.start_once: true + environment: + - AMQ_HOST=rabbit + command: new_task +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + + rpcserver: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + environment: + - AMQ_HOST=rabbit + command: rpc_server +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + rpcclient: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + io.rancher.container.start_once: true + environment: + - AMQ_HOST=rabbit + command: rpc_client 4 +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + + receivelogs: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + environment: + - AMQ_HOST=rabbit + command: receive_logs +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + emitlog: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + io.rancher.container.start_once: true + environment: + - AMQ_HOST=rabbit + command: emit_log +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + + receivelogsdirect: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + environment: + - AMQ_HOST=rabbit + command: receive_logs_direct info +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + emitlogdirect: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + io.rancher.container.start_once: true + environment: + - AMQ_HOST=rabbit + command: emit_log_direct +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + + receivelogstopic: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + environment: + - AMQ_HOST=rabbit + command: receive_logs_topic anonymous.info +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} + emitlogtopic: + image: joshuacox/rabbitmq-tutorials + labels: + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:host_label: ${host_label} + io.rancher.container.start_once: true + environment: + - AMQ_HOST=rabbit + command: emit_log_topic +{{- if ne .Values.rabbitmq_link ""}} + external_links: + - ${rabbitmq_link}:rabbit +{{- end}} diff --git a/templates/rabbitmq-examples/0/rancher-compose.yml b/templates/rabbitmq-examples/0/rancher-compose.yml new file mode 100644 index 0000000..1ad07d9 --- /dev/null +++ b/templates/rabbitmq-examples/0/rancher-compose.yml @@ -0,0 +1,38 @@ +version: '2' +catalog: + name: RabbitMQ_Examples + version: 3.6-rancher1 + description: | + tutorial storage examples + questions: + - variable: rabbitmq_link + description: "rabbitmq service link" + label: "rabbitmq stack/service" + default: "" + required: false + type: "service" +services: + receive: + scale: 1 + send: + scale: 1 + worker: + scale: 1 + newtask: + scale: 1 + rpcserver: + scale: 1 + rpcclient: + scale: 1 + receivelogs: + scale: 1 + emitlog: + scale: 1 + receivelogsdirect: + scale: 1 + emitlogdirect: + scale: 1 + receivelogstopic: + scale: 1 + emitlogtopic: + scale: 1 diff --git a/templates/rabbitmq-examples/catalogIcon-rabbitmq.png b/templates/rabbitmq-examples/catalogIcon-rabbitmq.png new file mode 100755 index 0000000000000000000000000000000000000000..f458f7f52aecea02277b92ee4e7a2bcb288d1a95 GIT binary patch literal 4090 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 literal 0 HcmV?d00001 diff --git a/templates/rabbitmq-examples/config.yml b/templates/rabbitmq-examples/config.yml new file mode 100755 index 0000000..a90ef55 --- /dev/null +++ b/templates/rabbitmq-examples/config.yml @@ -0,0 +1,7 @@ +name: RabbitMQ 3.6 Tutorial Examples +description: | + Robust messaging for applications Examples +version: 3.6-rancher1 +category: Message queues +maintainer: "Josh Cox " +minimum_rancher_version: v0.59.0