From bda94b34b3c5c61aa5f6fd1033d685b623c4de11 Mon Sep 17 00:00:00 2001 From: Raul Sanchez Date: Sun, 31 Jan 2016 23:38:34 +0100 Subject: [PATCH] added kafka to rancher catalog Update config.yml Update config.yml Update config.yml Update config.yml Update config.yml Update fields as requested. updated kafka catalog service. Refactor confd to be compatible with rancher-metadata v2 updated kafka catalog service. Refactor confd to be compatible with rancher-metadata v2 fix config.yml minimum_rancher_version param Added zookeeper service and refactor kafka service upgrade kafka version 0.9.0 consolidate down to a single template --- README.md | 4 +- templates/kafka/0/README.md | 21 +++++++++ templates/kafka/0/docker-compose.yml | 11 +++++ templates/kafka/0/rancher-compose.yml | 44 ++++++++++++++++++ templates/kafka/catalogIcon-kafka.svg | 28 +++++++++++ templates/kafka/config.yml | 8 ++++ templates/zookeeper/0/README.md | 21 +++++++++ templates/zookeeper/0/docker-compose.yml | 8 ++++ templates/zookeeper/0/rancher-compose.yml | 36 ++++++++++++++ templates/zookeeper/catalogIcon-zookeeper.png | Bin 0 -> 43164 bytes templates/zookeeper/config.yml | 8 ++++ 11 files changed, 187 insertions(+), 2 deletions(-) create mode 100644 templates/kafka/0/README.md create mode 100644 templates/kafka/0/docker-compose.yml create mode 100644 templates/kafka/0/rancher-compose.yml create mode 100644 templates/kafka/catalogIcon-kafka.svg create mode 100644 templates/kafka/config.yml create mode 100644 templates/zookeeper/0/README.md create mode 100644 templates/zookeeper/0/docker-compose.yml create mode 100644 templates/zookeeper/0/rancher-compose.yml create mode 100644 templates/zookeeper/catalogIcon-zookeeper.png create mode 100644 templates/zookeeper/config.yml diff --git a/README.md b/README.md index 2ac5070..6742b8d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Rancher Community Catalog +# Rancher Community Catalog This catalog provides templates created by the community, and they are not maintained or supported by Rancher Labs. @@ -15,4 +15,4 @@ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and -limitations under the License. \ No newline at end of file +limitations under the License. diff --git a/templates/kafka/0/README.md b/templates/kafka/0/README.md new file mode 100644 index 0000000..92d5bfb --- /dev/null +++ b/templates/kafka/0/README.md @@ -0,0 +1,21 @@ +# Apache Kafka (Experimental) + + +### Info: + + This template creates, scale in and scale out a multinodes broker (kafka) cluster on top of Rancher. The configuration is generated with confd from Rancher metadata. + Cluster size are variable after deployment, and get reconfigured if refresh interval > 0. + + +### Usage: + + Select Apache Kafka from catalog. + + Enter the number of nodes, mem, refresh interval broker cluster and zookeeper service to connect. (set refresh data to 0 to disable dinamic config) + + Note: When you scale the cluster, zero downtime is not guaranteed..yet.. + + Click deploy. + + Kafka can now be accessed over the Rancher network. + diff --git a/templates/kafka/0/docker-compose.yml b/templates/kafka/0/docker-compose.yml new file mode 100644 index 0000000..6ab5647 --- /dev/null +++ b/templates/kafka/0/docker-compose.yml @@ -0,0 +1,11 @@ +broker: + tty: true + image: rawmind/rancher-kafka:0.9.0 + volumes: + - /opt/kafka/data + environment: + - JVMFLAGS=-Xmx${kafka_mem}m -Xms${kafka_mem}m + - CONFD_INTERVAL=${kafka_interval} + - ZK_SERVICE=${zk_link} + external_links: + - ${zk_link}:zk diff --git a/templates/kafka/0/rancher-compose.yml b/templates/kafka/0/rancher-compose.yml new file mode 100644 index 0000000..a4f937f --- /dev/null +++ b/templates/kafka/0/rancher-compose.yml @@ -0,0 +1,44 @@ +.catalog: + name: Kafka + version: 0.9.0-rancher1 + description: | + (Experimental) Apache Kafka cluster. + minimum_rancher_version: v0.56.0 + maintainer: "Raul Sanchez " + 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_interval" + description: "Interval to poll/apply configuration changes. 0 to disable" + label: "Broker Interval (s):" + required: true + default: 60 + type: "int" + - 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} + health_check: + port: 9092 + interval: 5000 + unhealthy_threshold: 3 + request_line: '' + healthy_threshold: 2 + response_timeout: 5000 diff --git a/templates/kafka/catalogIcon-kafka.svg b/templates/kafka/catalogIcon-kafka.svg new file mode 100644 index 0000000..e0056cc --- /dev/null +++ b/templates/kafka/catalogIcon-kafka.svg @@ -0,0 +1,28 @@ + + + + + + + diff --git a/templates/kafka/config.yml b/templates/kafka/config.yml new file mode 100644 index 0000000..ab7404a --- /dev/null +++ b/templates/kafka/config.yml @@ -0,0 +1,8 @@ +name: Apache Kafka +description: | + (Experimental) Kafka cluster +version: 0.8.2-rancher1 +category: clustering +maintainer: "Raul Sanchez " +minimum_rancher_version: v0.56.0 +license: diff --git a/templates/zookeeper/0/README.md b/templates/zookeeper/0/README.md new file mode 100644 index 0000000..74a313c --- /dev/null +++ b/templates/zookeeper/0/README.md @@ -0,0 +1,21 @@ +# Apache Zookeeper (Experimental) + + +### Info: + + This template creates, scale in and scale out a multinodes zk (zookeeper) cluster on top of Rancher. The configuration is generated with confd from Rancher metadata. + Cluster size are variable after deployment, and get reconfigured if refresh interval > 0. + + +### Usage: + + Select Apache Zookeeper from catalog. + + Enter the number of nodes, mem and refresh interval for the zk cluster. (set refresh data to 0 to disable dinamic config) + + Note: When you scale the cluster, zero downtime is not guaranteed..yet.. + + Click deploy. + + Zookeeper can now be accessed over the Rancher network. + diff --git a/templates/zookeeper/0/docker-compose.yml b/templates/zookeeper/0/docker-compose.yml new file mode 100644 index 0000000..fc4ae5d --- /dev/null +++ b/templates/zookeeper/0/docker-compose.yml @@ -0,0 +1,8 @@ +zk: + tty: true + image: rawmind/rancher-zk:3.4.6-1 + volumes: + - /opt/zk/data + environment: + - JVMFLAGS=-Xmx${zk_mem}m -Xms${zk_mem}m + - CONFD_INTERVAL=${zk_interval} diff --git a/templates/zookeeper/0/rancher-compose.yml b/templates/zookeeper/0/rancher-compose.yml new file mode 100644 index 0000000..1c4bcf2 --- /dev/null +++ b/templates/zookeeper/0/rancher-compose.yml @@ -0,0 +1,36 @@ +.catalog: + name: Zookeeper + version: 3.4.6-rancher1 + description: | + (Experimental) Apache Zookeeper cluster. + minimum_rancher_version: v0.56.0 + maintainer: "Raul Sanchez " + uuid: zk-0 + questions: + - variable: "zk_scale" + description: "Number of zk nodes. Note: Recommended an odd number" + label: "Zk Nodes:" + required: true + default: 3 + type: "int" + - variable: "zk_mem" + description: "Amount of memory to config zk." + label: "Zk Memory (mb):" + required: true + default: 512 + type: "string" + - variable: "zk_interval" + description: "Interval to poll/apply configuration changes. 0 to disable, reconfiguration will be done when you restart zk nodes" + label: "Zk Interval (s):" + required: true + default: 60 + type: "int" +zk: + scale: ${zk_scale} + health_check: + port: 2181 + interval: 5000 + unhealthy_threshold: 3 + request_line: '' + healthy_threshold: 2 + response_timeout: 5000 diff --git a/templates/zookeeper/catalogIcon-zookeeper.png b/templates/zookeeper/catalogIcon-zookeeper.png new file mode 100644 index 0000000000000000000000000000000000000000..df751f46ea3ac4cb99165f11cfee29d96a5f9baf GIT binary patch literal 43164 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" +minimum_rancher_version: v0.56.0 +license: