From 405a92950b5a21c6eca3ae4b5cd7cc302222e71b Mon Sep 17 00:00:00 2001 From: Stefan Obermeier Date: Fri, 17 Nov 2023 11:52:50 +0100 Subject: [PATCH 1/4] Nginx conf parameters as env var --- docker-compose.yml | 2 + ui/Dockerfile | 1 + ui/docker-entrypoint.sh | 4 +- ui/nginx_config/default.conf | 2 +- ui/nginx_config/default.conf.template | 56 +++++++++++++++++++++++++++ 5 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 ui/nginx_config/default.conf.template diff --git a/docker-compose.yml b/docker-compose.yml index 5570b5f3d4..ea62398072 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -54,6 +54,8 @@ services: context: ./ui dockerfile: Dockerfile image: streampipes_ui:release-validation + environment: + - SP_HTTP_SERVER_ADAPTER_ENDPOINT=extensions-all-jvm:8090 ports: - "80:8088" depends_on: diff --git a/ui/Dockerfile b/ui/Dockerfile index 723029b839..a0483f862c 100644 --- a/ui/Dockerfile +++ b/ui/Dockerfile @@ -34,6 +34,7 @@ USER nginx COPY nginx_config/nginx.conf /etc/nginx/nginx.conf COPY nginx_config/default.conf /etc/nginx/conf.d/default.conf +COPY nginx_config/default.conf.template /etc/nginx/conf.d/default.conf.template COPY nginx_config/ssl.conf /app/nginx-confs/ssl.conf COPY docker-entrypoint.sh / diff --git a/ui/docker-entrypoint.sh b/ui/docker-entrypoint.sh index eeb26849d7..cc8e480928 100755 --- a/ui/docker-entrypoint.sh +++ b/ui/docker-entrypoint.sh @@ -19,7 +19,9 @@ if [ ! -z "$NGINX_SSL" ] && [ "$NGINX_SSL" = "true" ]; then rm /etc/nginx/conf.d/default.conf ln -s /app/nginx-confs/ssl.conf /etc/nginx/conf.d/default.conf - +elif [ ! -z "$SP_HTTP_SERVER_ADAPTER_ENDPOINT" ]; then + rm /etc/nginx/conf.d/default.conf + envsubst '\$SP_HTTP_SERVER_ADAPTER_ENDPOINT' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf fi exec "$@" \ No newline at end of file diff --git a/ui/nginx_config/default.conf b/ui/nginx_config/default.conf index 5dd4447c2c..ef8f1fb4ce 100644 --- a/ui/nginx_config/default.conf +++ b/ui/nginx_config/default.conf @@ -44,7 +44,7 @@ server { } location ~/endpoints/(?.*)$ { - set $upstream connect-adapters-iiot:8001/api/v1/worker/live/$endpointName; + set $upstream extensions-all-jvm:8090/api/v1/worker/live/$endpointName; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/ui/nginx_config/default.conf.template b/ui/nginx_config/default.conf.template new file mode 100644 index 0000000000..38532388f1 --- /dev/null +++ b/ui/nginx_config/default.conf.template @@ -0,0 +1,56 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +server { + listen 8088 default_server; + resolver 127.0.0.11; + + root /usr/share/nginx/html; + + # Enable gzip compression + gzip on; + gzip_static on; + gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; + gzip_proxied any; + gzip_vary on; + gzip_comp_level 6; + gzip_buffers 16 8k; + gzip_http_version 1.1; + + # StreamPipes + + location /streampipes-backend { + set $upstream backend:8030; + + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-NginX-Proxy true; + proxy_pass http://$upstream; + proxy_ssl_session_reuse off; + proxy_set_header Host $http_host; + proxy_redirect off; + } + + location ~/endpoints/(?.*)$ { + set $upstream ${SP_HTTP_SERVER_ADAPTER_ENDPOINT}/api/v1/worker/live/$endpointName; + + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-NginX-Proxy true; + proxy_pass http://$upstream; + proxy_ssl_session_reuse off; + proxy_set_header Host $http_host; + } +} From 94cac773cdb928be2ebc476c77efa671bb59646c Mon Sep 17 00:00:00 2001 From: Stefan Obermeier Date: Sun, 26 Nov 2023 22:28:32 +0100 Subject: [PATCH 2/4] Add http-server route configuration to more installers --- docker-compose.yml | 2 +- .../standalone/extensions-all-jvm/docker-compose.dev.yml | 2 +- .../deploy/standalone/extensions-all-jvm/docker-compose.yml | 2 ++ installer/cli/deploy/standalone/ui/docker-compose.yml | 4 +++- installer/cli/environments/full | 3 --- installer/compose/docker-compose.full.yml | 2 ++ installer/compose/docker-compose.minimal.yml | 2 ++ installer/compose/docker-compose.nats.yml | 2 ++ installer/compose/docker-compose.pulsar.yml | 2 ++ installer/compose/docker-compose.quickstart.yml | 2 ++ installer/compose/docker-compose.yml | 2 ++ installer/k8s/README.md | 1 + .../k8s/templates/core/extensions-all-iiot-deployment.yaml | 2 +- installer/k8s/templates/core/ui-ingressroute.yaml | 5 +++++ installer/k8s/values.yaml | 1 + 15 files changed, 27 insertions(+), 7 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ea62398072..feb1f99222 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -57,7 +57,7 @@ services: environment: - SP_HTTP_SERVER_ADAPTER_ENDPOINT=extensions-all-jvm:8090 ports: - - "80:8088" + - "8088:8088" depends_on: - couchdb - consul diff --git a/installer/cli/deploy/standalone/extensions-all-jvm/docker-compose.dev.yml b/installer/cli/deploy/standalone/extensions-all-jvm/docker-compose.dev.yml index 1c74532691..9dfc75b477 100644 --- a/installer/cli/deploy/standalone/extensions-all-jvm/docker-compose.dev.yml +++ b/installer/cli/deploy/standalone/extensions-all-jvm/docker-compose.dev.yml @@ -19,4 +19,4 @@ services: labels: org.apache.streampipes.dev.extensions-all-jvm.service.description: "Dev extensions-all-jvm service" ports: - - "8090:8090" + - "8003:8090" diff --git a/installer/cli/deploy/standalone/extensions-all-jvm/docker-compose.yml b/installer/cli/deploy/standalone/extensions-all-jvm/docker-compose.yml index 287b34dfd0..368054457a 100644 --- a/installer/cli/deploy/standalone/extensions-all-jvm/docker-compose.yml +++ b/installer/cli/deploy/standalone/extensions-all-jvm/docker-compose.yml @@ -17,6 +17,8 @@ version: "3.4" services: extensions-all-jvm: image: ${SP_DOCKER_REGISTRY}/extensions-all-jvm:${SP_VERSION} + environment: + - SP_HTTP_SERVER_ADAPTER_ENDPOINT=extensions-all-jvm:8090 depends_on: - consul - couchdb diff --git a/installer/cli/deploy/standalone/ui/docker-compose.yml b/installer/cli/deploy/standalone/ui/docker-compose.yml index bd88b873d8..a9798619cc 100644 --- a/installer/cli/deploy/standalone/ui/docker-compose.yml +++ b/installer/cli/deploy/standalone/ui/docker-compose.yml @@ -17,8 +17,10 @@ version: "3.4" services: ui: image: ${SP_DOCKER_REGISTRY}/ui:${SP_VERSION} + environment: + - SP_HTTP_SERVER_ADAPTER_ENDPOINT=extensions-all-jvm:8090 ports: - - "80:8088" + - "8082:8088" depends_on: - couchdb - consul diff --git a/installer/cli/environments/full b/installer/cli/environments/full index f751a50862..bf188948bd 100644 --- a/installer/cli/environments/full +++ b/installer/cli/environments/full @@ -19,9 +19,6 @@ backend extensions-all-jvm consul couchdb -jobmanager -taskmanager zookeeper kafka influxdb -pipeline-elements-all-flink diff --git a/installer/compose/docker-compose.full.yml b/installer/compose/docker-compose.full.yml index 00029cdddb..d7b7fcd7da 100644 --- a/installer/compose/docker-compose.full.yml +++ b/installer/compose/docker-compose.full.yml @@ -40,6 +40,8 @@ services: ui: image: "${SP_DOCKER_REGISTRY}/ui:${SP_VERSION}" + environment: + - SP_HTTP_SERVER_ADAPTER_ENDPOINT=extensions-all-jvm:8090 ports: - "80:8088" depends_on: diff --git a/installer/compose/docker-compose.minimal.yml b/installer/compose/docker-compose.minimal.yml index 0a4246298a..0753d96cdc 100644 --- a/installer/compose/docker-compose.minimal.yml +++ b/installer/compose/docker-compose.minimal.yml @@ -41,6 +41,8 @@ services: ui: image: "${SP_DOCKER_REGISTRY}/ui:${SP_VERSION}" + environment: + - SP_HTTP_SERVER_ADAPTER_ENDPOINT=extensions-iiot-minimal:8090 ports: - "80:8088" depends_on: diff --git a/installer/compose/docker-compose.nats.yml b/installer/compose/docker-compose.nats.yml index 2105321395..021324085b 100644 --- a/installer/compose/docker-compose.nats.yml +++ b/installer/compose/docker-compose.nats.yml @@ -41,6 +41,8 @@ services: ui: image: "${SP_DOCKER_REGISTRY}/ui:${SP_VERSION}" + environment: + - SP_HTTP_SERVER_ADAPTER_ENDPOINT=extensions-all-jvm:8090 ports: - "80:8088" depends_on: diff --git a/installer/compose/docker-compose.pulsar.yml b/installer/compose/docker-compose.pulsar.yml index ca11f9c02f..04d294a511 100644 --- a/installer/compose/docker-compose.pulsar.yml +++ b/installer/compose/docker-compose.pulsar.yml @@ -42,6 +42,8 @@ services: ui: image: "${SP_DOCKER_REGISTRY}/ui:${SP_VERSION}" + environment: + - SP_HTTP_SERVER_ADAPTER_ENDPOINT=extensions-all-jvm:8090 ports: - "80:8088" depends_on: diff --git a/installer/compose/docker-compose.quickstart.yml b/installer/compose/docker-compose.quickstart.yml index c676359ea4..47be6d8959 100644 --- a/installer/compose/docker-compose.quickstart.yml +++ b/installer/compose/docker-compose.quickstart.yml @@ -40,6 +40,8 @@ services: ui: image: "${SP_DOCKER_REGISTRY}/ui:${SP_VERSION}" + environment: + - SP_HTTP_SERVER_ADAPTER_ENDPOINT=extensions-all-jvm:8090 ports: - "80:8088" depends_on: diff --git a/installer/compose/docker-compose.yml b/installer/compose/docker-compose.yml index 4f9bb5bad2..131fc1c604 100644 --- a/installer/compose/docker-compose.yml +++ b/installer/compose/docker-compose.yml @@ -27,6 +27,8 @@ services: # StreamPipes services backend: image: "${SP_DOCKER_REGISTRY}/backend:${SP_VERSION}" + environment: + - SP_HTTP_SERVER_ADAPTER_ENDPOINT=extensions-all-jvm:8090 depends_on: - consul - couchdb diff --git a/installer/k8s/README.md b/installer/k8s/README.md index adeca3ea09..0077972583 100644 --- a/installer/k8s/README.md +++ b/installer/k8s/README.md @@ -141,6 +141,7 @@ rm -rf ${HOME}/streampipes-k8s | Parameter Name | Description | Value | |-------------------------------------------------|---------------------------------------------------------|------------------------------------------| | extensions.iiot.appName | IIoT extensions application name | extensions-all-iiot | +| extensions.iiot.imageName | IIoT extensions image name | extensions-all-jvm | | extensions.iiot.port | Port for the IIoT extensions application | 8090 | | extensions.iiot.service.name | Name of the IIoT extensions service | extensions-all-iiot | | extensions.iiot.service.port | TargetPort of the IIoT extensions service | 8090 | diff --git a/installer/k8s/templates/core/extensions-all-iiot-deployment.yaml b/installer/k8s/templates/core/extensions-all-iiot-deployment.yaml index 16a1e88bf0..cecc9a18f7 100644 --- a/installer/k8s/templates/core/extensions-all-iiot-deployment.yaml +++ b/installer/k8s/templates/core/extensions-all-iiot-deployment.yaml @@ -34,7 +34,7 @@ spec: command: ["sh", "-c", "for i in $(seq 1 300); do nc -zvw1 {{.Values.streampipes.core.service.name}} {{ .Values.streampipes.core.service.port }} && exit 0 || sleep 3; done; exit 1"] containers: - name: extensions-all-iiot - image: {{ .Values.streampipes.registry }}/extensions-all-iiot:{{ .Values.streampipes.version }} + image: {{ .Values.streampipes.registry }}/{{ .Values.extensions.iiot.imageName }}:{{ .Values.streampipes.version }} imagePullPolicy: {{ .Values.pullPolicy }} ports: - containerPort: {{ .Values.extensions.iiot.port }} diff --git a/installer/k8s/templates/core/ui-ingressroute.yaml b/installer/k8s/templates/core/ui-ingressroute.yaml index 812d83e604..64609e5d01 100644 --- a/installer/k8s/templates/core/ui-ingressroute.yaml +++ b/installer/k8s/templates/core/ui-ingressroute.yaml @@ -39,6 +39,11 @@ spec: services: - name: {{ .Values.streampipes.ui.appName }} port: {{ .Values.streampipes.ui.service.port }} + - match: Host(`{{ .Values.streampipes.ingressroute.host }}`) && PathPrefix(`/endpoints/`) + kind: Rule + services: + - name: {{ .Values.extensions.iiot.appName }} + port: {{ .Values.extensions.iiot.service.port }} {{- if .Values.streampipes.ingressroute.certResolverActive }} tls: certResolver: {{ .Values.streampipes.ingressroute.certResolver}} diff --git a/installer/k8s/values.yaml b/installer/k8s/values.yaml index 33885487cd..435aecb8d2 100644 --- a/installer/k8s/values.yaml +++ b/installer/k8s/values.yaml @@ -81,6 +81,7 @@ streampipes: extensions: iiot: appName: extensions-all-iiot + imageName: extensions-all-jvm port: 8090 service: name: extensions-all-iiot From 63c83dbe58f5c509edbde8498ea62aa022f3d910 Mon Sep 17 00:00:00 2001 From: Stefan Obermeier Date: Tue, 19 Dec 2023 17:01:54 +0100 Subject: [PATCH 3/4] Create backup of nginx configuration before changing it --- ui/docker-entrypoint.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui/docker-entrypoint.sh b/ui/docker-entrypoint.sh index cc8e480928..d608b80f44 100755 --- a/ui/docker-entrypoint.sh +++ b/ui/docker-entrypoint.sh @@ -16,10 +16,13 @@ set -e if [ ! -z "$NGINX_SSL" ] && [ "$NGINX_SSL" = "true" ]; then - rm /etc/nginx/conf.d/default.conf ln -s /app/nginx-confs/ssl.conf /etc/nginx/conf.d/default.conf elif [ ! -z "$SP_HTTP_SERVER_ADAPTER_ENDPOINT" ]; then + DEFAULT_CONF_BACKUP="/etc/nginx/conf.d/default.conf_$(date +%s).bak" + echo "Create backup of old configuration $DEFAULT_CONF_BACKUP" + cp /etc/nginx/conf.d/default.conf $DEFAULT_CONF_BACKUP + rm /etc/nginx/conf.d/default.conf envsubst '\$SP_HTTP_SERVER_ADAPTER_ENDPOINT' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf fi From d186bde899883f94039181247e69e48bbd99fedb Mon Sep 17 00:00:00 2001 From: Stefan Obermeier Date: Fri, 22 Dec 2023 20:31:58 +0100 Subject: [PATCH 4/4] Fix merge mistakes. --- installer/k8s/README.md | 288 +++++++++++++++++++--------------------- 1 file changed, 140 insertions(+), 148 deletions(-) diff --git a/installer/k8s/README.md b/installer/k8s/README.md index f648540c04..23bfce457d 100644 --- a/installer/k8s/README.md +++ b/installer/k8s/README.md @@ -96,154 +96,146 @@ We retain the created persistent volume. You need to manually delete it: ```bash rm -rf ${HOME}/streampipes-k8s ``` -##Parameters - -###Common parameters -| Parameter Name | Description | Value | -|--------------------------------------------------|---------------------------------------------------------|-----------------------------------------| -| deployment | Deployment type (lite or full) | lite | -| preferredBroker | Preferred broker for deployment | "nats" | -| monitoringSystem | Enable monitoring system (true/false) | false | -| pullPolicy | Image pull policy | "Always" | -| restartPolicy | Restart policy for the container | Always | -| persistentVolumeReclaimPolicy | Reclaim policy for persistent volumes | "Delete" | -| persistentVolumeAccessModes | Access mode for persistent volumes | "ReadWriteOnce" | -| initialDelaySeconds | Initial delay for liveness and readiness probes | 60 | -| periodSeconds | Interval between liveness and readiness probes | 30 | -| failureThreshold | Number of consecutive failures for readiness probes | 30 | -| hostPath | Host path for the application | "" | - -###StreamPipes common parameters -| Parameter Name | Description | Value | -|-------------------------------------------------|---------------------------------------------------------|------------------------------------------| -| streampipes.version | StreamPipes version | "0.93.0-SNAPSHOT" | -| streampipes.registry | StreamPipes registry URL | "apachestreampipes" | -| streampipes.auth.secretName | The secret name for storing secrets | "sp-secrets" | -| streampipes.auth.users.admin.user | The initial admin user | "admin@streampipes.apache.org" | -| streampipes.auth.users.admin.password | The initial admin password (leave empty for autogen) | "admin" | -| streampipes.auth.users.service.user | The initial service account user | "sp-service-client" | -| streampipes.auth.users.service.secret | The initial service account secret | empty (auto-generated) | -| streampipes.auth.encryption.passcode | Passcode for value encryption | empty (auto-generated) | -| streampipes.core.appName | StreamPipes backend application name | "backend" | -| streampipes.core.port | StreamPipes backend port | 8030 | -| streampipes.core.persistence.storageClassName | Storage class name for backend PVs | "hostpath" | -| streampipes.core.persistence.storageSize | Size of the backend PV | "1Gi" | -| streampipes.core.persistence.claimName | Name of the backend PersistentVolumeClaim | "backend-pvc" | -| streampipes.core.persistence.pvName | Name of the backend PersistentVolume | "backend-pv" | -| streampipes.core.service.name | Name of the backend service | "backend" | -| streampipes.core.service.port | TargetPort of the StreamPipes backend service | 8030 | -| streampipes.ui.appName | StreamPipes UI application name | "ui" | -| streampipes.ui.resolverActive | Flag for enabling DNS resolver for Nginx proxy | true | -| streampipes.ui.port | StreamPipes UI port | 8088 | -| streampipes.ui.resolver | DNS resolver for Nginx proxy | "kube-dns.kube-system.svc.cluster.local" | -| streampipes.ui.service.name | Name of the UI service | "ui" | -| streampipes.ui.service.type | Type of the UI service | "ClusterIP" | -| streampipes.ui.service.nodePort | Node port for the UI service | 8088 | -| streampipes.ui.service.port | TargetPort of the StreamPipes UI service | 8088 | -| streampipes.ingress.active | Flag for enabling Ingress for StreamPipes | false | -| streampipes.ingress.annotations | Annotations for Ingress | {} | -| streampipes.ingress.host | Hostname for Ingress | "" | -| streampipes.ingressroute.active | Flag for enabling IngressRoute for StreamPipes | true | -| streampipes.ingressroute.annotations | Annotations for IngressRoute | {} | -| streampipes.ingressroute.entryPoints | Entry points for IngressRoute | ["web", "websecure"] | -| streampipes.ingressroute.host | Hostname for IngressRoute | "" | -| streampipes.ingressroute.certResolverActive | Flag for enabling certificate resolver for IngressRoute | true | -| streampipes.ingressroute.certResolver | Certificate resolver for IngressRoute | "" | - - -###Extensions common parameters -| Parameter Name | Description | Value | -|-------------------------------------------------|---------------------------------------------------------|------------------------------------------| -| extensions.iiot.appName | IIoT extensions application name | extensions-all-iiot | -| extensions.iiot.imageName | IIoT extensions image name | extensions-all-jvm | -| extensions.iiot.port | Port for the IIoT extensions application | 8090 | -| extensions.iiot.service.name | Name of the IIoT extensions service | extensions-all-iiot | -| extensions.iiot.service.port | TargetPort of the IIoT extensions service | 8090 | - - -####Consul common parameters -| Parameter Name | Description | Value | -|-------------------------------------------------|----------------------------------------------------------|------------------------------------------| -| external.consul.appName | Consul application name | "consul" | -| external.consul.version | Consul version | 1.14.3 | -| external.consul.webPort | Port number for the Consul web interface | 8500 | -| external.consul.dnsPort | Port number for the Consul DNS interface | 8600 | -| external.consul.persistence.storageClassName | Storage class name for Consul PVs | "hostpath" | -| external.consul.persistence.storageSize | Size of the Consul PV | "1Gi" | -| external.consul.persistence.claimName | Name of the Consul PersistentVolumeClaim | "consul-pvc" | -| external.consul.persistence.pvName | Name of the Consul PersistentVolume | "consul-pv" | -| external.consul.service.name | Name of the Consul service | "consul" | -| external.consul.service.webPort | TargetPort of the Consul service for web interface | 8500 | -| external.consul.service.dnsPort | TargetPort of the Consul service for DNS interface | 8600 | - -####Couchdb common parameters -| Parameter Name | Description | Value | -|-------------------------------------------------|----------------------------------------------------------|------------------------------------------| -| external.couchdb.appName | CouchDB application name | "couchdb" | -| external.couchdb.version | CouchDB version | 3.3.1 | -| external.couchdb.user | CouchDB admin username | "admin" | -| external.couchdb.password | CouchDB admin password | empty (auto-generated) | -| external.couchdb.port | Port for the CouchDB service | 5984 | -| external.couchdb.service.name | Name of the CouchDB service | "couchdb" | -| external.couchdb.service.port | TargetPort of the CouchDB service | 5984 | -| external.couchdb.persistence.storageClassName | Storage class name for CouchDB PVs | "hostpath" | -| external.couchdb.persistence.storageSize | Size of the CouchDB PV | "1Gi" | -| external.couchdb.persistence.claimName | Name of the CouchDB PersistentVolumeClaim | "couchdb-pvc" | -| external.couchdb.persistence.pvName | Name of the CouchDB PersistentVolume | "couchdb-pv" | - -####Influxdb common parameters -| Parameter Name | Description | Value | -|-------------------------------------------------|----------------------------------------------------------|------------------------------------------| -| external.influxdb.appName | InfluxDB application name | "influxdb" | -| external.influxdb.version | InfluxDB version | 2.6 | -| external.influxdb.username | InfluxDB admin username | "admin" | -| external.influxdb.password | InfluxDB admin password | empty (auto-generated) | -| external.influxdb.adminToken | InfluxDB admin token | empty (auto-generated) | -| external.influxdb.initOrg | InfluxDB initial organization | "sp" | -| external.influxdb.initBucket | InfluxDB initial bucket | "sp" | -| external.influxdb.initMode | InfluxDB initialization mode | "setup" | -| external.influxdb.apiPort | Port number for the InfluxDB service (API) | 8083 | -| external.influxdb.httpPort | Port number for the InfluxDB service (HTTP) | 8086 | -| external.influxdb.grpcPort | Port number for the InfluxDB service (gRPC) | 8090 | -| external.influxdb.service.name | Name of the InfluxDB service | "influxdb" | -| external.influxdb.service.apiPort | TargetPort of the InfluxDB service for API | 8083 | -| external.influxdb.service.httpPort | TargetPort of the InfluxDB service for HTTP | 8086 | -| external.influxdb.service.grpcPort | TargetPort of the InfluxDB service for gRPC | 8090 | -| external.influxdb.persistence.storageClassName | Storage class name for InfluxDB PVs | "hostpath" | -| external.influxdb.persistence.storageSize | Size of the InfluxDB PV | "1Gi" | -| external.influxdb.persistence.storageSizeV1 | Size of the InfluxDB PV for v1 databases | "1Gi" | -| external.influxdb.persistence.claimName | Name of the InfluxDBv2 PersistentVolumeClaim | "influxdb2-pvc" | -| external.influxdb.persistence.claimNameV1 | Name of the InfluxDBv1 PersistentVolumeClaim | "influxdb-pvc" | -| external.influxdb.persistence.pvName | Name of the InfluxDBv2 PersistentVolume | "influxdb2-pv" | -| external.influxdb.persistence.pvNameV1 | Name of the InfluxDBv1 PersistentVolume | "influxdb-pv" | - - -####Nats common parameters -| Parameter Name | Description | Value | -|-------------------------------------------------|----------------------------------------------------------|------------------------------------------| -| external.nats.appName | NATS application name | "nats" | -| external.nats.port | Port for the NATS service | 4222 | -| external.nats.version | NATS version | | -| external.nats.service.type | Type of the NATS service | "NodePort" | -| external.nats.service.externalTrafficPolicy | External traffic policy for the NATS service | "Local" | -| external.nats.service.name | Name of the NATS service | "nats" | -| external.nats.service.port | TargetPort of the NATS service | 4222 | - - -####Kafka common parameters -| Parameter Name | Description | Value | -|-------------------------------------------------|----------------------------------------------------------|------------------------------------------| -| external.kafka.appName | Kafka application name | "kafka" | -| external.kafka.version | Kafka version | 2.2.0 | -| external.kafka.port | Port for the Kafka service | 9092 | -| external.kafka.external.hostname | Name which will be advertised to external clients. Clients which use (default) port 9094 | "localhost" -| external.kafka.service.name | Name of the Kafka service | "kafka" | -| external.kafka.service.port | TargetPort of the Kafka service | 9092 | -| external.kafka.service.portOutside | Port for Kafka client outside of the cluster | 9094 | -| external.kafka.persistence.storageClassName | Storage class name for Kafka PVs | "hostpath" | -| external.kafka.persistence.storageSize | Size of the Kafka PV | "1Gi" | -| external.kafka.persistence.claimName | Name of the Kafka PersistentVolumeClaim | "kafka-pvc" | -| external.kafka.persistence.pvName | Name of the Kafka PersistentVolume | "kafka-pv" | + +## Parameters + +### Common parameters + +| Parameter Name | Description | Value | +|-------------------------------|-----------------------------------------------------|-----------------| +| deployment | Deployment type (lite or full) | lite | +| preferredBroker | Preferred broker for deployment | "nats" | +| monitoringSystem | Enable monitoring system (true/false) | false | +| pullPolicy | Image pull policy | "Always" | +| restartPolicy | Restart policy for the container | Always | +| persistentVolumeReclaimPolicy | Reclaim policy for persistent volumes | "Delete" | +| persistentVolumeAccessModes | Access mode for persistent volumes | "ReadWriteOnce" | +| initialDelaySeconds | Initial delay for liveness and readiness probes | 60 | +| periodSeconds | Interval between liveness and readiness probes | 30 | +| failureThreshold | Number of consecutive failures for readiness probes | 30 | +| hostPath | Host path for the application | "" | + +### StreamPipes common parameters + +| Parameter Name | Description | Value | +|-----------------------------------------------|---------------------------------------------------------|------------------------------------------| +| streampipes.version | StreamPipes version | "0.95.0-SNAPSHOT" | +| streampipes.registry | StreamPipes registry URL | "apachestreampipes" | +| streampipes.auth.secretName | The secret name for storing secrets | "sp-secrets" | +| streampipes.auth.users.admin.user | The initial admin user | "admin@streampipes.apache.org" | +| streampipes.auth.users.admin.password | The initial admin password (leave empty for autogen) | "admin" | +| streampipes.auth.users.service.user | The initial service account user | "sp-service-client" | +| streampipes.auth.users.service.secret | The initial service account secret | empty (auto-generated) | +| streampipes.auth.encryption.passcode | Passcode for value encryption | empty (auto-generated) | +| streampipes.core.appName | StreamPipes backend application name | "backend" | +| streampipes.core.port | StreamPipes backend port | 8030 | +| streampipes.core.persistence.storageClassName | Storage class name for backend PVs | "hostpath" | +| streampipes.core.persistence.storageSize | Size of the backend PV | "1Gi" | +| streampipes.core.persistence.claimName | Name of the backend PersistentVolumeClaim | "backend-pvc" | +| streampipes.core.persistence.pvName | Name of the backend PersistentVolume | "backend-pv" | +| streampipes.core.service.name | Name of the backend service | "backend" | +| streampipes.core.service.port | TargetPort of the StreamPipes backend service | 8030 | +| streampipes.ui.appName | StreamPipes UI application name | "ui" | +| streampipes.ui.resolverActive | Flag for enabling DNS resolver for Nginx proxy | true | +| streampipes.ui.port | StreamPipes UI port | 8088 | +| streampipes.ui.resolver | DNS resolver for Nginx proxy | "kube-dns.kube-system.svc.cluster.local" | +| streampipes.ui.service.name | Name of the UI service | "ui" | +| streampipes.ui.service.type | Type of the UI service | "ClusterIP" | +| streampipes.ui.service.nodePort | Node port for the UI service | 8088 | +| streampipes.ui.service.port | TargetPort of the StreamPipes UI service | 8088 | +| streampipes.ingress.active | Flag for enabling Ingress for StreamPipes | false | +| streampipes.ingress.annotations | Annotations for Ingress | {} | +| streampipes.ingress.host | Hostname for Ingress | "" | +| streampipes.ingressroute.active | Flag for enabling IngressRoute for StreamPipes | true | +| streampipes.ingressroute.annotations | Annotations for IngressRoute | {} | +| streampipes.ingressroute.entryPoints | Entry points for IngressRoute | ["web", "websecure"] | +| streampipes.ingressroute.host | Hostname for IngressRoute | "" | +| streampipes.ingressroute.certResolverActive | Flag for enabling certificate resolver for IngressRoute | true | +| streampipes.ingressroute.certResolver | Certificate resolver for IngressRoute | "" | + +### Extensions common parameters + +| Parameter Name | Description | Value | +|------------------------------|-------------------------------------------|---------------------| +| extensions.iiot.appName | IIoT extensions application name | extensions-all-iiot | +| extensions.iiot.imageName | IIoT extensions image name | extensions-all-jvm | +| extensions.iiot.port | Port for the IIoT extensions application | 8090 | +| extensions.iiot.service.name | Name of the IIoT extensions service | extensions-all-iiot | +| extensions.iiot.service.port | TargetPort of the IIoT extensions service | 8090 | + +### External common parameters + +#### Couchdb common parameters + +| Parameter Name | Description | Value | +|-----------------------------------------------|-------------------------------------------|------------------------| +| external.couchdb.appName | CouchDB application name | "couchdb" | +| external.couchdb.version | CouchDB version | 3.3.1 | +| external.couchdb.user | CouchDB admin username | "admin" | +| external.couchdb.password | CouchDB admin password | empty (auto-generated) | +| external.couchdb.port | Port for the CouchDB service | 5984 | +| external.couchdb.service.name | Name of the CouchDB service | "couchdb" | +| external.couchdb.service.port | TargetPort of the CouchDB service | 5984 | +| external.couchdb.persistence.storageClassName | Storage class name for CouchDB PVs | "hostpath" | +| external.couchdb.persistence.storageSize | Size of the CouchDB PV | "1Gi" | +| external.couchdb.persistence.claimName | Name of the CouchDB PersistentVolumeClaim | "couchdb-pvc" | +| external.couchdb.persistence.pvName | Name of the CouchDB PersistentVolume | "couchdb-pv" | + + +#### Influxdb common parameters + +| Parameter Name | Description | Value | +|------------------------------------------------|----------------------------------------------|------------------------| +| external.influxdb.appName | InfluxDB application name | "influxdb" | +| external.influxdb.version | InfluxDB version | 2.6 | +| external.influxdb.username | InfluxDB admin username | "admin" | +| external.influxdb.password | InfluxDB admin password | empty (auto-generated) | +| external.influxdb.adminToken | InfluxDB admin token | empty (auto-generated) | +| external.influxdb.initOrg | InfluxDB initial organization | "sp" | +| external.influxdb.initBucket | InfluxDB initial bucket | "sp" | +| external.influxdb.initMode | InfluxDB initialization mode | "setup" | +| external.influxdb.apiPort | Port number for the InfluxDB service (API) | 8083 | +| external.influxdb.httpPort | Port number for the InfluxDB service (HTTP) | 8086 | +| external.influxdb.grpcPort | Port number for the InfluxDB service (gRPC) | 8090 | +| external.influxdb.service.name | Name of the InfluxDB service | "influxdb" | +| external.influxdb.service.apiPort | TargetPort of the InfluxDB service for API | 8083 | +| external.influxdb.service.httpPort | TargetPort of the InfluxDB service for HTTP | 8086 | +| external.influxdb.service.grpcPort | TargetPort of the InfluxDB service for gRPC | 8090 | +| external.influxdb.persistence.storageClassName | Storage class name for InfluxDB PVs | "hostpath" | +| external.influxdb.persistence.storageSize | Size of the InfluxDB PV | "1Gi" | +| external.influxdb.persistence.storageSizeV1 | Size of the InfluxDB PV for v1 databases | "1Gi" | +| external.influxdb.persistence.claimName | Name of the InfluxDBv2 PersistentVolumeClaim | "influxdb2-pvc" | +| external.influxdb.persistence.claimNameV1 | Name of the InfluxDBv1 PersistentVolumeClaim | "influxdb-pvc" | +| external.influxdb.persistence.pvName | Name of the InfluxDBv2 PersistentVolume | "influxdb2-pv" | +| external.influxdb.persistence.pvNameV1 | Name of the InfluxDBv1 PersistentVolume | "influxdb-pv" | + +#### Nats common parameters + +| Parameter Name | Description | Value | +|---------------------------------------------|----------------------------------------------|------------| +| external.nats.appName | NATS application name | "nats" | +| external.nats.port | Port for the NATS service | 4222 | +| external.nats.version | NATS version | | +| external.nats.service.type | Type of the NATS service | "NodePort" | +| external.nats.service.externalTrafficPolicy | External traffic policy for the NATS service | "Local" | +| external.nats.service.name | Name of the NATS service | "nats" | +| external.nats.service.port | TargetPort of the NATS service | 4222 | + +#### Kafka common parameters + +| Parameter Name | Description | Value | +|---------------------------------------------|------------------------------------------------------------------------------------------|-------------| +| external.kafka.appName | Kafka application name | "kafka" | +| external.kafka.version | Kafka version | 2.2.0 | +| external.kafka.port | Port for the Kafka service | 9092 | +| external.kafka.external.hostname | Name which will be advertised to external clients. Clients which use (default) port 9094 | "localhost" | +| external.kafka.service.name | Name of the Kafka service | "kafka" | +| external.kafka.service.port | TargetPort of the Kafka service | 9092 | +| external.kafka.service.portOutside | Port for Kafka client outside of the cluster | 9094 | +| external.kafka.persistence.storageClassName | Storage class name for Kafka PVs | "hostpath" | +| external.kafka.persistence.storageSize | Size of the Kafka PV | "1Gi" | +| external.kafka.persistence.claimName | Name of the Kafka PersistentVolumeClaim | "kafka-pvc" | +| external.kafka.persistence.pvName | Name of the Kafka PersistentVolume | "kafka-pv" | | #### Zookeeper common parameters