From 56f47ab8f0e50434895e06f9a2c7f2f6f411bef1 Mon Sep 17 00:00:00 2001 From: Wouter Born Date: Sun, 17 Sep 2017 11:23:17 +0200 Subject: [PATCH] Add openHAB Signed-off-by: Wouter Born --- templates/openhab/0/README.md | 16 +++ templates/openhab/0/docker-compose.yml.tpl | 56 ++++++++++ templates/openhab/0/rancher-compose.yml | 112 ++++++++++++++++++++ templates/openhab/1/README.md | 16 +++ templates/openhab/1/docker-compose.yml.tpl | 56 ++++++++++ templates/openhab/1/rancher-compose.yml | 113 +++++++++++++++++++++ templates/openhab/2/README.md | 16 +++ templates/openhab/2/docker-compose.yml.tpl | 56 ++++++++++ templates/openhab/2/rancher-compose.yml | 113 +++++++++++++++++++++ templates/openhab/3/README.md | 16 +++ templates/openhab/3/docker-compose.yml.tpl | 57 +++++++++++ templates/openhab/3/rancher-compose.yml | 113 +++++++++++++++++++++ templates/openhab/catalogIcon-openhab.png | Bin 0 -> 13189 bytes templates/openhab/config.yml | 7 ++ 14 files changed, 747 insertions(+) create mode 100644 templates/openhab/0/README.md create mode 100644 templates/openhab/0/docker-compose.yml.tpl create mode 100644 templates/openhab/0/rancher-compose.yml create mode 100644 templates/openhab/1/README.md create mode 100644 templates/openhab/1/docker-compose.yml.tpl create mode 100644 templates/openhab/1/rancher-compose.yml create mode 100644 templates/openhab/2/README.md create mode 100644 templates/openhab/2/docker-compose.yml.tpl create mode 100644 templates/openhab/2/rancher-compose.yml create mode 100644 templates/openhab/3/README.md create mode 100644 templates/openhab/3/docker-compose.yml.tpl create mode 100644 templates/openhab/3/rancher-compose.yml create mode 100644 templates/openhab/catalogIcon-openhab.png create mode 100644 templates/openhab/config.yml diff --git a/templates/openhab/0/README.md b/templates/openhab/0/README.md new file mode 100644 index 0000000..ab30c6a --- /dev/null +++ b/templates/openhab/0/README.md @@ -0,0 +1,16 @@ +## Introduction + +The open Home Automation Bus (openHAB) project aims at providing a universal integration platform for all things around home automation. It is a pure Java solution, fully based on OSGi. + +It is designed to be absolutely vendor-neutral as well as hardware/protocol-agnostic. openHAB brings together different bus systems, hardware devices and interface protocols by dedicated bindings. These bindings send and receive commands and status updates on the openHAB event bus. This concept allows designing user interfaces with a unique look & feel, but with the possibility to operate devices based on a big number of different technologies. Besides the user interfaces, it also brings the power of automation logics across different system boundaries. + +For further Information please refer to [www.openhab.org](http://www.openhab.org). + +## Getting Started + +Refer to the [wiki](https://github.com/openhab/openhab1-addons/wiki) on how to get started with openHAB. + +## Community: How to Get Involved + +In case of problems or questions, please join the [openHAB community](https://community.openhab.org). + diff --git a/templates/openhab/0/docker-compose.yml.tpl b/templates/openhab/0/docker-compose.yml.tpl new file mode 100644 index 0000000..6308f82 --- /dev/null +++ b/templates/openhab/0/docker-compose.yml.tpl @@ -0,0 +1,56 @@ +version: '2' + +services: + openhab: +{{- if eq .Values.PCAP_SUPPORT_ENABLED "true"}} + cap_add: + - NET_ADMIN + - NET_RAW + command: "./start.sh" +{{- end}} +{{- if or (ne .Values.DEVICE_MAPPING_1 "") (ne .Values.DEVICE_MAPPING_2 "") }} + devices: +{{- end}} +{{- if ne .Values.DEVICE_MAPPING_1 ""}} + - "${DEVICE_MAPPING_1}" +{{- end}} +{{- if ne .Values.DEVICE_MAPPING_2 ""}} + - "${DEVICE_MAPPING_2}" +{{- end}} + environment: +{{- if ne .Values.EXTRA_JAVA_OPTS ""}} + EXTRA_JAVA_OPTS: "${EXTRA_JAVA_OPTS}" +{{- end}} + OPENHAB_HTTP_PORT: "${HTTP_PORT}" + OPENHAB_HTTPS_PORT: "${HTTPS_PORT}" + image: "openhab/openhab:1.8.3-${IMAGE_ARCHITECTURE}" +{{- if ne .Values.HOST_LABEL ""}} + labels: + io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} +{{- end}} + network_mode: ${NETWORK_MODE} + ports: + - ${HTTP_PORT}:${HTTP_PORT} + - ${HTTPS_PORT}:${HTTPS_PORT} + restart: unless-stopped + tty: true + volumes: +{{- if eq .Values.USE_HOST_TIME "true"}} + - "/etc/localtime:/etc/localtime:ro" + - "/etc/timezone:/etc/timezone:ro" +{{- end}} + - "addons:/openhab/addons" + - "conf:/openhab/conf" + - "userdata:/openhab/userdata" + +volumes: + addons: + driver: ${VOLUME_DRIVER} + per_container: true + conf: + driver: ${VOLUME_DRIVER} + per_container: true + userdata: + driver: ${VOLUME_DRIVER} + per_container: true + diff --git a/templates/openhab/0/rancher-compose.yml b/templates/openhab/0/rancher-compose.yml new file mode 100644 index 0000000..0d97503 --- /dev/null +++ b/templates/openhab/0/rancher-compose.yml @@ -0,0 +1,112 @@ +version: '2' + +catalog: + name: "openHAB" + version: "1.8.3" + description: "An open source, technology agnostic home automation platform" + questions: + - variable: "IMAGE_ARCHITECTURE" + label: "Image Architecture" + description: | + Use "amd64" for AMD/Intel 64-bit architectures (e.g. x64, x86-64, x86_64). + Use "armhf" for ARMv7 32-bit architectures (e.g. most RaspberryPi 1/2/3). + Use "arm64" for ARMv8 64-bit architectures (not RaspberryPi 3) + required: true + default: "amd64" + type: enum + options: + - amd64 + - armhf + - arm64 + + - variable: "NETWORK_MODE" + label: "Network Mode" + description: "The network stack to connect the container to" + required: true + default: "host" + type: enum + options: + - host + - bridge + - none + + - variable: "USE_HOST_TIME" + label: "Use Host Time" + description: "Adds /etc/localtime and /etc/timezone as volumes from the host for providing timezone information" + required: true + default: false + type: boolean + + - variable: "PCAP_SUPPORT_ENABLED" + label: "Enable Packet Capture Support" + description: "Runs openHAB as root and adds adds network capabilities e.g. for libpcap support" + required: true + default: false + type: boolean + + - variable: "HTTP_PORT" + label: "HTTP Port" + description: "The port used for HTTP connections" + default: 8080 + required: true + type: "int" + + - variable: "HTTPS_PORT" + label: "HTTPS Port" + description: "The port used for HTTPS connections" + default: 8443 + required: true + type: "int" + + - variable: "DEVICE_MAPPING_1" + label: "Device Mapping 1" + description: "Maps a device from the host to the container. Example: '/dev/ttyUSB0' or '/dev/ttyController:/dev/ttyS1'" + default: "" + type: "string" + required: false + + - variable: "DEVICE_MAPPING_2" + label: "Device Mapping 2" + description: "Maps another device from the host to the container. Example: '/dev/ttyUSB1' or '/dev/ttyController:/dev/ttyS2'" + default: "" + type: "string" + required: false + + - variable: "VOLUME_DRIVER" + label: "Volume Driver" + description: "The volume driver used for persisting data" + required: true + default: "local" + type: enum + options: + - local + - rancher-ebs + - rancher-efs + - rancher-nfs + + - variable: "HOST_LABEL" + label: "Host Label" + description: "Schedules openHAB to run only on hosts that have a specific label. Example: 'openhab=true'" + default: "" + type: "string" + required: false + + - variable: "EXTRA_JAVA_OPTS" + label: "Extra Java Options" + description: "Starts the openHAB JVM with the provided extra options. Example: '-Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0:/dev/zwave'" + default: "" + type: "string" + required: false + + + +services: + openhab: + scale: 1 + health_check: + port: ${HTTP_PORT} + interval: 5000 + response_timeout: 5000 + healthy_threshold: 2 + unhealthy_threshold: 3 + diff --git a/templates/openhab/1/README.md b/templates/openhab/1/README.md new file mode 100644 index 0000000..9ebd9a7 --- /dev/null +++ b/templates/openhab/1/README.md @@ -0,0 +1,16 @@ +## Introduction + +The open Home Automation Bus (openHAB) project aims at providing a universal integration platform for all things around home automation. It is a pure Java solution, fully based on OSGi. + +It is designed to be absolutely vendor-neutral as well as hardware/protocol-agnostic. openHAB brings together different bus systems, hardware devices and interface protocols by dedicated bindings. These bindings send and receive commands and status updates on the openHAB event bus. This concept allows designing user interfaces with a unique look & feel, but with the possibility to operate devices based on a big number of different technologies. Besides the user interfaces, it also brings the power of automation logics across different system boundaries. + +For further Information please refer to [www.openhab.org](http://www.openhab.org). + +## Getting Started + +Refer to the [tutorials](http://docs.openhab.org/tutorials) on how to get started with openHAB. + +## Community: How to Get Involved + +In case of problems or questions, please join the [openHAB community](https://community.openhab.org). + diff --git a/templates/openhab/1/docker-compose.yml.tpl b/templates/openhab/1/docker-compose.yml.tpl new file mode 100644 index 0000000..bfb51c6 --- /dev/null +++ b/templates/openhab/1/docker-compose.yml.tpl @@ -0,0 +1,56 @@ +version: '2' + +services: + openhab: +{{- if eq .Values.PCAP_SUPPORT_ENABLED "true"}} + cap_add: + - NET_ADMIN + - NET_RAW + command: "./start.sh" +{{- end}} +{{- if or (ne .Values.DEVICE_MAPPING_1 "") (ne .Values.DEVICE_MAPPING_2 "") }} + devices: +{{- end}} +{{- if ne .Values.DEVICE_MAPPING_1 ""}} + - "${DEVICE_MAPPING_1}" +{{- end}} +{{- if ne .Values.DEVICE_MAPPING_2 ""}} + - "${DEVICE_MAPPING_2}" +{{- end}} + environment: +{{- if ne .Values.EXTRA_JAVA_OPTS ""}} + EXTRA_JAVA_OPTS: "${EXTRA_JAVA_OPTS}" +{{- end}} + OPENHAB_HTTP_PORT: "${HTTP_PORT}" + OPENHAB_HTTPS_PORT: "${HTTPS_PORT}" + image: "openhab/openhab:2.0.0-${IMAGE_ARCHITECTURE}" +{{- if ne .Values.HOST_LABEL ""}} + labels: + io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} +{{- end}} + network_mode: ${NETWORK_MODE} + ports: + - ${HTTP_PORT}:${HTTP_PORT} + - ${HTTPS_PORT}:${HTTPS_PORT} + restart: unless-stopped + tty: true + volumes: +{{- if eq .Values.USE_HOST_TIME "true"}} + - "/etc/localtime:/etc/localtime:ro" + - "/etc/timezone:/etc/timezone:ro" +{{- end}} + - "addons:/openhab/addons" + - "conf:/openhab/conf" + - "userdata:/openhab/userdata" + +volumes: + addons: + driver: ${VOLUME_DRIVER} + per_container: true + conf: + driver: ${VOLUME_DRIVER} + per_container: true + userdata: + driver: ${VOLUME_DRIVER} + per_container: true + diff --git a/templates/openhab/1/rancher-compose.yml b/templates/openhab/1/rancher-compose.yml new file mode 100644 index 0000000..a61c67f --- /dev/null +++ b/templates/openhab/1/rancher-compose.yml @@ -0,0 +1,113 @@ +version: '2' + +catalog: + name: "openHAB" + version: "2.0.0" + description: "An open source, technology agnostic home automation platform" + upgrade_from: "2.0.0" + questions: + - variable: "IMAGE_ARCHITECTURE" + label: "Image Architecture" + description: | + Use "amd64" for AMD/Intel 64-bit architectures (e.g. x64, x86-64, x86_64). + Use "armhf" for ARMv7 32-bit architectures (e.g. most RaspberryPi 1/2/3). + Use "arm64" for ARMv8 64-bit architectures (not RaspberryPi 3) + required: true + default: "amd64" + type: enum + options: + - amd64 + - armhf + - arm64 + + - variable: "NETWORK_MODE" + label: "Network Mode" + description: "The network stack to connect the container to" + required: true + default: "host" + type: enum + options: + - host + - bridge + - none + + - variable: "USE_HOST_TIME" + label: "Use Host Time" + description: "Adds /etc/localtime and /etc/timezone as volumes from the host for providing timezone information" + required: true + default: false + type: boolean + + - variable: "PCAP_SUPPORT_ENABLED" + label: "Enable Packet Capture Support" + description: "Runs openHAB as root and adds adds network capabilities e.g. for libpcap support" + required: true + default: false + type: boolean + + - variable: "HTTP_PORT" + label: "HTTP Port" + description: "The port used for HTTP connections" + default: 8080 + required: true + type: "int" + + - variable: "HTTPS_PORT" + label: "HTTPS Port" + description: "The port used for HTTPS connections" + default: 8443 + required: true + type: "int" + + - variable: "DEVICE_MAPPING_1" + label: "Device Mapping 1" + description: "Maps a device from the host to the container. Example: '/dev/ttyUSB0' or '/dev/ttyController:/dev/ttyS1'" + default: "" + type: "string" + required: false + + - variable: "DEVICE_MAPPING_2" + label: "Device Mapping 2" + description: "Maps another device from the host to the container. Example: '/dev/ttyUSB1' or '/dev/ttyController:/dev/ttyS2'" + default: "" + type: "string" + required: false + + - variable: "VOLUME_DRIVER" + label: "Volume Driver" + description: "The volume driver used for persisting data" + required: true + default: "local" + type: enum + options: + - local + - rancher-ebs + - rancher-efs + - rancher-nfs + + - variable: "HOST_LABEL" + label: "Host Label" + description: "Schedules openHAB to run only on hosts that have a specific label. Example: 'openhab=true'" + default: "" + type: "string" + required: false + + - variable: "EXTRA_JAVA_OPTS" + label: "Extra Java Options" + description: "Starts the openHAB JVM with the provided extra options. Example: '-Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0:/dev/zwave'" + default: "" + type: "string" + required: false + + + +services: + openhab: + scale: 1 + health_check: + port: ${HTTP_PORT} + interval: 5000 + response_timeout: 5000 + healthy_threshold: 2 + unhealthy_threshold: 3 + diff --git a/templates/openhab/2/README.md b/templates/openhab/2/README.md new file mode 100644 index 0000000..9ebd9a7 --- /dev/null +++ b/templates/openhab/2/README.md @@ -0,0 +1,16 @@ +## Introduction + +The open Home Automation Bus (openHAB) project aims at providing a universal integration platform for all things around home automation. It is a pure Java solution, fully based on OSGi. + +It is designed to be absolutely vendor-neutral as well as hardware/protocol-agnostic. openHAB brings together different bus systems, hardware devices and interface protocols by dedicated bindings. These bindings send and receive commands and status updates on the openHAB event bus. This concept allows designing user interfaces with a unique look & feel, but with the possibility to operate devices based on a big number of different technologies. Besides the user interfaces, it also brings the power of automation logics across different system boundaries. + +For further Information please refer to [www.openhab.org](http://www.openhab.org). + +## Getting Started + +Refer to the [tutorials](http://docs.openhab.org/tutorials) on how to get started with openHAB. + +## Community: How to Get Involved + +In case of problems or questions, please join the [openHAB community](https://community.openhab.org). + diff --git a/templates/openhab/2/docker-compose.yml.tpl b/templates/openhab/2/docker-compose.yml.tpl new file mode 100644 index 0000000..266d06f --- /dev/null +++ b/templates/openhab/2/docker-compose.yml.tpl @@ -0,0 +1,56 @@ +version: '2' + +services: + openhab: +{{- if eq .Values.PCAP_SUPPORT_ENABLED "true"}} + cap_add: + - NET_ADMIN + - NET_RAW + command: "./start.sh" +{{- end}} +{{- if or (ne .Values.DEVICE_MAPPING_1 "") (ne .Values.DEVICE_MAPPING_2 "") }} + devices: +{{- end}} +{{- if ne .Values.DEVICE_MAPPING_1 ""}} + - "${DEVICE_MAPPING_1}" +{{- end}} +{{- if ne .Values.DEVICE_MAPPING_2 ""}} + - "${DEVICE_MAPPING_2}" +{{- end}} + environment: +{{- if ne .Values.EXTRA_JAVA_OPTS ""}} + EXTRA_JAVA_OPTS: "${EXTRA_JAVA_OPTS}" +{{- end}} + OPENHAB_HTTP_PORT: "${HTTP_PORT}" + OPENHAB_HTTPS_PORT: "${HTTPS_PORT}" + image: "openhab/openhab:2.1.0-${IMAGE_ARCHITECTURE}" +{{- if ne .Values.HOST_LABEL ""}} + labels: + io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} +{{- end}} + network_mode: ${NETWORK_MODE} + ports: + - ${HTTP_PORT}:${HTTP_PORT} + - ${HTTPS_PORT}:${HTTPS_PORT} + restart: unless-stopped + tty: true + volumes: +{{- if eq .Values.USE_HOST_TIME "true"}} + - "/etc/localtime:/etc/localtime:ro" + - "/etc/timezone:/etc/timezone:ro" +{{- end}} + - "addons:/openhab/addons" + - "conf:/openhab/conf" + - "userdata:/openhab/userdata" + +volumes: + addons: + driver: ${VOLUME_DRIVER} + per_container: true + conf: + driver: ${VOLUME_DRIVER} + per_container: true + userdata: + driver: ${VOLUME_DRIVER} + per_container: true + diff --git a/templates/openhab/2/rancher-compose.yml b/templates/openhab/2/rancher-compose.yml new file mode 100644 index 0000000..f4bb533 --- /dev/null +++ b/templates/openhab/2/rancher-compose.yml @@ -0,0 +1,113 @@ +version: '2' + +catalog: + name: "openHAB" + version: "2.1.0" + description: "An open source, technology agnostic home automation platform" + upgrade_from: "2.0.0" + questions: + - variable: "IMAGE_ARCHITECTURE" + label: "Image Architecture" + description: | + Use "amd64" for AMD/Intel 64-bit architectures (e.g. x64, x86-64, x86_64). + Use "armhf" for ARMv7 32-bit architectures (e.g. most RaspberryPi 1/2/3). + Use "arm64" for ARMv8 64-bit architectures (not RaspberryPi 3) + required: true + default: "amd64" + type: enum + options: + - amd64 + - armhf + - arm64 + + - variable: "NETWORK_MODE" + label: "Network Mode" + description: "The network stack to connect the container to" + required: true + default: "host" + type: enum + options: + - host + - bridge + - none + + - variable: "USE_HOST_TIME" + label: "Use Host Time" + description: "Adds /etc/localtime and /etc/timezone as volumes from the host for providing timezone information" + required: true + default: false + type: boolean + + - variable: "PCAP_SUPPORT_ENABLED" + label: "Enable Packet Capture Support" + description: "Runs openHAB as root and adds adds network capabilities e.g. for libpcap support" + required: true + default: false + type: boolean + + - variable: "HTTP_PORT" + label: "HTTP Port" + description: "The port used for HTTP connections" + default: 8080 + required: true + type: "int" + + - variable: "HTTPS_PORT" + label: "HTTPS Port" + description: "The port used for HTTPS connections" + default: 8443 + required: true + type: "int" + + - variable: "DEVICE_MAPPING_1" + label: "Device Mapping 1" + description: "Maps a device from the host to the container. Example: '/dev/ttyUSB0' or '/dev/ttyController:/dev/ttyS1'" + default: "" + type: "string" + required: false + + - variable: "DEVICE_MAPPING_2" + label: "Device Mapping 2" + description: "Maps another device from the host to the container. Example: '/dev/ttyUSB1' or '/dev/ttyController:/dev/ttyS2'" + default: "" + type: "string" + required: false + + - variable: "VOLUME_DRIVER" + label: "Volume Driver" + description: "The volume driver used for persisting data" + required: true + default: "local" + type: enum + options: + - local + - rancher-ebs + - rancher-efs + - rancher-nfs + + - variable: "HOST_LABEL" + label: "Host Label" + description: "Schedules openHAB to run only on hosts that have a specific label. Example: 'openhab=true'" + default: "" + type: "string" + required: false + + - variable: "EXTRA_JAVA_OPTS" + label: "Extra Java Options" + description: "Starts the openHAB JVM with the provided extra options. Example: '-Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0:/dev/zwave'" + default: "" + type: "string" + required: false + + + +services: + openhab: + scale: 1 + health_check: + port: ${HTTP_PORT} + interval: 5000 + response_timeout: 5000 + healthy_threshold: 2 + unhealthy_threshold: 3 + diff --git a/templates/openhab/3/README.md b/templates/openhab/3/README.md new file mode 100644 index 0000000..9ebd9a7 --- /dev/null +++ b/templates/openhab/3/README.md @@ -0,0 +1,16 @@ +## Introduction + +The open Home Automation Bus (openHAB) project aims at providing a universal integration platform for all things around home automation. It is a pure Java solution, fully based on OSGi. + +It is designed to be absolutely vendor-neutral as well as hardware/protocol-agnostic. openHAB brings together different bus systems, hardware devices and interface protocols by dedicated bindings. These bindings send and receive commands and status updates on the openHAB event bus. This concept allows designing user interfaces with a unique look & feel, but with the possibility to operate devices based on a big number of different technologies. Besides the user interfaces, it also brings the power of automation logics across different system boundaries. + +For further Information please refer to [www.openhab.org](http://www.openhab.org). + +## Getting Started + +Refer to the [tutorials](http://docs.openhab.org/tutorials) on how to get started with openHAB. + +## Community: How to Get Involved + +In case of problems or questions, please join the [openHAB community](https://community.openhab.org). + diff --git a/templates/openhab/3/docker-compose.yml.tpl b/templates/openhab/3/docker-compose.yml.tpl new file mode 100644 index 0000000..ea9adc7 --- /dev/null +++ b/templates/openhab/3/docker-compose.yml.tpl @@ -0,0 +1,57 @@ +version: '2' + +services: + openhab: +{{- if eq .Values.PCAP_SUPPORT_ENABLED "true"}} + cap_add: + - NET_ADMIN + - NET_RAW + command: "./start.sh" +{{- end}} +{{- if or (ne .Values.DEVICE_MAPPING_1 "") (ne .Values.DEVICE_MAPPING_2 "") }} + devices: +{{- end}} +{{- if ne .Values.DEVICE_MAPPING_1 ""}} + - "${DEVICE_MAPPING_1}" +{{- end}} +{{- if ne .Values.DEVICE_MAPPING_2 ""}} + - "${DEVICE_MAPPING_2}" +{{- end}} + environment: +{{- if ne .Values.EXTRA_JAVA_OPTS ""}} + EXTRA_JAVA_OPTS: "${EXTRA_JAVA_OPTS}" +{{- end}} + OPENHAB_HTTP_PORT: "${HTTP_PORT}" + OPENHAB_HTTPS_PORT: "${HTTPS_PORT}" + image: "openhab/openhab:2.2.0-snapshot-${IMAGE_ARCHITECTURE}" + labels: + io.rancher.container.pull_image: always +{{- if ne .Values.HOST_LABEL ""}} + io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} +{{- end}} + network_mode: ${NETWORK_MODE} + ports: + - ${HTTP_PORT}:${HTTP_PORT} + - ${HTTPS_PORT}:${HTTPS_PORT} + restart: unless-stopped + tty: true + volumes: +{{- if eq .Values.USE_HOST_TIME "true"}} + - "/etc/localtime:/etc/localtime:ro" + - "/etc/timezone:/etc/timezone:ro" +{{- end}} + - "addons:/openhab/addons" + - "conf:/openhab/conf" + - "userdata:/openhab/userdata" + +volumes: + addons: + driver: ${VOLUME_DRIVER} + per_container: true + conf: + driver: ${VOLUME_DRIVER} + per_container: true + userdata: + driver: ${VOLUME_DRIVER} + per_container: true + diff --git a/templates/openhab/3/rancher-compose.yml b/templates/openhab/3/rancher-compose.yml new file mode 100644 index 0000000..121c127 --- /dev/null +++ b/templates/openhab/3/rancher-compose.yml @@ -0,0 +1,113 @@ +version: '2' + +catalog: + name: "openHAB" + version: "2.2.0-SNAPSHOT" + description: "An open source, technology agnostic home automation platform" + upgrade_from: "2.0.0" + questions: + - variable: "IMAGE_ARCHITECTURE" + label: "Image Architecture" + description: | + Use "amd64" for AMD/Intel 64-bit architectures (e.g. x64, x86-64, x86_64). + Use "armhf" for ARMv7 32-bit architectures (e.g. most RaspberryPi 1/2/3). + Use "arm64" for ARMv8 64-bit architectures (not RaspberryPi 3) + required: true + default: "amd64" + type: enum + options: + - amd64 + - armhf + - arm64 + + - variable: "NETWORK_MODE" + label: "Network Mode" + description: "The network stack to connect the container to" + required: true + default: "host" + type: enum + options: + - host + - bridge + - none + + - variable: "USE_HOST_TIME" + label: "Use Host Time" + description: "Adds /etc/localtime and /etc/timezone as volumes from the host for providing timezone information" + required: true + default: false + type: boolean + + - variable: "PCAP_SUPPORT_ENABLED" + label: "Enable Packet Capture Support" + description: "Runs openHAB as root and adds adds network capabilities e.g. for libpcap support" + required: true + default: false + type: boolean + + - variable: "HTTP_PORT" + label: "HTTP Port" + description: "The port used for HTTP connections" + default: 8080 + required: true + type: "int" + + - variable: "HTTPS_PORT" + label: "HTTPS Port" + description: "The port used for HTTPS connections" + default: 8443 + required: true + type: "int" + + - variable: "DEVICE_MAPPING_1" + label: "Device Mapping 1" + description: "Maps a device from the host to the container. Example: '/dev/ttyUSB0' or '/dev/ttyController:/dev/ttyS1'" + default: "" + type: "string" + required: false + + - variable: "DEVICE_MAPPING_2" + label: "Device Mapping 2" + description: "Maps another device from the host to the container. Example: '/dev/ttyUSB1' or '/dev/ttyController:/dev/ttyS2'" + default: "" + type: "string" + required: false + + - variable: "VOLUME_DRIVER" + label: "Volume Driver" + description: "The volume driver used for persisting data" + required: true + default: "local" + type: enum + options: + - local + - rancher-ebs + - rancher-efs + - rancher-nfs + + - variable: "HOST_LABEL" + label: "Host Label" + description: "Schedules openHAB to run only on hosts that have a specific label. Example: 'openhab=true'" + default: "" + type: "string" + required: false + + - variable: "EXTRA_JAVA_OPTS" + label: "Extra Java Options" + description: "Starts the openHAB JVM with the provided extra options. Example: '-Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0:/dev/zwave'" + default: "" + type: "string" + required: false + + + +services: + openhab: + scale: 1 + health_check: + port: ${HTTP_PORT} + interval: 5000 + response_timeout: 5000 + healthy_threshold: 2 + unhealthy_threshold: 3 + diff --git a/templates/openhab/catalogIcon-openhab.png b/templates/openhab/catalogIcon-openhab.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb6c6aedcd22da50bbd30d347eb2e3b6e25e583 GIT binary patch literal 13189 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 F{}1TxBt8HD literal 0 HcmV?d00001 diff --git a/templates/openhab/config.yml b/templates/openhab/config.yml new file mode 100644 index 0000000..446a398 --- /dev/null +++ b/templates/openhab/config.yml @@ -0,0 +1,7 @@ +name: openHAB +description: An open source, technology agnostic home automation platform +version: 2.1.0 +category: Automation +license: Eclipse Public License 1.0 +projectURL: https://www.openhab.org +