diff --git a/templates/kafka/4/README.md b/templates/kafka/4/README.md index 37ccd1b..facf1a7 100644 --- a/templates/kafka/4/README.md +++ b/templates/kafka/4/README.md @@ -23,6 +23,7 @@ - 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. +- host_label="" # Host label where to deploy kafka. - zk_link="kafka-zk/zk" # zookeeper stack/service to connect to. Click deploy. diff --git a/templates/kafka/4/docker-compose.yml b/templates/kafka/4/docker-compose.yml deleted file mode 100644 index e87f469..0000000 --- a/templates/kafka/4/docker-compose.yml +++ /dev/null @@ -1,46 +0,0 @@ -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 diff --git a/templates/kafka/4/docker-compose.yml.tpl b/templates/kafka/4/docker-compose.yml.tpl new file mode 100644 index 0000000..8f06704 --- /dev/null +++ b/templates/kafka/4/docker-compose.yml.tpl @@ -0,0 +1,63 @@ +version: '2' +services: + 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 + {{- if ne .Values.host_label ""}} + io.rancher.scheduler.affinity:host_label: ${host_label} + {{- end}} + broker-conf: + network_mode: 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 + {{- if ne .Values.host_label ""}} + io.rancher.scheduler.affinity:host_label: ${host_label} + {{- end}} + image: rawmind/rancher-kafka:0.11.0.0-1 + volumes: + - brokerconfig:/opt/tools + broker-volume: + network_mode: 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 + {{- if ne .Values.host_label ""}} + io.rancher.scheduler.affinity:host_label: ${host_label} + {{- end}} + environment: + - SERVICE_UID=10003 + - SERVICE_GID=10003 + - SERVICE_VOLUME=${kafka_log_dir} + volumes: + - brokerdata:${kafka_log_dir} + image: rawmind/alpine-volume:0.0.2-1 +volumes: + brokerconfig: + driver: local + per_container: true + brokerdata: + driver: local + per_container: true diff --git a/templates/kafka/4/rancher-compose.yml b/templates/kafka/4/rancher-compose.yml index badb166..965543f 100644 --- a/templates/kafka/4/rancher-compose.yml +++ b/templates/kafka/4/rancher-compose.yml @@ -1,8 +1,9 @@ -.catalog: +version: '2' +catalog: name: Kafka version: 1.0.0-rancher1 description: | - (Experimental) Apache Kafka cluster. + Apache Kafka cluster. minimum_rancher_version: v0.59.0 maintainer: "Raul Sanchez " uuid: kafka-0 @@ -75,6 +76,13 @@ required: false default: false type: "boolean" + - variable: host_label + label: "Host Label" + description: | + Host label where deploy kafka. E.G.: 'kafka=true' + required: false + default: "" + type: "string" - variable: "zk_link" description: | Choose the Zookeeper service to use. @@ -83,14 +91,15 @@ 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 +services: + broker: + scale: ${kafka_scale} + retain_ip: true + health_check: + port: 9092 + interval: 5000 + unhealthy_threshold: 3 + request_line: '' + healthy_threshold: 2 + response_timeout: 5000