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 0000000..f458f7f Binary files /dev/null and b/templates/rabbitmq-examples/catalogIcon-rabbitmq.png differ 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