From f3108db69668cee00b2289ef32fb5e0f45df614d Mon Sep 17 00:00:00 2001 From: Jens Reimann Date: Thu, 19 Dec 2019 12:35:34 +0100 Subject: [PATCH 1/5] Add Hono 1.0.2 --- charts/hono/Chart.yaml | 25 + .../hono/config/artemis/artemis-bootstrap.xml | 32 + charts/hono/config/artemis/artemis-broker.xml | 154 +++ .../config/artemis/artemis-roles.properties | 13 + .../config/artemis/artemis-users.properties | 13 + charts/hono/config/artemis/artemis.profile | 45 + charts/hono/config/artemis/logging.properties | 49 + charts/hono/config/artemis/login.config | 12 + .../dashboard-definitions/jvm-details.json | 1185 ++++++++++++++++ .../message-details.json | 1009 ++++++++++++++ .../dashboard-definitions/overview.json | 1187 +++++++++++++++++ charts/hono/example/amqp-adapter.credentials | 2 + charts/hono/example/coap-adapter.credentials | 2 + charts/hono/example/example-credentials.json | 62 + .../example/example-device-identities.json | 36 + charts/hono/example/example-permissions.json | 128 ++ charts/hono/example/example-tenants.json | 41 + charts/hono/example/http-adapter.credentials | 2 + charts/hono/example/kura-adapter.credentials | 2 + charts/hono/example/lora-adapter.credentials | 2 + charts/hono/example/mqtt-adapter.credentials | 2 + .../hono-demo-certs-jar/amqp-adapter-cert.pem | 27 + .../hono-demo-certs-jar/amqp-adapter-key.pem | 5 + .../hono/hono-demo-certs-jar/amqpKeyStore.p12 | Bin 0 -> 1614 bytes .../hono/hono-demo-certs-jar/artemis-cert.pem | 26 + .../hono/hono-demo-certs-jar/artemis-key.pem | 5 + .../hono-demo-certs-jar/artemisKeyStore.p12 | Bin 0 -> 1582 bytes .../hono-demo-certs-jar/auth-server-cert.pem | 26 + .../hono-demo-certs-jar/auth-server-key.pem | 5 + .../authServerKeyStore.p12 | Bin 0 -> 1598 bytes charts/hono/hono-demo-certs-jar/ca-cert.pem | 12 + charts/hono/hono-demo-certs-jar/ca-key.pem | 5 + .../hono-demo-certs-jar/coap-adapter-cert.pem | 27 + .../hono-demo-certs-jar/coap-adapter-key.pem | 5 + .../hono/hono-demo-certs-jar/coapKeyStore.p12 | Bin 0 -> 1614 bytes .../default_tenant-cert.pem | 14 + .../default_tenant-key.pem | 5 + .../hono-demo-certs-jar/device-4711-cert.pem | 12 + .../hono-demo-certs-jar/device-4711-key.pem | 5 + .../device-certs.properties | 1 + .../device-connection-cert.pem | 27 + .../device-connection-key.pem | 5 + .../device-registry-cert.pem | 27 + .../device-registry-key.pem | 5 + .../deviceConnectionKeyStore.p12 | Bin 0 -> 1630 bytes .../deviceRegistryKeyStore.p12 | Bin 0 -> 1622 bytes .../hono-demo-certs-jar/http-adapter-cert.pem | 27 + .../hono-demo-certs-jar/http-adapter-key.pem | 5 + .../hono/hono-demo-certs-jar/httpKeyStore.p12 | Bin 0 -> 1614 bytes .../hono-demo-certs-jar/kura-adapter-cert.pem | 26 + .../hono-demo-certs-jar/kura-adapter-key.pem | 5 + .../hono/hono-demo-certs-jar/kuraKeyStore.p12 | Bin 0 -> 1598 bytes .../hono-demo-certs-jar/lora-adapter-cert.pem | 27 + .../hono-demo-certs-jar/lora-adapter-key.pem | 5 + .../hono/hono-demo-certs-jar/loraKeyStore.p12 | Bin 0 -> 1614 bytes .../hono-demo-certs-jar/mqtt-adapter-cert.pem | 27 + .../hono-demo-certs-jar/mqtt-adapter-key.pem | 5 + .../hono/hono-demo-certs-jar/mqttKeyStore.p12 | Bin 0 -> 1614 bytes .../hono-demo-certs-jar/qdrouter-cert.pem | 26 + .../hono/hono-demo-certs-jar/qdrouter-key.pem | 5 + charts/hono/hono-demo-certs-jar/root-cert.pem | 16 + charts/hono/hono-demo-certs-jar/root-key.pem | 5 + .../trust-anchor.properties | 5 + .../hono/hono-demo-certs-jar/trustStore.jks | Bin 0 -> 1498 bytes .../hono-demo-certs-jar/trusted-certs.pem | 28 + charts/hono/profileDataGrid.yaml | 17 + charts/hono/profileJaegerBackend.yaml | 14 + charts/hono/requirements.yaml | 21 + charts/hono/templates/NOTES.txt | 8 + charts/hono/templates/_helpers.tpl | 358 +++++ .../templates/artemis/artemis-deployment.yaml | 74 + .../templates/artemis/artemis-secret.yaml | 38 + .../hono/templates/artemis/artemis-svc.yaml | 27 + .../config/qdrouterd-with-artemis.yaml | 153 +++ .../config/qrouterd-with-servicebus.yaml | 162 +++ .../dispatch-router-deployment.yaml | 76 ++ .../dispatch-router-ext-svc.yaml | 45 + .../dispatch-router-route.yaml | 27 + .../dispatch-router-secret.yaml | 28 + .../dispatch-router/dispatch-router-svc.yaml | 26 + .../example-data-grid/configmap.yaml | 564 ++++++++ .../templates/example-data-grid/roles.yaml | 43 + .../templates/example-data-grid/service.yaml | 33 + .../example-data-grid/statefulset.yaml | 85 ++ .../grafana/grafana-dashboard-configmap.yaml | 27 + .../grafana/grafana-datasource-secret.yaml | 38 + .../hono-adapter-amqp/headless-svc.yaml | 16 + .../hono-adapter-amqp-vertx-deployment.yaml | 76 ++ .../hono-adapter-amqp-vertx-route.yaml | 25 + .../hono-adapter-amqp-vertx-sec-route.yaml | 27 + .../hono-adapter-amqp-vertx-secret.yaml | 43 + .../hono-adapter-amqp-vertx-svc.yaml | 43 + .../hono-adapter-coap/headless-svc.yaml | 16 + .../hono-adapter-coap-vertx-deployment.yaml | 78 ++ .../hono-adapter-coap-vertx-secret.yaml | 41 + .../hono-adapter-coap-vertx-svc.yaml | 46 + .../hono-adapter-http/headless-svc.yaml | 16 + .../hono-adapter-http-vertx-deployment.yaml | 76 ++ .../hono-adapter-http-vertx-route.yaml | 25 + .../hono-adapter-http-vertx-sec-route.yaml | 27 + .../hono-adapter-http-vertx-secret.yaml | 43 + .../hono-adapter-http-vertx-svc.yaml | 43 + .../hono-adapter-kura/headless-svc.yaml | 16 + .../hono-adapter-kura-deployment.yaml | 78 ++ .../hono-adapter-kura-route.yaml | 25 + .../hono-adapter-kura-sec-route.yaml | 27 + .../hono-adapter-kura-secret.yaml | 45 + .../hono-adapter-kura-svc.yaml | 45 + .../hono-adapter-lora/headless-svc.yaml | 16 + .../hono-adapter-lora-vertx-deployment.yaml | 78 ++ .../hono-adapter-lora-vertx-route.yaml | 25 + .../hono-adapter-lora-vertx-sec-route.yaml | 27 + .../hono-adapter-lora-vertx-secret.yaml | 44 + .../hono-adapter-lora-vertx-svc.yaml | 45 + .../hono-adapter-mqtt/headless-svc.yaml | 16 + .../hono-adapter-mqtt-vertx-deployment.yaml | 76 ++ .../hono-adapter-mqtt-vertx-route.yaml | 25 + .../hono-adapter-mqtt-vertx-sec-route.yaml | 27 + .../hono-adapter-mqtt-vertx-secret.yaml | 43 + .../hono-adapter-mqtt-vertx-svc.yaml | 43 + .../hono-service-auth/headless-svc.yaml | 16 + .../hono-service-auth-deployment.yaml | 74 + .../hono-service-auth-route.yaml | 27 + .../hono-service-auth-secret.yaml | 49 + .../hono-service-auth-svc.yaml | 25 + .../headless-svc.yaml | 16 + ...-service-device-connection-deployment.yaml | 78 ++ .../hono-service-device-connection-route.yaml | 25 + ...hono-service-device-connection-secret.yaml | 70 + .../hono-service-device-connection-svc.yaml | 39 + .../headless-svc.yaml | 16 + ...o-service-device-registry-amqps-route.yaml | 27 + ...no-service-device-registry-deployment.yaml | 108 ++ .../hono-service-device-registry-ext-svc.yaml | 45 + ...no-service-device-registry-http-route.yaml | 25 + ...o-service-device-registry-https-route.yaml | 27 + .../hono-service-device-registry-pvc.yaml | 28 + .../hono-service-device-registry-secret.yaml | 83 ++ .../hono-service-device-registry-svc.yaml | 31 + .../jaeger/jaeger-collector-service.yaml | 32 + .../templates/jaeger/jaeger-deployment.yaml | 53 + .../jaeger/jaeger-query-service.yaml | 39 + .../prometheus/prometheus-config.yaml | 51 + charts/hono/values.yaml | 831 ++++++++++++ 144 files changed, 9480 insertions(+) create mode 100644 charts/hono/Chart.yaml create mode 100644 charts/hono/config/artemis/artemis-bootstrap.xml create mode 100644 charts/hono/config/artemis/artemis-broker.xml create mode 100644 charts/hono/config/artemis/artemis-roles.properties create mode 100644 charts/hono/config/artemis/artemis-users.properties create mode 100644 charts/hono/config/artemis/artemis.profile create mode 100644 charts/hono/config/artemis/logging.properties create mode 100644 charts/hono/config/artemis/login.config create mode 100644 charts/hono/config/grafana/dashboard-definitions/jvm-details.json create mode 100644 charts/hono/config/grafana/dashboard-definitions/message-details.json create mode 100644 charts/hono/config/grafana/dashboard-definitions/overview.json create mode 100644 charts/hono/example/amqp-adapter.credentials create mode 100644 charts/hono/example/coap-adapter.credentials create mode 100644 charts/hono/example/example-credentials.json create mode 100644 charts/hono/example/example-device-identities.json create mode 100644 charts/hono/example/example-permissions.json create mode 100644 charts/hono/example/example-tenants.json create mode 100644 charts/hono/example/http-adapter.credentials create mode 100644 charts/hono/example/kura-adapter.credentials create mode 100644 charts/hono/example/lora-adapter.credentials create mode 100644 charts/hono/example/mqtt-adapter.credentials create mode 100644 charts/hono/hono-demo-certs-jar/amqp-adapter-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/amqp-adapter-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/amqpKeyStore.p12 create mode 100644 charts/hono/hono-demo-certs-jar/artemis-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/artemis-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/artemisKeyStore.p12 create mode 100644 charts/hono/hono-demo-certs-jar/auth-server-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/auth-server-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/authServerKeyStore.p12 create mode 100644 charts/hono/hono-demo-certs-jar/ca-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/ca-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/coap-adapter-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/coap-adapter-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/coapKeyStore.p12 create mode 100644 charts/hono/hono-demo-certs-jar/default_tenant-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/default_tenant-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/device-4711-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/device-4711-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/device-certs.properties create mode 100644 charts/hono/hono-demo-certs-jar/device-connection-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/device-connection-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/device-registry-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/device-registry-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/deviceConnectionKeyStore.p12 create mode 100644 charts/hono/hono-demo-certs-jar/deviceRegistryKeyStore.p12 create mode 100644 charts/hono/hono-demo-certs-jar/http-adapter-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/http-adapter-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/httpKeyStore.p12 create mode 100644 charts/hono/hono-demo-certs-jar/kura-adapter-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/kura-adapter-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/kuraKeyStore.p12 create mode 100644 charts/hono/hono-demo-certs-jar/lora-adapter-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/lora-adapter-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/loraKeyStore.p12 create mode 100644 charts/hono/hono-demo-certs-jar/mqtt-adapter-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/mqtt-adapter-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/mqttKeyStore.p12 create mode 100644 charts/hono/hono-demo-certs-jar/qdrouter-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/qdrouter-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/root-cert.pem create mode 100644 charts/hono/hono-demo-certs-jar/root-key.pem create mode 100644 charts/hono/hono-demo-certs-jar/trust-anchor.properties create mode 100644 charts/hono/hono-demo-certs-jar/trustStore.jks create mode 100644 charts/hono/hono-demo-certs-jar/trusted-certs.pem create mode 100644 charts/hono/profileDataGrid.yaml create mode 100644 charts/hono/profileJaegerBackend.yaml create mode 100644 charts/hono/requirements.yaml create mode 100644 charts/hono/templates/NOTES.txt create mode 100644 charts/hono/templates/_helpers.tpl create mode 100644 charts/hono/templates/artemis/artemis-deployment.yaml create mode 100644 charts/hono/templates/artemis/artemis-secret.yaml create mode 100644 charts/hono/templates/artemis/artemis-svc.yaml create mode 100644 charts/hono/templates/dispatch-router/config/qdrouterd-with-artemis.yaml create mode 100644 charts/hono/templates/dispatch-router/config/qrouterd-with-servicebus.yaml create mode 100644 charts/hono/templates/dispatch-router/dispatch-router-deployment.yaml create mode 100644 charts/hono/templates/dispatch-router/dispatch-router-ext-svc.yaml create mode 100644 charts/hono/templates/dispatch-router/dispatch-router-route.yaml create mode 100644 charts/hono/templates/dispatch-router/dispatch-router-secret.yaml create mode 100644 charts/hono/templates/dispatch-router/dispatch-router-svc.yaml create mode 100644 charts/hono/templates/example-data-grid/configmap.yaml create mode 100644 charts/hono/templates/example-data-grid/roles.yaml create mode 100644 charts/hono/templates/example-data-grid/service.yaml create mode 100644 charts/hono/templates/example-data-grid/statefulset.yaml create mode 100644 charts/hono/templates/grafana/grafana-dashboard-configmap.yaml create mode 100644 charts/hono/templates/grafana/grafana-datasource-secret.yaml create mode 100644 charts/hono/templates/hono-adapter-amqp/headless-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-deployment.yaml create mode 100644 charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-route.yaml create mode 100644 charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-sec-route.yaml create mode 100644 charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-secret.yaml create mode 100644 charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-coap/headless-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-deployment.yaml create mode 100644 charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-secret.yaml create mode 100644 charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-http/headless-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-deployment.yaml create mode 100644 charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-route.yaml create mode 100644 charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-sec-route.yaml create mode 100644 charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-secret.yaml create mode 100644 charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-kura/headless-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-kura/hono-adapter-kura-deployment.yaml create mode 100644 charts/hono/templates/hono-adapter-kura/hono-adapter-kura-route.yaml create mode 100644 charts/hono/templates/hono-adapter-kura/hono-adapter-kura-sec-route.yaml create mode 100644 charts/hono/templates/hono-adapter-kura/hono-adapter-kura-secret.yaml create mode 100644 charts/hono/templates/hono-adapter-kura/hono-adapter-kura-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-lora/headless-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-deployment.yaml create mode 100644 charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-route.yaml create mode 100644 charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-sec-route.yaml create mode 100644 charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-secret.yaml create mode 100644 charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-mqtt/headless-svc.yaml create mode 100644 charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-deployment.yaml create mode 100644 charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-route.yaml create mode 100644 charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-sec-route.yaml create mode 100644 charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-secret.yaml create mode 100644 charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-svc.yaml create mode 100644 charts/hono/templates/hono-service-auth/headless-svc.yaml create mode 100644 charts/hono/templates/hono-service-auth/hono-service-auth-deployment.yaml create mode 100644 charts/hono/templates/hono-service-auth/hono-service-auth-route.yaml create mode 100644 charts/hono/templates/hono-service-auth/hono-service-auth-secret.yaml create mode 100644 charts/hono/templates/hono-service-auth/hono-service-auth-svc.yaml create mode 100644 charts/hono/templates/hono-service-device-connection/headless-svc.yaml create mode 100644 charts/hono/templates/hono-service-device-connection/hono-service-device-connection-deployment.yaml create mode 100644 charts/hono/templates/hono-service-device-connection/hono-service-device-connection-route.yaml create mode 100644 charts/hono/templates/hono-service-device-connection/hono-service-device-connection-secret.yaml create mode 100644 charts/hono/templates/hono-service-device-connection/hono-service-device-connection-svc.yaml create mode 100644 charts/hono/templates/hono-service-device-registry/headless-svc.yaml create mode 100644 charts/hono/templates/hono-service-device-registry/hono-service-device-registry-amqps-route.yaml create mode 100644 charts/hono/templates/hono-service-device-registry/hono-service-device-registry-deployment.yaml create mode 100644 charts/hono/templates/hono-service-device-registry/hono-service-device-registry-ext-svc.yaml create mode 100644 charts/hono/templates/hono-service-device-registry/hono-service-device-registry-http-route.yaml create mode 100644 charts/hono/templates/hono-service-device-registry/hono-service-device-registry-https-route.yaml create mode 100644 charts/hono/templates/hono-service-device-registry/hono-service-device-registry-pvc.yaml create mode 100644 charts/hono/templates/hono-service-device-registry/hono-service-device-registry-secret.yaml create mode 100644 charts/hono/templates/hono-service-device-registry/hono-service-device-registry-svc.yaml create mode 100644 charts/hono/templates/jaeger/jaeger-collector-service.yaml create mode 100644 charts/hono/templates/jaeger/jaeger-deployment.yaml create mode 100644 charts/hono/templates/jaeger/jaeger-query-service.yaml create mode 100644 charts/hono/templates/prometheus/prometheus-config.yaml create mode 100644 charts/hono/values.yaml diff --git a/charts/hono/Chart.yaml b/charts/hono/Chart.yaml new file mode 100644 index 00000000..f4747cd6 --- /dev/null +++ b/charts/hono/Chart.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 +# Version of the Helm chart, by default, this will be the Maven project version +version: 1.0.2 +# Version of the application being deployed by the chart +appVersion: 1.0.2 +name: eclipse-hono +description: Scalable IoT messaging platform +keywords: + - IoT + - messaging +home: https://www.eclipse.org/hono/ +sources: + - https://github.com/eclipse/hono 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 0000000000000000000000000000000000000000..305a563497ae9f9f7abb2f141a4590e787066d63 GIT binary patch literal 1614 zcmV-U2C?}tf(A+g0Ru3C1`q}bDuzgg_YDCD0ic2g0R(~t{V;+B`7nY6?*<7fhDe6@ z4FLxRpn?S8FoFc!0s#Opf&|qD2`Yw2hW8Bt2LUh~1_~;MNQU5I0W`vGS8Q*nyxyAM`HO+yRdsf(0X3Uo8-#&>h0~N_C}s8-@XqT)gN3da?Y2UmigM^45j)6K3gQK?ldBI%ygxouAxn@#m>wT_&NXgI(aC8B0W};z}oOW(R z<4XmUxW>3c_R7m6N$DFAJ^0~eT=3O#h9tT-LR(DKf z)JX5U7tQ3z-`}4zHvJ(z>b)9@(KUDR-XeJg!ty0z^HOEuCSff~Z<7l0@ock+(n%Ta zPj1@gQSu2(SBmYa4UW$*{or^OjZ)~TuxIMoW4nzgiF;&u#Fb;)95Uah;?b}DeBbs% zR&p>vZ~oe@4@1Px2rcNYRtpJy=>jT=_x_Sg!BUexh3xrwnlO@ghoBawL!X@w4Wj{f!FrZ=Qk*GMNRMfPL6q0Io8$(apsJd6xbw z23}hUoU{4ul$M{toF{8#obj^Rs(d)?-u_ho>rz=^DkW6#MIOGw&wR#QD*O(ls{VD- zse^hHxgjg%rb)nkLK!KdgUH?tv~R1Hka<3-*#DhNJ_TnHi0@Ukq*hy>NUAekzavjz zpUO`Ow;!z*91>RK-ZKTLkicYi)9{)ivpEMakP^@yTgt79@5AopsyEkF>ctx-A+7+> zWq{dn4*9zHAbtaRIFF&!+wvEcW=RAUNHJ3NEUmxWubUYi@BX{Vp3jwuzK3|Srj809 zb()x8SOXnV&Xh@vMlX&JkMv{Cfz@a?#HQ+Rqa28hGrnv{NpfKzJsMZzB~2?9I|roA z*|E6)#}@#*#fhTcn(Z}cr8_r{DijsVuOTc6ptTJ|_K!(8^J0pjjoUNBF<}^0tfS4( zR40%{1QPs}EIsN}(A`GH^CtD)#J?yGEayD zvT^^X_(pPxYKJkHGca>H;;na41sXxwfJuw$r-e1wR*qq+$*O!~2Fm>F2Cl;`kt3^C zZ((vhF|oqRk3-+j)7+xOT)`b;XN6$Ij}wh~ys4z5K#en|-f=o-q((YeX^%YCbYGUZ zSCPV_l0AAYFoFRB1_>&LNQUxTP=5;=XUY~>2(|i7 zPS`SOwGx1EbY&w^sSQUosHPN8W_!%4&!7;QnV!Xzt8|%>h)xJ)f9pI&mK5wkHn@UR zc!42m2&RRdWjs+9e`LdZ3_efZ>M<;Q<^r1y6Z(x%)(Bb}k&tzX{LnPnz!Zn{oIp3O zkt(k(5R)h;tH_F`^*zq_H4a`U5$=~UB`_lf2`Yw2hW8Bt2^BFG1Qbe*39CN7WCFQP zg^=Emi|-Hvg!eEpFd;Ar1_dh)0|FWa00b0?GKr+=uSe%FD4z>JK9)z;O%^N!2&IMQ Mo9(_;ngRj{0L0Slg8%>k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..55677d2081fe698f228bfc2fe699649c5d90ba08 GIT binary patch literal 1582 zcmV+}2GRL2f(9xA0Ru3C1@Hz5Duzgg_YDCD0ic2f;RJ#O-7ta$*)W0x&jtx9hDe6@ z4FLxRpn?RzFoFcU0s#Opf&{e&2`Yw2hW8Bt2LUh~1_~;MNQUWeIqw*>J_@WM|x@x6xA1*G+v(@!C7wjFyOM!@N!8#yg#% zn#S6}2Ytf$_n&4iU__ziEqN+>W?1!2>|*wD=cb+#u3FF!k*AJj zQ=Rj)M=)ND7CIGLxG#)XTduR9m7y6hjVsmS#-G03cBLRPnw@7%Xyfaq}B2zYSfmrL2gA#wY(03sB zVS<+N27GGI;6&+6_Ou@_tnvhBW7B|)|NWmLnEA7maUUJSnJI!7jhdVGJwAp3PGeY* z;h`^QX9t<$!z`OtQ&o>>Z~xmgVp7h}-%+cah@@?#u2sB$KG$2E&W0@6)KwJo-VMEu zru3FBf*-y+KBxpC^9$^O5SYJoTtK0TKvL+-))>cIj}b;2z5N!UjO>jhLCD_M+L@!@ z+)lIsP%>c?=i^bAd+7C~!#K-ex@-(Ga>i0@cn{(HBtLcagaMaV5Y+)xAgoaq?g#Ss zg^A%0+A9+L>C=Y6X0GG{xzT(|vNx3x|R3xMds)ycZxyy9SO2alVR8}`m52!XhfEDNY(8~2|wm1vnu z`+WMHcWGQKzAqwz-8nv75A7_65JTO1L*hCh4RR}*g`zX9dyGTw zidiL^zw}^y<#ydC&R*WiU10mrC<7&JY-ryQZwVnT!?}W`{|F@S&8SpH&&MW*D4M2Uu>x}oLCW*nt3ZC|}xFoFRB1_>&LNQUU{&x%_WF2B`_lf2`Yw2 zhW8Bt2^BFG1QY@F_d#5X*eG6F)hP*glHq14@k}r=Fd;Ar1_dh)0|FWa00b1^)|jWA gX0fd4+>MzDKWb9CJRt)F2nCv!m_*;GYXSlY0I%NWC;$Ke literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..905b8b0c76f50ddb1baf91b6c70a62ac417ea074 GIT binary patch literal 1598 zcmV-E2Eq9-f(AMQ0Ru3C1^@;LDuzgg_YDCD0ic2f@dSbe?J$A`=`ex>-v$XPhDe6@ z4FLxRpn?R@FoFck0s#Opf&|3|2`Yw2hW8Bt2LUh~1_~;MNQUxSL*!* z8EtqTOYoY+vgqMwhP`wQ6dhvre7@7#^>Cf{)zen5^E--Oc(x>#f!n(zaa*%0b-%Yn zq}!M%mronKuy33UKHX(c3vu~BtO-8P;lS!l?(PF70GE4slOS zCTL7>)wMs!VJN!QhD9EV51KaGB*atQDw7W&#?#Zy9)-dd(DVN9ItpW@mD9ey z;o`kgfFNJS6|wKR1ee%`zWU7;HzAj17NTed-KUgoqVteb)jwea_t|TrN|K5 za7ST5|Lnx=7YXu%7505!+w2rlNLKWsL+A^#c_2!;-P3M%3^GM`A0%oyBHHho(dg5^cA8+504X;*`BrFNfg_4Ghcuy-lNsakfl-PK6`YM zGgjqnl1`dkybK1~T%pS_(|l!CsRj|so$Yn;R5l>rTe~KXa9P0@L5M>+kpTke7BRek zZKY9>xs82YY}FfYh|baN55g}QvD;N5hL-$<1=f*Df~~f3fy)?sG$BHc6u7`kQ?ny@ z=6LV~At(QOOE*=(`sv38TNK%3h&i8c5{8}KnE5C{NJvaDa|fdad7Kd^FoFRB1_>&L zNQUt(W3%dh)6UfyWId2o0Kki){S#p9W>)6RW7kZ-hzFYy(1%E;B`_lf2`Yw2hW8Bt2^BFG1Qgq%zu`i9pS@*QU_woZBD=3xLdP&MFd;Ar w1_dh)0|FWa00b2Ezu>D|QnH}}5fc`mlZ~ck2D&l?2#=xI0yo?D^8x}00D-ySP5=M^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..545a0eb9d623868a2807a9822beab034a79d7a24 GIT binary patch literal 1614 zcmV-U2C?}tf(A+g0Ru3C1`q}bDuzgg_YDCD0ic2g0R(~t{V;+B`7nY6?*<7fhDe6@ z4FLxRpn?S8FoFc!0s#Opf&|qD2`Yw2hW8Bt2LUh~1_~;MNQUBwmY`~#zB2D7XEPWznX)>tjdqsBrScX4Rw>;V{@Ye@bZZR zXo2zax&Vm}+mk`7^-Ql*;q6@xybd;v_WZ|&Rq|;^XhPe=P!U?~wigMf@ik#vokO){ ze=GNaT0nG=_x+%&JL701CZm*#coQ(h;#)vr??%aSgLsf!^DpJK2?~3fWfS{O;oDh} zi)vngJ%N&)zRUBfBSkU2YU&t2boYJVQ`S$ItnGb%eXvOg8~@JM!DD{fdykHhN29#H z4S8HZrSQ~<7UcTH!#2yu>7()pq>(Cy5!rf}kw$1=oM59BA4=!$4>%n4ds(Ol1AEL= z)##g!2>aQ9`H{3`g*x&OaLiL)&W>sG-RVKK{jaK{?|@jdUrZTJI`@uR-+k=?;0^KF zFbbf68uQR5G0z~@|K<_9MzKjI_jBy{jFQYRtEk(4~?SDjIuERY?h8?C0 zE?>``2Lfni4W}W~|6!3w+%>inV_2?1!tkop2QYgh*3Tr_UJ&`J@@vxe!Q~c2V>%AQ zA}6*T$L!->l&+|;-mi&Jtp|gIHXS|?Z@kN|1CSngnX4u-UD9BE?jtiUWHF(d_n~gq zNJMDGqm3XSX-?w^;T!RP!WJ6kkZ*I!&Xov{wHG;7*-)H%E2@*FgrZtrZ;I2L_f(d4 z_E=Q~o&FT^rWb-2@d7ASuRLa#;b;{lppIeV5ncufBdtr>TMw+d{rFx*!Iz7yx(nQ? ziBxrD;bw0(WxImR#d9aD7VKpE9f|gl#xdc^^>Yamt2!ohGI^ynQC28q3zM6pw_zOn z{<(7JXVV-M-fMv2-#Mmzdl@ClQbC0Bl3e!5LEfwo`9dOA)_d%tvgs+ZPcyeuyDxQd zjRQsVpRctAmJ6bpr|u4G#r!9eY&CZ#iB8bp_N}WmdGmGT_6b9k^Z<|mRw6``xFkWH zA~sYBVee~9nerLbmUhl=0CLkaC)Y@yvp*l(R@LDV>>0o9aUhBflGY2brS>#yu%XRe zbWBN*ZMGDcx%(p4=&LNQUDO2R)bWalfj80)mIVAHd3jQ4N%(jrv(MS>#cKc1qi#-9$U=?C@u@Na3DUw z6+~XzbVbN`GQ_fw3MOHf$m;v2dxH2eB`_lf2`Yw2hW8Bt2^BFG1Qc00-fhnfA$iE$ zLPzRH?m|x7xCbyXFd;Ar1_dh)0|FWa00a~*cMI?+4L4&A&}?Ply;7eF$nCZS2twg; Mu94d#$N~Zg0BuwG2mk;8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6214de3b7a0a022f40c2acf57630fbb7080eea78 GIT binary patch literal 1630 zcmV-k2BG;df(BXw0Ru3C1|S9rDuzgg_YDCD0ic2g5d?w;4KRWR2{3{L{{{&vhDe6@ z4FLxRpn?SOFoFc^0s#Opf&}FT2`Yw2hW8Bt2LUh~1_~;MNQUjj5XBk-1)n2U*qqd=-gvq&QGw;< zpSH(wUa*Ezt)b%JZ}3qB$?kwvLOq*XPsY1fe6KPr-~glCl#EC-{P0p)Xf-uU;Fi_6 z>%8phq2MTx!t3mr!5;BOPTY)3z3fP)8b`@)Ly{%Qm6z0v7vFb9Als6CV?ty-9x*V0x@0>i?Q@vH_cy!3&7HvnVP@JJ z8=}#+%sx|}c=Nw4Y?;z|ePu@D9Rzmx6zR})1@%zx9Jy?T#Tisv7weXu5c6m-Y23{C zi2S>etKIplhL1kZJ09x>i=#!RZ>BE_S6Q}}LL$zaU?=zF4UaTH$E3gI({<$PsU2Kr zzt^OAy`Ej@$jP;555gQHLJvdZ#fgze1wVR%pxbNj#Q3l4fP5wZAD7VxbBJbK?HwkY zWhv0eK=$EZ2RJYb6sW#h+32e^CG{5;?DntT|2A#>=)!N&1wQN?eZ*v*dp)39an#5B zvbU%8c>5D_ew(z)(Y~E$T~abMEoI&L{Z}DXkO)4%4Maa}PC{J;A_)%$XCjnWBP~!2 zFo!jKIbn@th)t8<$2xtm!Zvz}3S*mU$Up9Luz+&3$~dUV8G`!-$pkX%n9Gu7a{#^c?&IB(>_+K{z%!Ytdri>w+=Ymo@ z9GGXQcv6|a#UU%?R98u>=PdqtAU7Mk!E0Htt;oth1$`biH3_OLtBASzv&{yZ}JgkBMlZ^v zzal9b@i!JqLoq-yXU*97=7L>_7Sb)iQSz`&p}<1@{}aS&UKR-dcCKvn@gW(&Z|s;R zCP8i=ohJ`VYT$AWqTTE|xzq{{ayv$`msnHgsuS3ArXTC;#v69DJQ_^#$YQFx1@rf} zkhHg2qy@{t$e-4}ItBP9UckBD!+49H3W7*UFhHx~r~0ZmthF+DBdU6MMQ84;OK@D0 z9l`7|Jq?rEOQkr_@2*aB8SR%sIPZN=*VQp@Q1m^SJ%Ow-M~>;u(i{6b;q|LGfRKVR zdYcMoGBWOQI^c;P7be&BTefX}GQ7TN08UmFtKWsEbFTFvtyELWw-H57KaqV0W!~d$ zl-&5&;rH|*CJFd_2|uD-WZ_ruV`*)txwdn{TQ1_K-&2BjC;&AdlkFrN3=f|xeb@GO zzqf8UiyK}9ddn*;(L7kDakNiQA=mIgtrEm*g`q9>K}Gq{`q@6?X){ClR9;o7v-uub zzOPL$jZ5eWXTr&8d;TL>R+8POb}IVxFoFRB1_>&LNQUiOvhW`zrt&$~#xVajqk}oXG^7VG_Z;Xrclm=wJwDW<%4Q6OjK4E|mR59CnLt<+d zS3i+>dj6lPDb6Ah-B`_lf2`Yw2hW8Bt z2^BFG1QY<~2~vtX4l=R=&iJBe*3SQ&wUIC}Fd;Ar1_dh)0|FWa00b0D^Px<8b}U%c cWeGz9pD7kgBoT`Q2uX~WrL^p8P67f50AMrj?f?J) literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c6c6f2c085c2c0b959d40d40e0011e6ae56f4e8e GIT binary patch literal 1622 zcmV-c2C4Zlf(B9o0Ru3C1{ekjDuzgg_YDCD0ic2g2?T-$1u%jJ0Wg9D_XY_nhDe6@ z4FLxRpn?SGFoFc+0s#Opf&|?L2`Yw2hW8Bt2LUh~1_~;MNQU6}MB` z{@bbv`Is9TY0+UI2s!;~v8r+?aY~2Ut?MDrj@o>l0D`jYu3N0JI`+Mhq=9>H?psd2 zJ3n3%ltslod}J^g8r{-c5^xg-ZKK`2#*7zZBv#QgiOJo;1vGpyTTOaFv0DrT=y9#T z?Un6Wi$tXS!#lL$6{og7hU|(cT0mhM`Z-ABm*Lap)`9yUH>44rwru$DRV{yzNVFZ_ zw053x$1H1kB&OcwZyIMCSPv5UA8PJqxy^BJo;^l1wAq!ahe02K0DYoo&@vhaei+x=GY+#JnM@P7If9o0EoC zxC@Z1Q@_58cLjb6o_O=NU_j6mA4TrX6+J5jJuaG)zSm>S)3a0FJ?d|NQXC8qn`KQt z`6jz~QG7`(rDYfw2WBODI{5qqC5AN_-Lx=nmt5<@BEGr}7kFX+uWmh5bBpPRU#mOD z8L*8WKDwk_Q~(~k+hP7NB<7z zC&Sj(j^c8mGSZZ9Nq!F&v$~Ai;j7}z?RgX^ES$d-yK|c$A)_{RX z=}#!iB4}!9eUTtp07<7Dhz;shIjBn!39wZ)5VIQtX}&;=@Ut9^zT(T5wXs{ou!!h~ zkmz7Nk65ST93#jjI546N=qp5XCNQ5IGA$sS^@3jJcbNUcpE+LTGh1gV|LjbKn=sy* z>2_@8vN(z{#*55tvQdbWgXGbcitiSFEywY1AJuT+C&9u$?pW>DE>n|RDq9tw?aKXN zTU85+cw@Wwq^244D!+ff_cPyaEyB9WS3OA>BtZsYE?bf^@E^^Pyr@{wC^L;`aNtN+ zkZ*6+-a5sfzR=Vh)-@QMTUr}@h;*m@cmHWAVME84&>_Kj(#_Aq1*!ohojMULtX;ks z7KQYB8r8ut5Ez_ps`pC3#EeDLTXRzOr)j6XN&6s@duc+OP2eL|ElG;GF1>B&(|`R3UF)&#IFW^Q)x*Lt zqwoew#dRO%!d2&mY0?*F~))3nS$&vP^fzu8K=;0y*Hc$@4m03?*;oCc`f z(W_NVl+{3MC&}gN;U5MgamO62a)+>f=Z79_|XIcjXJ~W|kz2yh@{DZ|d&i z;bGfH$3TeB-)lg6Q;=vuFoFRB1_>&LNQU;2!!UN8K-h?D5Ol9>)=xwwlTd_f3A7XyIt!HdV6>G5IDh)bU;dQ?q&z!# zL7q6bg3W}yOkWv*LP<>tnaPPY56>KtU%)cIpr}AGB`_lf2`Yw2hW8Bt2^BFG1QZ;G zRbbtjuMpRT;!r$h_^32bNIWnxFd;Ar1_dh)0|FWa00b1uREx$C;zW)0n-8t$lS}r{ UKkDiP2*{V{K|&&4(gFeq0I*x@n*aa+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b0e5517924ac507baa8388e3fba688064e6b3a05 GIT binary patch literal 1614 zcmV-U2C?}tf(A+g0Ru3C1`q}bDuzgg_YDCD0ic2g0R(~t{V;+B`7nY6?*<7fhDe6@ z4FLxRpn?S8FoFc!0s#Opf&|qD2`Yw2hW8Bt2LUh~1_~;MNQUb_jU1!A{ivsQ%P4VeL2k+za#Z&Xw8z?9gtC%Dut!TeL27r94 z9cVA*tY~uoK(?Acr+fcOrRA1mx0~tZ^Lq!kQ+9?{VA4jY^hnAoPXwIIg8birGW$hB zUC7EHjThquZtZny`5t3PI~_*y%-WfYD`%FMxJDk_Cgy&nO4XR#+EvM$boJ!mm8(2g4t1kz!0r6KKR& zBe%(c4u$XWeQQ+X!1hjNlyoH826{f-Ghx7(AGcaT@E&M!3~;gSV`tls-pDj@&?6Um zwORHdTu-34D2#kDP89P@a8Dy6+wLP7h!`xxI+7-WZ5g2wiO{niJLKYdVodDTPmg9BnCFqY$gD6rCpC16s4ycZNyS#)3IhID}ACLxC zQOR-PLbm?MtxGgMRLAp-YXRbQv+wV2z;=X|#(*%j?BYO7Mh@_kP^RS26eA^dKBhtK z9A%ghN%if9k;SIbI)WNl8#dnuGOMeo)AKXYleAJYV*pLsps>vXG-)y@Y5HjKBdCWB zUjX0VHOP_U7{x{^lWf>FctiEFyGn2!o2XQ%d=_<;zJAT1nL3u>D(z;^SNXP~<+)Po z*i!pu^pz&~qfgPSE^xSI{yn7jssXSzk)BT$NK7djD+=ctGQ|13tcP-EE*uY;Of3ZY zaVXlLJj!u&^B8OZM#%^XU_SY6+H`L*6_&C~|BnxrXYB7G6wVx`-Z>xNqdM-lD&;)U zIe@22^!AV)jtd2^PG|Si?=&?zo&8+*CVzTW6Oa#fTda;zw70lAls49ViIGZUZu5E{hv$+A`u#C(Wg3a6UZ!t0<4&7$Z~y7kLqn!#sktP}45m z%Lw;JGK-Lb@U(y1o9?mGZ~t)jX-l>ecIrdS-5#GqCVT0Z&E7kEfjsvb>)hcvM9hRd z0|*}JrN;mxc*?DhEOfhfR9XtO`>WtP$^~BKJr`K=rSRuQFg>O6bDtjR)Km4+?R)9V zT}}Y&LNQU&g5;$?7EW% zbZgtZKBH>fA|}yVOoDE2A0YhEwUIe7B`_lf2`Yw2hW8Bt2^BFG1QgMX-ubJ`g?~<~ zMz6mpie+-y;>R#CFd;Ar1_dh)0|FWa00a~VokEBMQ*#|GLIv)j947P=YN;y(2&2><{9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bdc55951e9df2271f50fc568d3ded7178adbe5bd GIT binary patch literal 1598 zcmV-E2Eq9-f(AMQ0Ru3C1^@;LDuzgg_YDCD0ic2f@dSbe?J$A`=`ex>-v$XPhDe6@ z4FLxRpn?R@FoFck0s#Opf&|3|2`Yw2hW8Bt2LUh~1_~;MNQUj+(wTAI8 zncdQP&z8`UZ7_&jGg)m-zuJn#raREwOv-U}s8a+h>GqNd0xtMH)g%*#p=^=A9abgA z#??>g-Zh^WiAc^TaqT1NK{yCod<+uCjP~1yf7BZ?Lz_0WCZByWAty?-Nkf*Xt8ilh zKUks@z~Tv2nn`97mkuN*T#*I`Xv^dEp?A@}PU%T_~7%9c?n*$%ul z{hQ|nLh*FUJ+$Rv)~SlDghSCeCRM7ax0ebYUaOHDDN6WPgR8ddVy_mTFUm@!)l)A+ z;la4y1}-+dLK(!l2}Y3*HsZuqJ2vdd%}b(dxNHSU54a3yQbBhCYh)~#I{D_PL^T?l z8}3hn(LPsPb%DWF${lNhB)QJ(HMXm7o1`1^Wn~+1StDAX9A{dZ$_2QkDN^g zvHC{l(>&*+4tTsza~r=&hX%jFSJeyPcp)uy1cLK%%m-ASQuE7{kO4$C)4JiwaIE7+ zq-phOlj|e1$cy!q`p972W>I%bg&ifkztB>?c0hhfZibHYGZnv6Td3)kut`jJ&` zPwx?3$Vv-BUwFelfj`!d#XK{0P9J1cwA@Cy1}z-!p|Gwvx>8blVhVT>1m=*DK}hge z`M+Q)=nqQ3W^81-D)YRX_^oWcUKMP4BLzMR$b~@+?<66<8I$3z<3GPBW&P#~4J91^ z8!k$>1A@{!QGMpEap#^i;-7Q2F&xts%B8kyb~m4vvslv z5-n@(lJW_8LX^|(Og2N+PW>w&vcvQ~T35PebbS?`3Q&}7Jtb-jDZCwlj{Wk$MOAN% znK5LDXyV@>m*V+n%KLqoe^1lYe&!@SPcV=1pEKHFnhsX%%{& zC0|4&l?OMq)jJP&c(tj4KM&@fprRg?_~_xAtl=h%6ge*z<^ZHkpwXEyLDnU3m7H`L zea5*A+qyscJ(tc=-Pd2OBCR1mfj|p|O&9k}+vCxWJTd3KwY-j?K0?U33PE>E+6M3! z7Kx)HQxn{0gh#89mv!-r!)Wa*Fi%A)8p^v=3Db|B7ron8;O&@~au#=PFoFRB1_>&L zNQU;0#Wt_kt!_qMTO4?u9R$`4D(YCOOO0O&1i-8!cX-`k^79ooXvFB`_lf2`Yw2hW8Bt2^BFG1QcI(2c>qS1OW2lQSKp^Z{z3c?}aciFd;Ar w1_dh)0|FWa00b1ARQq=(7AqxJ3uwXPc99L7C^T2O>yOTCY61V{)DYpLe4r`XDc7UcCR1Sr!Mc4Y0iXggr~$xF zlVx{Y^zD?;WE=WG!4%11540vwTJc{)y%O#IIDj)@A7841@AMTf9 zLPWd;2Cz|OT}etlZx~KH0yWKG1pw^zO%p2o#{4}^U&;6TI+E-95UQCUjL~uI0HPTj zGcaEs3@a*y!3d!;b2^nASNz$OW`K7XKmyLsHcon8+n1b^W<7(<7xGan`@jU}34Pm^86Jmo)pbKsV3*CxJ-B)DuGlcDX%ktBWP`L(85ZQ|_;!ii^i4Uac$SY{Y zRS4e$9A9W7j&3vxK?to8TYqH~FG*7$UmWiU=~%h>@Ye#hcqb#bE~26ySGnT&L^Sd` z#LlFW1ODSc-}49T%-H^1%+oO%H$~>_YU4#IinE~V=D`^~aJHQ-!X$Kt{y#%>BQM3I z3p^-5$oT)WRn{MY`jsV3ngZ^~-4Bx6>;ozS2LEoi|Gk1v5P&u9UN<^6Vq`5{s{}99 z$LRxyBl-wcy+S$-FTrnU8`ga&SwY5V2hu0N^D1NdEv6Q3Zdrmn9H>`?b)OX+vkHYfJLY~HMx z0Zp5|Zh7kPhT$FUT5pr9tglbN8s_ZE-&IqcZ>+?EQ-2@b?$7=y3amXIuA*J^t?$!c z-f*SN^G_w(MTkXU{rVr2cf%_5KTW~2LJe5QmtAq(gg&LNQU>+ONX@iBDEgyN5alSg65Z38sN$O=M>J9WI=tEynXHDDG{|ysqVu=c&0*#{hj68$WB<0uRZ7dAZaH#(~$ ztHrDK0br}fut)-SLa(+&JOTz#vvJMe%EH@)Qc0L^ZVTsV1R0{dMvZF=dEy|euQpD8 zTPcMrMVPal-|w9GRk@BKw^K~&;y-vSk+|}aYgsM`kHLn+jWJ)CD*!bhn>T^x4|iIR z5=DDkEwU!Zroz^9Cb5Hl%ZSem%y|t6!IDvDHE%_g6dsFRSa64`c<8d1e%kr?F*JK? zNrO(=|II5axKS))5dLPEmJ2=&V3bcr{faRvkTg>&w*;HkF^USSMDPOe_?rrP<4sTc-T>&vGo z zjgm2ZhbJ3@)qxDtMX&^fsdr+3u~AY(6TLY|YUUa|S|1AHM&BhW4}z26`!f5cQdcuO zZ-EZeOs4s!6z?hJvGQ;mVia8K`3kdtxfmMAzVmXzwHL*ssr3tH?q%HAO~)8iG_qSX zSWfmk8s^%PfHyrN)lD=LEu(}4uz&vYxzX5T8k3Oa19~MZ@b8E-$E@WA0HhD#Jj29L z|JMXzO6|A|khC8*n<{%tY61}KByM$CQBvjV>HD4ex}16p47ZfYSL_gCLI7}_fox_U z;Crc=NL8#+gk~o6mN+TEDy0z^8v=+Q#kDYoFm7pK=gvf{^8S(F?PA8#M`M!0?{s{; z*di~{L~MdO6MYk?m}0^^!a*bs7LhfwrQ&q(Ej%*r#5YJMZ`yoJGZ1HJ*GfllU4U4J zU`XCck|OO|F4!z8o{GiTle<|{K6${w-5&^_0?zf3ULM{a+-WW8>lpwwK9BO=x-!?( zb~($4R)^NHX8s)0_d9kIIpLxf8h*GWWNEri)^Zv?&U)Y|7%1$-%jVg1zvU zLHA3ajS-gj=n^sh?znka=5t-E^!U(5;RrqfqU&Jnp^MLN6jI>Wv$pdAbln!zFsR|r z?AclTz=-<$mys(-cyPn~Cz=L=T1tXPU>_fG&uPA{+tO%Y65hx2B?TfwUInIv>hLUp z@hMK-04;v+mDNvdC81r86vAHQ(}9YS4}J9z41dC3Cs;NSrj`^^Bcv`6-M$CT-Wtwz zAK~NCN81V+wllRIX4A|VP4QGH=4#{N{TQ(h1 zwrp54sf7sUo9q{JouX;khmc1i zWm2G3QULrBL|_2|(T}P42RCdbrJe{691V6R-&h?75Gfd3yLo1cKwceO7^1sdVamcr z^i)sUHJ$%FFoFRB1_>&LNQU(dxa)$~h`X@v{`YpkFUe*8}{H9~`D1j(evGweohn)-l zLxM{%OKN-Rp){dCoea*#B^h&{3(#;Yrp4o>P`Q@rQGYC;VI2&Z!P9VD`1wy`q+E=d zhXlmtTSJ1@`0cA%7-5UKFc`Ak_O?4QB`_lf2`Yw2hW8Bt2^BFG1Qe#6-#L;c)m7?E zbWylQELb2f;1)13Fd;Ar1_dh)0|FWa00b0fWyR^N# z@2cp=cPVGHM@Nvuu9-_g$?!gEKs{y);8W-;vs|1{lv3psM>*V8f9s5a9i>84F0G5| zOA*2r0F@1IMb{_C5M`JNy^B)Og0hV7h+hG<;#g)~^nVNm1{Hq+t~Fs}2#NA1m69pH zkTtEh`iOPIWQux9KAAb6k1E~y-)K0_VCk>3T7l$qX!3|&H$z$ zYqUjBAR(+Jtz%D4COLzMAy30rHf*18@7z|ER_)#%sq1OV9$}amNh2shZ(bUvWb=Oh zYiH~bG86%0+!Nd;Z`-vkE9+-n#|v;+JNL0!A8g?SS0cOXDFhW4rKe3m3NcPi z{{)S3GIO!YKt2HuJ$Z;XGiDel8b;PlIZd2jNV6@Z_09onX1MMqgwtrV^PQP9f63uP zqN0w@s$|8_OHU_Hb+O;SLZ@X?grqhpM##%x{JH!j&OGif-TvG7bxNx${UFygiI}Q= zRot~9OpkAg)*b&YaN#AFXV@ncqO_DR49-sJZU!MbnBq-YKv&M{H5icE`(rbj zUUsX;%Glo}UMmHeEU=h%4^=)u^4#nU1&;Q? zy(1_ZkOrK=dnI>~JiPq9(0BCTtTx)m3-4=G{RR%*ipcQY+=L8c z#`#Jx)O{I5S`S;3)iS0nuh;{PA4uDZx-uq;%Pjh0s6%+S>~qVb{o#VMiC%A)E2ETV zs1|NkESXlk`79bm$#n+KAfnmkF09-06s(kbt^W6TWHI!A8vUBTVuKpVVBDMPYde4@ zy@lg`YwMgh!FGvbiczkf8G`n7mCk~zweL~F8-Ls~!UNDDqC+*f?4IN#mEg?sjrg5o zE&y_=Sevxt0VvJOMsA*z_S)MKjmK2;H7fD7{`30vixD8LjF_t3F((qN=IU&XWr~8~ zdfqv@&};!bF$0*3POgc?f5GgGfAncplD%@5F&cc;U$3XUtSmOV*VqDh09aypeCrkn z=;yw-qGjvIW4@{XZc|BIL+QBQ#L;9Te$6{4j6O!y}*c7c3y_D7~} zS31o&VIym~m+VWsqAy|^#$`37BF%8dqB|K-U@RIc(p9wa4z5vTNW%}0>=+i*7 zDrpI(N(QMYI8;0|vz!D}J>?u6Hw$bc0Qz2ezyl zDi-$~-|Y_udjzXKU(USK_m~o#S!uPN0LV^oV}oOgvuo=z4H}S>DIEpU;p6g=yM+gw z7lT4%+`#X;Rq(Tq)NL*UEl$>c1(a{rh=jAF#h$qCJYI6%=B&8Y#1G^^2)n{d;LDFF z>?CXDZKRceFZgfl_-rwihuwc{DU@`EHjWw^pH2zT(DO!kWN2GL5}?U8kk-N$MAT1!3wclb{Vz;!0s{etpwaNl Ai~s-t literal 0 HcmV?d00001 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..ea20765d --- /dev/null +++ b/charts/hono/profileJaegerBackend.yaml @@ -0,0 +1,14 @@ +# +# 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 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..b1fa37e1 --- /dev/null +++ b/charts/hono/templates/_helpers.tpl @@ -0,0 +1,358 @@ +# +# 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 }} 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..63f82b2e --- /dev/null +++ b/charts/hono/templates/dispatch-router/dispatch-router-ext-svc.yaml @@ -0,0 +1,45 @@ +{{- 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 + nodePort: 30671 + - name: amqp + port: 15672 + protocol: TCP + targetPort: amqp + nodePort: 30672 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} + type: LoadBalancer +{{- else }} + type: NodePort +{{- end }} +{{- with .Values.amqpMessagingNetworkExample.dispatchRouter.svc.loadBalancerIP }} + loadBalancerIP: {{ . | quote }} +{{- end }} +{{- 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..02ba36df --- /dev/null +++ b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-svc.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 +# +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 + nodePort: 32672 + - name: amqps + port: 5671 + protocol: TCP + targetPort: amqps + nodePort: 32671 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} + type: LoadBalancer +{{- else }} + type: NodePort +{{- end }} +{{- with .Values.adapters.amqp.svc.loadBalancerIP }} + loadBalancerIP: {{ . | quote }} +{{- end }} 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..9387eab5 --- /dev/null +++ b/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-svc.yaml @@ -0,0 +1,46 @@ +{{- 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 + nodePort: 30683 + - name: coaps + port: 5684 + protocol: UDP + targetPort: coaps + nodePort: 30684 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} + type: LoadBalancer +{{- else }} + type: NodePort +{{- end }} +{{- with .Values.adapters.coap.svc.loadBalancerIP }} + loadBalancerIP: {{ . | quote }} +{{- end }} +{{- 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..5afb1d1a --- /dev/null +++ b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-svc.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 +# +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 + nodePort: 30080 + - name: https + port: 8443 + protocol: TCP + targetPort: https + nodePort: 30443 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} + type: LoadBalancer +{{- else }} + type: NodePort +{{- end }} +{{- with .Values.adapters.http.svc.loadBalancerIP }} + loadBalancerIP: {{ . | quote }} +{{- end }} 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..4dfbccc7 --- /dev/null +++ b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-svc.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 +# +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 + nodePort: 31884 + - name: secure-mqtt + port: 8883 + protocol: TCP + targetPort: secure-mqtt + nodePort: 30884 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} + type: LoadBalancer +{{- else }} + type: NodePort +{{- end }} +{{- with .Values.adapters.kura.svc.loadBalancerIP }} + loadBalancerIP: {{ . | quote }} +{{- end }} +{{- 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..8b820d0a --- /dev/null +++ b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-svc.yaml @@ -0,0 +1,45 @@ +{{- 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 + nodePort: 32080 + - name: https + port: 8443 + protocol: TCP + targetPort: https + nodePort: 32443 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} + type: LoadBalancer +{{- else }} + type: NodePort +{{- end }} +{{- with .Values.adapters.lora.svc.loadBalancerIP }} + loadBalancerIP: {{ . | quote }} +{{- end }} +{{- 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..ab31b382 --- /dev/null +++ b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-svc.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 +# +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 + nodePort: 31883 + - name: secure-mqtt + port: 8883 + protocol: TCP + targetPort: secure-mqtt + nodePort: 30883 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} + type: LoadBalancer +{{- else }} + type: NodePort +{{- end }} +{{- with .Values.adapters.mqtt.svc.loadBalancerIP }} + loadBalancerIP: {{ . | quote }} +{{- end }} 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..d354d94f --- /dev/null +++ b/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-svc.yaml @@ -0,0 +1,39 @@ +{{- 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 }} +{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} + type: LoadBalancer +{{- else }} + type: NodePort +{{- end }} +{{- with .Values.deviceConnectionService.svc.loadBalancerIP }} + loadBalancerIP: {{ . | quote }} +{{- end }} +{{- 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..fbab6659 --- /dev/null +++ b/charts/hono/templates/hono-service-device-registry/hono-service-device-registry-ext-svc.yaml @@ -0,0 +1,45 @@ +{{- 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 + nodePort: 31080 + - name: https + port: 28443 + protocol: TCP + targetPort: https + nodePort: 31443 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} + type: LoadBalancer +{{- else }} + type: NodePort +{{- end }} +{{- with .Values.deviceRegistryExample.svc.loadBalancerIP }} + loadBalancerIP: {{ . | quote }} +{{- end }} +{{- 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..3bfc21b6 --- /dev/null +++ b/charts/hono/templates/jaeger/jaeger-query-service.yaml @@ -0,0 +1,39 @@ +{{- 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 + selector: + {{- include "hono.matchLabels" $args | nindent 4 }} +{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} + type: LoadBalancer +{{- else }} + type: NodePort +{{- end }} +{{- with .Values.jaegerBackendExample.svc.loadBalancerIP }} + loadBalancerIP: {{ . | quote }} +{{- end }} +{{- 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..8124eb47 --- /dev/null +++ b/charts/hono/values.yaml @@ -0,0 +1,831 @@ +# +# 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: + # 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: + +# 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 + +# useLoadBalancer indicates whether services should be deployed using the +# "LoadBalancer" type (true) or the "NodePort" type (false). +# This property will be ignored when deploying to platform "openshift". +useLoadBalancer: true + +# 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: + + # 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: + + # 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: + + # 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: + + # 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: + + # 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: + + # 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: + + # 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: true + # 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: + # post 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: true + 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 + From 2483b45fd849933b17919742e64290950309bf0b Mon Sep 17 00:00:00 2001 From: Jens Reimann Date: Thu, 19 Dec 2019 14:04:09 +0100 Subject: [PATCH 2/5] Fix helm lint errors --- charts/hono/Chart.yaml | 5 +- charts/hono/values.yaml | 157 ++++++++++++++++++++-------------------- 2 files changed, 82 insertions(+), 80 deletions(-) diff --git a/charts/hono/Chart.yaml b/charts/hono/Chart.yaml index f4747cd6..164c8734 100644 --- a/charts/hono/Chart.yaml +++ b/charts/hono/Chart.yaml @@ -15,7 +15,7 @@ apiVersion: v1 version: 1.0.2 # Version of the application being deployed by the chart appVersion: 1.0.2 -name: eclipse-hono +name: hono description: Scalable IoT messaging platform keywords: - IoT @@ -23,3 +23,6 @@ keywords: home: https://www.eclipse.org/hono/ sources: - https://github.com/eclipse/hono +maintainers: + - name: dejanb + email: dbosanac@redhat.com diff --git a/charts/hono/values.yaml b/charts/hono/values.yaml index 8124eb47..24b93a79 100644 --- a/charts/hono/values.yaml +++ b/charts/hono/values.yaml @@ -116,11 +116,11 @@ adapters: # 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 + # 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 @@ -128,28 +128,28 @@ adapters: # 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: + # 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: + # 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: + # 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: + # credentialsSpec: # deviceConnectionSpec contains Hono client properties used by all protocol adapters for # connecting to the Device Connection service. @@ -157,7 +157,7 @@ adapters: # "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: + # deviceConnectionSpec: # tenantIdleTimeout contains the amount of time of inactivity after # which protocol adapters close tenant specific links to services they @@ -184,13 +184,13 @@ adapters: # 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" + # 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/ @@ -242,13 +242,13 @@ adapters: # 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" + # extraSecretMounts: + # passwords: + # secretName: "my-passwords" + # mountPath: "/etc/pwd" + # other: + # secretName: "other-stuff" + # mountPath: "/etc/other" # hono contains the adapter's configuration properties hono: @@ -287,13 +287,13 @@ adapters: # 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" + # 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/ @@ -343,13 +343,13 @@ adapters: # 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" + # extraSecretMounts: + # passwords: + # secretName: "my-passwords" + # mountPath: "/etc/pwd" + # other: + # secretName: "other-stuff" + # mountPath: "/etc/other" # hono contains the adapter's configuration properties hono: @@ -396,13 +396,13 @@ adapters: # 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" + # 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/ @@ -451,13 +451,13 @@ adapters: # 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" + # 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/ @@ -504,13 +504,13 @@ authServer: # 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" + # 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/ @@ -528,7 +528,7 @@ authServer: # signing: # tokenExpiration contains the number of seconds after which tokens issued # by the Auth server will expire. - #tokenExpiration: 3600 + # 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 @@ -582,24 +582,24 @@ deviceRegistryExample: # 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" + # 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 + # 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: + # volumeName: # tenantsFile inidicates the name of the file that is used to initialize the # Tenant service with example tenant data tenantsFile: example-tenants.json @@ -614,7 +614,7 @@ deviceRegistryExample: resetOnStartup: true # Persistent volume claim storage class - #storageClass: + # storageClass: # hono contains the Device Registry's configuration properties as defined in # https://www.eclipse.org/hono/docs/admin-guide/device-registry-config/ @@ -681,10 +681,10 @@ deviceConnectionService: # 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" + # 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/ @@ -742,11 +742,11 @@ prometheus: # 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: - # post contains the port number of an existing Prometheus server. + # 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 + # port: 9090 ## Define serviceAccount names for components. Defaults to component's fully qualified name. ## @@ -800,7 +800,7 @@ grafana: 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/ @@ -828,4 +828,3 @@ grafana: rbac: namespaced: true - From 15437f84c30bb472c901c58a704b8f4fa21a92e7 Mon Sep 17 00:00:00 2001 From: Jens Reimann Date: Mon, 13 Jan 2020 15:40:48 +0100 Subject: [PATCH 3/5] Disable prometheus and grafana by default --- charts/hono/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/hono/values.yaml b/charts/hono/values.yaml index 24b93a79..f4adeadd 100644 --- a/charts/hono/values.yaml +++ b/charts/hono/values.yaml @@ -738,7 +738,7 @@ prometheus: # 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: true + 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. @@ -787,7 +787,7 @@ prometheus: enabled: false grafana: - enabled: true + enabled: false adminPassword: admin # labels to be added to the Grafana Deployment From 887eb8b2bd2079bb6459ab67d8e2b94b9f74899a Mon Sep 17 00:00:00 2001 From: Jens Reimann Date: Wed, 22 Jan 2020 14:16:32 +0100 Subject: [PATCH 4/5] Allow configuring the services, fix CI, default to NodePort --- charts/hono/profileJaegerBackend.yaml | 10 +++ charts/hono/templates/_helpers.tpl | 41 ++++++++++ .../dispatch-router-ext-svc.yaml | 14 +--- .../hono-adapter-amqp-vertx-svc.yaml | 14 +--- .../hono-adapter-coap-vertx-svc.yaml | 14 +--- .../hono-adapter-http-vertx-svc.yaml | 14 +--- .../hono-adapter-kura-svc.yaml | 14 +--- .../hono-adapter-lora-vertx-svc.yaml | 14 +--- .../hono-adapter-mqtt-vertx-svc.yaml | 14 +--- .../hono-service-device-connection-svc.yaml | 8 -- .../hono-service-device-registry-ext-svc.yaml | 14 +--- .../jaeger/jaeger-query-service.yaml | 11 +-- charts/hono/values.yaml | 77 +++++++++++++++++-- 13 files changed, 158 insertions(+), 101 deletions(-) diff --git a/charts/hono/profileJaegerBackend.yaml b/charts/hono/profileJaegerBackend.yaml index ea20765d..7359699c 100644 --- a/charts/hono/profileJaegerBackend.yaml +++ b/charts/hono/profileJaegerBackend.yaml @@ -12,3 +12,13 @@ # 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/templates/_helpers.tpl b/charts/hono/templates/_helpers.tpl index b1fa37e1..f9259aaa 100644 --- a/charts/hono/templates/_helpers.tpl +++ b/charts/hono/templates/_helpers.tpl @@ -356,3 +356,44 @@ The scope passed in is expected to be a dict with keys {{- 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/dispatch-router/dispatch-router-ext-svc.yaml b/charts/hono/templates/dispatch-router/dispatch-router-ext-svc.yaml index 63f82b2e..e996e5e8 100644 --- a/charts/hono/templates/dispatch-router/dispatch-router-ext-svc.yaml +++ b/charts/hono/templates/dispatch-router/dispatch-router-ext-svc.yaml @@ -26,20 +26,14 @@ spec: port: 15671 protocol: TCP targetPort: amqps - nodePort: 30671 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.amqpMessagingNetworkExample.dispatchRouter.svc "port" "amqps" ) | nindent 4 }} - name: amqp port: 15672 protocol: TCP targetPort: amqp - nodePort: 30672 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.amqpMessagingNetworkExample.dispatchRouter.svc "port" "amqp" ) | nindent 4 }} selector: {{- include "hono.matchLabels" $args | nindent 4 }} -{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} - type: LoadBalancer -{{- else }} - type: NodePort -{{- end }} -{{- with .Values.amqpMessagingNetworkExample.dispatchRouter.svc.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} -{{- end }} +{{- 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/hono-adapter-amqp/hono-adapter-amqp-vertx-svc.yaml b/charts/hono/templates/hono-adapter-amqp/hono-adapter-amqp-vertx-svc.yaml index 02ba36df..07827a1a 100644 --- 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 @@ -25,19 +25,13 @@ spec: port: 5672 protocol: TCP targetPort: amqp - nodePort: 32672 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.amqp.svc "port" "amqp" ) | nindent 4 }} - name: amqps port: 5671 protocol: TCP targetPort: amqps - nodePort: 32671 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.amqp.svc "port" "amqps" ) | nindent 4 }} selector: {{- include "hono.matchLabels" $args | nindent 4 }} -{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} - type: LoadBalancer -{{- else }} - type: NodePort -{{- end }} -{{- with .Values.adapters.amqp.svc.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} -{{- end }} +{{- 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/hono-adapter-coap-vertx-svc.yaml b/charts/hono/templates/hono-adapter-coap/hono-adapter-coap-vertx-svc.yaml index 9387eab5..78f1c798 100644 --- 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 @@ -27,20 +27,14 @@ spec: port: 5683 protocol: UDP targetPort: coap - nodePort: 30683 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.coap.svc "port" "coap" ) | nindent 4 }} - name: coaps port: 5684 protocol: UDP targetPort: coaps - nodePort: 30684 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.coap.svc "port" "coaps" ) | nindent 4 }} selector: {{- include "hono.matchLabels" $args | nindent 4 }} -{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} - type: LoadBalancer -{{- else }} - type: NodePort -{{- end }} -{{- with .Values.adapters.coap.svc.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} -{{- end }} +{{- 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/hono-adapter-http-vertx-svc.yaml b/charts/hono/templates/hono-adapter-http/hono-adapter-http-vertx-svc.yaml index 5afb1d1a..5fcf8773 100644 --- 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 @@ -25,19 +25,13 @@ spec: port: 8080 protocol: TCP targetPort: http - nodePort: 30080 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.http.svc "port" "http" ) | nindent 4 }} - name: https port: 8443 protocol: TCP targetPort: https - nodePort: 30443 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.http.svc "port" "https" ) | nindent 4 }} selector: {{- include "hono.matchLabels" $args | nindent 4 }} -{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} - type: LoadBalancer -{{- else }} - type: NodePort -{{- end }} -{{- with .Values.adapters.http.svc.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} -{{- end }} +{{- 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/hono-adapter-kura-svc.yaml b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-svc.yaml index 4dfbccc7..918cffdf 100644 --- a/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-svc.yaml +++ b/charts/hono/templates/hono-adapter-kura/hono-adapter-kura-svc.yaml @@ -26,20 +26,14 @@ spec: port: 1883 protocol: TCP targetPort: mqtt - nodePort: 31884 + {{- 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 - nodePort: 30884 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.kura.svc "port" "mqtts" ) | nindent 4 }} selector: {{- include "hono.matchLabels" $args | nindent 4 }} -{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} - type: LoadBalancer -{{- else }} - type: NodePort -{{- end }} -{{- with .Values.adapters.kura.svc.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} -{{- end }} +{{- 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/hono-adapter-lora-vertx-svc.yaml b/charts/hono/templates/hono-adapter-lora/hono-adapter-lora-vertx-svc.yaml index 8b820d0a..e2800ec8 100644 --- 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 @@ -26,20 +26,14 @@ spec: port: 8080 protocol: TCP targetPort: http - nodePort: 32080 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.lora.svc "port" "http" ) | nindent 4 }} - name: https port: 8443 protocol: TCP targetPort: https - nodePort: 32443 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.lora.svc "port" "https" ) | nindent 4 }} selector: {{- include "hono.matchLabels" $args | nindent 4 }} -{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} - type: LoadBalancer -{{- else }} - type: NodePort -{{- end }} -{{- with .Values.adapters.lora.svc.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} -{{- end }} +{{- 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/hono-adapter-mqtt-vertx-svc.yaml b/charts/hono/templates/hono-adapter-mqtt/hono-adapter-mqtt-vertx-svc.yaml index ab31b382..fd3f7167 100644 --- 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 @@ -25,19 +25,13 @@ spec: port: 1883 protocol: TCP targetPort: mqtt - nodePort: 31883 + {{- 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 - nodePort: 30883 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.adapters.mqtt.svc "port" "mqtts" ) | nindent 4 }} selector: {{- include "hono.matchLabels" $args | nindent 4 }} -{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} - type: LoadBalancer -{{- else }} - type: NodePort -{{- end }} -{{- with .Values.adapters.mqtt.svc.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} -{{- end }} +{{- 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-device-connection/hono-service-device-connection-svc.yaml b/charts/hono/templates/hono-service-device-connection/hono-service-device-connection-svc.yaml index d354d94f..456952d4 100644 --- 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 @@ -28,12 +28,4 @@ spec: targetPort: amqps selector: {{- include "hono.matchLabels" $args | nindent 4 }} -{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} - type: LoadBalancer -{{- else }} - type: NodePort -{{- end }} -{{- with .Values.deviceConnectionService.svc.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} -{{- end }} {{- 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 index fbab6659..2a2e020c 100644 --- 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 @@ -26,20 +26,14 @@ spec: port: 28080 protocol: TCP targetPort: http - nodePort: 31080 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.deviceRegistryExample.svc "port" "http" ) | nindent 4 }} - name: https port: 28443 protocol: TCP targetPort: https - nodePort: 31443 + {{- include "hono.service.nodePort" (dict "dot" . "service" .Values.deviceRegistryExample.svc "port" "https" ) | nindent 4 }} selector: {{- include "hono.matchLabels" $args | nindent 4 }} -{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} - type: LoadBalancer -{{- else }} - type: NodePort -{{- end }} -{{- with .Values.deviceRegistryExample.svc.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} -{{- end }} +{{- 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/jaeger/jaeger-query-service.yaml b/charts/hono/templates/jaeger/jaeger-query-service.yaml index 3bfc21b6..85d3c154 100644 --- a/charts/hono/templates/jaeger/jaeger-query-service.yaml +++ b/charts/hono/templates/jaeger/jaeger-query-service.yaml @@ -26,14 +26,9 @@ spec: 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 }} -{{- if and ( eq .Values.useLoadBalancer true ) ( ne .Values.platform "openshift" ) }} - type: LoadBalancer -{{- else }} - type: NodePort -{{- end }} -{{- with .Values.jaegerBackendExample.svc.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} -{{- end }} +{{- 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/values.yaml b/charts/hono/values.yaml index f4adeadd..d9a90ba7 100644 --- a/charts/hono/values.yaml +++ b/charts/hono/values.yaml @@ -27,6 +27,15 @@ amqpMessagingNetworkExample: 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 @@ -64,6 +73,13 @@ jaegerBackendExample: 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 @@ -103,11 +119,6 @@ healthCheckPort: 8088 # When setting to "openshift", Route resources will also be deployed. platform: kubernetes -# useLoadBalancer indicates whether services should be deployed using the -# "LoadBalancer" type (true) or the "NodePort" type (false). -# This property will be ignored when deploying to platform "openshift". -useLoadBalancer: true - # Configuration properties for protocol adapters. adapters: @@ -174,6 +185,14 @@ adapters: 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 @@ -232,6 +251,14 @@ adapters: 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 @@ -277,6 +304,14 @@ adapters: 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 @@ -333,6 +368,14 @@ adapters: 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 @@ -386,6 +429,14 @@ adapters: 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 @@ -441,6 +492,14 @@ adapters: 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 @@ -572,6 +631,14 @@ deviceRegistryExample: 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 From ab8bf9571e307dabd20782349145f299817d0ddb Mon Sep 17 00:00:00 2001 From: Jens Reimann Date: Wed, 22 Jan 2020 14:47:17 +0100 Subject: [PATCH 5/5] Cleanup metadata --- charts/hono/Chart.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/charts/hono/Chart.yaml b/charts/hono/Chart.yaml index 164c8734..f42608dc 100644 --- a/charts/hono/Chart.yaml +++ b/charts/hono/Chart.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2019 Contributors to the Eclipse Foundation +# Copyright (c) 2019, 2020 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -12,7 +12,7 @@ # apiVersion: v1 # Version of the Helm chart, by default, this will be the Maven project version -version: 1.0.2 +version: 2.0.0 # Version of the application being deployed by the chart appVersion: 1.0.2 name: hono @@ -23,6 +23,10 @@ keywords: 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