diff --git a/charts/hono/Chart.yaml b/charts/hono/Chart.yaml new file mode 100644 index 00000000..f42608dc --- /dev/null +++ b/charts/hono/Chart.yaml @@ -0,0 +1,32 @@ +# +# Copyright (c) 2019, 2020 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +# Version of the Helm chart, by default, this will be the Maven project version +version: 2.0.0 +# Version of the application being deployed by the chart +appVersion: 1.0.2 +name: hono +description: Scalable IoT messaging platform +keywords: + - IoT + - messaging +home: https://www.eclipse.org/hono/ +sources: + - https://github.com/eclipse/hono + - https://github.com/eclipse/packages +icon: https://raw.githubusercontent.com/eclipse/hono/master/logo/SVG-1-1/HONO-Logo_Bild_s-135x125px.svg +maintainers: + - name: dejanb + email: dbosanac@redhat.com + - name: ctron + email: jreimann@redhat.com diff --git a/charts/hono/config/artemis/artemis-bootstrap.xml b/charts/hono/config/artemis/artemis-bootstrap.xml new file mode 100644 index 00000000..2d2db7c1 --- /dev/null +++ b/charts/hono/config/artemis/artemis-bootstrap.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + diff --git a/charts/hono/config/artemis/artemis-broker.xml b/charts/hono/config/artemis/artemis-broker.xml new file mode 100644 index 00000000..6af4438b --- /dev/null +++ b/charts/hono/config/artemis/artemis-broker.xml @@ -0,0 +1,154 @@ + + + + + + + + + hono-broker + + true + + + NIO + + ./data/paging + + ./data/bindings + + ./data/journal + + ./data/large-messages + + true + + 2 + + -1 + + + + + + + + + + + + + + + + + + + + + 132000 + + + + 5000 + + + 90 + + + 100Mb + + + + + + tcp://0.0.0.0:5671?protocols=AMQP;sslEnabled=true;keyStorePath=file:/etc/hono/artemisKeyStore.p12;keyStorePassword=artemiskeys;needClientAuth=true;trustStorePath=file:/etc/hono/trustStore.jks;trustStorePassword=honotrust + + + + + + + + + + + + + + + + + + + + + + + + DLQ + ExpiryQueue + 0 + + -1 + 10 + PAGE + true + true + true + true + + + + DLQ + ExpiryQueue + 0 + + -1 + 10 + PAGE + true + true + true + true + + + + + / + + + + \ No newline at end of file diff --git a/charts/hono/config/artemis/artemis-roles.properties b/charts/hono/config/artemis/artemis-roles.properties new file mode 100644 index 00000000..cb58a86e --- /dev/null +++ b/charts/hono/config/artemis/artemis-roles.properties @@ -0,0 +1,13 @@ +############################################################################### +# Copyright (c) 2016, 2018 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +############################################################################### +admin=artemis \ No newline at end of file diff --git a/charts/hono/config/artemis/artemis-users.properties b/charts/hono/config/artemis/artemis-users.properties new file mode 100644 index 00000000..3dc998d5 --- /dev/null +++ b/charts/hono/config/artemis/artemis-users.properties @@ -0,0 +1,13 @@ +############################################################################### +# Copyright (c) 2016, 2018 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +############################################################################### +artemis=artemis \ No newline at end of file diff --git a/charts/hono/config/artemis/artemis.profile b/charts/hono/config/artemis/artemis.profile new file mode 100644 index 00000000..d5d82f7a --- /dev/null +++ b/charts/hono/config/artemis/artemis.profile @@ -0,0 +1,45 @@ +############################################################################### +# Copyright (c) 2016, 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +############################################################################### + +ARTEMIS_HOME='/maven' +ARTEMIS_INSTANCE='/opt/artemis' + +# The logging config will need an URI +# this will be encoded in case you use spaces or special characters +# on your directory structure +ARTEMIS_INSTANCE_URI='file:/opt/artemis/' + +# Cluster Properties: Used to pass arguments to ActiveMQ Artemis which can be referenced in broker.xml +#ARTEMIS_CLUSTER_PROPS="-Dactivemq.remoting.default.port=61617 -Dactivemq.remoting.amqp.port=5673 -Dactivemq.remoting.stomp.port=61614 -Dactivemq.remoting.hornetq.port=5446" + + +# Java Opts (set max heap to ~70% of available memory) +JAVA_ARGS=" -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms128M -Xmx360M" + +# +# There might be options that you only want to enable on specifc commands, like setting a JMX port +# See https://issues.apache.org/jira/browse/ARTEMIS-318 +#if [ "$1" = "run" ]; then +# JAVA_ARGS="$JAVA_ARGS -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.rmi.port=1098 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" +#fi + +# +# Logs Safepoints JVM pauses: Uncomment to enable them +# In addition to the traditional GC logs you could enable some JVM flags to know any meaningful and "hidden" pause that could +# affect the latencies of the services delivered by the broker, including those that are not reported by the classic GC logs +# and dependent by JVM background work (eg method deoptimizations, lock unbiasing, JNI, counted loops and obviously GC activity). +# Replace "all_pauses.log" with the file name you want to log to. +# JAVA_ARGS="$JAVA_ARGS -XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1 -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+LogVMOutput -XX:LogFile=all_pauses.log" + +# Debug args: Uncomment to enable debug +#DEBUG_ARGS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" diff --git a/charts/hono/config/artemis/logging.properties b/charts/hono/config/artemis/logging.properties new file mode 100644 index 00000000..61a5e28f --- /dev/null +++ b/charts/hono/config/artemis/logging.properties @@ -0,0 +1,49 @@ +############################################################################### +# Copyright (c) 2016, 2018 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +############################################################################### +# Additional logger names to configure (root logger is always configured) +# Root logger option +loggers=org.eclipse.jetty,org.jboss.logging,org.apache.activemq.artemis.core.server,org.apache.activemq.artemis.utils,org.apache.activemq.artemis.journal,org.apache.activemq.artemis.jms.server,org.apache.activemq.artemis.integration.bootstrap + +# Root logger level +logger.level=INFO +# ActiveMQ Artemis logger levels +logger.org.apache.activemq.artemis.core.server.level=INFO +logger.org.apache.activemq.artemis.journal.level=INFO +logger.org.apache.activemq.artemis.utils.level=INFO +logger.org.apache.activemq.artemis.jms.level=INFO +logger.org.apache.activemq.artemis.integration.bootstrap.level=INFO +logger.org.eclipse.jetty.level=WARN +# Root logger handlers +logger.handlers=FILE,CONSOLE + +# Console handler configuration +handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler +handler.CONSOLE.properties=autoFlush +handler.CONSOLE.level=DEBUG +handler.CONSOLE.autoFlush=true +handler.CONSOLE.formatter=PATTERN + +# File handler configuration +handler.FILE=org.jboss.logmanager.handlers.PeriodicRotatingFileHandler +handler.FILE.level=DEBUG +handler.FILE.properties=suffix,append,autoFlush,fileName +handler.FILE.suffix=.yyyy-MM-dd +handler.FILE.append=true +handler.FILE.autoFlush=true +handler.FILE.fileName=${artemis.instance}/log/artemis.log +handler.FILE.formatter=PATTERN + +# Formatter pattern configuration +formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter +formatter.PATTERN.properties=pattern +formatter.PATTERN.pattern=%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n diff --git a/charts/hono/config/artemis/login.config b/charts/hono/config/artemis/login.config new file mode 100644 index 00000000..1ee9f256 --- /dev/null +++ b/charts/hono/config/artemis/login.config @@ -0,0 +1,12 @@ +activemq { + org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoginModule sufficient + debug=false + reload=true + org.apache.activemq.jaas.properties.user="artemis-users.properties" + org.apache.activemq.jaas.properties.role="artemis-roles.properties"; + + org.apache.activemq.artemis.spi.core.security.jaas.GuestLoginModule sufficient + debug=false + org.apache.activemq.jaas.guest.user="admin" + org.apache.activemq.jaas.guest.role="amq"; +}; \ No newline at end of file diff --git a/charts/hono/config/grafana/dashboard-definitions/jvm-details.json b/charts/hono/config/grafana/dashboard-definitions/jvm-details.json new file mode 100644 index 00000000..c22ec04d --- /dev/null +++ b/charts/hono/config/grafana/dashboard-definitions/jvm-details.json @@ -0,0 +1,1185 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "iteration": 1543834182381, + "links": [], + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 94, + "panels": [], + "title": "Memory", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "fill": 1, + "gridPos": { + "h": 8, + "w": 11, + "x": 0, + "y": 1 + }, + "id": 74, + "legend": { + "avg": false, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "used" + }, + { + "alias": "max", + "color": "#ffffff", + "fill": 0, + "linewidth": 3 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(jvm_memory_used_bytes{host=~\"$instance\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "used", + "refId": "A" + }, + { + "expr": "sum(jvm_memory_max_bytes{host=~\"$instance\"})", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "max", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "JVM memory", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "decimals": 0, + "format": "percentunit", + "gauge": { + "maxValue": 1, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 8, + "w": 3, + "x": 11, + "y": 1 + }, + "hideTimeOverride": true, + "id": 75, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(jvm_memory_used_bytes{host=~\"$instance\"})\n/\nsum(jvm_memory_max_bytes{host=~\"$instance\"})", + "format": "time_series", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": ".7,.9", + "timeFrom": null, + "timeShift": null, + "title": "JVM memory usage", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "fill": 1, + "gridPos": { + "h": 8, + "w": 10, + "x": 14, + "y": 1 + }, + "id": 83, + "legend": { + "avg": false, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "/Allocated.*/", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(jvm_gc_pause_seconds_sum{host=~\"$instance\"}[$__interval]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "GC Pause - {{host}}", + "refId": "A" + }, + { + "expr": "rate(jvm_gc_memory_promoted_bytes_total{host=~\"$instance\"}[$__interval])", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Allocated - {{host}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "JVM GC", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 9 + }, + "id": 96, + "panels": [], + "title": "CPU", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "fill": 1, + "gridPos": { + "h": 9, + "w": 11, + "x": 0, + "y": 10 + }, + "id": 80, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "process_cpu_usage{host=~\"$instance\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "process - {{host}}", + "refId": "A" + }, + { + "expr": "system_cpu_usage{host=~\"$instance\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "system - {{host}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "CPU usage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percentunit", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 11, + "y": 10 + }, + "id": 82, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(system_cpu_count{host=~\"$instance\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": "", + "title": "CPUs", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "fill": 1, + "gridPos": { + "h": 9, + "w": 10, + "x": 14, + "y": 10 + }, + "id": 86, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "process_files_open_files{host=~\"$instance\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "open files - {{host}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Open Files", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 11, + "y": 13 + }, + "id": 78, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(jvm_threads_live_threads{host=~\"$instance\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": "", + "title": "Threads", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 19 + }, + "id": 92, + "panels": [], + "title": "Logs", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "fill": 1, + "gridPos": { + "h": 8, + "w": 11, + "x": 0, + "y": 20 + }, + "id": 84, + "legend": { + "avg": false, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "trace", + "color": "#cffaff", + "zindex": -3 + }, + { + "alias": "debug", + "color": "#65c5db", + "zindex": -2 + }, + { + "alias": "info", + "color": "#f4d598", + "zindex": -1 + }, + { + "alias": "warn", + "color": "#c15c17", + "zindex": 0 + }, + { + "alias": "error", + "color": "#bf1b00", + "zindex": 1 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(logback_events_total{host=~\"$instance\"}[$__interval])", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{level}} - {{host}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "logback", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 3, + "x": 11, + "y": 20 + }, + "id": 87, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(increase(logback_events_total{level=~\"debug|trace\",host=~\"$instance\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": "", + "title": "Trace | Debug", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 3, + "x": 11, + "y": 22 + }, + "id": 88, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(increase(logback_events_total{level=\"info\",host=~\"$instance\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": "", + "title": "Info", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 3, + "x": 11, + "y": 24 + }, + "id": 89, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(increase(logback_events_total{level=\"warn\",host=~\"$instance\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": "", + "title": "Warning", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 3, + "x": 11, + "y": 26 + }, + "id": 90, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(increase(logback_events_total{level=\"error\",host=~\"$instance\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": "", + "title": "Error", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + } + ], + "refresh": "10s", + "schemaVersion": 16, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": { + "text": "All", + "value": "$__all" + }, + "datasource": "hono_metrics", + "hide": 0, + "includeAll": true, + "label": null, + "multi": false, + "name": "instance", + "options": [], + "query": "label_values(jvm_threads_peak_threads,host)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "JVM details", + "uid": "9kSOf0fiz", + "version": 1 +} diff --git a/charts/hono/config/grafana/dashboard-definitions/message-details.json b/charts/hono/config/grafana/dashboard-definitions/message-details.json new file mode 100644 index 00000000..43694093 --- /dev/null +++ b/charts/hono/config/grafana/dashboard-definitions/message-details.json @@ -0,0 +1,1009 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "iteration": 1549025382653, + "links": [], + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "fill": 1, + "gridPos": { + "h": 6, + "w": 20, + "x": 0, + "y": 0 + }, + "id": 2, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(hono_messages_received_seconds_count{status=\"forwarded\",component_name=~\"$componentname\",type=~\"$type\",tenant=~\"$tenant\",host=~\"$instance\"}[$__range]))", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "forwarded", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Succeeded", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "ops", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 4, + "x": 20, + "y": 0 + }, + "id": 8, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(rate(hono_messages_received_seconds_count{status=\"forwarded\",component_name=~\"$componentname\",type=~\"$type\",tenant=~\"$tenant\",host=~\"$instance\"}[$__interval]))", + "format": "time_series", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "timeFrom": "1m", + "title": "avg", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "0", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "ops", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 4, + "x": 20, + "y": 2 + }, + "id": 9, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(rate(hono_messages_received_seconds_count{status=\"forwarded\",component_name=~\"$componentname\",type=~\"$type\",tenant=~\"$tenant\",host=~\"$instance\"}[$__interval]))", + "format": "time_series", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "timeFrom": "5m", + "title": "avg", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "0", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "ops", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 4, + "x": 20, + "y": 4 + }, + "id": 10, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(rate(hono_messages_received_seconds_count{status=\"forwarded\",component_name=~\"$componentname\",type=~\"$type\",tenant=~\"$tenant\",host=~\"$instance\"}[$__interval]))", + "format": "time_series", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "timeFrom": "15m", + "title": "avg", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "0", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "fill": 1, + "gridPos": { + "h": 6, + "w": 20, + "x": 0, + "y": 6 + }, + "id": 3, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(hono_messages_payload_bytes_sum{component_name=~\"$componentname\",type=~\"$type\",status=\"forwarded\",tenant=~\"$tenant\",host=~\"$instance\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "forwarded", + "refId": "A" + }, + { + "expr": "sum(irate(hono_messages_payload_bytes_sum{component_name=~\"$componentname\",type=~\"$type\",status=\"undeliverable\",tenant=~\"$tenant\",host=~\"$instance\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "undeliverable", + "refId": "B" + }, + { + "expr": "sum(irate(hono_messages_payload_bytes_sum{component_name=~\"$componentname\",type=~\"$type\",status=\"unprocessable\",tenant=~\"$tenant\",host=~\"$instance\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "unprocessable", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Payload", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "Bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 4, + "x": 20, + "y": 6 + }, + "id": 11, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(rate(hono_messages_payload_bytes_sum{component_name=~\"$componentname\",type=~\"$type\",tenant=~\"$tenant\",host=~\"$instance\"}[$__interval]))", + "format": "time_series", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "timeFrom": "1m", + "title": "avg", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "0", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "Bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 4, + "x": 20, + "y": 8 + }, + "id": 12, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(rate(hono_messages_payload_bytes_sum{component_name=~\"$componentname\",type=~\"$type\",tenant=~\"$tenant\",host=~\"$instance\"}[$__interval]))", + "format": "time_series", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "timeFrom": "5m", + "title": "avg", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "0", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "hono_metrics", + "format": "Bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 4, + "x": 20, + "y": 10 + }, + "id": 13, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(rate(hono_messages_payload_bytes_sum{component_name=~\"$componentname\",type=~\"$type\",tenant=~\"$tenant\",host=~\"$instance\"}[$__interval]))", + "format": "time_series", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "timeFrom": "15m", + "title": "avg", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "0", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "fill": 1, + "gridPos": { + "h": 6, + "w": 20, + "x": 0, + "y": 12 + }, + "id": 4, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(hono_messages_received_seconds_count{component_name=~\"$componentname\",type=~\"$type\",status=\"undeliverable\",tenant=~\"$tenant\",host=~\"$instance\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "undeliverable", + "refId": "A" + }, + { + "expr": "sum(irate(hono_messages_received_seconds_count{component_name=~\"$componentname\",type=~\"$type\",status=\"unprocessable\",tenant=~\"$tenant\",host=~\"$instance\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "unprocessable", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Failed", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "#e5ac0e", + "#d44a3a" + ], + "datasource": "hono_metrics", + "decimals": 0, + "format": "percent", + "gauge": { + "maxValue": 30, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 20, + "y": 12 + }, + "id": 6, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "(sum(rate(hono_messages_received_seconds_count{component_name=~\"$componentname\",type=~\"$type\",status!=\"forwarded\",tenant=~\"$tenant\",host=~\"$instance\"}[$__interval]))\n/\n sum(rate(hono_messages_received_seconds_count{component_name=~\"$componentname\",type=~\"$type\",tenant=~\"$tenant\",host=~\"$instance\"}[$__interval])))\n* 100\n", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": "5,15", + "title": "Failure Rate", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "0%", + "value": "null" + } + ], + "valueName": "avg" + } + ], + "refresh": "10s", + "schemaVersion": 16, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": { + "text": "All", + "value": [ + "$__all" + ] + }, + "datasource": "hono_metrics", + "hide": 0, + "includeAll": true, + "label": "Adapter", + "multi": true, + "name": "componentname", + "options": [], + "query": "label_values(hono_messages_received_seconds_count,component_name)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": { + "text": "", + "value": "" + }, + "hide": 0, + "label": "Tenant", + "name": "tenant", + "options": [ + { + "text": ".+", + "value": ".+" + } + ], + "query": ".+", + "skipUrlSync": false, + "type": "textbox" + }, + { + "allValue": null, + "current": { + "tags": [], + "text": "All", + "value": [ + "$__all" + ] + }, + "datasource": "hono_metrics", + "hide": 0, + "includeAll": true, + "label": "Type", + "multi": true, + "name": "type", + "options": [], + "query": "label_values(hono_messages_received_seconds_count,type)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "text": "All", + "value": [ + "$__all" + ] + }, + "datasource": "hono_metrics", + "hide": 0, + "includeAll": true, + "label": "Instance", + "multi": true, + "name": "instance", + "options": [], + "query": "label_values(hono_messages_received_seconds_count,host)", + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "Message details", + "uid": "rcEOBABmk", + "version": 1 +} diff --git a/charts/hono/config/grafana/dashboard-definitions/overview.json b/charts/hono/config/grafana/dashboard-definitions/overview.json new file mode 100644 index 00000000..a9c44c1f --- /dev/null +++ b/charts/hono/config/grafana/dashboard-definitions/overview.json @@ -0,0 +1,1187 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "links": [ + { + "icon": "external link", + "tags": [], + "title": "Eclipse Honoâ„¢", + "tooltip": "", + "type": "link", + "url": "https://eclipse.org/hono" + }, + { + "asDropdown": true, + "icon": "external link", + "tags": [], + "title": "Dashboards", + "type": "dashboards" + } + ], + "panels": [ + { + "content": "
\n Telemetry\n
", + "description": "", + "gridPos": { + "h": 2, + "w": 8, + "x": 0, + "y": 0 + }, + "id": 8, + "links": [], + "mode": "html", + "title": "", + "transparent": true, + "type": "text" + }, + { + "content": "
\n Events\n
", + "gridPos": { + "h": 2, + "w": 8, + "x": 8, + "y": 0 + }, + "id": 12, + "links": [], + "mode": "html", + "title": "", + "transparent": true, + "type": "text" + }, + { + "content": "
\n Commands\n
", + "gridPos": { + "h": 2, + "w": 8, + "x": 16, + "y": 0 + }, + "id": 15, + "links": [], + "mode": "html", + "title": "", + "transparent": true, + "type": "text" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "description": "average rate of telemetry messages received from devices", + "fill": 1, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 2 + }, + "id": 2, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [ + { + "dashboard": "Message details", + "includeVars": true, + "keepTime": true, + "params": "var-type=telemetry", + "targetBlank": true, + "title": "Message details", + "type": "dashboard", + "url": "/d/rcEOBABmk/message-details" + } + ], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "processed", + "color": "#629e51", + "zindex": -1 + }, + { + "alias": "unprocessed", + "color": "#bf1b00", + "zindex": 1 + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(hono_messages_received_seconds_count{type=\"telemetry\",status=\"unprocessable\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "unprocessable", + "refId": "C" + }, + { + "expr": "sum(irate(hono_messages_received_seconds_count{type=\"telemetry\",status=\"undeliverable\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "undeliverable", + "refId": "B" + }, + { + "expr": "sum(irate(hono_messages_received_seconds_count{type=\"telemetry\",status=\"forwarded\"}[$__range]))", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "forwarded", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "messages", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": false, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": "messages/sec", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "description": "average rate of events received from devices", + "fill": 1, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 2 + }, + "id": 17, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [ + { + "dashboard": "Message details", + "includeVars": true, + "keepTime": true, + "params": "type=event", + "targetBlank": true, + "title": "Message details", + "type": "dashboard", + "url": "/d/rcEOBABmk/message-details" + } + ], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "processed", + "color": "#629e51", + "zindex": -1 + }, + { + "alias": "unprocessed", + "color": "#bf1b00", + "zindex": 1 + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(hono_messages_received_seconds_count{type=\"event\",status=\"unprocessable\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "unprocessable", + "refId": "C" + }, + { + "expr": "sum(irate(hono_messages_received_seconds_count{type=\"event\",status=\"undeliverable\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "undeliverable", + "refId": "B" + }, + { + "expr": "sum(irate(hono_messages_received_seconds_count{type=\"event\",status=\"forwarded\"}[$__range]))", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "forwarded", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "messages", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": false, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": "messages/sec", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "description": "average rate of commands sent to devices", + "fill": 1, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 2 + }, + "id": 20, + "legend": { + "avg": false, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(hono_commands_received_seconds_count{direction=~\"one-way|request\",status=\"unprocessable\"}[$__range]))", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "unprocessable", + "refId": "C" + }, + { + "expr": "sum(irate(hono_commands_received_seconds_count{direction=~\"one-way|request\",status=\"undeliverable\"}[$__range]))", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "undeliverable", + "refId": "B" + }, + { + "expr": "sum(irate(hono_commands_received_seconds_count{direction=~\"one-way|request\",status=\"forwarded\"}[$__range]))", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "forwarded", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "messages", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": false, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": "messages/sec", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "decimals": 1, + "format": "none", + "label": "bytes/sec", + "logBase": 10, + "max": null, + "min": "0", + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "description": "average rate of data received from devices as payload of telemetry messages", + "fill": 1, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 10 + }, + "id": 55, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(hono_messages_payload_bytes_sum{type=\"telemetry\",status=\"unprocessable\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "unprocessable", + "refId": "C" + }, + { + "expr": "sum(irate(hono_messages_payload_bytes_sum{type=\"telemetry\",status=\"undeliverable\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "undeliverable", + "refId": "B" + }, + { + "expr": "sum(irate(hono_messages_payload_bytes_sum{type=\"telemetry\",status=\"forwarded\"}[$__range]))", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "forwarded", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "payload", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": false, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": "bytes/sec", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "description": "average rate of data received from devices as payload of events", + "fill": 1, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 10 + }, + "id": 59, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(hono_messages_payload_bytes_sum{type=\"event\",status=\"unprocessable\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "unprocessable", + "refId": "C" + }, + { + "expr": "sum(irate(hono_messages_payload_bytes_sum{type=\"event\",status=\"undeliverable\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "undeliverable", + "refId": "B" + }, + { + "expr": "sum(irate(hono_messages_payload_bytes_sum{type=\"event\",status=\"forwarded\"}[$__range]))", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "forwarded", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "payload", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": false, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": "bytes/sec", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "description": "average rate of data sent to devices as payload of commands", + "fill": 1, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 10 + }, + "id": 60, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(hono_commands_payload_bytes_sum{direction=~\"one-way|request\",status=\"unprocessable\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "unprocessable", + "refId": "C" + }, + { + "expr": "sum(irate(hono_commands_payload_bytes_sum{direction=~\"one-way|request\",status=\"undeliverable\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "undeliverable", + "refId": "B" + }, + { + "expr": "sum(irate(hono_commands_payload_bytes_sum{direction=~\"one-way|request\",status=\"forwarded\"}[$__range]))", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "forwarded", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "payload", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": false, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": "bytes/sec", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "description": "average rate of valid telemetry messages received from devices which could not be delivered downstream", + "fill": 1, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 18 + }, + "id": 61, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "(100 * sum(irate(hono_messages_received_seconds_count{type=\"telemetry\",qos=\"0\",status=\"undeliverable\"}[$__range])))\n/\nsum(irate(hono_messages_received_seconds_count{type=\"telemetry\",qos=\"0\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "QoS 0", + "refId": "C" + }, + { + "expr": "(100 * sum(irate(hono_messages_received_seconds_count{type=\"telemetry\",qos=\"1\",status=\"undeliverable\"}[$__range])))\n/\nsum(irate(hono_messages_received_seconds_count{type=\"telemetry\",qos=\"1\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "QoS 1", + "refId": "A" + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": true, + "line": true, + "op": "gt", + "value": 5, + "yaxis": "left" + }, + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 15, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "undeliverable rate", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": false, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": "percent", + "logBase": 10, + "max": "100", + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "description": "average rate of valid events received from devices which could not be delivered downstream", + "fill": 1, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 18 + }, + "id": 62, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "(100 * sum(irate(hono_messages_received_seconds_count{type=\"event\",status=\"undeliverable\"}[$__range])))\n/\nsum(irate(hono_messages_received_seconds_count{type=\"event\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "not forwarded", + "refId": "C" + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": true, + "line": true, + "op": "gt", + "value": 1, + "yaxis": "left" + }, + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 5, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "undeliverable rate", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": false, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": "percent", + "logBase": 10, + "max": "100", + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "hono_metrics", + "description": "average rate of valid commands received from applications which could not be delivered to devices", + "fill": 1, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 18 + }, + "id": 63, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "(100 * sum(irate(hono_commands_received_seconds_count{direction=~\"one-way|request\",status=\"undeliverable\"}[$__range])))\n/\nsum(irate(hono_commands_received_seconds_count{direction=\"one-way|request\"}[$__range]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "not forwarded", + "refId": "C" + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": true, + "line": true, + "op": "gt", + "value": 5, + "yaxis": "left" + }, + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 15, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "undeliverable rate", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": false, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": "percent", + "logBase": 10, + "max": "100", + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "columns": [], + "datasource": "hono_metrics", + "description": "The number of containers running for each service.", + "fontSize": "100%", + "gridPos": { + "h": 5, + "w": 8, + "x": 0, + "y": 26 + }, + "id": 65, + "links": [], + "pageSize": null, + "scroll": true, + "showHeader": true, + "sort": { + "col": 1, + "desc": true + }, + "styles": [ + { + "alias": "Service", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "job", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "Count", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "decimals": 0, + "pattern": "Value", + "thresholds": [], + "type": "number", + "unit": "short" + }, + { + "alias": "", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "Time", + "thresholds": [], + "type": "date", + "unit": "short" + } + ], + "targets": [ + { + "expr": "sum(up) by (job)", + "format": "table", + "instant": true, + "intervalFactor": 1, + "refId": "A" + } + ], + "title": "Service Instances", + "transform": "table", + "type": "table" + } + ], + "refresh": "10s", + "schemaVersion": 16, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-5m", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "Overview", + "uid": "QpiDB0Bmz", + "version": 1 +} diff --git a/charts/hono/example/amqp-adapter.credentials b/charts/hono/example/amqp-adapter.credentials new file mode 100644 index 00000000..afa3b4c4 --- /dev/null +++ b/charts/hono/example/amqp-adapter.credentials @@ -0,0 +1,2 @@ +username=amqp-adapter@HONO +password=amqp-secret diff --git a/charts/hono/example/coap-adapter.credentials b/charts/hono/example/coap-adapter.credentials new file mode 100644 index 00000000..57f93b92 --- /dev/null +++ b/charts/hono/example/coap-adapter.credentials @@ -0,0 +1,2 @@ +username=coap-adapter@HONO +password=coap-secret diff --git a/charts/hono/example/example-credentials.json b/charts/hono/example/example-credentials.json new file mode 100644 index 00000000..13a69015 --- /dev/null +++ b/charts/hono/example/example-credentials.json @@ -0,0 +1,62 @@ +[ + { + "tenant": "DEFAULT_TENANT", + "credentials": [ + { + "device-id": "4711", + "type": "hashed-password", + "auth-id": "sensor1", + "enabled": true, + "secrets": [ + { + "not-before": "2017-05-01T14:00:00+01:00", + "not-after": "2037-06-01T14:00:00+01:00", + "hash-function": "bcrypt", + "comment": "pwd: hono-secret", + "pwd-hash": "$2a$10$N7UMjhZ2hYx.yuvW9WVXZ.4y33mr6MvnpAsZ8wgLHnkamH2tZ1jD." + } + ] + }, + { + "device-id": "gw-1", + "type": "hashed-password", + "auth-id": "gw", + "enabled": true, + "secrets": [ + { + "not-before": "2018-01-01T00:00:00+01:00", + "not-after": "2037-06-01T14:00:00+01:00", + "hash-function": "bcrypt", + "comment": "pwd: gw-secret", + "pwd-hash": "$2a$10$GMcN0iV9gJV7L1sH6J82Xebc1C7CGJ..Rbs./vcTuTuxPEgS9DOa6" + } + ] + }, + { + "device-id" : "4711", + "type" : "psk", + "auth-id" : "sensor1", + "enabled" : true, + "secrets" : [ + { + "not-before": "2018-01-01T00:00:00+01:00", + "not-after": "2037-06-01T14:00:00+01:00", + "comment": "coap preshared key: coap-secret", + "key" : "Y29hcC1zZWNyZXQ=" + } + ] + }, + { + "device-id": "4711", + "type": "x509-cert", + "auth-id": "CN=Device 4711,OU=Hono,O=Eclipse IoT,L=Ottawa,C=CA", + "enabled": true, + "secrets": [ + { + "comment": "The secrets array must contain an object, which can be empty." + } + ] + } + ] + } +] diff --git a/charts/hono/example/example-device-identities.json b/charts/hono/example/example-device-identities.json new file mode 100644 index 00000000..80e9ef5f --- /dev/null +++ b/charts/hono/example/example-device-identities.json @@ -0,0 +1,36 @@ +[ + { + "tenant": "DEFAULT_TENANT", + "devices": [ + { + "device-id": "4711", + "data": { + "enabled": true, + "comment": [ + "messages published without a content type will get the default type defined below", + "non-standard properties ('importance') will be added to the message's application-properties" + ], + "defaults": { + "content-type": "application/vnd.bumlux", + "importance": "high" + } + } + }, + { + "device-id": "4712", + "data": { + "enabled": true, + "comment": ["this device connects only via the gateway indicated by the 'via' property","therefore, no credentials are registered for the device"], + "via":"gw-1" + } + }, + { + "device-id": "gw-1", + "comment": "this device is authorized to publish data on behalf of device 4712", + "data": { + "enabled": true + } + } + ] + } +] diff --git a/charts/hono/example/example-permissions.json b/charts/hono/example/example-permissions.json new file mode 100644 index 00000000..0d3e36bd --- /dev/null +++ b/charts/hono/example/example-permissions.json @@ -0,0 +1,128 @@ +{ + "roles": { + "protocol-adapter": [ + { + "resource": "telemetry/*", + "activities": [ "WRITE" ] + }, + { + "resource": "event/*", + "activities": [ "WRITE" ] + }, + { + "resource": "registration/*", + "activities": [ "READ", "WRITE" ] + }, + { + "operation": "registration/*:assert", + "activities": [ "EXECUTE" ] + }, + { + "operation": "registration/*:get", + "activities": [ "EXECUTE" ] + }, + { + "resource": "credentials/*", + "activities": [ "READ", "WRITE" ] + }, + { + "operation": "credentials/*:get", + "activities": [ "EXECUTE" ] + }, + { + "resource": "tenant", + "activities": [ "READ", "WRITE" ] + }, + { + "operation": "tenant/*:*", + "activities": [ "EXECUTE" ] + }, + { + "resource": "device_con/*", + "activities": [ "READ", "WRITE" ] + }, + { + "operation": "device_con/*:*", + "activities": [ "EXECUTE" ] + } + ], + "device-manager": [ + { + "resource": "registration/*", + "activities": [ "READ", "WRITE" ] + }, + { + "operation": "registration/*:*", + "activities": [ "EXECUTE" ] + } + ], + "application": [ + { + "resource": "telemetry/*", + "activities": [ "READ" ] + }, + { + "resource": "event/*", + "activities": [ "READ" ] + }, + { + "resource": "control/*", + "activities": [ "READ", "WRITE" ] + }, + { + "resource": "command/*", + "activities": [ "WRITE" ] + }, + { + "resource": "command_response/*", + "activities": [ "READ" ] + } + ] + }, + "users": { + "coap-adapter@HONO": { + "mechanism": "PLAIN", + "password": "coap-secret", + "authorities": [ "hono-component", "protocol-adapter" ] + }, + "http-adapter@HONO": { + "mechanism": "PLAIN", + "password": "http-secret", + "authorities": [ "hono-component", "protocol-adapter" ] + }, + "lora-adapter@HONO": { + "mechanism": "PLAIN", + "password": "lora-secret", + "authorities": [ "hono-component", "protocol-adapter" ] + }, + "mqtt-adapter@HONO": { + "mechanism": "PLAIN", + "password": "mqtt-secret", + "authorities": [ "hono-component", "protocol-adapter" ] + }, + "amqp-adapter@HONO": { + "mechanism": "PLAIN", + "password": "amqp-secret", + "authorities": [ "hono-component", "protocol-adapter" ] + }, + "kura-adapter@HONO": { + "mechanism": "PLAIN", + "password": "kura-secret", + "authorities": [ "hono-component", "protocol-adapter" ] + }, + "hono-client@HONO": { + "mechanism": "PLAIN", + "password": "secret", + "authorities": [ "protocol-adapter", "device-manager" ] + }, + "device-registry": { + "mechanism": "EXTERNAL", + "authorities": [] + }, + "consumer@HONO": { + "mechanism": "PLAIN", + "password": "verysecret", + "authorities": [ "application" ] + } + } +} diff --git a/charts/hono/example/example-tenants.json b/charts/hono/example/example-tenants.json new file mode 100644 index 00000000..f5fe86b2 --- /dev/null +++ b/charts/hono/example/example-tenants.json @@ -0,0 +1,41 @@ +[ + { + "tenant-id": "DEFAULT_TENANT", + "trusted-ca": [ + { + "subject-dn": "CN=DEFAULT_TENANT_CA,OU=Hono,O=Eclipse IoT,L=Ottawa,C=CA", + "public-key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElkwCSPlO563eQb6ONdULAISm2XngGGSoAAz+I1s8zkS9guPUpNKoxeczLtKlObelHqBgIZtRXdrPRgXidGOnmQ==", + "algorithm": "EC", + "not-before": "2019-09-18T10:35:40+02:00", + "not-after": "2020-09-17T10:35:40+02:00" + } + ], + "enabled": true + }, + { + "tenant-id": "HTTP_TENANT", + "enabled": true, + "adapters": [ + { + "type": "hono-http", + "enabled": true, + "device-authentication-required": true + }, + { + "type": "hono-mqtt", + "enabled": false, + "device-authentication-required": true + }, + { + "type": "hono-kura", + "enabled": false, + "device-authentication-required": true + }, + { + "type": "hono-coap", + "enabled": false, + "device-authentication-required": true + } + ] + } +] diff --git a/charts/hono/example/http-adapter.credentials b/charts/hono/example/http-adapter.credentials new file mode 100644 index 00000000..a9e27a8d --- /dev/null +++ b/charts/hono/example/http-adapter.credentials @@ -0,0 +1,2 @@ +username=http-adapter@HONO +password=http-secret diff --git a/charts/hono/example/kura-adapter.credentials b/charts/hono/example/kura-adapter.credentials new file mode 100644 index 00000000..5c6536bd --- /dev/null +++ b/charts/hono/example/kura-adapter.credentials @@ -0,0 +1,2 @@ +username=kura-adapter@HONO +password=kura-secret diff --git a/charts/hono/example/lora-adapter.credentials b/charts/hono/example/lora-adapter.credentials new file mode 100644 index 00000000..53fcdbf9 --- /dev/null +++ b/charts/hono/example/lora-adapter.credentials @@ -0,0 +1,2 @@ +username=lora-adapter@HONO +password=lora-secret diff --git a/charts/hono/example/mqtt-adapter.credentials b/charts/hono/example/mqtt-adapter.credentials new file mode 100644 index 00000000..4379f0ca --- /dev/null +++ b/charts/hono/example/mqtt-adapter.credentials @@ -0,0 +1,2 @@ +username=mqtt-adapter@HONO +password=mqtt-secret diff --git a/charts/hono/hono-demo-certs-jar/amqp-adapter-cert.pem b/charts/hono/hono-demo-certs-jar/amqp-adapter-cert.pem new file mode 100644 index 00000000..40249b9d --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/amqp-adapter-cert.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIJAIAzeQIsnyXzMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMFoxCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMRUwEwYDVQQDDAxhbXFwLWFkYXB0 +ZXIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQPbvPLmvMjc7qbh5mmm27WAjSW +2CJQvs2qVaCGd8dj2gDHVtjPdw2xgWyzlThtnSfgYu/rTq7SGhSsm4omEWm6o4Gb +MIGYMB0GA1UdDgQWBBTpbcFGcu7I7dBsx50Poq95L/xl6jALBgNVHQ8EBAMCA6gw +HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEsGA1UdEQREMEKCF2hvbm8t +YWRhcHRlci1hbXFwLXZlcnR4ghxob25vLWFkYXB0ZXItYW1xcC12ZXJ0eC5ob25v +gglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDSAAwRQIgJ9fhN9eIuNDqVrsLfzsWheHR +VjljahX4GVyQNGVGOJICIQDKKVX4Yg9uU2IusYQ7bCCqJuWWxWMj68BHBjJD2ttF +nA== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/amqp-adapter-key.pem b/charts/hono/hono-demo-certs-jar/amqp-adapter-key.pem new file mode 100644 index 00000000..82b8f2ee --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/amqp-adapter-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg8bMs7pAYYoiH6Vgq +dTNVA0zOcsfsL+OwXbA4b4a1NuKhRANCAAQPbvPLmvMjc7qbh5mmm27WAjSW2CJQ +vs2qVaCGd8dj2gDHVtjPdw2xgWyzlThtnSfgYu/rTq7SGhSsm4omEWm6 +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/amqpKeyStore.p12 b/charts/hono/hono-demo-certs-jar/amqpKeyStore.p12 new file mode 100644 index 00000000..305a5634 Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/amqpKeyStore.p12 differ diff --git a/charts/hono/hono-demo-certs-jar/artemis-cert.pem b/charts/hono/hono-demo-certs-jar/artemis-cert.pem new file mode 100644 index 00000000..418f2570 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/artemis-cert.pem @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIICIjCCAcigAwIBAgIJAIAzeQIsnyXxMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMFUxCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMRAwDgYDVQQDDAdhcnRlbWlzMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE40PfD8H2zxV/63S3kMHOB3U/vyI1Zi+6 +Joh3CRR1AavRrFn5B/iPCtVquzy6Jnsm3TcUsaoZHRb9+RVmWuOU9KOBhTCBgjAd +BgNVHQ4EFgQUBzO+nMoEyVVSoR7wuDt7+tZIsYswCwYDVR0PBAQDAgOoMB0GA1Ud +JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA1BgNVHREELjAsggxob25vLWFydGVt +aXOCEWhvbm8tYXJ0ZW1pcy5ob25vgglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDSAAw +RQIgOTTzLf4foIXD9N+jzIR5mhd8KOXHQAyGRfS6lprRm9UCIQCw2AJUIucdV/Ka +re1earEHa78GXwsTqkrFpZxV7IYFKg== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/artemis-key.pem b/charts/hono/hono-demo-certs-jar/artemis-key.pem new file mode 100644 index 00000000..fe11c927 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/artemis-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg5WjPTQ8EkD28ckDt +cOV4HJXQ9TTn2QQlX6rjM9LsZP6hRANCAATjQ98PwfbPFX/rdLeQwc4HdT+/IjVm +L7omiHcJFHUBq9GsWfkH+I8K1Wq7PLomeybdNxSxqhkdFv35FWZa45T0 +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/artemisKeyStore.p12 b/charts/hono/hono-demo-certs-jar/artemisKeyStore.p12 new file mode 100644 index 00000000..55677d20 Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/artemisKeyStore.p12 differ diff --git a/charts/hono/hono-demo-certs-jar/auth-server-cert.pem b/charts/hono/hono-demo-certs-jar/auth-server-cert.pem new file mode 100644 index 00000000..c8c4e818 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/auth-server-cert.pem @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIICMTCCAdagAwIBAgIJAIAzeQIsnyXqMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMFkxCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMRQwEgYDVQQDDAthdXRoLXNlcnZl +cjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGAGHzTzj6V/qb3GbKJPqEaUSRiu +xiUS3SYpQKP00XIEaUM92hEmiV94vgFxnryso/YTtFubZMxTUib6i0tZwVyjgY8w +gYwwHQYDVR0OBBYEFOX+j/RvG379cxy/MOoVkZ/wYou3MAsGA1UdDwQEAwIDqDAd +BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwPwYDVR0RBDgwNoIRaG9uby1z +ZXJ2aWNlLWF1dGiCFmhvbm8tc2VydmljZS1hdXRoLmhvbm+CCWxvY2FsaG9zdDAK +BggqhkjOPQQDAgNJADBGAiEArBGHfRazHWmSexsf6Jmzc+y/6dVfVBWH+VYSWy1Y +AdICIQDA8e2CPcMTW1SoaBBOpxozUvsbgxTcsg1H1ojTN4kjKg== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/auth-server-key.pem b/charts/hono/hono-demo-certs-jar/auth-server-key.pem new file mode 100644 index 00000000..ebe6ee36 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/auth-server-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgFeEhepquGCf9zXwx +I4gAUlhbUsyszY60Aliy+lb8VnehRANCAARgBh8084+lf6m9xmyiT6hGlEkYrsYl +Et0mKUCj9NFyBGlDPdoRJolfeL4BcZ68rKP2E7Rbm2TMU1Im+otLWcFc +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/authServerKeyStore.p12 b/charts/hono/hono-demo-certs-jar/authServerKeyStore.p12 new file mode 100644 index 00000000..905b8b0c Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/authServerKeyStore.p12 differ diff --git a/charts/hono/hono-demo-certs-jar/ca-cert.pem b/charts/hono/hono-demo-certs-jar/ca-cert.pem new file mode 100644 index 00000000..4cf508d1 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/ca-cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/ca-key.pem b/charts/hono/hono-demo-certs-jar/ca-key.pem new file mode 100644 index 00000000..8cf4bf52 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/ca-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgctJeP38n/ldOAhHe +vRljN1lysJzOxc6locpSGlQZHzihRANCAATlwljuPLTSfY+buxrW7FX2bf1K10bS +RbSN3GTKWluTeVVDIkVUDJV6AoAeTCJq3GfG5o7QgjuOvfxRcaAej0MH +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/coap-adapter-cert.pem b/charts/hono/hono-demo-certs-jar/coap-adapter-cert.pem new file mode 100644 index 00000000..14e90f8b --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/coap-adapter-cert.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIICPjCCAeOgAwIBAgIJAIAzeQIsnyXyMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMFoxCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMRUwEwYDVQQDDAxjb2FwLWFkYXB0 +ZXIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQpnimECC9yzzDRh777GU/XnSke +N7QT5XpWBK9rRI+ZVTNiiMRVzDi84xzaIfjy8gaME2kAtTN6cRDmHRR2CczDo4Gb +MIGYMB0GA1UdDgQWBBR0PqK90QkfOH0WghhFiZIPC/p5RTALBgNVHQ8EBAMCA6gw +HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEsGA1UdEQREMEKCF2hvbm8t +YWRhcHRlci1jb2FwLXZlcnR4ghxob25vLWFkYXB0ZXItY29hcC12ZXJ0eC5ob25v +gglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDSQAwRgIhAJuWYhbBWEhvVAnrak2UX/aB +GaiNj5abeT1MHT/DbUKSAiEAqgt7kdlIX7FgKVVpaFmj0M+CNNMKX16tScJNK/LQ +gNc= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/coap-adapter-key.pem b/charts/hono/hono-demo-certs-jar/coap-adapter-key.pem new file mode 100644 index 00000000..0c7975a9 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/coap-adapter-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgdrU4oLMrAV3n3YRj +JldhTufe/mzAZP3gi7aBhMvVOOChRANCAAQpnimECC9yzzDRh777GU/XnSkeN7QT +5XpWBK9rRI+ZVTNiiMRVzDi84xzaIfjy8gaME2kAtTN6cRDmHRR2CczD +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/coapKeyStore.p12 b/charts/hono/hono-demo-certs-jar/coapKeyStore.p12 new file mode 100644 index 00000000..545a0eb9 Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/coapKeyStore.p12 differ diff --git a/charts/hono/hono-demo-certs-jar/default_tenant-cert.pem b/charts/hono/hono-demo-certs-jar/default_tenant-cert.pem new file mode 100644 index 00000000..68c996ed --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/default_tenant-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICEjCCAbmgAwIBAgIUYhyWIMx4xPRdrHGBPvjhAotkivEwCgYIKoZIzj0EAwIw +XzELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UECgwLRWNsaXBz +ZSBJb1QxDTALBgNVBAsMBEhvbm8xGjAYBgNVBAMMEURFRkFVTFRfVEVOQU5UX0NB +MB4XDTE5MDkxODA4MzU0MFoXDTIwMDkxNzA4MzU0MFowXzELMAkGA1UEBhMCQ0Ex +DzANBgNVBAcMBk90dGF3YTEUMBIGA1UECgwLRWNsaXBzZSBJb1QxDTALBgNVBAsM +BEhvbm8xGjAYBgNVBAMMEURFRkFVTFRfVEVOQU5UX0NBMFkwEwYHKoZIzj0CAQYI +KoZIzj0DAQcDQgAElkwCSPlO563eQb6ONdULAISm2XngGGSoAAz+I1s8zkS9guPU +pNKoxeczLtKlObelHqBgIZtRXdrPRgXidGOnmaNTMFEwHQYDVR0OBBYEFC9Pa5Mf +pPyg3PsNELICNiANVF5PMB8GA1UdIwQYMBaAFC9Pa5MfpPyg3PsNELICNiANVF5P +MA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwIDRwAwRAIgHSYrRlLIDt9Xg9gs +3Mqfr9hQx1COjd7Pz0srm4UxvsUCIB8NldXysBY6Q/lQ9qd9e2+OSHRMv24OBkiY +UZYGIkBN +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/default_tenant-key.pem b/charts/hono/hono-demo-certs-jar/default_tenant-key.pem new file mode 100644 index 00000000..51fef6bc --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/default_tenant-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgMkR4fBHPdES2ODgW +70vqm0GcsFnoSmQipum9uFu9pWuhRANCAASWTAJI+U7nrd5Bvo411QsAhKbZeeAY +ZKgADP4jWzzORL2C49Sk0qjF5zMu0qU5t6UeoGAhm1Fd2s9GBeJ0Y6eZ +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/device-4711-cert.pem b/charts/hono/hono-demo-certs-jar/device-4711-cert.pem new file mode 100644 index 00000000..a44b9011 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/device-4711-cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIBszCCAVkCFDJrBMmAf9cHJyWRtqts9gwK3gwMMAoGCCqGSM49BAMCMF8xCzAJ +BgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9U +MQ0wCwYDVQQLDARIb25vMRowGAYDVQQDDBFERUZBVUxUX1RFTkFOVF9DQTAeFw0x +OTA5MTgwODM1NDBaFw0yMDA5MTcwODM1NDBaMFkxCzAJBgNVBAYTAkNBMQ8wDQYD +VQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25v +MRQwEgYDVQQDDAtEZXZpY2UgNDcxMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BPyG69kD48aRL/2VsuT//jbDHLkXn83uqxVRIUCq8Ow0YE9XyOKFto6FEyxPLzSx +BFwM7UfXA3yXMubhj1ri3mYwCgYIKoZIzj0EAwIDSAAwRQIgDu8w7mvC6K6VwRNf +G7ZaNge1C4JEOqS6pKVaSWENOkACIQDSU2eUsJJhS067/l9v5axDfCwl/24vssGE +LPJ/OsfaHg== +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/device-4711-key.pem b/charts/hono/hono-demo-certs-jar/device-4711-key.pem new file mode 100644 index 00000000..bb117b21 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/device-4711-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg+Xy6K1Cc8wG23i0w +bvm1r6MmP7HHTkwB21/3d43QezWhRANCAAT8huvZA+PGkS/9lbLk//42wxy5F5/N +7qsVUSFAqvDsNGBPV8jihbaOhRMsTy80sQRcDO1H1wN8lzLm4Y9a4t5m +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/device-certs.properties b/charts/hono/hono-demo-certs-jar/device-certs.properties new file mode 100644 index 00000000..1a8735e5 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/device-certs.properties @@ -0,0 +1 @@ +cert.device-4711.subject=CN=Device 4711,OU=Hono,O=Eclipse IoT,L=Ottawa,C=CA diff --git a/charts/hono/hono-demo-certs-jar/device-connection-cert.pem b/charts/hono/hono-demo-certs-jar/device-connection-cert.pem new file mode 100644 index 00000000..04bb21a9 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/device-connection-cert.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIICUDCCAfagAwIBAgIJAIAzeQIsnyXsMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMF8xCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMRowGAYDVQQDDBFkZXZpY2UtY29u +bmVjdGlvbjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGNJ9hZ8cZnptrRaf6Jp +85cqNotZj8KPeu8Cl5XnMcR/FUtyBPQ4Ua9az7CAR5k9RDRdf0Yb7oEmnDfDrZCW +fC+jgakwgaYwHQYDVR0OBBYEFEum8zsqUiDl6nub5evHvWF98AObMAsGA1UdDwQE +AwIDqDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwWQYDVR0RBFIwUIIe +aG9uby1zZXJ2aWNlLWRldmljZS1jb25uZWN0aW9ugiNob25vLXNlcnZpY2UtZGV2 +aWNlLWNvbm5lY3Rpb24uaG9ub4IJbG9jYWxob3N0MAoGCCqGSM49BAMCA0gAMEUC +IQD7ULJwJ8iMPipW/PX/ByEZLl272UnOrFA6wf6WLjvvCwIgK2LWeUftk0pvHQ+n +6o4qPBmSD+j+9V6UQ/7d2Zi0Nbg= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/device-connection-key.pem b/charts/hono/hono-demo-certs-jar/device-connection-key.pem new file mode 100644 index 00000000..7908991e --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/device-connection-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0CznfQ3m8QNWQ/kP +XTV/aw4IWzpD/ipcEwe0HQFffSqhRANCAARjSfYWfHGZ6ba0Wn+iafOXKjaLWY/C +j3rvApeV5zHEfxVLcgT0OFGvWs+wgEeZPUQ0XX9GG+6BJpw3w62Qlnwv +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/device-registry-cert.pem b/charts/hono/hono-demo-certs-jar/device-registry-cert.pem new file mode 100644 index 00000000..cfacd450 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/device-registry-cert.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAfCgAwIBAgIJAIAzeQIsnyXrMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMF0xCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMRgwFgYDVQQDDA9kZXZpY2UtcmVn +aXN0cnkwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASSn4d/j7vhQL3mRI3k1CNL +EpU6LPM9ypji2DAY7T/wxRHzNr1ZYcee6KE2E6KSuVtP5qrvh2nsdQ8lXY+nXZJQ +o4GlMIGiMB0GA1UdDgQWBBSsXe4xfm/lam1IAnIhlkVI5WyaOTALBgNVHQ8EBAMC +A6gwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMFUGA1UdEQROMEyCHGhv +bm8tc2VydmljZS1kZXZpY2UtcmVnaXN0cnmCIWhvbm8tc2VydmljZS1kZXZpY2Ut +cmVnaXN0cnkuaG9ub4IJbG9jYWxob3N0MAoGCCqGSM49BAMCA0gAMEUCIQDrMZki +2q9KHdLEHwHLpizvOUwS9zxwvEmgWVAz5SXqEQIgf4swChSfW1RtLrhu8Gq9fs0f +Nda/ilWCDFbN3g9vpzg= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/device-registry-key.pem b/charts/hono/hono-demo-certs-jar/device-registry-key.pem new file mode 100644 index 00000000..55f7234d --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/device-registry-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4tDNgPUVT8xcNd4g +/1tPCuqsDcJs0tpIsscPVHigq/2hRANCAASSn4d/j7vhQL3mRI3k1CNLEpU6LPM9 +ypji2DAY7T/wxRHzNr1ZYcee6KE2E6KSuVtP5qrvh2nsdQ8lXY+nXZJQ +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/deviceConnectionKeyStore.p12 b/charts/hono/hono-demo-certs-jar/deviceConnectionKeyStore.p12 new file mode 100644 index 00000000..6214de3b Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/deviceConnectionKeyStore.p12 differ diff --git a/charts/hono/hono-demo-certs-jar/deviceRegistryKeyStore.p12 b/charts/hono/hono-demo-certs-jar/deviceRegistryKeyStore.p12 new file mode 100644 index 00000000..c6c6f2c0 Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/deviceRegistryKeyStore.p12 differ diff --git a/charts/hono/hono-demo-certs-jar/http-adapter-cert.pem b/charts/hono/hono-demo-certs-jar/http-adapter-cert.pem new file mode 100644 index 00000000..3d628302 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/http-adapter-cert.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIJAIAzeQIsnyXtMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMFoxCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMRUwEwYDVQQDDAxodHRwLWFkYXB0 +ZXIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQFXnO/KE7Z004WepuA9web91h4 ++AilIlOoCU3DvsgR2euf8TM7c32RnRU72ymfyP4mE5Gr4B4gVDJVxEPIWec+o4Gb +MIGYMB0GA1UdDgQWBBS0DbIN/bZiFF/Rofwb9A44VF/20jALBgNVHQ8EBAMCA6gw +HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEsGA1UdEQREMEKCF2hvbm8t +YWRhcHRlci1odHRwLXZlcnR4ghxob25vLWFkYXB0ZXItaHR0cC12ZXJ0eC5ob25v +gglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDSAAwRQIhANzHxEKVx/kQZXfeDCvntIYe +XKpAQJYlqBL07mwCwVZdAiBJsARl5Wwoe/l4jIYhTKLNeT+faYx5XwzqObaQmD06 +tw== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/http-adapter-key.pem b/charts/hono/hono-demo-certs-jar/http-adapter-key.pem new file mode 100644 index 00000000..8fd89e51 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/http-adapter-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2NvK//o1lk/JyRH8 +GxQek2owIw5+dvohJ32S2QjSr7ShRANCAAQFXnO/KE7Z004WepuA9web91h4+Ail +IlOoCU3DvsgR2euf8TM7c32RnRU72ymfyP4mE5Gr4B4gVDJVxEPIWec+ +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/httpKeyStore.p12 b/charts/hono/hono-demo-certs-jar/httpKeyStore.p12 new file mode 100644 index 00000000..b0e55179 Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/httpKeyStore.p12 differ diff --git a/charts/hono/hono-demo-certs-jar/kura-adapter-cert.pem b/charts/hono/hono-demo-certs-jar/kura-adapter-cert.pem new file mode 100644 index 00000000..54d704b4 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/kura-adapter-cert.pem @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIICMjCCAdegAwIBAgIJAIAzeQIsnyXwMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMFoxCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMRUwEwYDVQQDDAxrdXJhLWFkYXB0 +ZXIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARk9U3dJIr7vwXjFPzaTrTxp8SK +Xk8C4kZp58YoR1csp4GCCmIR+aatNmGb646J+zO0ycgSnYGKiOI110GmGXONo4GP +MIGMMB0GA1UdDgQWBBQXWG8mrQXcf+0YFU8foitLO83ENzALBgNVHQ8EBAMCA6gw +HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMD8GA1UdEQQ4MDaCEWhvbm8t +YWRhcHRlci1rdXJhghZob25vLWFkYXB0ZXIta3VyYS5ob25vgglsb2NhbGhvc3Qw +CgYIKoZIzj0EAwIDSQAwRgIhANnWCjuAjeGW6bADtUzg5cSg3cY0J8S97S7qyGzb +Fjb0AiEAopRjyJ2aaQVeTUV/FUCbbP2DvtblFfz/bs+fqpNqyxY= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/kura-adapter-key.pem b/charts/hono/hono-demo-certs-jar/kura-adapter-key.pem new file mode 100644 index 00000000..2eba01d9 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/kura-adapter-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgmkZ+DLCS0Ywz8Z2d +MMrf/HAn36lii0S5IPj4GLhDJ/ahRANCAARk9U3dJIr7vwXjFPzaTrTxp8SKXk8C +4kZp58YoR1csp4GCCmIR+aatNmGb646J+zO0ycgSnYGKiOI110GmGXON +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/kuraKeyStore.p12 b/charts/hono/hono-demo-certs-jar/kuraKeyStore.p12 new file mode 100644 index 00000000..bdc55951 Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/kuraKeyStore.p12 differ diff --git a/charts/hono/hono-demo-certs-jar/lora-adapter-cert.pem b/charts/hono/hono-demo-certs-jar/lora-adapter-cert.pem new file mode 100644 index 00000000..af64fa57 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/lora-adapter-cert.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIICPjCCAeOgAwIBAgIJAIAzeQIsnyXuMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMFoxCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMRUwEwYDVQQDDAxsb3JhLWFkYXB0 +ZXIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQQFfgXcYoV31nqBckCFkZqvs3z +z8fz6B7UihmmM7qot6Uj/QJGeJrWUgysp+fOpzy2yN1jat5DBVIfSXhWkzqvo4Gb +MIGYMB0GA1UdDgQWBBSVgtVjBzwaJM1ByFMUL2J6yXJobjALBgNVHQ8EBAMCA6gw +HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEsGA1UdEQREMEKCF2hvbm8t +YWRhcHRlci1sb3JhLXZlcnR4ghxob25vLWFkYXB0ZXItbG9yYS12ZXJ0eC5ob25v +gglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDSQAwRgIhAJWa0R+t9O+VgDtle+4cpL0L +yibW0lZJg80T0p6DP4mwAiEAk2mSEAXl+Xd7rscS/ojZP+qQP6LwYgfzscv0If1s +SCc= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/lora-adapter-key.pem b/charts/hono/hono-demo-certs-jar/lora-adapter-key.pem new file mode 100644 index 00000000..d75a3c81 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/lora-adapter-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgrYGIozTJxgQC04RC +xvCC/GrC5eoVBkJPjREqvYT/1VWhRANCAAQQFfgXcYoV31nqBckCFkZqvs3zz8fz +6B7UihmmM7qot6Uj/QJGeJrWUgysp+fOpzy2yN1jat5DBVIfSXhWkzqv +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/loraKeyStore.p12 b/charts/hono/hono-demo-certs-jar/loraKeyStore.p12 new file mode 100644 index 00000000..5b5b0864 Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/loraKeyStore.p12 differ diff --git a/charts/hono/hono-demo-certs-jar/mqtt-adapter-cert.pem b/charts/hono/hono-demo-certs-jar/mqtt-adapter-cert.pem new file mode 100644 index 00000000..a30e0cce --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/mqtt-adapter-cert.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIJAIAzeQIsnyXvMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMFoxCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMRUwEwYDVQQDDAxtcXR0LWFkYXB0 +ZXIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQK+D7RE7O8HuKEVeBrC7Ql64RT +RW+m/4YhMLPajyQQChJzqfqqVAlhNe/hvNrwXl7QbRByjMwLACzc9Iyk2XUco4Gb +MIGYMB0GA1UdDgQWBBQhOgD5pRY48JkxGtiHInjaLTnQJDALBgNVHQ8EBAMCA6gw +HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEsGA1UdEQREMEKCF2hvbm8t +YWRhcHRlci1tcXR0LXZlcnR4ghxob25vLWFkYXB0ZXItbXF0dC12ZXJ0eC5ob25v +gglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDSAAwRQIhANK+dkEY8QDIzDVbOJ+ASVPW +vKCIcsb8YIuhixhoI5ZKAiB0VV9d2ZiQ0JHb2Gok/Cl5UziOOFKps9HUwyDjNBbe +yg== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/mqtt-adapter-key.pem b/charts/hono/hono-demo-certs-jar/mqtt-adapter-key.pem new file mode 100644 index 00000000..e339cdcc --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/mqtt-adapter-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgFnx9oCMKtoV+QXQD +SGBeuQ9uFTYewAeZoqHoYOOYvoyhRANCAAQK+D7RE7O8HuKEVeBrC7Ql64RTRW+m +/4YhMLPajyQQChJzqfqqVAlhNe/hvNrwXl7QbRByjMwLACzc9Iyk2XUc +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/mqttKeyStore.p12 b/charts/hono/hono-demo-certs-jar/mqttKeyStore.p12 new file mode 100644 index 00000000..dce64e31 Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/mqttKeyStore.p12 differ diff --git a/charts/hono/hono-demo-certs-jar/qdrouter-cert.pem b/charts/hono/hono-demo-certs-jar/qdrouter-cert.pem new file mode 100644 index 00000000..2420a641 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/qdrouter-cert.pem @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIICMjCCAdmgAwIBAgIJAIAzeQIsnyXpMAoGCCqGSM49BAMCMFAxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQswCQYDVQQDDAJjYTAeFw0xOTA5MTgwODM1NDBaFw0yMDA5MTcw +ODM1NDBaMFYxCzAJBgNVBAYTAkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoM +C0VjbGlwc2UgSW9UMQ0wCwYDVQQLDARIb25vMREwDwYDVQQDDAhxZHJvdXRlcjBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABD0ayRV3rSL7zIkaLG3ToZMQV6aja2+m +1zei4lj6OVh2PzHSsZgGPCULxDPIxAHBONnLWI7X1fUYuGjd5Pf4aSujgZUwgZIw +HQYDVR0OBBYEFL2Q1ytYUbYbv3smfR8G+xFTdR7mMAsGA1UdDwQEAwIDqDAdBgNV +HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwRQYDVR0RBD4wPIIUaG9uby1kaXNw +YXRjaC1yb3V0ZXKCGWhvbm8tZGlzcGF0Y2gtcm91dGVyLmhvbm+CCWxvY2FsaG9z +dDAKBggqhkjOPQQDAgNHADBEAiBO4Lgj6vt0goMoYgrOikSuD/nk/k5pdw/kanzT +hrbMdAIgaMNZEKEZrs3GmkrPtLOqqai8amgyIU1dVn2ORCWhpSU= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/qdrouter-key.pem b/charts/hono/hono-demo-certs-jar/qdrouter-key.pem new file mode 100644 index 00000000..4f63c8f6 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/qdrouter-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgDgcCoVJ9OXkzved4 +diYWZVHD22N04Wt+xRBJOniMXsihRANCAAQ9GskVd60i+8yJGixt06GTEFemo2tv +ptc3ouJY+jlYdj8x0rGYBjwlC8QzyMQBwTjZy1iO19X1GLho3eT3+Gkr +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/root-cert.pem b/charts/hono/hono-demo-certs-jar/root-cert.pem new file mode 100644 index 00000000..34bc6a59 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/root-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeDCCAh+gAwIBAgIUEsY2rEzZ/q/HIPtN/epKF0w5IXUwCgYIKoZIzj0EAwIw +UjELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UECgwLRWNsaXBz +ZSBJb1QxDTALBgNVBAsMBEhvbm8xDTALBgNVBAMMBHJvb3QwHhcNMTkwOTE4MDgz +NTM5WhcNMjAwOTE3MDgzNTM5WjBSMQswCQYDVQQGEwJDQTEPMA0GA1UEBwwGT3R0 +YXdhMRQwEgYDVQQKDAtFY2xpcHNlIElvVDENMAsGA1UECwwESG9ubzENMAsGA1UE +AwwEcm9vdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLJQPgTv/uMcJ8vJd84u +KAiDJB9dC8TUT/KminxM4M2JrMswkJf0ktyWIBo/yVDZrHyKGcFewTDgJvxMsWai +7UCjgdIwgc8wHQYDVR0OBBYEFAaiqcuoxAncqH+fK4Xw71fyY1WTMIGPBgNVHSME +gYcwgYSAFAaiqcuoxAncqH+fK4Xw71fyY1WToVakVDBSMQswCQYDVQQGEwJDQTEP +MA0GA1UEBwwGT3R0YXdhMRQwEgYDVQQKDAtFY2xpcHNlIElvVDENMAsGA1UECwwE +SG9ubzENMAsGA1UEAwwEcm9vdIIUEsY2rEzZ/q/HIPtN/epKF0w5IXUwDwYDVR0T +AQH/BAUwAwEB/zALBgNVHQ8EBAMCAQYwCgYIKoZIzj0EAwIDRwAwRAIgFEC0nsoF +pixVqUasgYss+DaP03Uh4/GM0Ao07IrAlagCIDxNcl0EL2YKOJF87Kx/hZCBqrEx +Z5B54VQnuoxHzHi4 +-----END CERTIFICATE----- diff --git a/charts/hono/hono-demo-certs-jar/root-key.pem b/charts/hono/hono-demo-certs-jar/root-key.pem new file mode 100644 index 00000000..f6be3507 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/root-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgdO1e04p47n6Se3hh +KR4Cwufu0F1AUuYUb3HczfRhSeuhRANCAASyUD4E7/7jHCfLyXfOLigIgyQfXQvE +1E/ypop8TODNiazLMJCX9JLcliAaP8lQ2ax8ihnBXsEw4Cb8TLFmou1A +-----END PRIVATE KEY----- diff --git a/charts/hono/hono-demo-certs-jar/trust-anchor.properties b/charts/hono/hono-demo-certs-jar/trust-anchor.properties new file mode 100644 index 00000000..2eb8e4e4 --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/trust-anchor.properties @@ -0,0 +1,5 @@ +trusted-ca.subject-dn=CN=DEFAULT_TENANT_CA,OU=Hono,O=Eclipse IoT,L=Ottawa,C=CA +trusted-ca.public-key=MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElkwCSPlO563eQb6ONdULAISm2XngGGSoAAz+I1s8zkS9guPUpNKoxeczLtKlObelHqBgIZtRXdrPRgXidGOnmQ== +trusted-ca.algorithm=EC +trusted-ca.not-before=2019-09-18T10:35:40+02:00 +trusted-ca.not-after=2020-09-17T10:35:40+02:00 diff --git a/charts/hono/hono-demo-certs-jar/trustStore.jks b/charts/hono/hono-demo-certs-jar/trustStore.jks new file mode 100644 index 00000000..94143eff Binary files /dev/null and b/charts/hono/hono-demo-certs-jar/trustStore.jks differ diff --git a/charts/hono/hono-demo-certs-jar/trusted-certs.pem b/charts/hono/hono-demo-certs-jar/trusted-certs.pem new file mode 100644 index 00000000..a14bfc3c --- /dev/null +++ b/charts/hono/hono-demo-certs-jar/trusted-certs.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIJAJcQk8rv/5TfMAoGCCqGSM49BAMCMFIxCzAJBgNVBAYT +AkNBMQ8wDQYDVQQHDAZPdHRhd2ExFDASBgNVBAoMC0VjbGlwc2UgSW9UMQ0wCwYD +VQQLDARIb25vMQ0wCwYDVQQDDARyb290MB4XDTE5MDkxODA4MzUzOVoXDTIwMDkx +NzA4MzUzOVowUDELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UE +CgwLRWNsaXBzZSBJb1QxDTALBgNVBAsMBEhvbm8xCzAJBgNVBAMMAmNhMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE5cJY7jy00n2Pm7sa1uxV9m39StdG0kW0jdxk +ylpbk3lVQyJFVAyVegKAHkwiatxnxuaO0II7jr38UXGgHo9DB6M/MD0wHQYDVR0O +BBYEFH3m8LU+IoU/j5doTyxd4QFTiE5lMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0P +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIEZUuvv5X1hOFhkhzQRU6BCyDbCKgdZw +vH6vn9JaTwjFAiEAtUmtlAPbxwFGJWN8XCP78v50gYgNWXtRDpiqQG99IoA= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICeDCCAh+gAwIBAgIUEsY2rEzZ/q/HIPtN/epKF0w5IXUwCgYIKoZIzj0EAwIw +UjELMAkGA1UEBhMCQ0ExDzANBgNVBAcMBk90dGF3YTEUMBIGA1UECgwLRWNsaXBz +ZSBJb1QxDTALBgNVBAsMBEhvbm8xDTALBgNVBAMMBHJvb3QwHhcNMTkwOTE4MDgz +NTM5WhcNMjAwOTE3MDgzNTM5WjBSMQswCQYDVQQGEwJDQTEPMA0GA1UEBwwGT3R0 +YXdhMRQwEgYDVQQKDAtFY2xpcHNlIElvVDENMAsGA1UECwwESG9ubzENMAsGA1UE +AwwEcm9vdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLJQPgTv/uMcJ8vJd84u +KAiDJB9dC8TUT/KminxM4M2JrMswkJf0ktyWIBo/yVDZrHyKGcFewTDgJvxMsWai +7UCjgdIwgc8wHQYDVR0OBBYEFAaiqcuoxAncqH+fK4Xw71fyY1WTMIGPBgNVHSME +gYcwgYSAFAaiqcuoxAncqH+fK4Xw71fyY1WToVakVDBSMQswCQYDVQQGEwJDQTEP +MA0GA1UEBwwGT3R0YXdhMRQwEgYDVQQKDAtFY2xpcHNlIElvVDENMAsGA1UECwwE +SG9ubzENMAsGA1UEAwwEcm9vdIIUEsY2rEzZ/q/HIPtN/epKF0w5IXUwDwYDVR0T +AQH/BAUwAwEB/zALBgNVHQ8EBAMCAQYwCgYIKoZIzj0EAwIDRwAwRAIgFEC0nsoF +pixVqUasgYss+DaP03Uh4/GM0Ao07IrAlagCIDxNcl0EL2YKOJF87Kx/hZCBqrEx +Z5B54VQnuoxHzHi4 +-----END CERTIFICATE----- diff --git a/charts/hono/profileDataGrid.yaml b/charts/hono/profileDataGrid.yaml new file mode 100644 index 00000000..8b74f957 --- /dev/null +++ b/charts/hono/profileDataGrid.yaml @@ -0,0 +1,17 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +dataGridExample: + enabled: true + +deviceConnectionService: + enabled: true diff --git a/charts/hono/profileJaegerBackend.yaml b/charts/hono/profileJaegerBackend.yaml new file mode 100644 index 00000000..7359699c --- /dev/null +++ b/charts/hono/profileJaegerBackend.yaml @@ -0,0 +1,24 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +jaegerBackendExample: + enabled: true + + service: + annotations: {} + loadBalancerIP: + nodePort: + + # serviceType defines the type which the created service will have. + # The default is "ClusterIP". + # Note: This property will be ignored when deploying to platform "openshift". + type: LoadBalancer \ No newline at end of file diff --git a/charts/hono/requirements.yaml b/charts/hono/requirements.yaml new file mode 100644 index 00000000..1fd96b82 --- /dev/null +++ b/charts/hono/requirements.yaml @@ -0,0 +1,21 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +dependencies: + - name: prometheus + version: ~9.3.0 + repository: "https://kubernetes-charts.storage.googleapis.com/" + condition: prometheus.createInstance + - name: grafana + version: ~3.8.15 + repository: "https://kubernetes-charts.storage.googleapis.com/" + condition: grafana.enabled diff --git a/charts/hono/templates/NOTES.txt b/charts/hono/templates/NOTES.txt new file mode 100644 index 00000000..29863d3d --- /dev/null +++ b/charts/hono/templates/NOTES.txt @@ -0,0 +1,8 @@ +Thank you for installing {{ .Chart.Name }}. + +Your release is named {{ .Release.Name }}. + +To learn more about the release, try: + + $ helm status {{ .Release.Name }} + $ helm get {{ .Release.Name }} diff --git a/charts/hono/templates/_helpers.tpl b/charts/hono/templates/_helpers.tpl new file mode 100644 index 00000000..f9259aaa --- /dev/null +++ b/charts/hono/templates/_helpers.tpl @@ -0,0 +1,399 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{/* vim: set filetype=mustache: */}} + +{{/* +Expand the name of the chart. +*/}} +{{- define "hono.name" -}} + {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "hono.fullname" -}} + {{- if .Values.fullnameOverride -}} + {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} + {{- else -}} + {{- $name := default .Chart.Name .Values.nameOverride -}} + {{- if contains $name .Release.Name -}} + {{- .Release.Name | trunc 63 | trimSuffix "-" -}} + {{- else -}} + {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "hono.chart" }} + {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Add standard labels for resources as recommended by Helm best practices. +*/}} +{{- define "hono.std.labels" -}} +app.kubernetes.io/name: {{ template "hono.name" . }} +helm.sh/chart: {{ template "hono.chart" . }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +app.kubernetes.io/instance: {{ .Release.Name }} +app.kubernetes.io/version: {{ .Chart.AppVersion }} +{{- end }} + +{{/* +Add standard labels and name for resources as recommended by Helm best practices. +The scope passed in is expected to be a dict with keys +- "dot": the "." scope and +- "name": the value to use for the "name" metadata property +- "component": the value to use for the "app.kubernetes.io/component" label +*/}} +{{- define "hono.metadata" -}} +name: {{ .dot.Release.Name }}-{{ .name }} +namespace: {{ .dot.Release.Namespace }} +labels: + app.kubernetes.io/name: {{ template "hono.name" .dot }} + helm.sh/chart: {{ template "hono.chart" .dot }} + app.kubernetes.io/managed-by: {{ .dot.Release.Service }} + app.kubernetes.io/instance: {{ .dot.Release.Name }} + app.kubernetes.io/version: {{ .dot.Chart.AppVersion }} + {{- if .component }} + app.kubernetes.io/component: {{ .component }} + {{- end }} +{{- end }} + +{{/* +Add standard match labels to be used in podTemplateSpecs and serviceMatchers. +The scope passed in is expected to be a dict with keys +- "dot": the "." scope and +- "component": the value of the "app.kubernetes.io/component" label to match +*/}} +{{- define "hono.matchLabels" -}} +app.kubernetes.io/name: {{ template "hono.name" .dot }} +app.kubernetes.io/instance: {{ .dot.Release.Name }} +app.kubernetes.io/component: {{ .component }} +{{- end }} + + +{{/* +Creates a headless Service for a Hono component. +The scope passed in is expected to be a dict with keys +- "dot": the "." scope and +- "name": the value to use for the "name" metadata property +- "component": the value of the "app.kubernetes.io/component" label to match +*/}} +{{- define "hono.headless.service" }} +{{- $args := dict "dot" .dot "component" .component "name" (printf "%s-headless" .name) }} +--- +apiVersion: v1 +kind: Service +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + clusterIP: None + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- end }} + + +{{/* +Configuration for the health check server of service components. +If the scope passed in is not 'nil', then its value is +used as the configuration for the health check server. +Otherwise, a secure health check server will be configured to bind to all +interfaces on the default port using the component's key and cert. +*/}} +{{- define "hono.healthServerConfig" -}} +healthCheck: +{{- if . }} + {{- toYaml . | nindent 2 }} +{{- else }} + port: 8088 + bindAddress: "0.0.0.0" + keyPath: "/etc/hono/key.pem" + certPath: "/etc/hono/cert.pem" +{{- end }} +{{- end }} + + +{{/* +Configuration for the service clients of protocol adapters. +The scope passed in is expected to be a dict with keys +- "dot": the root scope (".") and +- "component": the name of the adapter +*/}} +{{- define "hono.serviceClientConfig" -}} +{{- $adapter := default "adapter" .component -}} +messaging: +{{- if .dot.Values.amqpMessagingNetworkExample.enabled }} + name: Hono {{ $adapter }} + amqpHostname: hono-internal + host: {{ .dot.Release.Name }}-dispatch-router + port: 5673 + keyPath: /etc/hono/key.pem + certPath: /etc/hono/cert.pem + trustStorePath: /etc/hono/trusted-certs.pem + hostnameVerificationRequired: false +{{- else }} + {{- required ".Values.adapters.amqpMessagingNetworkSpec MUST be set if example AQMP Messaging Network is disabled" .dot.Values.adapters.amqpMessagingNetworkSpec | toYaml | nindent 2 }} +{{- end }} +command: +{{- if .dot.Values.amqpMessagingNetworkExample.enabled }} + name: Hono {{ $adapter }} + amqpHostname: hono-internal + host: {{ .dot.Release.Name }}-dispatch-router + port: 5673 + keyPath: /etc/hono/key.pem + certPath: /etc/hono/cert.pem + trustStorePath: /etc/hono/trusted-certs.pem + hostnameVerificationRequired: false +{{- else }} + {{- required ".Values.adapters.commandAndControlSpec MUST be set if example AQMP Messaging Network is disabled" .dot.Values.adapters.commandAndControlSpec | toYaml | nindent 2 }} +{{- end }} +tenant: +{{- if .dot.Values.deviceRegistryExample.enabled }} + name: Hono {{ $adapter }} + host: {{ .dot.Release.Name }}-service-device-registry + port: 5671 + credentialsPath: /etc/hono/adapter.credentials + trustStorePath: /etc/hono/trusted-certs.pem + hostnameVerificationRequired: false +{{- else }} + {{- required ".Values.adapters.tenantSpec MUST be set if example Device Registry is disabled" .dot.Values.adapters.tenantSpec | toYaml | nindent 2 }} +{{- end }} +registration: +{{- if .dot.Values.deviceRegistryExample.enabled }} + name: Hono {{ $adapter }} + host: {{ .dot.Release.Name }}-service-device-registry + port: 5671 + credentialsPath: /etc/hono/adapter.credentials + trustStorePath: /etc/hono/trusted-certs.pem + hostnameVerificationRequired: false +{{- else }} + {{- required ".Values.adapters.deviceRegistrationSpec MUST be set if example Device Registry is disabled" .dot.Values.adapters.deviceRegistrationSpec | toYaml | nindent 2 }} +{{- end }} +credentials: +{{- if .dot.Values.deviceRegistryExample.enabled }} + name: Hono {{ $adapter }} + host: {{ .dot.Release.Name }}-service-device-registry + port: 5671 + credentialsPath: /etc/hono/adapter.credentials + trustStorePath: /etc/hono/trusted-certs.pem + hostnameVerificationRequired: false +{{- else }} + {{- required ".Values.adapters.credentialsSpec MUST be set if example Device Registry is disabled" .dot.Values.adapters.credentialsSpec | toYaml | nindent 2 }} +{{- end }} +deviceConnection: +{{- if .dot.Values.adapters.deviceConnectionSpec }} + {{- range $key, $value := .dot.Values.adapters.deviceConnectionSpec }} + {{ $key }}: {{ $value }} + {{- end }} +{{- else }} + name: Hono {{ $adapter }} + {{- if .dot.Values.deviceConnectionService.enabled }} + host: {{ .dot.Release.Name }}-service-device-connection + {{- else }} + {{- if .dot.Values.deviceRegistryExample.enabled }} + host: {{ .dot.Release.Name }}-service-device-registry + {{- else }} + {{- required ".Values.deviceConnectionService.enabled MUST be set to true if example Device Registry is disabled and no other Device Connection service is configured" nil }} + {{- end }} + {{- end }} + port: 5671 + credentialsPath: /etc/hono/adapter.credentials + trustStorePath: /etc/hono/trusted-certs.pem + hostnameVerificationRequired: false +{{- end }} +{{- end }} + +{{/* +Create a fully qualified Prometheus server name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "hono.prometheus.server.fullname" -}} +{{- if .Values.prometheus.server.fullnameOverride -}} +{{- .Values.prometheus.server.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default "prometheus" .Values.prometheus.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- printf "%s-%s" .Release.Name .Values.prometheus.server.name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s-%s" .Release.Name $name .Values.prometheus.server.name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + + +{{/* +Create a scrape job for a service name. +The scope passed in is expected to be a dict with keys +- "dot": the root scope (".") and +- "serviceName": the name of the service to scrape + +*/}} +{{- define "hono.prometheus.scrapeJob" }} +- job_name: {{ printf "%s-%s" .dot.Release.Name .serviceName }} + metrics_path: /prometheus + scheme: https + tls_config: + insecure_skip_verify: true + dns_sd_configs: + - names: + - {{ printf "%s-%s-headless" .dot.Release.Name .serviceName }} + type: A + port: {{ default 8088 .dot.Values.monitoring.prometheus.port }} + refresh_interval: 10s +{{- end }} + +{{/* +Adds a Jaeger Agent container to a template spec. +*/}} +{{- define "hono.jaeger.agent" }} +{{- $jaegerEnabled := or .Values.jaegerBackendExample.enabled .Values.jaegerAgentConf }} +{{- if $jaegerEnabled }} +- name: jaeger-agent-sidecar + image: {{ default "jaegertracing/jaeger-agent:1.13.1" .Values.jaegerAgentImage }} + ports: + - name: agent-compact + containerPort: 6831 + protocol: UDP + - name: agent-binary + containerPort: 6832 + protocol: UDP + - name: agent-configs + containerPort: 5778 + protocol: TCP + readinessProbe: + httpGet: + path: "/" + port: 14271 + initialDelaySeconds: 5 + env: + {{- if .Values.jaegerBackendExample.enabled }} + - name: REPORTER_TYPE + value: "tchannel" + - name: REPORTER_TCHANNEL_HOST_PORT + value: {{ printf "%s-jaeger-collector:14267" .Release.Name | quote }} + - name: REPORTER_TCHANNEL_DISCOVERY_MIN_PEERS + value: "1" + {{- else }} + {{- range $key, $value := .Values.jaegerAgentConf }} + - name: {{ $key }} + value: {{ $value | quote }} + {{- end }} + {{- end }} +{{- end }} +{{- end }} + +{{/* +Adds Jaeger client configuration to a container's "env" properties. +The scope passed in is expected to be a dict with keys +- "dot": the root scope (".") and +- "name": the value to use for the JAEGER_SERVICE_NAME (prefixed with the release name). +*/}} +{{- define "hono.jaeger.clientConf" }} +{{- $agentHost := printf "%s-jaeger-agent" .dot.Release.Name }} +- name: JAEGER_SERVICE_NAME + value: {{ printf "%s-%s" .dot.Release.Name .name | quote }} +{{- if .dot.Values.jaegerBackendExample.enabled }} +- name: JAEGER_SAMPLER_TYPE + value: "const" +- name: JAEGER_SAMPLER_PARAM + value: "1" +{{- end }} +{{- end }} + +{{/* +Adds volume mounts to a component's container. +The scope passed in is expected to be a dict with keys +- "conf": the component's configuration properties as defined in .Values +- "name": the name of the component. +*/}} +{{- define "hono.container.secretVolumeMounts" }} +- name: {{ printf "%s-conf" .name | quote }} + mountPath: "/etc/hono" + readOnly: true +{{- with .conf.extraSecretMounts }} +{{- range $name,$spec := . }} +- name: {{ $name | quote }} + mountPath: {{ $spec.mountPath | quote }} + readOnly: true +{{- end }} +{{- end }} +{{- end }} + +{{/* +Adds volume declarations to a component's pod spec. +The scope passed in is expected to be a dict with keys +- "conf": the component's configuration properties as defined in .Values +- "name": the name of the component +- "releaseName": the .Release.Name +*/}} +{{- define "hono.pod.secretVolumes" }} +{{- $volumeName := printf "%s-conf" .name }} +- name: {{ $volumeName | quote }} + secret: + secretName: {{ printf "%s-%s" .releaseName $volumeName | quote }} +{{- with .conf.extraSecretMounts }} +{{- range $name,$spec := . }} +- name: {{ $name | quote }} + secret: + secretName: {{ $spec.secretName | quote }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Render the service type. +The scope passed in is expected to be a dict with keys +- "dot": the root scope (".") and +- "service": the service specific values +*/}} +{{- define "hono.service.type" }} + {{- if ( eq .dot.Values.platform "openshift" ) }} +type: NodePort + {{- else }} +type: {{ .service.type }} + {{- end }} +{{- end }} + +{{/* +Render the load balancer IP, if required. +- "dot": the root scope (".") and +- "service": the service specific values +*/}} +{{- define "hono.service.loadBalancerIP" }} + {{- if and (eq .service.type "LoadBalancer") (ne .dot.Values.platform "openshift") }} + {{- with .service.loadBalancerIP }} +loadBalancerIP: {{ . | quote }} + {{- end }} + {{- end }} +{{- end }} + +{{/* +Render the node port, if required. +- "dot": the root scope (".") and +- "service": the service specific values +- "port": name of the port +*/}} +{{- define "hono.service.nodePort" }} + {{- if and (eq .service.type "NodePort") (ne .dot.Values.platform "openshift") }} + {{- with (index .service.nodePorts .port) }} +nodePort: {{ . }} + {{- end }} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/hono/templates/artemis/artemis-deployment.yaml b/charts/hono/templates/artemis/artemis-deployment.yaml new file mode 100644 index 00000000..f7d223a8 --- /dev/null +++ b/charts/hono/templates/artemis/artemis-deployment.yaml @@ -0,0 +1,74 @@ +{{- if and ( eq .Values.amqpMessagingNetworkExample.enabled true ) ( eq .Values.amqpMessagingNetworkExample.broker.type "artemis" ) }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- $args := dict "dot" . "component" "amqp-messaging-network-broker" "name" "artemis" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + containers: + - command: + - /opt/artemis/bin/artemis + - run + - xml:/etc/hono/artemis-bootstrap.xml + env: + - name: ARTEMIS_CONFIGURATION + value: /etc/hono + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: {{ .Values.amqpMessagingNetworkExample.broker.artemis.imageName | quote }} + ports: + - name: amqps + containerPort: 5671 + protocol: TCP + imagePullPolicy: IfNotPresent + resources: + limits: + memory: "512Mi" + requests: + memory: "256Mi" + livenessProbe: + initialDelaySeconds: 20 + periodSeconds: 9 + tcpSocket: + port: 5671 + timeoutSeconds: 1 + name: apache-activemq-artemis + readinessProbe: + initialDelaySeconds: 5 + periodSeconds: 5 + tcpSocket: + port: 5671 + timeoutSeconds: 1 + securityContext: + privileged: false + volumeMounts: + - mountPath: /etc/hono + name: config + readOnly: true + volumes: + - name: config + secret: + secretName: {{ .Release.Name }}-artemis-conf +{{- end }} diff --git a/charts/hono/templates/artemis/artemis-secret.yaml b/charts/hono/templates/artemis/artemis-secret.yaml new file mode 100644 index 00000000..665c6918 --- /dev/null +++ b/charts/hono/templates/artemis/artemis-secret.yaml @@ -0,0 +1,38 @@ +{{- if and ( eq .Values.amqpMessagingNetworkExample.enabled true ) ( eq .Values.amqpMessagingNetworkExample.broker.type "artemis" ) }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Secret +metadata: + {{- $args := dict "dot" . "component" "amqp-messaging-network-broker" "name" "artemis-conf" }} + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + "artemis-broker.xml": | + {{- .Files.Get "config/artemis/artemis-broker.xml" | nindent 4 }} + "artemis-bootstrap.xml": | + {{- .Files.Get "config/artemis/artemis-bootstrap.xml" | nindent 4 }} + "artemis-users.properties": | + {{- .Files.Get "config/artemis/artemis-users.properties" | nindent 4 }} + "artemis-roles.properties": | + {{- .Files.Get "config/artemis/artemis-roles.properties" | nindent 4 }} + "login.config": | + {{- .Files.Get "config/artemis/login.config" | nindent 4 }} + "logging.properties": | + {{- .Files.Get "config/artemis/logging.properties" | nindent 4 }} + "artemis.profile": | + {{- .Files.Get "config/artemis/artemis.profile" | nindent 4 }} +data: + "artemisKeyStore.p12": {{ .Files.Get "hono-demo-certs-jar/artemisKeyStore.p12" | b64enc }} + "trustStore.jks": {{ .Files.Get "hono-demo-certs-jar/trustStore.jks" | b64enc }} +{{- end }} diff --git a/charts/hono/templates/artemis/artemis-svc.yaml b/charts/hono/templates/artemis/artemis-svc.yaml new file mode 100644 index 00000000..eb81d391 --- /dev/null +++ b/charts/hono/templates/artemis/artemis-svc.yaml @@ -0,0 +1,27 @@ +{{- if and ( eq .Values.amqpMessagingNetworkExample.enabled true ) ( eq .Values.amqpMessagingNetworkExample.broker.type "artemis" ) }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "amqp-messaging-network-broker" "name" "artemis" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + ports: + - name: amqps + port: 5671 + protocol: TCP + targetPort: amqps + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- end }} diff --git a/charts/hono/templates/dispatch-router/config/qdrouterd-with-artemis.yaml b/charts/hono/templates/dispatch-router/config/qdrouterd-with-artemis.yaml new file mode 100644 index 00000000..726d1590 --- /dev/null +++ b/charts/hono/templates/dispatch-router/config/qdrouterd-with-artemis.yaml @@ -0,0 +1,153 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- define "hono.qdrouterd-with-artemis.json" -}} +[ + ["router", { + "id": "Hono.Example.Router", + "mode": "standalone", + "workerThreads": 3 + }], + + ["authServicePlugin", { + "name": "Hono Auth", + "host": "{{ .Release.Name }}-service-auth", + "port": 5671, + "sslProfile": "internal" + }], + + ["sslProfile", { + "name": "external", + "protocols": "TLSv1.2", + "caCertFile": "/etc/hono/trusted-certs.pem", + "certFile": "/etc/hono/qdrouter-cert.pem", + "privateKeyFile": "/etc/hono/qdrouter-key.pem" + }], + + ["sslProfile", { + "name": "internal", + "protocols": "TLSv1.2", + "caCertFile": "/etc/hono/trusted-certs.pem", + "certFile": "/etc/hono/qdrouter-cert.pem", + "privateKeyFile": "/etc/hono/qdrouter-key.pem", + "uidFormat": "ou" + }], + + ["listener", { + "sslProfile": "external", + "requireSsl": true, + "host": "0.0.0.0", + "port": 5671, + "maxSessionFrames": 200, + "linkCapacity": 100, + "authenticatePeer": true, + "saslMechanisms": "PLAIN", + "saslPlugin": "Hono Auth" + }], + + ["listener", { + "host": "0.0.0.0", + "port": 5672, + "maxSessionFrames": 200, + "linkCapacity": 100, + "authenticatePeer": true, + "saslMechanisms": "PLAIN", + "saslPlugin": "Hono Auth" + }], + + ["listener", { + "sslProfile": "internal", + "requireSsl": true, + "host": "0.0.0.0", + "port": 5673, + "maxSessionFrames": 500, + "linkCapacity": 100, + "authenticatePeer": true, + "saslMechanisms": "EXTERNAL" + }], + + ["connector", { + "sslProfile": "external", + "name": "artemis", + "port": 5671, + "role": "route-container", + "host": "{{ .Release.Name }}-artemis", + "saslUsername": "artemis", + "saslPassword": "artemis", + "verifyHostname": false + }], + + ["linkRoute", { + "prefix": "event/", + "direction": "in", + "connection": "artemis" + }], + + ["linkRoute", { + "prefix": "event/", + "direction": "out", + "connection": "artemis" + }], + + ["address", { + "prefix": "telemetry/", + "distribution": "balanced" + }], + + ["address", { + "prefix": "event/", + "distribution": "balanced" + }], + + ["policy", { + "maxConnections": 1000, + "enableVhostPolicy": true, + "defaultVhost": "hono" + }], + + ["vhost", { + "hostname": "hono", + "maxConnections": 500, + "maxConnectionsPerUser": 20, + "maxConnectionsPerHost": 10, + "allowUnknownUser": true, + "groups": { + "$default": { + "remoteHosts": "*", + "maxSessions": 10 + } + } + }], + + ["vhost", { + "hostname": "hono-internal", + "maxConnections": 50, + "groups": { + "Hono": { + "users": "Eclipse IoT;Hono", + "remoteHosts": "*", + "maxSessions": 4, + "maxMessageSize": 131072, + "allowUserIdProxy": true, + "allowAnonymousSender": true, + "sources": "control/*, command/*", + "targets": "telemetry/*, event/*, control/*, command_response/*" + } + } + }], + + ["log", { + "module": "DEFAULT", + "enable": "info+" + }] +] +{{- end }} diff --git a/charts/hono/templates/dispatch-router/config/qrouterd-with-servicebus.yaml b/charts/hono/templates/dispatch-router/config/qrouterd-with-servicebus.yaml new file mode 100644 index 00000000..1fc74ed7 --- /dev/null +++ b/charts/hono/templates/dispatch-router/config/qrouterd-with-servicebus.yaml @@ -0,0 +1,162 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- define "hono.qdrouterd-with-servicebus.json" -}} +[ + ["router", { + "id": "Hono.Example.Router", + "mode": "standalone", + "workerThreads": 3 + }], + + ["authServicePlugin", { + "name": "Hono Auth", + "host": "{{ .Release.Name }}-service-auth", + "port": 5671, + "sslProfile": "internal" + }], + + ["sslProfile", { + "name": "public", + "protocols": "TLSv1.2" + }], + + ["sslProfile", { + "name": "external", + "protocols": "TLSv1.2", + "caCertFile": "/etc/hono/trusted-certs.pem", + "certFile": "/etc/hono/qdrouter-cert.pem", + "privateKeyFile": "/etc/hono/qdrouter-key.pem" + }], + + ["sslProfile", { + "name": "internal", + "protocols": "TLSv1.2", + "caCertFile": "/etc/hono/trusted-certs.pem", + "certFile": "/etc/hono/qdrouter-cert.pem", + "privateKeyFile": "/etc/hono/qdrouter-key.pem", + "uidFormat": "ou" + }], + + ["listener", { + "sslProfile": "external", + "requireSsl": true, + "host": "0.0.0.0", + "port": 5671, + "maxSessionFrames": 200, + "linkCapacity": 100, + "authenticatePeer": true, + "saslMechanisms": "PLAIN", + "saslPlugin": "Hono Auth" + }], + + ["listener", { + "host": "0.0.0.0", + "port": 5672, + "maxSessionFrames": 200, + "linkCapacity": 100, + "authenticatePeer": true, + "saslMechanisms": "PLAIN", + "saslPlugin": "Hono Auth" + }], + + ["listener", { + "sslProfile": "internal", + "requireSsl": true, + "host": "0.0.0.0", + "port": 5673, + "maxSessionFrames": 500, + "linkCapacity": 100, + "authenticatePeer": true, + "saslMechanisms": "EXTERNAL" + }], + + ["connector", { + "sslProfile": "public", + "name": "servicebus", + "port": 5671, + "role": "route-container", + "host": {{ .Values.amqpMessagingNetworkExample.broker.servicebus.host | quote }}, + "idleTimeoutSeconds": 120, + "saslMechanisms": "PLAIN", + "saslUsername": {{ .Values.amqpMessagingNetworkExample.broker.servicebus.saslUsername | quote }}, + "saslPassword": {{ .Values.amqpMessagingNetworkExample.broker.servicebus.saslPassword | quote }}, + "verifyHostname": true + }], + + ["linkRoute", { + "prefix": "event/", + "direction": "in", + "delExternalPrefix": "event/", + "connection": "servicebus" + }], + + ["linkRoute", { + "prefix": "event/", + "direction": "out", + "delExternalPrefix": "event/", + "connection": "servicebus" + }], + + ["address", { + "prefix": "telemetry/", + "distribution": "balanced" + }], + + ["address", { + "prefix": "event/", + "distribution": "balanced" + }], + + ["policy", { + "maxConnections": 1000, + "enableVhostPolicy": true, + "defaultVhost": "hono" + }], + + ["vhost", { + "hostname": "hono", + "maxConnections": 500, + "maxConnectionsPerUser": 20, + "maxConnectionsPerHost": 10, + "allowUnknownUser": true, + "groups": { + "$default": { + "remoteHosts": "*", + "maxSessions": 10 + } + } + }], + + ["vhost", { + "hostname": "hono-internal", + "maxConnections": 50, + "groups": { + "Hono": { + "users": "Eclipse IoT;Hono", + "remoteHosts": "*", + "maxSessions": 4, + "maxMessageSize": 131072, + "allowUserIdProxy": true, + "allowAnonymousSender": true, + "sources": "control/*, command/*", + "targets": "telemetry/*, event/*, control/*, command_response/*" + } + } + }], + + ["log", { + "module": "DEFAULT", + "enable": "info+" + }] +] +{{- end }} diff --git a/charts/hono/templates/dispatch-router/dispatch-router-deployment.yaml b/charts/hono/templates/dispatch-router/dispatch-router-deployment.yaml new file mode 100644 index 00000000..095acd75 --- /dev/null +++ b/charts/hono/templates/dispatch-router/dispatch-router-deployment.yaml @@ -0,0 +1,76 @@ +{{- if .Values.amqpMessagingNetworkExample.enabled -}} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- $args := dict "dot" . "component" "amqp-messaging-network-router" "name" "dispatch-router" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + containers: + - command: + - /sbin/qdrouterd + - -c + - /etc/hono/qdrouterd-with-{{ .Values.amqpMessagingNetworkExample.broker.type }}.json + env: + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: {{ .Values.amqpMessagingNetworkExample.dispatchRouter.imageName | quote }} + imagePullPolicy: IfNotPresent + ports: + - name: amqps + containerPort: 5671 + protocol: TCP + - name: amqp + containerPort: 5672 + protocol: TCP + - name: internal + containerPort: 5673 + protocol: TCP + resources: + limits: + memory: "512Mi" + livenessProbe: + initialDelaySeconds: 180 + periodSeconds: 9 + tcpSocket: + port: 5672 + timeoutSeconds: 1 + name: apache-qpid-dispatch-router + readinessProbe: + initialDelaySeconds: 10 + periodSeconds: 5 + tcpSocket: + port: 5672 + timeoutSeconds: 1 + securityContext: + privileged: false + volumeMounts: + - mountPath: /etc/hono + name: config + readOnly: true + volumes: + - name: config + secret: + secretName: {{ .Release.Name }}-dispatch-router-conf +{{- end }} diff --git a/charts/hono/templates/dispatch-router/dispatch-router-ext-svc.yaml b/charts/hono/templates/dispatch-router/dispatch-router-ext-svc.yaml new file mode 100644 index 00000000..e996e5e8 --- /dev/null +++ b/charts/hono/templates/dispatch-router/dispatch-router-ext-svc.yaml @@ -0,0 +1,39 @@ +{{- if .Values.amqpMessagingNetworkExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "amqp-messaging-network-router" "name" "dispatch-router-ext" }} + {{- include "hono.metadata" $args | nindent 2 }} + {{- with .Values.amqpMessagingNetworkExample.dispatchRouter.svc.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ports: + - name: amqps + port: 15671 + protocol: TCP + targetPort: amqps + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.amqpMessagingNetworkExample.dispatchRouter.svc "port" "amqps" ) | nindent 4 }} + - name: amqp + port: 15672 + protocol: TCP + targetPort: amqp + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.amqpMessagingNetworkExample.dispatchRouter.svc "port" "amqp" ) | nindent 4 }} + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- include "hono.service.type" (dict "dot" . "service" .Values.amqpMessagingNetworkExample.dispatchRouter.svc ) | nindent 2 }} +{{- include "hono.service.loadBalancerIP" (dict "dot" . "service" .Values.amqpMessagingNetworkExample.dispatchRouter.svc ) | nindent 2 }} +{{- end }} diff --git a/charts/hono/templates/dispatch-router/dispatch-router-route.yaml b/charts/hono/templates/dispatch-router/dispatch-router-route.yaml new file mode 100644 index 00000000..4f74a757 --- /dev/null +++ b/charts/hono/templates/dispatch-router/dispatch-router-route.yaml @@ -0,0 +1,27 @@ +{{- if and .Values.amqpMessagingNetworkExample.enabled (eq .Values.platform "openshift") }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "amqp-messaging-network-router" "name" "dispatch-router" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: 5671 + tls: + termination: passthrough + to: + kind: Service + name: {{ .Release.Name }}-dispatch-router-ext +{{- end }} diff --git a/charts/hono/templates/dispatch-router/dispatch-router-secret.yaml b/charts/hono/templates/dispatch-router/dispatch-router-secret.yaml new file mode 100644 index 00000000..b73fe05e --- /dev/null +++ b/charts/hono/templates/dispatch-router/dispatch-router-secret.yaml @@ -0,0 +1,28 @@ +{{- if .Values.amqpMessagingNetworkExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $qrouterdConfig := printf "hono.qdrouterd-with-%s.json" .Values.amqpMessagingNetworkExample.broker.type }} +apiVersion: v1 +kind: Secret +metadata: + {{- $args := dict "dot" . "component" "amqp-messaging-network-router" "name" "dispatch-router-conf" }} + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + "qdrouterd-with-{{ .Values.amqpMessagingNetworkExample.broker.type }}.json": | + {{- include $qrouterdConfig . | nindent 4 }} +data: + "qdrouter-key.pem": {{ .Files.Get "hono-demo-certs-jar/qdrouter-key.pem" | b64enc }} + "qdrouter-cert.pem": {{ .Files.Get "hono-demo-certs-jar/qdrouter-cert.pem" | b64enc }} + "trusted-certs.pem": {{ .Files.Get "hono-demo-certs-jar/trusted-certs.pem" | b64enc }} +{{- end }} diff --git a/charts/hono/templates/dispatch-router/dispatch-router-svc.yaml b/charts/hono/templates/dispatch-router/dispatch-router-svc.yaml new file mode 100644 index 00000000..47ee283f --- /dev/null +++ b/charts/hono/templates/dispatch-router/dispatch-router-svc.yaml @@ -0,0 +1,26 @@ +{{- if .Values.amqpMessagingNetworkExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "amqp-messaging-network-router" "name" "dispatch-router" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + ports: + - port: 5673 + protocol: TCP + targetPort: internal + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- end }} diff --git a/charts/hono/templates/example-data-grid/configmap.yaml b/charts/hono/templates/example-data-grid/configmap.yaml new file mode 100644 index 00000000..7dce7414 --- /dev/null +++ b/charts/hono/templates/example-data-grid/configmap.yaml @@ -0,0 +1,564 @@ +{{- if .Values.dataGridExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "data-grid" "name" "data-grid-conf" }} +apiVersion: v1 +kind: ConfigMap +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +data: + hono-data-grid.xml: | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jgroups.gossip.initial_hosts:} + + + + + + + false + + + + + + + + + + ${jgroups.azure.storage_account_name:} + ${jgroups.azure.storage_access_key:} + ${jgroups.azure.container:} + + + + + + + false + + + + + + + + + + + ${jgroups.s3.bucket:} + ${jgroups.s3.access_key:} + ${jgroups.s3.secret_access_key:} + + + + + + + false + + + + + + + + + + + ${jgroups.s3.pre_signed_delete_url:} + ${jgroups.s3.pre_signed_put_url:} + + + + + + + false + + + + + + + + + + + ${jgroups.s3.bucket:} + + + + + + + false + + + + + + + + + + + ${jgroups.google.bucket:} + ${jgroups.google.access_key:} + ${jgroups.google.secret_access_key:} + + + + + + + false + + + + + + + + + + 360000 + + + + + + + + false + + + + + + + + + + 360000 + + + ${jgroups.dns_ping.dns_query:} + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{{- end }} diff --git a/charts/hono/templates/example-data-grid/roles.yaml b/charts/hono/templates/example-data-grid/roles.yaml new file mode 100644 index 00000000..64e0b609 --- /dev/null +++ b/charts/hono/templates/example-data-grid/roles.yaml @@ -0,0 +1,43 @@ +{{- if .Values.dataGridExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "data-grid" "name" "data-grid" }} +apiVersion: v1 +kind: List +metadata: {} +items: +- apiVersion: v1 + kind: ServiceAccount + metadata: + {{- include "hono.metadata" $args | nindent 4 }} +- apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRole + metadata: + {{- include "hono.metadata" $args | nindent 4 }} + rules: + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list"] +- apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRoleBinding + metadata: + {{- include "hono.metadata" $args | nindent 4 }} + roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ printf "%s-%s" .Release.Name $args.name }} + subjects: + - kind: ServiceAccount + name: {{ printf "%s-%s" .Release.Name $args.name }} + namespace: {{ .Release.Namespace }} +{{- end }} diff --git a/charts/hono/templates/example-data-grid/service.yaml b/charts/hono/templates/example-data-grid/service.yaml new file mode 100644 index 00000000..732ed5c6 --- /dev/null +++ b/charts/hono/templates/example-data-grid/service.yaml @@ -0,0 +1,33 @@ +{{- if .Values.dataGridExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "data-grid" "name" "data-grid" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + ports: + - name: rest + port: 8080 + protocol: TCP + targetPort: 8080 + - name: hotrod + port: 11222 + protocol: TCP + targetPort: 11222 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} + sessionAffinity: None + clusterIP: None +{{- end }} diff --git a/charts/hono/templates/example-data-grid/statefulset.yaml b/charts/hono/templates/example-data-grid/statefulset.yaml new file mode 100644 index 00000000..50be4174 --- /dev/null +++ b/charts/hono/templates/example-data-grid/statefulset.yaml @@ -0,0 +1,85 @@ +{{- if .Values.dataGridExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: apps/v1 +kind: StatefulSet +metadata: + {{- $args := dict "dot" . "component" "data-grid" "name" "data-grid" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + serviceName: {{ printf "%s-%s" .Release.Name $args.name }} + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + serviceAccountName: {{ printf "%s-%s" .Release.Name $args.name }} + containers: + - args: + - -c + - hono/hono-data-grid.xml + - -Djboss.default.jgroups.stack=kubernetes + env: + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: KUBERNETES_LABELS + value: {{ printf "app.kubernetes.io/component=%s" $args.component }} + - name: JDK_JAVA_OPTIONS + value: "-XX:MinRAMPercentage=80 -XX:MaxRAMPercentage=80" + - name: APP_USER + value: {{ .Values.dataGridExample.authUsername | quote }} + - name: APP_PASS + value: {{ .Values.dataGridExample.authPassword | quote }} + image: {{ default "jboss/infinispan-server:9.4.11.Final" .Values.dataGridExample.imageName | quote }} + imagePullPolicy: IfNotPresent + name: hono-data-grid + ports: + - containerPort: 8080 + protocol: TCP + - containerPort: 8181 + protocol: TCP + - containerPort: 8888 + protocol: TCP + - containerPort: 9990 + protocol: TCP + - containerPort: 11211 + protocol: TCP + - containerPort: 11222 + protocol: TCP + volumeMounts: + - mountPath: /opt/jboss/infinispan-server/standalone/configuration/hono + name: conf + readOnly: true + readinessProbe: + exec: + command: + - /usr/local/bin/is_healthy.sh + failureThreshold: 5 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 80 + resources: + limits: + memory: "512Mi" + terminationMessagePath: /dev/termination-log + volumes: + - name: conf + configMap: + name: {{ printf "%s-%s-conf" .Release.Name $args.name }} +{{- end }} diff --git a/charts/hono/templates/grafana/grafana-dashboard-configmap.yaml b/charts/hono/templates/grafana/grafana-dashboard-configmap.yaml new file mode 100644 index 00000000..bff51841 --- /dev/null +++ b/charts/hono/templates/grafana/grafana-dashboard-configmap.yaml @@ -0,0 +1,27 @@ +{{- if .Values.grafana.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: ConfigMap +metadata: + {{- $args := dict "dot" . "component" "dashboard" "name" "grafana-dashboards" }} + {{- include "hono.metadata" $args | nindent 2 }} + grafana_dashboard: "1" +data: + overview.json: | + {{- .Files.Get "config/grafana/dashboard-definitions/overview.json" | nindent 4 }} + message-details.json: | + {{- .Files.Get "config/grafana/dashboard-definitions/message-details.json" | nindent 4 }} + jvm-details.json: | + {{- .Files.Get "config/grafana/dashboard-definitions/jvm-details.json" | nindent 4 }} +{{- end }} diff --git a/charts/hono/templates/grafana/grafana-datasource-secret.yaml b/charts/hono/templates/grafana/grafana-datasource-secret.yaml new file mode 100644 index 00000000..ce3a4ebc --- /dev/null +++ b/charts/hono/templates/grafana/grafana-datasource-secret.yaml @@ -0,0 +1,38 @@ +{{- if .Values.grafana.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Secret +metadata: + {{- $args := dict "dot" . "component" "dashboard" "name" "grafana-datasources" }} + {{- include "hono.metadata" $args | nindent 2 }} + grafana_datasource: "1" +type: Opaque +stringData: + hono-datasources.yaml: | + apiVersion: 1 + datasources: + - name: hono_metrics + version: 1 + type: prometheus + access: proxy + orgId: 1 + {{- if .Values.prometheus.createInstance }} + url: http://{{ template "hono.prometheus.server.fullname" . }}:9090 + {{- else }} + url: http://{{ required "No Prometheus server host set" .Values.prometheus.host }}:{{ default "9090" .Values.prometheus.port }} + {{- end }} + basicAuth: false + isDefault: true + editable: true +{{- end }} diff --git a/charts/hono/templates/hono-adapter-amqp/headless-svc.yaml b/charts/hono/templates/hono-adapter-amqp/headless-svc.yaml new file mode 100644 index 00000000..363d8f8d --- /dev/null +++ b/charts/hono/templates/hono-adapter-amqp/headless-svc.yaml @@ -0,0 +1,16 @@ +{{- if .Values.prometheus.createInstance }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-amqp-vertx" "name" "adapter-amqp-vertx" }} +{{- include "hono.headless.service" $args }} +{{ end }} diff --git a/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-deployment.yaml b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-deployment.yaml new file mode 100644 index 00000000..7295475f --- /dev/null +++ b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-deployment.yaml @@ -0,0 +1,76 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-amqp-vertx" "name" "adapter-amqp-vertx" }} +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + containers: + {{- include "hono.jaeger.agent" . | indent 6 }} + - image: {{ .Values.adapters.amqp.imageName }} + imagePullPolicy: IfNotPresent + name: eclipse-hono-adapter-amqp-vertx + ports: + - name: health + containerPort: {{ .Values.healthCheckPort }} + protocol: TCP + - name: amqps + containerPort: 5671 + protocol: TCP + - name: amqp + containerPort: 5672 + protocol: TCP + securityContext: + privileged: false + env: + - name: SPRING_CONFIG_LOCATION + value: file:///etc/hono/ + - name: SPRING_PROFILES_ACTIVE + value: dev + - name: LOGGING_CONFIG + value: classpath:logback-spring.xml + - name: _JAVA_OPTIONS + value: "{{ .Values.defaultJavaOptions }}" + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + {{- include "hono.jaeger.clientConf" $args | indent 8 }} + volumeMounts: + {{- include "hono.container.secretVolumeMounts" ( dict "name" $args.name "conf" .Values.adapters.amqp ) | indent 8 }} + resources: + limits: + memory: "256Mi" + livenessProbe: + httpGet: + path: /liveness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 180 + readinessProbe: + httpGet: + path: /readiness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 10 + volumes: + {{- include "hono.pod.secretVolumes" ( dict "releaseName" .Release.Name "name" $args.name "conf" .Values.adapters.amqp ) | indent 6 }} diff --git a/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-route.yaml b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-route.yaml new file mode 100644 index 00000000..c1bc1add --- /dev/null +++ b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-route.yaml @@ -0,0 +1,25 @@ +{{- if eq .Values.platform "openshift" }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "adapter-amqp-vertx" "name" "adapter-amqp-vertx" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: amqp + to: + kind: Service + name: {{ .Release.Name }}-adapter-amqp-vertx +{{- end }} diff --git a/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-sec-route.yaml b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-sec-route.yaml new file mode 100644 index 00000000..5485c34f --- /dev/null +++ b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-sec-route.yaml @@ -0,0 +1,27 @@ +{{- if eq .Values.platform "openshift" }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "adapter-amqp-vertx" "name" "adapter-amqp-vertx-sec" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: amqps + tls: + termination: passthrough + to: + kind: Service + name: {{ .Release.Name }}-adapter-amqp-vertx +{{- end }} diff --git a/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-secret.yaml b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-secret.yaml new file mode 100644 index 00000000..85bff5c4 --- /dev/null +++ b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-secret.yaml @@ -0,0 +1,43 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-amqp-vertx" "name" "adapter-amqp-vertx-conf" }} +apiVersion: v1 +kind: Secret +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + application.yml: | + hono: + app: + maxInstances: {{ .Values.adapters.amqp.hono.app.maxInstances }} + amqp: + {{- if .Values.adapters.amqp.hono.amqp }} + {{- .Values.adapters.amqp.hono.amqp | toYaml | nindent 8 }} + {{- else }} + bindAddress: "0.0.0.0" + keyPath: "/etc/hono/key.pem" + certPath: "/etc/hono/cert.pem" + insecurePortEnabled: true + insecurePortBindAddress: "0.0.0.0" + tenantIdleTimeout: {{ .Values.adapters.defaultTenantIdleTimeout | quote }} + {{- end }} + {{- include "hono.healthServerConfig" .Values.adapters.amqp.hono.healthCheck | nindent 6 }} + {{- include "hono.serviceClientConfig" $args | nindent 6 }} +{{- if not .Values.adapters.amqp.extraSecretMounts }} +data: + key.pem: {{ .Files.Get "hono-demo-certs-jar/amqp-adapter-key.pem" | b64enc }} + cert.pem: {{ .Files.Get "hono-demo-certs-jar/amqp-adapter-cert.pem" | b64enc }} + trusted-certs.pem: {{ .Files.Get "hono-demo-certs-jar/trusted-certs.pem" | b64enc }} + adapter.credentials: {{ .Files.Get "example/amqp-adapter.credentials" | b64enc }} +{{- end }} diff --git a/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-svc.yaml b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-svc.yaml new file mode 100644 index 00000000..07827a1a --- /dev/null +++ b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-svc.yaml @@ -0,0 +1,37 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "adapter-amqp-vertx" "name" "adapter-amqp-vertx" }} + {{- include "hono.metadata" $args | nindent 2 }} + {{- with .Values.adapters.amqp.svc.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ports: + - name: amqp + port: 5672 + protocol: TCP + targetPort: amqp + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.amqp.svc "port" "amqp" ) | nindent 4 }} + - name: amqps + port: 5671 + protocol: TCP + targetPort: amqps + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.amqp.svc "port" "amqps" ) | nindent 4 }} + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- include "hono.service.type" (dict "dot" . "service" .Values.adapters.amqp.svc ) | nindent 2 }} +{{- include "hono.service.loadBalancerIP" (dict "dot" . "service" .Values.adapters.amqp.svc ) | nindent 2 }} diff --git a/charts/hono/templates/hono-adapter-coap/headless-svc.yaml b/charts/hono/templates/hono-adapter-coap/headless-svc.yaml new file mode 100644 index 00000000..9ced7665 --- /dev/null +++ b/charts/hono/templates/hono-adapter-coap/headless-svc.yaml @@ -0,0 +1,16 @@ +{{- if and .Values.prometheus.createInstance .Values.adapters.coap.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-coap-vertx" "name" "adapter-coap-vertx" }} +{{- include "hono.headless.service" $args }} +{{ end }} diff --git a/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-deployment.yaml b/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-deployment.yaml new file mode 100644 index 00000000..9ef65141 --- /dev/null +++ b/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-deployment.yaml @@ -0,0 +1,78 @@ +{{- if .Values.adapters.coap.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-coap-vertx" "name" "adapter-coap-vertx" }} +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + containers: + {{- include "hono.jaeger.agent" . | indent 6 }} + - image: {{ .Values.adapters.coap.imageName }} + imagePullPolicy: IfNotPresent + name: eclipse-hono-adapter-coap-vertx + ports: + - name: health + containerPort: {{ .Values.healthCheckPort }} + protocol: TCP + - name: coap + containerPort: 5683 + protocol: UDP + - name: coaps + containerPort: 5684 + protocol: UDP + securityContext: + privileged: false + env: + - name: SPRING_CONFIG_LOCATION + value: file:///etc/hono/ + - name: SPRING_PROFILES_ACTIVE + value: dev + - name: LOGGING_CONFIG + value: classpath:logback-spring.xml + - name: _JAVA_OPTIONS + value: "{{ .Values.defaultJavaOptions }}" + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + {{- include "hono.jaeger.clientConf" $args | indent 8 }} + volumeMounts: + {{- include "hono.container.secretVolumeMounts" ( dict "name" $args.name "conf" .Values.adapters.coap ) | indent 8 }} + resources: + limits: + memory: "256Mi" + livenessProbe: + httpGet: + path: /liveness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 180 + readinessProbe: + httpGet: + path: /readiness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 10 + volumes: + {{- include "hono.pod.secretVolumes" ( dict "releaseName" .Release.Name "name" $args.name "conf" .Values.adapters.coap ) | indent 6 }} +{{- end }} diff --git a/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-secret.yaml b/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-secret.yaml new file mode 100644 index 00000000..b7e1d697 --- /dev/null +++ b/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-secret.yaml @@ -0,0 +1,41 @@ +{{- if .Values.adapters.coap.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-coap-vertx" "name" "adapter-coap-vertx-conf" }} +apiVersion: v1 +kind: Secret +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + application.yml: | + hono: + app: + maxInstances: {{ .Values.adapters.coap.hono.app.maxInstances }} + coap: + {{- if .Values.adapters.coap.hono.coap }} + {{- .Values.adapters.coap.hono.coap | toYaml | nindent 8 }} + {{- else }} + bindAddress: "0.0.0.0" + tenantIdleTimeout: {{ .Values.adapters.defaultTenantIdleTimeout | quote }} + {{- end }} + {{- include "hono.healthServerConfig" .Values.adapters.coap.hono.healthCheck | nindent 6 }} + {{- include "hono.serviceClientConfig" $args | nindent 6 }} +{{- if not .Values.adapters.coap.extraSecretMounts }} +data: + key.pem: {{ .Files.Get "hono-demo-certs-jar/coap-adapter-key.pem" | b64enc }} + cert.pem: {{ .Files.Get "hono-demo-certs-jar/coap-adapter-cert.pem" | b64enc }} + trusted-certs.pem: {{ .Files.Get "hono-demo-certs-jar/trusted-certs.pem" | b64enc }} + adapter.credentials: {{ .Files.Get "example/coap-adapter.credentials" | b64enc }} +{{- end }} +{{ end }} diff --git a/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-svc.yaml b/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-svc.yaml new file mode 100644 index 00000000..78f1c798 --- /dev/null +++ b/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-svc.yaml @@ -0,0 +1,40 @@ +{{- if .Values.adapters.coap.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "adapter-coap-vertx" "name" "adapter-coap-vertx" }} + {{- include "hono.metadata" $args | nindent 2 }} + {{- with .Values.adapters.coap.svc.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} + +spec: + ports: + - name: coap + port: 5683 + protocol: UDP + targetPort: coap + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.coap.svc "port" "coap" ) | nindent 4 }} + - name: coaps + port: 5684 + protocol: UDP + targetPort: coaps + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.coap.svc "port" "coaps" ) | nindent 4 }} + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- include "hono.service.type" (dict "dot" . "service" .Values.adapters.coap.svc ) | nindent 2 }} +{{- include "hono.service.loadBalancerIP" (dict "dot" . "service" .Values.adapters.coap.svc ) | nindent 2 }} +{{- end }} diff --git a/charts/hono/templates/hono-adapter-http/headless-svc.yaml b/charts/hono/templates/hono-adapter-http/headless-svc.yaml new file mode 100644 index 00000000..cabc82f9 --- /dev/null +++ b/charts/hono/templates/hono-adapter-http/headless-svc.yaml @@ -0,0 +1,16 @@ +{{- if .Values.prometheus.createInstance }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-http-vertx" "name" "adapter-http-vertx" }} +{{- include "hono.headless.service" $args }} +{{ end }} diff --git a/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-deployment.yaml b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-deployment.yaml new file mode 100644 index 00000000..b5600fda --- /dev/null +++ b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-deployment.yaml @@ -0,0 +1,76 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-http-vertx" "name" "adapter-http-vertx" }} +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + containers: + {{- include "hono.jaeger.agent" . | indent 6 }} + - image: {{ .Values.adapters.http.imageName }} + imagePullPolicy: IfNotPresent + name: eclipse-hono-adapter-http-vertx + ports: + - name: health + containerPort: {{ .Values.healthCheckPort }} + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + securityContext: + privileged: false + env: + - name: SPRING_CONFIG_LOCATION + value: file:///etc/hono/ + - name: SPRING_PROFILES_ACTIVE + value: dev + - name: LOGGING_CONFIG + value: classpath:logback-spring.xml + - name: _JAVA_OPTIONS + value: "{{ .Values.defaultJavaOptions }}" + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + {{- include "hono.jaeger.clientConf" $args | indent 8 }} + volumeMounts: + {{- include "hono.container.secretVolumeMounts" ( dict "name" $args.name "conf" .Values.adapters.http ) | indent 8 }} + resources: + limits: + memory: "256Mi" + livenessProbe: + httpGet: + path: /liveness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 180 + readinessProbe: + httpGet: + path: /readiness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 10 + volumes: + {{- include "hono.pod.secretVolumes" ( dict "releaseName" .Release.Name "name" $args.name "conf" .Values.adapters.http ) | indent 6 }} diff --git a/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-route.yaml b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-route.yaml new file mode 100644 index 00000000..6e788c3a --- /dev/null +++ b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-route.yaml @@ -0,0 +1,25 @@ +{{- if eq .Values.platform "openshift" }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "adapter-http-vertx" "name" "adapter-http-vertx" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: http + to: + kind: Service + name: {{ .Release.Name }}-adapter-http-vertx +{{- end }} diff --git a/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-sec-route.yaml b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-sec-route.yaml new file mode 100644 index 00000000..881ff862 --- /dev/null +++ b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-sec-route.yaml @@ -0,0 +1,27 @@ +{{- if eq .Values.platform "openshift" }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "adapter-http-vertx" "name" "adapter-http-vertx-sec" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: https + tls: + termination: passthrough + to: + kind: Service + name: {{ .Release.Name }}-adapter-http-vertx +{{- end }} diff --git a/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-secret.yaml b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-secret.yaml new file mode 100644 index 00000000..e57cb880 --- /dev/null +++ b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-secret.yaml @@ -0,0 +1,43 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-http-vertx" "name" "adapter-http-vertx-conf" }} +apiVersion: v1 +kind: Secret +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + application.yml: | + hono: + app: + maxInstances: {{ .Values.adapters.http.hono.app.maxInstances }} + http: + {{- if .Values.adapters.http.hono.http }} + {{- .Values.adapters.http.hono.http | toYaml | nindent 8 }} + {{- else }} + bindAddress: 0.0.0.0 + insecurePortBindAddress: 0.0.0.0 + insecurePortEnabled: true + keyPath: /etc/hono/key.pem + certPath: /etc/hono/cert.pem + tenantIdleTimeout: {{ .Values.adapters.defaultTenantIdleTimeout | quote }} + {{- end }} + {{- include "hono.healthServerConfig" .Values.adapters.http.hono.healthCheck | nindent 6 }} + {{- include "hono.serviceClientConfig" $args | nindent 6 }} +{{- if not .Values.adapters.http.extraSecretMounts }} +data: + key.pem: {{ .Files.Get "hono-demo-certs-jar/http-adapter-key.pem" | b64enc }} + cert.pem: {{ .Files.Get "hono-demo-certs-jar/http-adapter-cert.pem" | b64enc }} + trusted-certs.pem: {{ .Files.Get "hono-demo-certs-jar/trusted-certs.pem" | b64enc }} + adapter.credentials: {{ .Files.Get "example/http-adapter.credentials" | b64enc }} +{{- end }} \ No newline at end of file diff --git a/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-svc.yaml b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-svc.yaml new file mode 100644 index 00000000..5fcf8773 --- /dev/null +++ b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-svc.yaml @@ -0,0 +1,37 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "adapter-http-vertx" "name" "adapter-http-vertx" }} + {{- include "hono.metadata" $args | nindent 2 }} + {{- with .Values.adapters.http.svc.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: http + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.http.svc "port" "http" ) | nindent 4 }} + - name: https + port: 8443 + protocol: TCP + targetPort: https + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.http.svc "port" "https" ) | nindent 4 }} + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- include "hono.service.type" (dict "dot" . "service" .Values.adapters.http.svc ) | nindent 2 }} +{{- include "hono.service.loadBalancerIP" (dict "dot" . "service" .Values.adapters.http.svc ) | nindent 2 }} diff --git a/charts/hono/templates/hono-adapter-kura/headless-svc.yaml b/charts/hono/templates/hono-adapter-kura/headless-svc.yaml new file mode 100644 index 00000000..2f0ecfc9 --- /dev/null +++ b/charts/hono/templates/hono-adapter-kura/headless-svc.yaml @@ -0,0 +1,16 @@ +{{- if and .Values.prometheus.createInstance .Values.adapters.kura.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-kura" "name" "adapter-kura" }} +{{- include "hono.headless.service" $args }} +{{ end }} diff --git a/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-deployment.yaml b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-deployment.yaml new file mode 100644 index 00000000..87036fd8 --- /dev/null +++ b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-deployment.yaml @@ -0,0 +1,78 @@ +{{- if .Values.adapters.kura.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-kura" "name" "adapter-kura" }} +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + containers: + {{- include "hono.jaeger.agent" . | indent 6 }} + - image: {{ .Values.adapters.kura.imageName }} + imagePullPolicy: IfNotPresent + name: eclipse-hono-adapter-kura + ports: + - name: health + containerPort: {{ .Values.healthCheckPort }} + protocol: TCP + - name: mqtt + containerPort: 1883 + protocol: TCP + - name: secure-mqtt + containerPort: 8883 + protocol: TCP + securityContext: + privileged: false + env: + - name: SPRING_CONFIG_LOCATION + value: file:///etc/hono/ + - name: SPRING_PROFILES_ACTIVE + value: dev + - name: LOGGING_CONFIG + value: classpath:logback-spring.xml + - name: _JAVA_OPTIONS + value: "{{ .Values.defaultJavaOptions }}" + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + {{- include "hono.jaeger.clientConf" $args | indent 8 }} + volumeMounts: + {{- include "hono.container.secretVolumeMounts" ( dict "name" $args.name "conf" .Values.adapters.kura ) | indent 8 }} + resources: + limits: + memory: "256Mi" + readinessProbe: + httpGet: + path: /readiness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 10 + livenessProbe: + httpGet: + path: /liveness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 180 + volumes: + {{- include "hono.pod.secretVolumes" ( dict "releaseName" .Release.Name "name" $args.name "conf" .Values.adapters.kura ) | indent 6 }} +{{ end }} diff --git a/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-route.yaml b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-route.yaml new file mode 100644 index 00000000..60204290 --- /dev/null +++ b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-route.yaml @@ -0,0 +1,25 @@ +{{- if and (eq .Values.platform "openshift") .Values.adapters.kura.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "adapter-kura" "name" "adapter-kura" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: 1883 + to: + kind: Service + name: {{ .Release.Name }}-adapter-kura +{{ end }} diff --git a/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-sec-route.yaml b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-sec-route.yaml new file mode 100644 index 00000000..f1d8515c --- /dev/null +++ b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-sec-route.yaml @@ -0,0 +1,27 @@ +{{- if and (eq .Values.platform "openshift") .Values.adapters.kura.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "adapter-kura" "name" "adapter-kura-sec" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: 8883 + tls: + termination: passthrough + to: + kind: Service + name: {{ .Release.Name }}-adapter-kura +{{ end }} diff --git a/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-secret.yaml b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-secret.yaml new file mode 100644 index 00000000..0590fc65 --- /dev/null +++ b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-secret.yaml @@ -0,0 +1,45 @@ +{{- if .Values.adapters.kura.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-kura" "name" "adapter-kura-conf" }} +apiVersion: v1 +kind: Secret +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + application.yml: | + hono: + app: + maxInstances: {{ .Values.adapters.kura.hono.app.maxInstances }} + kura: + {{- if .Values.adapters.kura.hono.kura }} + {{- .Values.adapters.kura.hono.kura | toYaml | nindent 8 }} + {{- else }} + bindAddress: 0.0.0.0 + insecurePortBindAddress: 0.0.0.0 + insecurePortEnabled: true + keyPath: /etc/hono/key.pem + certPath: /etc/hono/cert.pem + tenantIdleTimeout: {{ .Values.adapters.defaultTenantIdleTimeout | quote }} + {{- end }} + {{- include "hono.healthServerConfig" .Values.adapters.kura.hono.healthCheck | nindent 6 }} + {{- include "hono.serviceClientConfig" $args | nindent 6 }} +{{- if not .Values.adapters.kura.extraSecretMounts }} +data: + key.pem: {{ .Files.Get "hono-demo-certs-jar/kura-adapter-key.pem" | b64enc }} + cert.pem: {{ .Files.Get "hono-demo-certs-jar/kura-adapter-cert.pem" | b64enc }} + trusted-certs.pem: {{ .Files.Get "hono-demo-certs-jar/trusted-certs.pem" | b64enc }} + adapter.credentials: {{ .Files.Get "example/kura-adapter.credentials" | b64enc }} +{{- end }} +{{ end }} diff --git a/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-svc.yaml b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-svc.yaml new file mode 100644 index 00000000..918cffdf --- /dev/null +++ b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-svc.yaml @@ -0,0 +1,39 @@ +{{- if .Values.adapters.kura.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "adapter-kura" "name" "adapter-kura" }} + {{- include "hono.metadata" $args | nindent 2 }} + {{- with .Values.adapters.kura.svc.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ports: + - name: mqtt + port: 1883 + protocol: TCP + targetPort: mqtt + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.kura.svc "port" "mqtt" ) | nindent 4 }} + - name: secure-mqtt + port: 8883 + protocol: TCP + targetPort: secure-mqtt + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.kura.svc "port" "mqtts" ) | nindent 4 }} + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- include "hono.service.type" (dict "dot" . "service" .Values.adapters.kura.svc ) | nindent 2 }} +{{- include "hono.service.loadBalancerIP" (dict "dot" . "service" .Values.adapters.kura.svc ) | nindent 2 }} +{{- end }} diff --git a/charts/hono/templates/hono-adapter-lora/headless-svc.yaml b/charts/hono/templates/hono-adapter-lora/headless-svc.yaml new file mode 100644 index 00000000..5595fcf3 --- /dev/null +++ b/charts/hono/templates/hono-adapter-lora/headless-svc.yaml @@ -0,0 +1,16 @@ +{{- if and .Values.prometheus.createInstance .Values.adapters.lora.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-lora-vertx" "name" "adapter-lora-vertx" }} +{{- include "hono.headless.service" $args }} +{{ end }} diff --git a/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-deployment.yaml b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-deployment.yaml new file mode 100644 index 00000000..4428557a --- /dev/null +++ b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-deployment.yaml @@ -0,0 +1,78 @@ +{{- if .Values.adapters.lora.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-lora-vertx" "name" "adapter-lora-vertx" }} +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + containers: + {{- include "hono.jaeger.agent" . | indent 6 }} + - image: {{ .Values.adapters.lora.imageName }} + imagePullPolicy: IfNotPresent + name: eclipse-hono-adapter-lora-vertx + ports: + - name: health + containerPort: {{ .Values.healthCheckPort }} + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + securityContext: + privileged: false + env: + - name: SPRING_CONFIG_LOCATION + value: file:///etc/hono/ + - name: SPRING_PROFILES_ACTIVE + value: dev + - name: LOGGING_CONFIG + value: classpath:logback-spring.xml + - name: _JAVA_OPTIONS + value: "{{ .Values.defaultJavaOptions }}" + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + {{- include "hono.jaeger.clientConf" $args | indent 8 }} + volumeMounts: + {{- include "hono.container.secretVolumeMounts" ( dict "name" $args.name "conf" .Values.adapters.lora ) | indent 8 }} + resources: + limits: + memory: "256Mi" + livenessProbe: + httpGet: + path: /liveness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 180 + readinessProbe: + httpGet: + path: /readiness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 10 + volumes: + {{- include "hono.pod.secretVolumes" ( dict "releaseName" .Release.Name "name" $args.name "conf" .Values.adapters.lora ) | indent 6 }} +{{- end }} diff --git a/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-route.yaml b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-route.yaml new file mode 100644 index 00000000..1f8012e9 --- /dev/null +++ b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-route.yaml @@ -0,0 +1,25 @@ +{{- if and (eq .Values.platform "openshift") .Values.adapters.lora.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-lora-vertx" "name" "adapter-lora-vertx" }} +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: http + to: + kind: Service + name: {{ .Release.Name }}-adapter-lora-vertx +{{- end }} diff --git a/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-sec-route.yaml b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-sec-route.yaml new file mode 100644 index 00000000..e5b97b5f --- /dev/null +++ b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-sec-route.yaml @@ -0,0 +1,27 @@ +{{- if and (eq .Values.platform "openshift") .Values.adapters.lora.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-lora-vertx" "name" "adapter-lora-vertx-sec" }} +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: https + tls: + termination: passthrough + to: + kind: Service + name: {{ .Release.Name }}-adapter-lora-vertx +{{- end }} diff --git a/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-secret.yaml b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-secret.yaml new file mode 100644 index 00000000..f71aa69d --- /dev/null +++ b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-secret.yaml @@ -0,0 +1,44 @@ +{{- if .Values.adapters.lora.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-lora-vertx" "name" "adapter-lora-vertx-conf" }} +apiVersion: v1 +kind: Secret +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + application.yml: | + hono: + app: + maxInstances: {{ .Values.adapters.lora.hono.app.maxInstances }} + lora: + {{- if .Values.adapters.lora.hono.lora }} + {{- .Values.adapters.lora.hono.lora | toYaml | nindent 8 }} + {{- else }} + bindAddress: "0.0.0.0" + keyPath: "/etc/hono/key.pem" + certPath: "/etc/hono/cert.pem" + insecurePortEnabled: true + insecurePortBindAddress: "0.0.0.0" + {{- end }} + {{- include "hono.healthServerConfig" .Values.adapters.lora.hono.healthCheck | nindent 6 }} + {{- include "hono.serviceClientConfig" $args | nindent 6 }} +{{- if not .Values.adapters.lora.extraSecretMounts }} +data: + key.pem: {{ .Files.Get "hono-demo-certs-jar/lora-adapter-key.pem" | b64enc }} + cert.pem: {{ .Files.Get "hono-demo-certs-jar/lora-adapter-cert.pem" | b64enc }} + trusted-certs.pem: {{ .Files.Get "hono-demo-certs-jar/trusted-certs.pem" | b64enc }} + adapter.credentials: {{ .Files.Get "example/lora-adapter.credentials" | b64enc }} +{{- end }} +{{- end }} diff --git a/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-svc.yaml b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-svc.yaml new file mode 100644 index 00000000..e2800ec8 --- /dev/null +++ b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-svc.yaml @@ -0,0 +1,39 @@ +{{- if .Values.adapters.lora.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "adapter-lora-vertx" "name" "adapter-lora-vertx" }} + {{- include "hono.metadata" $args | nindent 2 }} + {{- with .Values.adapters.lora.svc.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: http + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.lora.svc "port" "http" ) | nindent 4 }} + - name: https + port: 8443 + protocol: TCP + targetPort: https + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.lora.svc "port" "https" ) | nindent 4 }} + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- include "hono.service.type" (dict "dot" . "service" .Values.adapters.lora.svc ) | nindent 2 }} +{{- include "hono.service.loadBalancerIP" (dict "dot" . "service" .Values.adapters.lora.svc ) | nindent 2 }} +{{- end }} diff --git a/charts/hono/templates/hono-adapter-mqtt/headless-svc.yaml b/charts/hono/templates/hono-adapter-mqtt/headless-svc.yaml new file mode 100644 index 00000000..54df06dc --- /dev/null +++ b/charts/hono/templates/hono-adapter-mqtt/headless-svc.yaml @@ -0,0 +1,16 @@ +{{- if .Values.prometheus.createInstance }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-mqtt-vertx" "name" "adapter-mqtt-vertx" }} +{{- include "hono.headless.service" $args }} +{{ end }} diff --git a/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-deployment.yaml b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-deployment.yaml new file mode 100644 index 00000000..71a9809d --- /dev/null +++ b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-deployment.yaml @@ -0,0 +1,76 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-mqtt-vertx" "name" "adapter-mqtt-vertx" }} +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + containers: + {{- include "hono.jaeger.agent" . | indent 6 }} + - image: {{ .Values.adapters.mqtt.imageName }} + imagePullPolicy: IfNotPresent + name: eclipse-hono-adapter-mqtt-vertx + ports: + - name: health + containerPort: {{ .Values.healthCheckPort }} + protocol: TCP + - name: mqtt + containerPort: 1883 + protocol: TCP + - name: secure-mqtt + containerPort: 8883 + protocol: TCP + securityContext: + privileged: false + env: + - name: SPRING_CONFIG_LOCATION + value: file:///etc/hono/ + - name: SPRING_PROFILES_ACTIVE + value: dev + - name: LOGGING_CONFIG + value: classpath:logback-spring.xml + - name: _JAVA_OPTIONS + value: "{{ .Values.defaultJavaOptions }}" + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + {{- include "hono.jaeger.clientConf" $args | indent 8 }} + volumeMounts: + {{- include "hono.container.secretVolumeMounts" ( dict "name" $args.name "conf" .Values.adapters.mqtt ) | indent 8 }} + resources: + limits: + memory: "256Mi" + livenessProbe: + httpGet: + path: /liveness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 180 + readinessProbe: + httpGet: + path: /readiness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 10 + volumes: + {{- include "hono.pod.secretVolumes" ( dict "releaseName" .Release.Name "name" $args.name "conf" .Values.adapters.mqtt ) | indent 6 }} diff --git a/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-route.yaml b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-route.yaml new file mode 100644 index 00000000..2476203d --- /dev/null +++ b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-route.yaml @@ -0,0 +1,25 @@ +{{- if eq .Values.platform "openshift" }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "adapter-mqtt-vertx" "name" "adapter-mqtt-vertx" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: mqtt + to: + kind: Service + name: {{ .Release.Name }}-adapter-mqtt-vertx +{{- end }} diff --git a/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-sec-route.yaml b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-sec-route.yaml new file mode 100644 index 00000000..f2715db7 --- /dev/null +++ b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-sec-route.yaml @@ -0,0 +1,27 @@ +{{- if eq .Values.platform "openshift" }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "adapter-mqtt-vertx" "name" "adapter-mqtt-vertx-sec" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: secure-mqtt + tls: + termination: passthrough + to: + kind: Service + name: {{ .Release.Name }}-adapter-mqtt-vertx +{{- end }} diff --git a/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-secret.yaml b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-secret.yaml new file mode 100644 index 00000000..11dda279 --- /dev/null +++ b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-secret.yaml @@ -0,0 +1,43 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "adapter-mqtt-vertx" "name" "adapter-mqtt-vertx-conf" }} +apiVersion: v1 +kind: Secret +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + application.yml: | + hono: + app: + maxInstances: {{ .Values.adapters.mqtt.hono.app.maxInstances }} + mqtt: + {{- if .Values.adapters.mqtt.hono.mqtt }} + {{- .Values.adapters.mqtt.hono.mqtt | toYaml | nindent 8 }} + {{- else }} + bindAddress: 0.0.0.0 + insecurePortBindAddress: 0.0.0.0 + insecurePortEnabled: true + keyPath: /etc/hono/key.pem + certPath: /etc/hono/cert.pem + tenantIdleTimeout: {{ .Values.adapters.defaultTenantIdleTimeout | quote }} + {{- end }} + {{- include "hono.healthServerConfig" .Values.adapters.mqtt.hono.healthCheck | nindent 6 }} + {{- include "hono.serviceClientConfig" $args | nindent 6 }} +{{- if not .Values.adapters.mqtt.extraSecretMounts }} +data: + key.pem: {{ .Files.Get "hono-demo-certs-jar/mqtt-adapter-key.pem" | b64enc }} + cert.pem: {{ .Files.Get "hono-demo-certs-jar/mqtt-adapter-cert.pem" | b64enc }} + trusted-certs.pem: {{ .Files.Get "hono-demo-certs-jar/trusted-certs.pem" | b64enc }} + adapter.credentials: {{ .Files.Get "example/mqtt-adapter.credentials" | b64enc }} +{{- end }} diff --git a/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-svc.yaml b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-svc.yaml new file mode 100644 index 00000000..fd3f7167 --- /dev/null +++ b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-svc.yaml @@ -0,0 +1,37 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "adapter-mqtt-vertx" "name" "adapter-mqtt-vertx" }} + {{- include "hono.metadata" $args | nindent 2 }} + {{- with .Values.adapters.mqtt.svc.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ports: + - name: mqtt + port: 1883 + protocol: TCP + targetPort: mqtt + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.mqtt.svc "port" "mqtt" ) | nindent 4 }} + - name: secure-mqtt + port: 8883 + protocol: TCP + targetPort: secure-mqtt + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.mqtt.svc "port" "mqtts" ) | nindent 4 }} + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- include "hono.service.type" (dict "dot" . "service" .Values.adapters.mqtt.svc ) | nindent 2 }} +{{- include "hono.service.loadBalancerIP" (dict "dot" . "service" .Values.adapters.mqtt.svc ) | nindent 2 }} diff --git a/charts/hono/templates/hono-service-auth/headless-svc.yaml b/charts/hono/templates/hono-service-auth/headless-svc.yaml new file mode 100644 index 00000000..ef0af311 --- /dev/null +++ b/charts/hono/templates/hono-service-auth/headless-svc.yaml @@ -0,0 +1,16 @@ +{{- if .Values.prometheus.createInstance }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "service-auth" "name" "service-auth" }} +{{- include "hono.headless.service" $args }} +{{ end }} diff --git a/charts/hono/templates/hono-service-auth/hono-service-auth-deployment.yaml b/charts/hono/templates/hono-service-auth/hono-service-auth-deployment.yaml new file mode 100644 index 00000000..cb8dd963 --- /dev/null +++ b/charts/hono/templates/hono-service-auth/hono-service-auth-deployment.yaml @@ -0,0 +1,74 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "service-auth" "name" "service-auth" }} +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + containers: + - image: {{ .Values.authServer.imageName }} + imagePullPolicy: IfNotPresent + name: eclipse-hono-service-auth + ports: + - name: health + containerPort: {{ .Values.healthCheckPort }} + protocol: TCP + - name: amqps + containerPort: 5671 + protocol: TCP + - name: amqp + containerPort: 5672 + protocol: TCP + securityContext: + privileged: false + env: + - name: SPRING_CONFIG_LOCATION + value: file:///etc/hono/ + - name: SPRING_PROFILES_ACTIVE + value: authentication-impl,dev + - name: LOGGING_CONFIG + value: classpath:logback-spring.xml + - name: _JAVA_OPTIONS + value: "{{ .Values.defaultJavaOptions }}" + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + volumeMounts: + {{- include "hono.container.secretVolumeMounts" ( dict "name" $args.name "conf" .Values.authServer ) | indent 8 }} + resources: + limits: + memory: "196Mi" + livenessProbe: + httpGet: + path: /liveness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 180 + readinessProbe: + httpGet: + path: /readiness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 10 + volumes: + {{- include "hono.pod.secretVolumes" ( dict "releaseName" .Release.Name "name" $args.name "conf" .Values.authServer ) | indent 6 }} diff --git a/charts/hono/templates/hono-service-auth/hono-service-auth-route.yaml b/charts/hono/templates/hono-service-auth/hono-service-auth-route.yaml new file mode 100644 index 00000000..fb073bf3 --- /dev/null +++ b/charts/hono/templates/hono-service-auth/hono-service-auth-route.yaml @@ -0,0 +1,27 @@ +{{- if eq .Values.platform "openshift" }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "service-auth" "name" "service-auth" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: amqps + tls: + termination: passthrough + to: + kind: Service + name: {{ .Release.Name }}-service-auth +{{- end }} diff --git a/charts/hono/templates/hono-service-auth/hono-service-auth-secret.yaml b/charts/hono/templates/hono-service-auth/hono-service-auth-secret.yaml new file mode 100644 index 00000000..d7acbfa3 --- /dev/null +++ b/charts/hono/templates/hono-service-auth/hono-service-auth-secret.yaml @@ -0,0 +1,49 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "service-auth" "name" "service-auth-conf" }} +apiVersion: v1 +kind: Secret +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + application.yml: | + hono: + app: + maxInstances: {{ .Values.authServer.hono.app.maxInstances }} + auth: + amqp: + {{- if .Values.authServer.hono.auth.amqp }} + {{- .Values.authServer.hono.auth.amqp | toYaml | nindent 10 }} + {{- else }} + bindAddress: "0.0.0.0" + keyPath: "/etc/hono/key.pem" + certPath: "/etc/hono/cert.pem" + trustStorePath: "/etc/hono/trusted-certs.pem" + insecurePortBindAddress: "0.0.0.0" + insecurePortEnabled: true + {{- end }} + svc: + {{- if .Values.authServer.hono.auth.svc }} + {{- .Values.authServer.hono.auth.svc | toYaml | nindent 10 }} + {{- else }} + permissionsPath: "file:///etc/hono/permissions.json" + {{- end }} + {{- include "hono.healthServerConfig" .Values.authServer.hono.healthServer | nindent 6 }} +{{- if not .Values.authServer.extraSecretMounts }} +data: + key.pem: {{ .Files.Get "hono-demo-certs-jar/auth-server-key.pem" | b64enc }} + cert.pem: {{ .Files.Get "hono-demo-certs-jar/auth-server-cert.pem" | b64enc }} + trusted-certs.pem: {{ .Files.Get "hono-demo-certs-jar/trusted-certs.pem" | b64enc }} + permissions.json: {{ .Files.Get "example/example-permissions.json" | b64enc }} +{{- end }} diff --git a/charts/hono/templates/hono-service-auth/hono-service-auth-svc.yaml b/charts/hono/templates/hono-service-auth/hono-service-auth-svc.yaml new file mode 100644 index 00000000..08005cda --- /dev/null +++ b/charts/hono/templates/hono-service-auth/hono-service-auth-svc.yaml @@ -0,0 +1,25 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "service-auth" "name" "service-auth" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + ports: + - name: amqps + port: 5671 + protocol: TCP + targetPort: amqps + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} diff --git a/charts/hono/templates/hono-service-device-connection/headless-svc.yaml b/charts/hono/templates/hono-service-device-connection/headless-svc.yaml new file mode 100644 index 00000000..cdb8c643 --- /dev/null +++ b/charts/hono/templates/hono-service-device-connection/headless-svc.yaml @@ -0,0 +1,16 @@ +{{- if and .Values.prometheus.createInstance .Values.deviceConnectionService.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "service-device-connection" "name" "service-device-connection" }} +{{- include "hono.headless.service" $args }} +{{ end }} diff --git a/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-deployment.yaml b/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-deployment.yaml new file mode 100644 index 00000000..d7774b9d --- /dev/null +++ b/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-deployment.yaml @@ -0,0 +1,78 @@ +{{- if .Values.deviceConnectionService.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "service-device-connection" "name" "service-device-connection" }} +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + containers: + {{- include "hono.jaeger.agent" . | indent 6 }} + - image: {{ .Values.deviceConnectionService.imageName }} + imagePullPolicy: IfNotPresent + name: eclipse-hono-service-device-connection + ports: + - name: health + containerPort: {{ .Values.healthCheckPort }} + protocol: TCP + - name: amqps + containerPort: 5671 + protocol: TCP + - name: amqp + containerPort: 5672 + protocol: TCP + securityContext: + privileged: false + env: + - name: SPRING_CONFIG_LOCATION + value: file:///etc/hono/ + - name: SPRING_PROFILES_ACTIVE + value: prod + - name: LOGGING_CONFIG + value: classpath:logback-spring.xml + - name: _JAVA_OPTIONS + value: "{{ .Values.defaultJavaOptions }}" + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + {{- include "hono.jaeger.clientConf" $args | indent 8 }} + volumeMounts: + {{- include "hono.container.secretVolumeMounts" ( dict "name" $args.name "conf" .Values.deviceConnectionService ) | indent 8 }} + resources: + limits: + memory: "256Mi" + livenessProbe: + httpGet: + path: /liveness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 90 + readinessProbe: + httpGet: + path: /readiness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 30 + volumes: + {{- include "hono.pod.secretVolumes" ( dict "releaseName" .Release.Name "name" $args.name "conf" .Values.deviceConnectionService ) | indent 6 }} +{{- end }} diff --git a/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-route.yaml b/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-route.yaml new file mode 100644 index 00000000..2dcd9de3 --- /dev/null +++ b/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-route.yaml @@ -0,0 +1,25 @@ +{{if and (eq .Values.platform "openshift") .Values.deviceConnectionService.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "service-device-connection" "name" "service-device-connection" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: 5671 + to: + kind: Service + name: {{ .Release.Name}}-service-device-connection +{{end}} diff --git a/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-secret.yaml b/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-secret.yaml new file mode 100644 index 00000000..53287e8d --- /dev/null +++ b/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-secret.yaml @@ -0,0 +1,70 @@ +{{- if .Values.deviceConnectionService.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "service-device-connection" "name" "service-device-connection-conf" }} +apiVersion: v1 +kind: Secret +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + application.yml: | + hono: + app: + maxInstances: {{ .Values.deviceConnectionService.hono.app.maxInstances }} + startupTimeout: {{ .Values.deviceConnectionService.hono.app.startupTimeout }} + auth: + {{- if .Values.deviceConnectionService.hono.auth }} + {{- .Values.deviceConnectionService.hono.auth | toYaml | nindent 8 }} + {{- else }} + host: {{ printf "%s-service-auth" .Release.Name | quote }} + port: 5671 + trustStorePath: "/etc/hono/trusted-certs.pem" + hostnameVerificationRequired: false + name: {{ printf "Hono %s" $args.component | quote }} + validation: + certPath: "/etc/hono/auth-server-cert.pem" + {{- end }} + deviceConnection: + amqp: + {{- if .Values.deviceConnectionService.hono.deviceConnection.amqp }} + {{- .Values.deviceConnectionService.hono.deviceConnection.amqp | toYaml | nindent 10 }} + {{- else }} + bindAddress: "0.0.0.0" + keyPath: "/etc/hono/key.pem" + certPath: "/etc/hono/cert.pem" + {{- end }} + remote: + {{- if .Values.deviceConnectionService.hono.deviceConnection.remote }} + {{ .Values.deviceConnectionService.hono.deviceConnection.remote | toYaml | indent 10 }} + {{- else }} + {{- if .Values.dataGridExample.enabled }} + {{- $serverName := printf "%s-data-grid" .Release.Name }} + serverList: {{ printf "%s:11222" $serverName | quote }} + authServerName: {{ $serverName | quote }} + authUsername: "hono" + authPassword: "hono-secret" + maxRetries: 100 + {{- else }} + {{- required "A .Values.deviceConnectionService.hono.deviceConnection.remote needs to be set when deploying the (production) Device Connection service" .Values.deviceConnectionService.hono.deviceConnection.remote }} + {{- end }} + {{- end }} + {{- include "hono.healthServerConfig" .Values.deviceConnectionService.hono.healthCheck | nindent 6 }} +{{- if not .Values.deviceConnectionService.extraSecretMounts }} +data: + key.pem: {{ .Files.Get "hono-demo-certs-jar/device-connection-key.pem" | b64enc }} + cert.pem: {{ .Files.Get "hono-demo-certs-jar/device-connection-cert.pem" | b64enc }} + trusted-certs.pem: {{ .Files.Get "hono-demo-certs-jar/trusted-certs.pem" | b64enc }} + auth-server-cert.pem: {{ .Files.Get "hono-demo-certs-jar/auth-server-cert.pem" | b64enc }} +{{- end }} +{{- end }} diff --git a/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-svc.yaml b/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-svc.yaml new file mode 100644 index 00000000..456952d4 --- /dev/null +++ b/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-svc.yaml @@ -0,0 +1,31 @@ +{{- if .Values.deviceConnectionService.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "service-device-connection" "name" "service-device-connection" }} + {{- include "hono.metadata" $args | nindent 2 }} + {{- with .Values.deviceConnectionService.svc.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ports: + - name: amqps + port: 5671 + protocol: TCP + targetPort: amqps + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- end }} diff --git a/charts/hono/templates/hono-service-device-registry/headless-svc.yaml b/charts/hono/templates/hono-service-device-registry/headless-svc.yaml new file mode 100644 index 00000000..654dc293 --- /dev/null +++ b/charts/hono/templates/hono-service-device-registry/headless-svc.yaml @@ -0,0 +1,16 @@ +{{- if and .Values.prometheus.createInstance .Values.deviceRegistryExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "service-device-registry" "name" "service-device-registry" }} +{{- include "hono.headless.service" $args }} +{{- end }} diff --git a/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-amqps-route.yaml b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-amqps-route.yaml new file mode 100644 index 00000000..4d35f578 --- /dev/null +++ b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-amqps-route.yaml @@ -0,0 +1,27 @@ +{{- if and .Values.deviceRegistryExample.enabled ( eq .Values.platform "openshift" ) }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "service-device-registry" "name" "service-device-registry-amqps" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: amqps + tls: + termination: passthrough + to: + kind: Service + name: {{ .Release.Name }}-service-device-registry +{{- end }} diff --git a/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-deployment.yaml b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-deployment.yaml new file mode 100644 index 00000000..9a3aae8a --- /dev/null +++ b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-deployment.yaml @@ -0,0 +1,108 @@ +{{- if .Values.deviceRegistryExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "service-device-registry" "name" "service-device-registry" }} +apiVersion: apps/v1 +kind: StatefulSet +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + serviceName: {{ printf "%s-headless" $args.name }} + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + spec: + {{- if .Values.deviceRegistryExample.data.resetOnStartup }} + initContainers: + # this container is used to copy example data from a secret to files + # in a persistent volume + - name: copy-example-data + image: busybox + command: + - sh + - -c + - cp -u /tmp/hono/{{ .Values.deviceRegistryExample.data.devicesFile }} /var/lib/hono/device-registry/device-identities.json; + cp -u /tmp/hono/{{ .Values.deviceRegistryExample.data.credentialsFile }} /var/lib/hono/device-registry/credentials.json; + cp -u /tmp/hono/{{ .Values.deviceRegistryExample.data.tenantsFile }} /var/lib/hono/device-registry/tenants.json + volumeMounts: + - name: {{ default ( printf "%s-conf" $args.name ) .Values.deviceRegistryExample.data.volumeName | quote }} + mountPath: "/tmp/hono" + - name: "registry" + mountPath: "/var/lib/hono/device-registry" + {{- end }} + containers: + {{- include "hono.jaeger.agent" . | indent 6 }} + - image: {{ .Values.deviceRegistryExample.imageName }} + imagePullPolicy: IfNotPresent + name: eclipse-hono-service-device-registry + ports: + - name: health + containerPort: {{ .Values.healthCheckPort }} + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: amqps + containerPort: 5671 + protocol: TCP + - name: amqp + containerPort: 5672 + protocol: TCP + env: + - name: SPRING_CONFIG_LOCATION + value: file:///etc/hono/ + - name: SPRING_PROFILES_ACTIVE + value: dev + - name: LOGGING_CONFIG + value: classpath:logback-spring.xml + - name: _JAVA_OPTIONS + value: "{{ .Values.defaultJavaOptions }}" + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + {{- include "hono.jaeger.clientConf" $args | indent 8 }} + securityContext: + privileged: false + volumeMounts: + {{- include "hono.container.secretVolumeMounts" ( dict "name" $args.name "conf" .Values.deviceRegistryExample ) | indent 8 }} + - name: "registry" + mountPath: "/var/lib/hono/device-registry" + resources: + limits: + memory: "256Mi" + livenessProbe: + httpGet: + path: /liveness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 180 + readinessProbe: + httpGet: + path: /readiness + port: {{ .Values.healthCheckPort }} + scheme: HTTPS + initialDelaySeconds: 10 + volumes: + {{- include "hono.pod.secretVolumes" ( dict "releaseName" .Release.Name "name" $args.name "conf" .Values.deviceRegistryExample ) | indent 6 }} + - name: "registry" + persistentVolumeClaim: + claimName: {{ printf "%s-%s" .Release.Name $args.name | quote }} +{{- end }} diff --git a/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-ext-svc.yaml b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-ext-svc.yaml new file mode 100644 index 00000000..2a2e020c --- /dev/null +++ b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-ext-svc.yaml @@ -0,0 +1,39 @@ +{{- if .Values.deviceRegistryExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "service-device-registry" "name" "service-device-registry-ext" }} + {{- include "hono.metadata" $args | nindent 2 }} + {{- with .Values.deviceRegistryExample.svc.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ports: + - name: http + port: 28080 + protocol: TCP + targetPort: http + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.deviceRegistryExample.svc "port" "http" ) | nindent 4 }} + - name: https + port: 28443 + protocol: TCP + targetPort: https + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.deviceRegistryExample.svc "port" "https" ) | nindent 4 }} + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- include "hono.service.type" (dict "dot" . "service" .Values.deviceRegistryExample.svc ) | nindent 2 }} +{{- include "hono.service.loadBalancerIP" (dict "dot" . "service" .Values.deviceRegistryExample.svc ) | nindent 2 }} +{{- end }} diff --git a/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-http-route.yaml b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-http-route.yaml new file mode 100644 index 00000000..1b7b0a14 --- /dev/null +++ b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-http-route.yaml @@ -0,0 +1,25 @@ +{{- if and .Values.deviceRegistryExample.enabled ( eq .Values.platform "openshift" ) }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "service-device-registry" "name" "service-device-registry-http" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: amqps + to: + kind: Service + name: {{ .Release.Name }}-service-device-registry +{{- end }} diff --git a/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-https-route.yaml b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-https-route.yaml new file mode 100644 index 00000000..eba3e15c --- /dev/null +++ b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-https-route.yaml @@ -0,0 +1,27 @@ +{{- if and .Values.deviceRegistryExample.enabled ( eq .Values.platform "openshift" ) }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + {{- $args := dict "dot" . "component" "service-device-registry" "name" "service-device-registry-https" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + port: + targetPort: https + tls: + termination: passthrough + to: + kind: Service + name: {{ .Release.Name }}-service-device-registry +{{- end }} diff --git a/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-pvc.yaml b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-pvc.yaml new file mode 100644 index 00000000..eeeffaae --- /dev/null +++ b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-pvc.yaml @@ -0,0 +1,28 @@ +{{- if .Values.deviceRegistryExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "service-device-registry" "name" "service-device-registry" }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +spec: + accessModes: + - ReadWriteOnce + {{- with .Values.deviceRegistryExample.storageClass }} + storageClassName: {{ . | quote }} + {{- end }} + resources: + requests: + storage: 1Mi +{{- end }} diff --git a/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-secret.yaml b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-secret.yaml new file mode 100644 index 00000000..07ea0826 --- /dev/null +++ b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-secret.yaml @@ -0,0 +1,83 @@ +{{- if .Values.deviceRegistryExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +{{- $args := dict "dot" . "component" "service-device-registry" "name" "service-device-registry-conf" }} +apiVersion: v1 +kind: Secret +metadata: + {{- include "hono.metadata" $args | nindent 2 }} +type: Opaque +stringData: + {{- if not .Values.deviceRegistryExample.data.volumeName }} + {{ .Values.deviceRegistryExample.data.devicesFile }}: | + {{- .Files.Get "example/example-device-identities.json" | nindent 4 }} + {{ .Values.deviceRegistryExample.data.credentialsFile }}: | + {{- .Files.Get "example/example-credentials.json" | nindent 4 }} + {{ .Values.deviceRegistryExample.data.tenantsFile }}: | + {{- .Files.Get "example/example-tenants.json" | nindent 4 }} + {{- end }} + application.yml: | + hono: + app: + maxInstances: 1 + auth: + {{- if .Values.deviceRegistryExample.hono.auth }} + {{- .Values.deviceRegistryExample.hono.auth | toYaml | nindent 8 }} + {{- else }} + host: {{ printf "%s-service-auth" .Release.Name | quote }} + port: 5671 + trustStorePath: "/etc/hono/trusted-certs.pem" + hostnameVerificationRequired: false + name: {{ printf "Hono %s" $args.component | quote }} + validation: + certPath: "/etc/hono/auth-server-cert.pem" + {{- end }} + registry: + amqp: + {{- if .Values.deviceRegistryExample.hono.registry.amqp }} + {{- .Values.deviceRegistryExample.hono.registry.amqp | toYaml | nindent 10 }} + {{- else }} + bindAddress: "0.0.0.0" + keyPath: "/etc/hono/key.pem" + certPath: "/etc/hono/cert.pem" + {{- end }} + rest: + {{- if .Values.deviceRegistryExample.hono.registry.rest }} + {{- .Values.deviceRegistryExample.hono.registry.rest | toYaml | nindent 10 }} + {{- else }} + bindAddress: "0.0.0.0" + keyPath: "/etc/hono/key.pem" + certPath: "/etc/hono/cert.pem" + insecurePortEnabled: true + insecurePortBindAddress: "0.0.0.0" + {{- end }} + svc: + filename: "/var/lib/hono/device-registry/device-identities.json" + saveToFile: true + credentials: + svc: + filename: "/var/lib/hono/device-registry/credentials.json" + saveToFile: true + tenant: + svc: + filename: "/var/lib/hono/device-registry/tenants.json" + saveToFile: true + {{- include "hono.healthServerConfig" .Values.deviceRegistryExample.hono.healthCheck | nindent 6 }} +{{- if not .Values.deviceRegistryExample.extraSecretMounts }} +data: + key.pem: {{ .Files.Get "hono-demo-certs-jar/device-registry-key.pem" | b64enc }} + cert.pem: {{ .Files.Get "hono-demo-certs-jar/device-registry-cert.pem" | b64enc }} + trusted-certs.pem: {{ .Files.Get "hono-demo-certs-jar/trusted-certs.pem" | b64enc }} + auth-server-cert.pem: {{ .Files.Get "hono-demo-certs-jar/auth-server-cert.pem" | b64enc }} +{{- end }} +{{- end }} diff --git a/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-svc.yaml b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-svc.yaml new file mode 100644 index 00000000..8daf380e --- /dev/null +++ b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-svc.yaml @@ -0,0 +1,31 @@ +{{- if .Values.deviceRegistryExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "service-device-registry" "name" "service-device-registry" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + ports: + - name: amqps + port: 5671 + protocol: TCP + targetPort: amqps + - name: https + port: 8443 + protocol: TCP + targetPort: https + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- end }} diff --git a/charts/hono/templates/jaeger/jaeger-collector-service.yaml b/charts/hono/templates/jaeger/jaeger-collector-service.yaml new file mode 100644 index 00000000..e70c1f5a --- /dev/null +++ b/charts/hono/templates/jaeger/jaeger-collector-service.yaml @@ -0,0 +1,32 @@ +{{- if .Values.jaegerBackendExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "tracing" "name" "jaeger-collector" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + ports: + - name: jaeger-collector-tchannel + port: 14267 + protocol: TCP + targetPort: 14267 + - name: jaeger-collector-http + port: 14268 + protocol: TCP + targetPort: 14268 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} + type: ClusterIP +{{- end }} diff --git a/charts/hono/templates/jaeger/jaeger-deployment.yaml b/charts/hono/templates/jaeger/jaeger-deployment.yaml new file mode 100644 index 00000000..4fc9061f --- /dev/null +++ b/charts/hono/templates/jaeger/jaeger-deployment.yaml @@ -0,0 +1,53 @@ +{{- if .Values.jaegerBackendExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: apps/v1 +kind: Deployment +metadata: + {{- $args := dict "dot" . "component" "tracing" "name" "jaeger-all-in-one" }} + {{- include "hono.metadata" $args | nindent 2 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "hono.matchLabels" $args | nindent 6 }} + template: + metadata: + {{- include "hono.metadata" $args | nindent 6 }} + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "16686" + spec: + containers: + - env: + - name: MEMORY_MAX_TRACES + value: "100000" + image: {{ default "jaegertracing/all-in-one:1.13.1" .Values.jaegerBackendExample.allInOneImage }} + name: jaeger + ports: + - containerPort: 5775 + protocol: UDP + - containerPort: 6831 + protocol: UDP + - containerPort: 6832 + protocol: UDP + - containerPort: 5778 + protocol: TCP + - containerPort: 16686 + protocol: TCP + readinessProbe: + httpGet: + path: "/" + port: 14269 + initialDelaySeconds: 5 +{{- end }} diff --git a/charts/hono/templates/jaeger/jaeger-query-service.yaml b/charts/hono/templates/jaeger/jaeger-query-service.yaml new file mode 100644 index 00000000..85d3c154 --- /dev/null +++ b/charts/hono/templates/jaeger/jaeger-query-service.yaml @@ -0,0 +1,34 @@ +{{- if .Values.jaegerBackendExample.enabled }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: Service +metadata: + {{- $args := dict "dot" . "component" "tracing" "name" "jaeger-query" }} + {{- include "hono.metadata" $args | nindent 2 }} + {{- with .Values.jaegerBackendExample.svc.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ports: + - name: query-http + port: 80 + protocol: TCP + targetPort: 16686 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.jaegerBackendExample.svc "port" "http" ) | nindent 4 }} + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- include "hono.service.type" (dict "dot" . "service" .Values.jaegerBackendExample.svc ) | nindent 2 }} +{{- include "hono.service.loadBalancerIP" (dict "dot" . "service" .Values.jaegerBackendExample.svc ) | nindent 2 }} +{{- end }} diff --git a/charts/hono/templates/prometheus/prometheus-config.yaml b/charts/hono/templates/prometheus/prometheus-config.yaml new file mode 100644 index 00000000..e1c69e78 --- /dev/null +++ b/charts/hono/templates/prometheus/prometheus-config.yaml @@ -0,0 +1,51 @@ +{{- if .Values.prometheus.createInstance }} +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# +apiVersion: v1 +kind: ConfigMap +metadata: + {{- $args := dict "dot" . "component" "metrics" "name" "prometheus-config" }} + {{- include "hono.metadata" $args | nindent 2 }} +data: + rules: | + {{ "" }} + alerts: | + {{ "" }} + prometheus.yml: | + global: + {{- .Values.prometheus.server.global | toYaml | nindent 6 }} + rule_files: + - /etc/config/rules + - /etc/config/alerts + + scrape_configs: + {{- include "hono.prometheus.scrapeJob" (dict "dot" . "serviceName" "service-auth") | nindent 4 }} + {{- if .Values.deviceRegistryExample.enabled }} + {{- include "hono.prometheus.scrapeJob" (dict "dot" . "serviceName" "service-device-registry") | nindent 4 }} + {{- end }} + {{- if .Values.deviceConnectionService.enabled }} + {{- include "hono.prometheus.scrapeJob" (dict "dot" . "serviceName" "service-device-connection") | nindent 4 }} + {{- end }} + {{- include "hono.prometheus.scrapeJob" (dict "dot" . "serviceName" "adapter-amqp-vertx") | nindent 4 }} + {{- include "hono.prometheus.scrapeJob" (dict "dot" . "serviceName" "adapter-http-vertx") | nindent 4 }} + {{- if .Values.adapters.lora.enabled }} + {{- include "hono.prometheus.scrapeJob" (dict "dot" . "serviceName" "adapter-lora-vertx") | nindent 4 }} + {{- end }} + {{- include "hono.prometheus.scrapeJob" (dict "dot" . "serviceName" "adapter-mqtt-vertx") | nindent 4 }} + {{- if .Values.adapters.kura.enabled }} + {{- include "hono.prometheus.scrapeJob" (dict "dot" . "serviceName" "adapter-kura") | nindent 4 }} + {{- end }} + {{- if .Values.adapters.coap.enabled }} + {{- include "hono.prometheus.scrapeJob" (dict "dot" . "serviceName" "adapter-coap-vertx") | nindent 4 }} + {{- end }} +{{ end }} diff --git a/charts/hono/values.yaml b/charts/hono/values.yaml new file mode 100644 index 00000000..d9a90ba7 --- /dev/null +++ b/charts/hono/values.yaml @@ -0,0 +1,897 @@ +# +# Copyright (c) 2019 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0 +# +# SPDX-License-Identifier: EPL-2.0 +# + +# Default values for eclipse-hono. +# Declare variables to be passed into your templates. + +amqpMessagingNetworkExample: + # enabled indicates whether the example AMQP Messaging Network + # consisting of a single Dispatch Router and Broker should be + # deployed and used. By default an internal Broker is deployed. + # As alternative an external Broker can be configured as well. + enabled: true + # dispatchRouter.imageName contains the name (including tag) + # of the container image to use for the example AQMP Messaging Network Router. + dispatchRouter: + imageName: quay.io/enmasse/qdrouterd-base:1.7.0 + svc: + annotations: {} + loadBalancerIP: + nodePorts: + amqps: 30671 + amqp: 30672 + + # serviceType defines the type which the created service will have. + # The default is "NodePort". + # Note: This property will be ignored when deploying to platform "openshift". + type: NodePort + + # AMQP Messaging Network Broker configuration. + broker: + type: artemis + artemis: + # imageName contains the name (including tag) of the container + # image to use for the example AMQP Messaging Network Broker + imageName: enmasseproject/activemq-artemis:2.2.0-4 + # Azure Service Bus as alternative to self-hosted Artemis ActiveMQ for event persistence + servicebus: + saslUsername: + saslPassword: + host: + +dataGridExample: + # enabled indicates whether the example data grid + # should be deployed and used. + # The default value of this property is false which is consistent with + # the default value (false) of the "deviceConnectionService.enabled" property, + # resulting in the in-memory implementation of the Device Connection + # service provided by the example device registry being used by default. + enabled: false + # imageName contains the name (including tag) + # of the container image to use for the example data grid. + imageName: jboss/infinispan-server:9.4.11.Final + + +jaegerBackendExample: + + # enabled indicates whether the example Jaeger all-in-one + # back end should be deployed and used. + enabled: false + # allInOneImage contains the name (including tag) + # of the container image to use for the example Jaeger back end. + allInOneImage: jaegertracing/all-in-one:1.13.1 + svc: + annotations: {} + loadBalancerIP: + nodePorts: + http: 36686 + + # serviceType defines the type which the created service will have. + # The default is "NodePort". + # Note: This property will be ignored when deploying to platform "openshift". + type: NodePort + +# jaegerAgentImage contains the name (including tag) +# of the container image to use for the Jaeger Agent sidecar deployed +# with Hono's components. +jaegerAgentImage: jaegertracing/jaeger-agent:1.13.1 +# jaegerAgentConf contains environment variables for configuring the Jaeger Agent sidecar container +# that is deployed with each of Hono's components. +# The Jaeger Agent sidecar container is deployed with standard properties if +# "jaegerBackendExample.enabled" is set to true. +# Otherwise the sidecar container is deployed using the environment variables contained +# in this property (if not nil). +# Please refer to https://www.jaegertracing.io/docs/1.13/cli/ for syntax and semantics +# of environment variables. +jaegerAgentConf: +# REPORTER_TYPE: tchannel +# REPORTER_TCHANNEL_HOST_PORT: my-jaeger-collector:14267 +# REPORTER_TCHANNEL_DISCOVERY_MIN_PEERS: 1 + +# defaultJavaOptions contains options to pass to the JVM when starting +# up Hono's containers +defaultJavaOptions: -XX:MinRAMPercentage=80 -XX:MaxRAMPercentage=80 + +# the port that the Hono components' Prometheus scraping endpoint is exposed on +monitoring: + prometheus: + port: 8088 + +# healthCheckPort is the port that the Hono components bind their health check +# server to. +healthCheckPort: 8088 + +# platform indicates the type of container orchestration platform we are deploying to. +# Supported values are: +# - openshift +# - kubernetes +# +# When setting to "openshift", Route resources will also be deployed. +platform: kubernetes + +# Configuration properties for protocol adapters. +adapters: + + # amqpMessagingNetworkSpec contains Hono client properties used by all protocol + # adapters for connecting to the AMQP Messaging Network to forward downstream messages to. + # This property MUST be set if "amqpMessagingNetworkDeployExample" is set to false. + # Please refer to https://www.eclipse.org/hono/docs/admin-guide/hono-client-configuration/ + # for a description of supported properties. + # amqpMessagingNetworkSpec: + # host: my-amqp-host + # port: 5671 + # trustStorePath: /etc/conf/amqp-trust-store.pem + # credentialsPath: /etc/conf/amqp-credentials.properties + + # commandAndControlSpec contains Hono client properties used by all protocol + # adapters for connecting to the AMQP Messaging Network which is used by applications + # to send commands to devices. + # This property MUST be set if "amqpMessagingNetworkDeployExample" is set to false. + # Please refer to https://www.eclipse.org/hono/docs/admin-guide/hono-client-configuration/ + # for a description of supported properties. + # commandAndControlSpec: + + # tenantSpec contains Hono client properties used by all protocol adapters for + # connecting to the Tenant service. + # This property MUST be set if "deviceRegistryExample.enabled" is set to false. + # Please refer to https://www.eclipse.org/hono/docs/admin-guide/hono-client-configuration/ + # for a description of supported properties. + # tenantSpec: + + # deviceRegistrationSpec contains Hono client properties used by all protocol adapters for + # connecting to the Device Registration service. + # This property MUST be set if "deviceRegistryExample.enabled" is set to false. + # Please refer to https://www.eclipse.org/hono/docs/admin-guide/hono-client-configuration/ + # for a description of supported properties. + # deviceRegistrationSpec: + + # credentialsSpec contains Hono client properties used by all protocol adapters for + # connecting to the Credentials service. + # This property MUST be set if "deviceRegistryExample.enabled" is set to false. + # Please refer to https://www.eclipse.org/hono/docs/admin-guide/hono-client-configuration/ + # for a description of supported properties. + # credentialsSpec: + + # deviceConnectionSpec contains Hono client properties used by all protocol adapters for + # connecting to the Device Connection service. + # This property MUST be set if "deviceRegistryExample.enabled" and + # "deviceConnectionService.enabled" are both set to false. + # Please refer to https://www.eclipse.org/hono/docs/admin-guide/hono-client-configuration/ + # for a description of supported properties. + # deviceConnectionSpec: + + # tenantIdleTimeout contains the amount of time of inactivity after + # which protocol adapters close tenant specific links to services they + # interact with. + # Please refer to the Spring Boot documentation for the supported syntax: + # https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration + defaultTenantIdleTimeout: "1h" + + amqp: + # imageName contains the name (including registry and tag) + # of the container image to use for the AMQP adapter + imageName: index.docker.io/eclipse/hono-adapter-amqp-vertx:1.0.2 + + svc: + annotations: {} + loadBalancerIP: + nodePorts: + amqps: 32671 + amqp: 32672 + + # serviceType defines the type which the created service will have. + # The default is "NodePort". + # Note: This property will be ignored when deploying to platform "openshift". + type: NodePort + + # extraSecretMounts describes additional secrets that should be mounted into the + # adapter's container filesystem. The files from the secret(s) can + # then be used in e.g. the service client specs. + # The secrets are expected to exist in the same Kubernetes namespace + # as the one that the adapter has been deployed to. + # If this property is set then the example key, cert, trust store and credentials + # will not be included in the adapters "config" secret, i.e. the extra + # secret(s) defiend here need to include these artifacts if the adapter should + # use TLS and/or credentials for authentication. + # extraSecretMounts: + # passwords: + # secretName: "my-passwords" + # mountPath: "/etc/pwd" + # other: + # secretName: "other-stuff" + # mountPath: "/etc/other" + + # hono contains the adapter's configuration properties as defined in + # https://www.eclipse.org/hono/docs/admin-guide/amqp-adapter-config/ + hono: + app: + # maxInstances defines the number of adapter Verticle instances to deploy + # to the vert.x runtime during start-up. + maxInstances: 1 + + # amqp contains configuration properties for the adapter's + # exposed AMQP endpoints. + # If not set, the adapter by default exposes the secure and insecure ports + # using an example key and certificate. + amqp: + # insecurePortEnabled: true + # insecurePortBindAddress: "0.0.0.0" + + # healthCheck contains configuration properties for the adapter's + # health check server as defined by + # https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/#health-check-server-configuration + # If not set, a TLS secured health check server is configured listening on + # all network interfaces on port 8088 using the adapter's + # example key and cert.' + healthCheck: + # bindAddress: 0.0.0.0 + # port: 12000 + # keyPath: "/etc/config/key.pem" + # certPath: "/etc/config/cert.pem" + + coap: + # enabled indicates if Hono's (experimental) CoAP adapter should be deployed. + # Note that this requires building the corresponding container image manually because + # there is no official image available from Docker Hub (yet). + enabled: false + # imageName contains the name (including registry and tag) + # of the container image to use for the CoAP adapter + imageName: index.docker.io/eclipse/hono-adapter-coap-vertx:1.0.2 + + svc: + annotations: {} + loadBalancerIP: + nodePorts: + coap: 30683 + coaps: 30684 + + # serviceType defines the type which the created service will have. + # The default is "NodePort". + # Note: This property will be ignored when deploying to platform "openshift". + type: NodePort + + # extraSecretMounts describes additional secrets that should be mounted into the + # adapter's container filesystem. The files from the secret(s) can + # then be used in e.g. the service client specs. + # The secrets are expected to exist in the same Kubernetes namespace + # as the one that the adapter has been deployed to. + # If this property is set then the example key, cert, trust store and credentials + # will not be included in the adapters "config" secret, i.e. the extra + # secret(s) defiend here need to include these artifacts if the adapter should + # use TLS and/or credentials for authentication. + # extraSecretMounts: + # passwords: + # secretName: "my-passwords" + # mountPath: "/etc/pwd" + # other: + # secretName: "other-stuff" + # mountPath: "/etc/other" + + # hono contains the adapter's configuration properties + hono: + app: + # maxInstances defines the number of adapter Verticle instances to deploy + # to the vert.x runtime during start-up. + maxInstances: 1 + + # healthCheck contains configuration properties for the adapter's + # health check server as defined by + # https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/#health-check-server-configuration + # If not set, a TLS secured health check server is configured listening on + # all network interfaces on port 8088 using the adapter's + # example key and cert.' + healthCheck: + # bindAddress: 0.0.0.0 + # port: 12000 + # keyPath: "/etc/config/key.pem" + # certPath: "/etc/config/cert.pem" + + http: + # imageName contains the name (including registry and tag) + # of the container image to use for the HTTP adapter + imageName: index.docker.io/eclipse/hono-adapter-http-vertx:1.0.2 + + svc: + annotations: {} + loadBalancerIP: + nodePorts: + http: 30080 + https: 30443 + + # serviceType defines the type which the created service will have. + # The default is "NodePort". + # Note: This property will be ignored when deploying to platform "openshift". + type: NodePort + + # extraSecretMounts describes additional secrets that should be mounted into the + # adapter's container filesystem. The files from the secret(s) can + # then be used in e.g. the service client specs. + # The secrets are expected to exist in the same Kubernetes namespace + # as the one that the adapter has been deployed to. + # If this property is set then the example key, cert, trust store and credentials + # will not be included in the adapters "config" secret, i.e. the extra + # secret(s) defiend here need to include these artifacts if the adapter should + # use TLS and/or credentials for authentication. + # extraSecretMounts: + # passwords: + # secretName: "my-passwords" + # mountPath: "/etc/pwd" + # other: + # secretName: "other-stuff" + # mountPath: "/etc/other" + + # hono contains the adapter's configuration properties as defined in + # https://www.eclipse.org/hono/docs/admin-guide/http-adapter-config/ + hono: + app: + # maxInstances defines the number of adapter Verticle instances to deploy + # to the vert.x runtime during start-up. + maxInstances: 1 + + # http contains configuration properties for the adapter's + # exposed HTTP endpoints. + # If not set, the adapter by default exposes the secure and insecure ports + # using an example key and certificate. + http: + # insecurePortEnabled: true + # insecurePortBindAddress: "0.0.0.0" + + # healthCheck contains configuration properties for the adapter's + # health check server as defined by + # https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/#health-check-server-configuration + # If not set, a TLS secured health check server is configured listening on + # all network interfaces on port 8088 using the adapter's + # example key and cert.' + healthCheck: + # bindAddress: 0.0.0.0 + # port: 12000 + # keyPath: "/etc/config/key.pem" + # certPath: "/etc/config/cert.pem" + + lora: + # enabled indicates if Hono's Lora adapter should be deployed. + enabled: false + # imageName contains the name (including registry and tag) + # of the container image to use for the LoRa adapter + imageName: index.docker.io/eclipse/hono-adapter-lora-vertx:1.0.2 + + svc: + annotations: {} + loadBalancerIP: + nodePorts: + http: 32080 + https: 32443 + + # serviceType defines the type which the created service will have. + # The default is "NodePort". + # Note: This property will be ignored when deploying to platform "openshift". + type: NodePort + + # extraSecretMounts describes additional secrets that should be mounted into the + # adapter's container filesystem. The files from the secret(s) can + # then be used in e.g. the service client specs. + # The secrets are expected to exist in the same Kubernetes namespace + # as the one that the adapter has been deployed to. + # If this property is set then the example key, cert, trust store and credentials + # will not be included in the adapters "config" secret, i.e. the extra + # secret(s) defiend here need to include these artifacts if the adapter should + # use TLS and/or credentials for authentication. + # extraSecretMounts: + # passwords: + # secretName: "my-passwords" + # mountPath: "/etc/pwd" + # other: + # secretName: "other-stuff" + # mountPath: "/etc/other" + + # hono contains the adapter's configuration properties + hono: + app: + # maxInstances defines the number of adapter Verticle instances to deploy + # to the vert.x runtime during start-up. + maxInstances: 1 + + # lora contains configuration properties for the adapter's + # exposed HTTP endpoints. + # If not set, the adapter by default exposes the secure and insecure ports + # using an example key and certificate. + lora: + # insecurePortEnabled: true + # insecurePortBindAddress: "0.0.0.0" + + # healthCheck contains configuration properties for the adapter's + # health check server as defined by + # https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/#health-check-server-configuration + # If not set, a TLS secured health check server is configured listening on + # all network interfaces on port 8088 using the adapter's + # example key and cert.' + healthCheck: + # bindAddress: 0.0.0.0 + # port: 12000 + # keyPath: "/etc/config/key.pem" + # certPath: "/etc/config/cert.pem" + + mqtt: + # imageName contains the name (including registry and tag) + # of the container image to use for the MQTT adapter + imageName: index.docker.io/eclipse/hono-adapter-mqtt-vertx:1.0.2 + + svc: + annotations: {} + loadBalancerIP: + nodePorts: + mqtt: 31883 + mqtts: 30883 + + # serviceType defines the type which the created service will have. + # The default is "NodePort". + # Note: This property will be ignored when deploying to platform "openshift". + type: NodePort + + # extraSecretMounts describes additional secrets that should be mounted into the + # adapter's container filesystem. The files from the secret(s) can + # then be used in e.g. the service client specs. + # The secrets are expected to exist in the same Kubernetes namespace + # as the one that the adapter has been deployed to. + # If this property is set then the example key, cert, trust store and credentials + # will not be included in the adapters "config" secret, i.e. the extra + # secret(s) defiend here need to include these artifacts if the adapter should + # use TLS and/or credentials for authentication. + # extraSecretMounts: + # passwords: + # secretName: "my-passwords" + # mountPath: "/etc/pwd" + # other: + # secretName: "other-stuff" + # mountPath: "/etc/other" + + # hono contains the adapter's configuration properties as defined in + # https://www.eclipse.org/hono/docs/admin-guide/mqtt-adapter-config/ + hono: + app: + # maxInstances defines the number of adapter Verticle instances to deploy + # to the vert.x runtime during start-up. + maxInstances: 1 + + # http contains configuration properties for the adapter's + # exposed MQTT endpoints. + # If not set, the adapter by default exposes the secure and insecure ports + # using an example key and certificate. + mqtt: + # insecurePortEnabled: true + # insecurePortBindAddress: "0.0.0.0" + + # healthCheck contains configuration properties for the adapter's + # health check server as defined by + # https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/#health-check-server-configuration + # If not set, a TLS secured health check server is configured listening on + # all network interfaces on port 8088 using the adapter's + # example key and cert.' + healthCheck: + # bindAddress: 0.0.0.0 + # port: 12000 + # keyPath: "/etc/config/key.pem" + # certPath: "/etc/config/cert.pem" + + kura: + # enabled indicates if Hono's (deprecated) Kura adapter should be deployed. + enabled: false + # imageName contains the name (including registry and tag) + # of the container image to use for the Kura adapter + imageName: index.docker.io/eclipse/hono-adapter-kura:1.0.2 + svc: + annotations: {} + loadBalancerIP: + nodePorts: + mqtt: 31884 + mqtts: 30884 + + # serviceType defines the type which the created service will have. + # The default is "NodePort". + # Note: This property will be ignored when deploying to platform "openshift". + type: NodePort + + # extraSecretMounts describes additional secrets that should be mounted into the + # adapter's container filesystem. The files from the secret(s) can + # then be used in e.g. the service client specs. + # The secrets are expected to exist in the same Kubernetes namespace + # as the one that the adapter has been deployed to. + # If this property is set then the example key, cert, trust store and credentials + # will not be included in the adapters "config" secret, i.e. the extra + # secret(s) defiend here need to include these artifacts if the adapter should + # use TLS and/or credentials for authentication. + # extraSecretMounts: + # passwords: + # secretName: "my-passwords" + # mountPath: "/etc/pwd" + # other: + # secretName: "other-stuff" + # mountPath: "/etc/other" + + # hono contains the adapter's configuration properties as defined in + # https://www.eclipse.org/hono/docs/admin-guide/kura-adapter-config/ + hono: + app: + # maxInstances defines the number of adapter Verticle instances to deploy + # to the vert.x runtime during start-up. + maxInstances: 1 + + # http contains configuration properties for the adapter's + # exposed MQTT endpoints. + # If not set, the adapter by default exposes the secure and insecure ports + # using an example key and certificate. + kura: + # insecurePortEnabled: true + # insecurePortBindAddress: "0.0.0.0" + + # healthCheck contains configuration properties for the adapter's + # health check server as defined by + # https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/#health-check-server-configuration + # If not set, a TLS secured health check server is configured listening on + # all network interfaces on port 8088 using the adapter's + # example key and cert.' + healthCheck: + # bindAddress: 0.0.0.0 + # port: 12000 + # keyPath: "/etc/config/key.pem" + # certPath: "/etc/config/cert.pem" + + +# authServer contains configuration properties for the Auth Server component. +authServer: + + # imageName contains the name (including registry and tag) + # of the container image to use for the Auth Server + imageName: index.docker.io/eclipse/hono-service-auth:1.0.2 + + # extraSecretMounts describes additional secrets that should be mounted into the + # Auth Server's' container filesystem. The files from the secret(s) can + # then be used in e.g. the configuration of the server's exposed ports. + # The secrets are expected to exist in the same Kubernetes namespace + # as the one that the server has been deployed to. + # If this property is set then the example key, cert, trust store and credentials + # will not be included in the Auth Server's' "config" secret, i.e. the extra + # secret(s) defined here need to include these artifacts if the Auth Server should + # use TLS and/or credentials for authentication. + # extraSecretMounts: + # passwords: + # secretName: "my-passwords" + # mountPath: "/etc/pwd" + # other: + # secretName: "other-stuff" + # mountPath: "/etc/other" + + # hono contains the Auth Server's configuration properties as defined in + # https://www.eclipse.org/hono/docs/admin-guide/auth-server-config/ + hono: + app: + # maxInstances defines the number of adapter Verticle instances to deploy + # to the vert.x runtime during start-up. + maxInstances: 1 + auth: + # svc contains configuration properties for the server + # If not set, the sever by default loads permissions from + # /etc/hono/permissions.json and issues tokens with a lifetime of 1h + svc: + # permissionsPath: "file:///etc/hono/permissions.json" + # signing: + # tokenExpiration contains the number of seconds after which tokens issued + # by the Auth server will expire. + # tokenExpiration: 3600 + # amqp contains configuration properties for the server's + # exposed AMQP endpoints. + # If not set, the sever by default exposes the secure and insecure ports + # using an example key and certificate. + amqp: + # insecurePortEnabled: true + # insecurePortBindAddress: "0.0.0.0" + + # healthCheck contains configuration properties for the service's + # health check server as defined by + # https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/#health-check-server-configuration + # If not set, a TLS secured health check server is configured listening on + # all network interfaces on port 8088 using the service's + # example key and cert.' + healthCheck: + # bindAddress: 0.0.0.0 + # port: 12000 + # keyPath: "/etc/config/key.pem" + # certPath: "/etc/config/cert.pem" + + +# deviceRegistryExample contains configuration properties for the +# example Device Registry. +deviceRegistryExample: + + # enabled indicates whether the example Device Registry + # should be deployed and used. + # If this property is set to false, then the protocol adapters need to be + # explicitly configured for connecting to the Tenant, Device Registration, + # Credentials and Device Connection services using properties + # - "adapters.tenantSpec" + # - "adapters.deviceRegistrationSpec" + # - "adapters.credentialsSpec" + # - "adapters.deviceConnectionSpec" + enabled: true + + # imageName contains the name (including registry and tag) + # of the container image to use for the example Device Registry + imageName: index.docker.io/eclipse/hono-service-device-registry:1.0.2 + + svc: + annotations: {} + loadBalancerIP: + nodePorts: + http: 31080 + https: 31443 + + # serviceType defines the type which the created service will have. + # The default is "NodePort". + # Note: This property will be ignored when deploying to platform "openshift". + type: NodePort + + # extraSecretMounts describes additional secrets that should be mounted into the + # Device Registry's' container filesystem. The files from the secret(s) can + # then be used in e.g. the configuration of the server's exposed ports. + # The secrets are expected to exist in the same Kubernetes namespace + # as the one that the server has been deployed to. + # If this property is set then the example key, cert, trust store and example + # data files will not be included in the Registry's "config" secret, i.e. the extra + # secret(s) defined here need to include these artifacts if the Device Registry should + # use TLS and/or other example data. + # extraSecretMounts: + # tls: + # secretName: "key-material" + # mountPath: "/etc/tls" + # data: + # secretName: "example-data" + # mountPath: "/etc/data" + + # data defines the location of files containing data + # that should be used to initialize the example Device Registry during startup. + # The files are ource from where + data: + # volumeName contains the name of the service pod's volume that has been created for the + # secret containing the example data files. + # If not set, the files will be read from the volume created from the registry's default "conf" secret. + # Otherwise, the volume name needs to match the name used in the extraSecretMounts for the + # secret containing the data. + # volumeName: + # tenantsFile inidicates the name of the file that is used to initialize the + # Tenant service with example tenant data + tenantsFile: example-tenants.json + # devicesFile inidicates the name of the file that is used to initialize the + # Device Registration service with example device data + devicesFile: example-device-identities.json + # credentialsFile inidicates the name of the file that is used to initialize the + # Credentials service with example credentials + credentialsFile: example-credentials.json + # resetOnStartup indicates whether registration data should be reset to initial + # example data when the example Device Registry starts up + resetOnStartup: true + + # Persistent volume claim storage class + # storageClass: + + # hono contains the Device Registry's configuration properties as defined in + # https://www.eclipse.org/hono/docs/admin-guide/device-registry-config/ + hono: + # auth contains Hono client properties used by the example registry for + # connecting to the Authentication service. + # If not set, the registry by default uses the Auth Server component to + # authenticate clients. + auth: + registry: + # amqp contains configuration properties for the server's + # exposed AMQP endpoints. + # If not set, the registry by default exposes the secure port + # using an example key and certificate. + amqp: + # insecurePortEnabled: true + # insecurePortBindAddress: "0.0.0.0" + + # rest contains configuration properties for the server's + # exposed HTTP endpoints. + # If not set, the registry by default exposes the insecure and secure ports + # using an example key and certificate. + rest: + # insecurePortEnabled: true + # insecurePortBindAddress: "0.0.0.0" + + # healthCheck contains configuration properties for the service's + # health check server as defined by + # https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/#health-check-server-configuration + # If not set, a TLS secured health check server is configured listening on + # all network interfaces on port 8088 using the service's + # example key and cert.' + healthCheck: + # bindAddress: 0.0.0.0 + # port: 12000 + # keyPath: "/etc/config/key.pem" + # certPath: "/etc/config/cert.pem" + +# deviceConnectionService contains configuration properties for the +# Device Connection service. +deviceConnectionService: + + # imageName contains the name (including registry and tag) + # of the container image to use for the Device Connection service + imageName: index.docker.io/eclipse/hono-service-device-connection:1.0.2 + svc: + annotations: {} + + # enabled indicates if the data grid based Device Connection service implementation + # should be deployed and used. + # If set to false (the default) and "deviceRegistryExample.enabled" is set to true, + # the in-memory implementation that is part of the example Device Registry is used. + # If set to false (the default) and "deviceRegistryExample.enabled" is also set to false, + # then the "adapters.deviceConnectionSpec" is expected to contain the required + # Hono client config properties to connect to an already existing Device Connection service. + enabled: false + + # extraSecretMounts describes additional secrets that should be mounted into the + # service's' container filesystem. The files from the secret(s) can + # then be used in e.g. the configuration of the service's exposed ports. + # The secrets are expected to exist in the same Kubernetes namespace + # as the one that the service has been deployed to. + # If this property is set then the example key, cert and trust store will not be + # included in the service's "config" secret, i.e. the extra + # secret(s) defined here need to include these artifacts if the service should + # use TLS and/or other credentials. + # extraSecretMounts: + # tls: + # secretName: "key-material" + # mountPath: "/etc/tls" + + # hono contains the service's configuration properties as defined in + # https://www.eclipse.org/hono/docs/admin-guide/device-connection-config/ + hono: + app: + # maxInstances defines the number of adapter Verticle instances to deploy + # to the vert.x runtime during start-up. + maxInstances: 1 + startupTimeout: 180 + # auth contains Hono client properties used by the service for + # connecting to the Authentication service. + # If not set, the service by default uses the Auth Server component to + # authenticate clients. + auth: + deviceConnection: + # amqp contains configuration properties for the server's + # exposed AMQP endpoints. + # If not set, the registry by default exposes the secure port + # using an example key and certificate. + amqp: + # insecurePortEnabled: true + # insecurePortBindAddress: "0.0.0.0" + + # remote contains properties for configuring the Infinispan Hotrod connection + # to the data grid that should be used for storing the device connection data. + # This property MUST be set if "deviceConnectionService.enabled" is set to true + # and "dataGridExample.enabled" is set to false (the default). + # Please refer to https://docs.jboss.org/infinispan/9.4/apidocs/org/infinispan/client/hotrod/configuration/package-summary.html#package.description + # for a list of configuration properties. + remote: + # serverList: hono-data-grid:11222 + # authServerName: hono-data-grid + # authUsername: hono + # authPassword: hono-secret + + # healthCheck contains configuration properties for the service's + # health check server as defined by + # https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/#health-check-server-configuration + # If not set, a TLS secured health check server is configured listening on + # all network interfaces on port 8088 using the service's + # example key and cert.' + healthCheck: + # bindAddress: 0.0.0.0 + # port: 12000 + # keyPath: "/etc/config/key.pem" + # certPath: "/etc/config/cert.pem" + +prometheus: + # createInstance indicates whether a Prometheus server should be created + # using the Prometheus chart. + # Set this property to false if you want to use an already existing server + # instead. In that case, set the "name" and "port" properties to the + # existing server's host name and port. + createInstance: false + # host contains the host name of an existing Prometheus server. + # This property is used to configure a corresponding datasource in Grafana + # if createInstance is set to false. + # host: + # port contains the port number of an existing Prometheus server. + # This property is used to configure a corresponding datasource in Grafana + # if createInstance is set to false. + # port: 9090 + + ## Define serviceAccount names for components. Defaults to component's fully qualified name. + ## + serviceAccounts: + alertmanager: + create: false + name: + kubeStateMetrics: + create: false + name: + nodeExporter: + create: false + name: + pushgateway: + create: false + name: + server: + create: true + name: + + server: + configMapOverrideName: prometheus-config + global: + scrape_interval: 10s + service: + servicePort: 9090 + + alertmanager: + enabled: false + + kubeStateMetrics: + enabled: false + + nodeExporter: + enabled: false + + pushgateway: + enabled: false + +grafana: + enabled: false + adminPassword: admin + + # labels to be added to the Grafana Deployment + labels: + app.kubernetes.io/name: eclipse-hono + app.kubernetes.io/component: dashboard + + # labels to be added to the Grafana Pod(s) + podLabels: + app.kubernetes.io/name: eclipse-hono + app.kubernetes.io/component: dashboard + + + ## Expose the grafana service to be accessed from outside the cluster (LoadBalancer service). + ## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it. + ## ref: http://kubernetes.io/docs/user-guide/services/ + ## + service: + type: ClusterIP + port: 3000 + targetPort: 3000 + annotations: {} + labels: + app.kubernetes.io/name: eclipse-hono + app.kubernetes.io/component: dashboard + + ## Sidecars that collect the configmaps with specified label and stores the included files them into the respective folders + ## Requires at least Grafana 5 to work and can't be used together with parameters dashboardProviders, datasources and dashboards + sidecar: + dashboards: + enabled: true + # label that the configmaps with dashboards are marked with + label: grafana_dashboard + datasources: + enabled: true + # label that the configmaps with datasources are marked with + label: grafana_datasource + + rbac: + namespaced: true