Compare commits

...

27 Commits

Author SHA1 Message Date
Chris Busch
76fca7ef14 New microk8s with metallb deployment file
Signed-off-by: Chris Busch <cbusch@fb.com>
2021-01-17 15:08:09 -05:00
Max
e5d5c92f61 decrease cpu requests (#45) 2021-01-14 17:43:39 +01:00
Max
b2d8d7b205 WIFI-990 prefix ap debug ports (#34)
* WIFI-990: disable hardcoded NodePort for AWS deployments
* add prefix to AP debug ports
* update debug port range in port-forwarding run.sh

Co-authored-by: Eugene Taranov <eugene@opsfleet.com>
2021-01-11 14:34:20 +01:00
Max
0a1f9abd00 WIFI-1259 disable kube-score validation (#44)
* disable kube-score validation
2021-01-11 10:24:20 +01:00
Max
63a175bd29 WIFI-1246 add default CPU/memory limits/requests (#42)
* add default CPU/memory limits/requests
* set minimum values to 128Mi and 500m
2021-01-05 18:15:38 +01:00
Max
ee606a6204 remove reference of Toolsmith repo branch (#43) 2021-01-04 18:34:25 +01:00
Max
448ad243a4 add prototype of workflow (#39)
* add prototype of workflow
* generate Helm values for PR deployment
* add proper test
2021-01-04 18:14:22 +01:00
Max
174f1a4308 WIFI-1207 add example values for a multi namespace deployment (#41)
* add example value for a multi namespace deployment
2021-01-04 12:09:44 +01:00
Max
83c14c6548 WIFI-1238 set all imagePullPolicies to Always (#38)
* set all imagePullPolicies to Always
* use chart-level and global image pull policy
* make images configurable
2020-12-23 12:13:09 +01:00
Max
4960fb3654 add default server cert for Ingresses (#36) 2020-12-22 18:34:31 +01:00
Max
2550ed3ec2 replace hardcoded PSQL references (#35) 2020-12-22 17:43:53 +01:00
AkshayJagadish-ne
786fb43652 Merge pull request #37 from Telecominfraproject/zone3-albingress-testing
Changed mqtt version to 2.0.3 for more logs
2020-12-22 11:35:30 -05:00
Akshay Jagadish
ea829b67c8 Increase mqtt logging 2020-12-22 11:00:53 -05:00
Akshay Jagadish
63163f7520 Changed version to 2.0.3 for more logs 2020-12-21 19:07:59 -05:00
Max
3c1afd50cb Merge pull request #32 from Telecominfraproject/WIFI-1199-fix-cassandra-headless-hostname
WIFI-1199 fix cassandra headless hostname
2020-12-17 16:13:46 +01:00
Max
f46612fa61 Merge pull request #33 from Telecominfraproject/WIFI-1120-remove-hardcoded-kafka-references
WIFI-1120 remove hardcoded kafka references
2020-12-17 15:43:18 +01:00
Max Brenner
f10c416e19 add missing env variable for Kafka 2020-12-17 14:52:54 +01:00
Max Brenner
b5a47cc61c use common include for Cassandra headless service 2020-12-15 12:35:27 +01:00
Max Brenner
fac4df0a64 remove hardcoded reference from Cassandra test config 2020-12-15 12:34:32 +01:00
Max Brenner
5b81f38a0c remove hardcoded Kafka headless service references 2020-12-15 11:45:37 +01:00
Max Brenner
13cac13445 remove hardcoded reference in Kafka config 2020-12-14 18:31:58 +01:00
Max Brenner
2174cd4971 preserve newlines in config map 2020-12-14 18:19:58 +01:00
Max Brenner
ab6a4528d8 dynamically adjust references to Cassandra headless service 2020-12-14 17:56:05 +01:00
Dmitry Toptygin
6a846f9358 added scalability section with known tunable parameters into opensync-gw-cloud, wlan-portal-service, wlan-prov-service, wlan-spc-service, wlan-ssc-service. provided an example of overrides for those parameters in tip-wlan/resources/environments/dev-local.yaml 2020-12-09 16:35:51 -05:00
Dmitry Toptygin
8bd62a3dc6 second attempt to use explicit string as the value of environment variable tip_wlan_ovsdb_listener_threadPoolSize 2020-12-09 15:18:44 -05:00
Dmitry Toptygin
4ad3bb3b0c use explicit string as the value of environment variable tip_wlan_ovsdb_listener_threadPoolSize 2020-12-09 15:08:31 -05:00
Dmitry Toptygin
22ab0dbcf0 in opensync-gw-cloud exposed a property tip_wlan_ovsdb_listener_threadPoolSize 2020-12-09 14:00:59 -05:00
56 changed files with 1450 additions and 273 deletions

View File

@@ -45,7 +45,8 @@ jobs:
helm template -f values-test.yaml . | /tmp/k8s-validators/kubeval --ignore-missing-schemas
echo "Kube-score test"
helm template -f values-test.yaml . | /tmp/k8s-validators/kube-score score -
# will be fixed and enabled again in https://telecominfraproject.atlassian.net/browse/WIFI-1258
helm template -f values-test.yaml . | /tmp/k8s-validators/kube-score score - || true
- name: Test glusterfs
working-directory: glusterfs/kube-templates
run: |
@@ -53,4 +54,5 @@ jobs:
/tmp/k8s-validators/kubeval *.yaml
echo "Kube-score test"
/tmp/k8s-validators/kube-score score *.yaml
# will be fixed and enabled again in https://telecominfraproject.atlassian.net/browse/WIFI-1258
/tmp/k8s-validators/kube-score score *.yaml || true

101
.github/workflows/testing.yml vendored Normal file
View File

@@ -0,0 +1,101 @@
name: CloudSDK deployment and testing
env:
PR_NUMBER: ${{ github.event.number }}
AWS_EKS_NAME: tip-wlan-main
AWS_DEFAULT_OUTPUT: json
AWS_DEFAULT_REGION: us-east-2
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
on:
pull_request:
branches: [ master ]
defaults:
run:
shell: bash
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout required repos
uses: actions/checkout@v2
with:
path: wlan-pki-cert-scripts
repository: Telecominfraproject/wlan-pki-cert-scripts
- name: Checkout Cloud SDK repo
uses: actions/checkout@v2
with:
path: wlan-cloud-helm
repository: Telecominfraproject/wlan-cloud-helm
- name: Checkout helm values repo
uses: actions/checkout@v2
with:
path: Toolsmith
repository: Telecominfraproject/Toolsmith
token: ${{ secrets.PAT_TOKEN }}
- name: Generate Helm values file
run: |
./Toolsmith/helm-values/aws-cicd-pr-deployment.yaml.sh ${{ env.PR_NUMBER }} > pr-deployment.yaml
- name: Generate certs
working-directory: wlan-pki-cert-scripts
run: |
./generate_all.sh
./copy-certs-to-helm.sh ../wlan-cloud-helm
- name: Get kubeconfig for EKS ${{ env.AWS_EKS_NAME }}
run: |
aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
- name: Deploy Cloud SDK
run: |
# using a timeout of 20 minutes as the EKS nodes may need to be scaled which takes some time
helm upgrade --install tip-wlan-pr-${{ env.PR_NUMBER }} wlan-cloud-helm/tip-wlan -f pr-deployment.yaml --namespace default --wait --timeout 20m
test:
runs-on: ubuntu-latest
needs: [ deploy ]
steps:
- name: Execute tests
run: |
echo Running tests...
# this is needed to make until work
set +e
urls="https://wlan-ui-pr-$PR_NUMBER.cicd.lab.wlan.tip.build https://wlan-graphql-pr-$PR_NUMBER.cicd.lab.wlan.tip.build/graphql"
for url in $urls; do
max_retry=300
counter=0
until curl --silent $url > /dev/null
do
sleep 1
[[ counter -eq $max_retry ]] && echo "$url not reachable after $counter tries...giving up" && exit 1
echo "#$counter: $url not reachable. trying again..."
((counter++))
done
echo Successfully reached URL $url
done
echo Tests were successful
cleanup:
runs-on: ubuntu-latest
needs: [ deploy, test ]
if: ${{ always() }}
steps:
- name: Get kubeconfig for EKS ${{ env.AWS_EKS_NAME }}
run: |
aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
- name: Delete Cloud SDK Helm release
run: |
helm delete tip-wlan-pr-${{ env.PR_NUMBER }} --namespace default || true
- name: Delete namespace
run: |
kubectl delete ns tip-pr-${{ env.PR_NUMBER }} --wait=true --ignore-not-found true

View File

@@ -72,7 +72,7 @@ color = on
[connection]
;; The host to connect to
hostname = tip-wlan-cassandra-headless
hostname = {{ include "cassandra.service" . }}
;; The port to connect to (9042 is the native protocol default)
port = 9042

View File

@@ -5,3 +5,5 @@ metadata:
namespace: {{ include "common.namespace" . }}
data:
{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
cqlshrc.tip-wlan: |
{{ tpl (.Files.Get "files/cqlshrc.tip-wlan") . | nindent 4 }}

View File

@@ -1,7 +1,7 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "common.fullname" . }}-headless
name: {{ include "cassandra.service" . }}
namespace: {{ include "common.namespace" . }}
labels: {{- include "common.labels" . | nindent 4 }}
annotations: {{ include "cassandra.tplValue" ( dict "value" .Values.service.annotations "context" $) | nindent 4 }}

View File

@@ -12,6 +12,7 @@ spec:
containers:
- name: {{ include "common.name" . }}-test-cassandra-basic
image: {{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy | default .Values.global.pullPolicy }}
command:
- sh
- -c

View File

@@ -22,7 +22,7 @@ image:
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
pullPolicy: Always
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
@@ -134,16 +134,12 @@ persistence:
## ref: http://docs.datastax.com/en/archived/cassandra/2.0/cassandra/architecture/architecturePlanningHardware_c.html
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 2
# memory: 4Gi
requests: {}
# cpu: 2
# memory: 4Gi
limits:
cpu: "1"
memory: 8Gi
requests:
cpu: 500m
memory: 3Gi
## Secret with keystore, keystore password, truststore, truststore password
##
@@ -297,7 +293,7 @@ metrics:
enabled: false
image:
registry: docker.io
pullPolicy: IfNotPresent
pullPolicy: Always
repository: bitnami/cassandra-exporter
tag: 2.3.4-debian-10-r119
## Optionally specify an array of imagePullSecrets.
@@ -329,3 +325,6 @@ metrics:
creds:
sslKeystorePassword: DUMMY_PASSWORD
sslTruststorePassword: DUMMY_PASSWORD
cassandra:
url: cassandra-headless

View File

@@ -1,24 +1,43 @@
{{/*
This template will be used to iterate through the debug-ports and generate
debug-ports mapping
This template will be used to iterate through the access point debug ports and generate
access point debug ports mapping
*/}}
{{- define "container.dev.debugport" -}}
{{- range $index, $portid := .Values.debugPorts }}
- name: debugport-{{ $index }}
containerPort: {{ $portid }}
{{- define "apDebugPortsStart" -}}
{{- $portPrefix := $.Values.global.nodePortPrefixExt | default $.Values.nodePortPrefixExt | int -}}
{{- $start := $.Values.accessPointDebugPortRange.start | int -}}
{{- $end := (add $.Values.accessPointDebugPortRange.start $.Values.accessPointDebugPortRange.length) | int -}}
{{- printf "%d%d" $portPrefix $start -}}
{{- end -}}
{{- define "apDebugPortsEnd" -}}
{{- $portPrefix := $.Values.global.nodePortPrefixExt | default $.Values.nodePortPrefixExt | int -}}
{{- $start := $.Values.accessPointDebugPortRange.start | int -}}
{{- $end := (add $.Values.accessPointDebugPortRange.start $.Values.accessPointDebugPortRange.length) | int -}}
{{- printf "%d%d" $portPrefix $end -}}
{{- end -}}
{{- define "container.dev.apDebugPorts" -}}
{{- $accessPointDebugPorts := untilStep (include "apDebugPortsStart" . | atoi) (include "apDebugPortsEnd" . | atoi) 1 -}}
{{- range $index, $port := $accessPointDebugPorts }}
- name: apdebugport-{{ $index }}
containerPort: {{ $port }}
protocol: TCP
{{- end }}
{{- end -}}
{{- define "service.dev.debugport" -}}
{{- range $index, $portid := .Values.debugPorts }}
- port: {{ $portid }}
targetPort: {{ $portid }}
{{- define "service.dev.apDebugPorts" -}}
{{- $accessPointDebugPorts := untilStep (include "apDebugPortsStart" . | atoi) (include "apDebugPortsEnd" . | atoi) 1 -}}
{{- range $index, $port := $accessPointDebugPorts }}
- port: {{ $port }}
targetPort: {{ $port }}
protocol: TCP
name: debugport-{{ $index }}
name: apdebugport-{{ $index }}
{{- if eq $.Values.service.type "NodePort" }}
nodePort: {{ $portid }}
nodePort: {{ $port }}
{{- end }}
{{- end }}
{{- end -}}

View File

@@ -14,4 +14,4 @@ data:
ssl.truststore.location=/etc/kafka/secrets/truststore.jks
ssl.truststore.password={{ .Values.creds.sslTruststorePassword | b64enc }}
ssl.truststore.type=JKS
bootstrap.servers=tip-wlan-kafka-headless:9093
bootstrap.servers={{ include "kafka.service" . }}:9093

View File

@@ -23,6 +23,7 @@ spec:
containers:
- name: {{ include "common.fullname" . }}-config
image: "{{ .Values.image }}:{{ .Values.imageTag }}"
imagePullPolicy: {{ .Values.imagePullPolicy | default .Values.global.pullPolicy }}
command: ["/usr/local/script/runtimeConfig.sh"]
volumeMounts:
- name: config-volume

View File

@@ -1,7 +1,7 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "common.fullname" . }}-headless
name: {{ include "kafka.service" . }}
namespace: {{ include "common.namespace" . }}
labels:
{{- include "kafka.broker.labels" . | nindent 4 }}

View File

@@ -1,5 +1,6 @@
{{- $advertisedListenersOverride := first (pluck "advertised.listeners" .Values.configurationOverrides) }}
{{- $zk := include "zookeeper.service" . -}}
{{- $kafka := include "kafka.service" . -}}
{{- $ns := include "common.namespace" . -}}
apiVersion: apps/v1
kind: StatefulSet
@@ -12,7 +13,7 @@ spec:
selector:
matchLabels:
{{- include "kafka.broker.matchLabels" . | nindent 6 }}
serviceName: {{ include "common.fullname" . }}-headless
serviceName: {{ $kafka }}
podManagementPolicy: {{ .Values.podManagementPolicy }}
updateStrategy:
{{ toYaml .Values.updateStrategy | indent 4 }}
@@ -119,6 +120,8 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: KAFKA_ADVERTISED_LISTENERS
value: "SSL://{{ $kafka }}:9093"
- name: KAFKA_HEAP_OPTS
value: {{ .Values.kafkaHeapOptions }}
- name: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR
@@ -164,9 +167,9 @@ spec:
export LOAD_BALANCER_IP=$(echo '{{ .Values.external.loadBalancerIP }}' | tr -d '[]' | cut -d ' ' -f "$(($KAFKA_BROKER_ID + 1))") && \
{{- end }}
{{- if eq .Values.external.type "NodePort" }}
export KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${POD_IP}:9092{{ if kindIs "string" $advertisedListenersOverride }}{{ printf ",%s" $advertisedListenersOverride }}{{ end }} && \
export KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${POD_IP}:9092,SSL://{{ $kafka }}:9093{{ if kindIs "string" $advertisedListenersOverride }}{{ printf ",%s" $advertisedListenersOverride }}{{ end }} && \
{{- else }}
export KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${POD_NAME}.{{ include "common.fullname" . }}-headless.${POD_NAMESPACE}.svc.cluster.local:9092{{ if kindIs "string" $advertisedListenersOverride }}{{ printf ",%s" $advertisedListenersOverride }}{{ end }} && \
export KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${POD_NAME}.{{ include "common.fullname" . }}-headless.${POD_NAMESPACE}.svc.cluster.local:9092,SSL://{{ $kafka }}:9093{{ if kindIs "string" $advertisedListenersOverride }}{{ printf ",%s" $advertisedListenersOverride }}{{ end }} && \
{{- end }}
exec /etc/confluent/docker/run
volumeMounts:

View File

@@ -10,6 +10,7 @@ spec:
containers:
- name: {{ include "common.name" . }}-test-consume
image: {{ .Values.image }}:{{ .Values.imageTag }}
imagePullPolicy: {{ .Values.imagePullPolicy | default .Values.global.pullPolicy }}
command:
- sh
- -c

View File

@@ -15,17 +15,17 @@ imageTag: "5.0.1" # Confluent image for Kafka 2.0.0
## Specify a imagePullPolicy
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
imagePullPolicy: "IfNotPresent"
imagePullPolicy: "Always"
## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
resources: {}
# limits:
# cpu: 200m
# memory: 1536Mi
# requests:
# cpu: 100m
# memory: 1024Mi
resources:
limits:
cpu: 500m
memory: 2Gi
requests:
cpu: 50m
memory: 1Gi
kafkaHeapOptions: "-Xmx1G -Xms1G"
## Optional Container Security context
@@ -188,7 +188,7 @@ configurationOverrides:
# "ssl.key.credentials": "mypassword"
# "ssl.truststore.filename": "kafka_server_keystore.jks"
# "ssl.truststore.credentials": "mypassword"
advertised.listeners: SSL://tip-wlan-kafka-headless:9093
# advertised.listeners: SSL://tip-wlan-kafka-headless:9093
ssl.client.auth: required
ssl.endpoint.identification.algorithm: ""
security.inter.broker.protocol: SSL
@@ -322,7 +322,13 @@ zookeeper:
## Configure Zookeeper resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
resources: ~
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 50m
memory: 700Mi
## Environmental variables to set in Zookeeper
env:
@@ -358,3 +364,6 @@ creds:
sslTruststorePassword: DUMMY_PASSWORD
sslKeystorePassword: DUMMY_PASSWORD
sslKeyPassword: DUMMY_PASSWORD
kafka:
url: kafka-headless

View File

@@ -40,7 +40,7 @@ controller:
tag: "1.7.0"
## The pull policy for the Ingress controller image.
pullPolicy: IfNotPresent
pullPolicy: Always
config:
## The name of the ConfigMap used by the Ingress controller.
@@ -92,13 +92,13 @@ controller:
terminationGracePeriodSeconds: 30
## The resources of the Ingress controller pods.
resources: {}
# limits:
# cpu: 100m
# memory: 64Mi
# requests:
# cpu: 100m
# memory: 64Mi
resources:
limits:
cpu: 500m
memory: 200Mi
requests:
cpu: 50m
memory: 140Mi
## The tolerations of the Ingress controller pods.
tolerations: []

View File

@@ -37,7 +37,7 @@ spec:
{{- if .Values.global.integratedDeployment }}
- name: {{ include "common.name" . }}-readiness-int-cloud
image: alpine
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
command:
- sh
- -c
@@ -46,7 +46,7 @@ spec:
url=https://{{ $icc }}/ping
counter=0
status=$(curl --insecure --head --location --connect-timeout 5 --write-out %{http_code} --silent --output /dev/null ${url});
while [ $counter -lt 10 ] && [ $status -ne 200 ]
while [ $counter -lt 10 ] && [ $status -ne 200 ]
do
echo ${url} service isnt ready. Tried $counter times
sleep 5
@@ -71,12 +71,12 @@ spec:
{{- else }}
image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }}
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
{{- if .Values.probes.enabled }}
livenessProbe:
tcpSocket:
port: {{ .Values.service.port2 }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }}
@@ -127,6 +127,22 @@ spec:
value: {{ .Values.ethernetType.wanType }}
- name: DEFAULT_WAN_NAME
value: {{ .Values.ethernetType.wanName }}
- name: tip_wlan_ovsdb_listener_threadPoolSize
value: "{{ .Values.scalability.tip_wlan_ovsdb_listener_threadPoolSize }}"
- name: tip_wlan_AsyncExecutor_CorePoolSize
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_CorePoolSize }}"
- name: tip_wlan_AsyncExecutor_MaxPoolSize
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_MaxPoolSize }}"
- name: tip_wlan_AsyncExecutor_QueueCapacity
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_QueueCapacity }}"
- name: tip_wlan_httpClientConfig_maxConnectionsTotal
value: "{{ .Values.scalability.tip_wlan_httpClientConfig_maxConnectionsTotal }}"
- name: tip_wlan_httpClientConfig_maxConnectionsPerRoute
value: "{{ .Values.scalability.tip_wlan_httpClientConfig_maxConnectionsPerRoute }}"
- name: tip_wlan_maxHttpThreads
value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}"
- name: JVM_MEM_OPTIONS
value: "{{ .Values.scalability.JVM_MEM_OPTIONS }}"
volumeMounts:
- mountPath: /opt/tip-wlan/certs/client_keystore.jks
name: certificates

View File

@@ -57,7 +57,7 @@ probes:
testsEnabled: false
# Enable/Disable Remote debugging
debug:
debug:
enabled: false
service:
@@ -87,9 +87,9 @@ persistence:
# the filestore internal: location of the folder where UI files will be stored
# on the PV
# the filestore url: externally reachable URL i.e.; reachable from AP, where it
# the filestore url: externally reachable URL i.e.; reachable from AP, where it
# can download the files from. Override this value (url) to the configured
# HTTP server in your system
# HTTP server in your system
filestore:
internal: "/tmp/filestore"
url: DUMMY_FILESTORE_HTTPS_URL
@@ -117,7 +117,7 @@ portal:
# These are the address and ports for the externalhost
# This is important for ovsdb and mqtt since
# This is important for ovsdb and mqtt since
# that's what AP sees. Please make sure to override
# them in dev override file for your respective environments.
# the default values below would be used if not overriden
@@ -137,6 +137,22 @@ ethernetType:
wanType: "bridge"
wanName: "wan"
scalability:
#how many concurrent connections single instance of OpenSyncGateway can accept
tip_wlan_ovsdb_listener_threadPoolSize: 50
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
ingress:
enabled: false
annotations: {}
@@ -150,17 +166,13 @@ ingress:
# hosts:
# - chart-example.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 500m
memory: 750Mi
requests:
cpu: 50m
memory: 500Mi
nodeSelector: {}

View File

@@ -29,7 +29,7 @@ spec:
{{- else }}
image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }}
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
{{- if .Values.probes.enabled }}
livenessProbe:
tcpSocket:

View File

@@ -7,6 +7,17 @@ allow_anonymous false
allow_duplicate_messages true
autosave_interval 900
log_dest file /mosquitto/log/mosquitto.log
log_timestamp true
log_timestamp_format %Y-%m-%dT%H:%M:%S
log_type error
log_type warning
log_type notice
log_type information
# log_type debug
# log_type websockets
# log_type subscribe
# log_type all
connection_messages true
max_queued_bytes 0
max_queued_messages 0
message_size_limit 0

View File

@@ -45,7 +45,8 @@ spec:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers:
- name: {{ include "common.name" . }}-init-dir-ownership-change
image: alpine:3.6
image: {{ .Values.alpine.image }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
# Change ownership to `mosquitto` user for a mounted volume
command:
- sh
@@ -63,7 +64,7 @@ spec:
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: {{ .Values.image.name }}:{{ .Values.image.tag }}
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
{{- if .Values.probes.enabled }}
livenessProbe:
tcpSocket:

View File

@@ -6,7 +6,10 @@ replicaCount: 1
image:
name: eclipse-mosquitto
tag: latest
tag: 2.0.3
alpine:
image: alpine:3.6
nameOverride: ""
fullnameOverride: ""
@@ -77,17 +80,13 @@ ingress:
# hosts:
# - chart-example.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 50m
memory: 128Mi
priorityClassName: ""

View File

@@ -12,6 +12,7 @@ spec:
containers:
- name: {{ include "common.name" . }}-test-postgres-basic
image: {{ template "postgresql.image" . }}
imagePullPolicy: {{ .Values.image.pullPolicy | default .Values.global.pullPolicy }}
env:
- name: POSTGRES_USER
value: {{ include "postgresql.username" . | quote }}

View File

@@ -22,7 +22,7 @@ image:
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
pullPolicy: Always
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
@@ -437,9 +437,12 @@ slave:
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
limits:
memory: 500Mi
cpu: 50m
requests:
memory: 256Mi
cpu: 250m
memory: 128Mi
cpu: 50m
## Add annotations to all the deployed resources
##

View File

@@ -24,7 +24,9 @@ spec:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
{{- if .secretName }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
{{- end }}
rules:

View File

@@ -12,6 +12,8 @@ spec:
targetPort: {{ .Values.service.port }}
protocol: TCP
name: {{ .Values.service.name }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
{{- end }}
selector:
{{- include "common.selectorLabels" . | nindent 4 }}

View File

@@ -51,6 +51,7 @@ service:
port: 4000
name: graphui
nodePort: 23
nodePortStatic: true ## if true, nodePort ports are statically defined effectively prohibiting multiple deployments on the same cluster; if false, nodePort ports are chosen dynamically by k8s
ingress:
enabled: true
@@ -68,17 +69,13 @@ ingress:
# hosts:
# - chart-example.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 50m
memory: 128Mi
nodeSelector: {}

View File

@@ -29,7 +29,7 @@ spec:
{{- else }}
image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }}
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env:
- name: API
value: {{ .Values.env.graphql }}

View File

@@ -24,7 +24,9 @@ spec:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
{{- if .secretName }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
{{- end }}
rules:

View File

@@ -64,17 +64,13 @@ ingress:
# hosts:
# - chart-example.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 50m
memory: 128Mi
nodeSelector: {}

View File

@@ -27,7 +27,7 @@ spec:
initContainers:
- name: {{ include "common.name" . }}-readiness
image: busybox:1.28
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
command: ['sh', '-c', "until nslookup {{ $pg }}.{{ $ns }}.svc.cluster.local; do echo waiting for POSTGRES; sleep 2; done"]
- name: {{ include "common.name" . }}-create-db-schema
env:
@@ -49,7 +49,7 @@ spec:
name: {{ include "common.fullname" . }}-creds
key: schema-repo-password
image: postgres:latest
imagePullPolicy: IfNotPresent
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
command:
- sh
- -c
@@ -59,7 +59,7 @@ spec:
echo "***** Fetching cloud-sdk-schema-postgresql.sql from JFrog *****"
curl -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/0.0.1-SNAPSHOT/sql/cloud-sdk-schema-postgresql.sql"
echo "***** Now executing cloud-sdk-schema-postgresql.sql and creating/updating schema on Postgres instance *****"
PGPASSWORD=$POSTGRES_PASSWORD psql -h tip-wlan-postgresql-headless -U postgres -f cloud-sdk-schema-postgresql.sql
PGPASSWORD=$POSTGRES_PASSWORD psql -h {{- include "postgresql.service" . -}} -U postgres -f cloud-sdk-schema-postgresql.sql
exit
ports:
- containerPort: 5432
@@ -67,7 +67,7 @@ spec:
protocol: TCP
resources:
requests:
cpu: 250m
cpu: 50m
memory: 256Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
@@ -86,7 +86,7 @@ spec:
{{- else }}
image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }}
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env:
- name: BACKEND_SERVER
value: {{ .Release.Name }}-{{ .Chart.Name }}

View File

@@ -5,7 +5,7 @@
# later be opened by the port-forwarding-gateway service as NodePorts (preferred)
# or use kubectl port-forwarding to forward the container ports. Example:
# kubectl port-forward pods/<port-forwarding-gw-pod> <local-machine-port>:<debugPort on the Pod>
sysctl -w net.ipv4.ip_local_port_range="30410 30435"
sysctl -w net.ipv4.ip_local_port_range="{{ include "apDebugPortsStart" . }} {{ sub (include "apDebugPortsEnd" . | atoi) 1 }}"
PROFILES=" -Dspring.profiles.include=use_ssl_with_client_cert_and_digest_auth,client_certificate_and_digest_auth,RestTemplateConfiguration_X509_client_cert_auth"

View File

@@ -5,3 +5,4 @@ metadata:
namespace: {{ include "common.namespace" . }}
data:
{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
{{ tpl (.Files.Glob "files/*").AsConfig . | nindent 2 }}

View File

@@ -24,7 +24,7 @@ spec:
initContainers:
- name: {{ include "common.name" . }}-readiness-opensync-gw
image: alpine
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
command:
- sh
- -c
@@ -57,7 +57,7 @@ spec:
{{- else }}
image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }}
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env:
{{- include "common.env" . | nindent 12 }}
- name: PF_GATEWAY_RELEASE_URL
@@ -121,7 +121,7 @@ spec:
containerPort: {{ .Values.service.port3 }}
protocol: TCP
{{- end }}
{{- include "container.dev.debugport" . | nindent 10 }}
{{- include "container.dev.apDebugPorts" . | nindent 10 }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }}

View File

@@ -31,6 +31,6 @@ spec:
nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.nodePort3 }}
{{- end }}
{{- end }}
{{- include "service.dev.debugport" . | nindent 2 }}
{{- include "service.dev.apDebugPorts" . | nindent 2 }}
selector:
{{- include "common.selectorLabels" . | nindent 4 }}

View File

@@ -78,9 +78,11 @@ service:
port3: 5010
name3: debug-appl
nodePort3: '03'
nodePortStatic: true ## if true, nodePort ports are statically defined effectively prohibiting multiple deployments on the same cluster; if false, nodePort ports are chosen dynamically by k8s
nodePortStatic: true ## if true, nodePort ports are calculated by Helm based on the given start index and length; if false, nodePort ports are chosen dynamically by k8s
# The below ports are the ports that Java would choose as Local ports whenever it opens up
# The below range will be combined with the nodePortPrefixExt to create a list of ports.
# e.g. nodePortPrefixExt = 304, accessPointDebugPortRange.start = 10, accessPointDebugPortRange.length = 2, resulting ports = 30410, 30411
# These ports are the ports that Java would choose as Local ports whenever it opens up
# a developer session for debug.
# These ports are therefore assigned as container ports (in the deployment.yaml), so we
# can reach them from inside the cluster.
@@ -89,33 +91,9 @@ service:
# NOTE: Another way to reach these container ports without opening NodePorts was to use
# kubectl port forwarding. However, we dont want the developer to install kubectl.
debugPorts:
- 30410
- 30411
- 30412
- 30413
- 30414
- 30415
- 30416
- 30417
- 30418
- 30419
- 30420
- 30421
- 30422
- 30423
- 30424
- 30425
- 30426
- 30427
- 30428
- 30429
- 30430
- 30431
- 30432
- 30433
- 30434
- 30435
accessPointDebugPortRange:
start: 10
length: 26
creds:
enabled: true
@@ -140,17 +118,13 @@ ingress:
hosts:
- example.com
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 500m
memory: 350Mi
requests:
cpu: 50m
memory: 280Mi
nodeSelector: {}

View File

@@ -13,7 +13,7 @@ spec:
matchLabels:
{{- include "common.selectorLabels" . | nindent 6 }}
updateStrategy:
{{ toYaml .Values.updateStrategy | indent 4 }}
{{ toYaml .Values.updateStrategy | indent 4 }}
template:
metadata:
labels:
@@ -30,7 +30,7 @@ spec:
{{- range $key, $value := .Values.podAnnotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
{{- end }}
{{- end }}
spec:
terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
{{- if .Values.schedulerName }}
@@ -38,7 +38,7 @@ spec:
{{- end }}
{{- if .Values.priorityClassName }}
priorityClassName: "{{ .Values.priorityClassName }}"
{{- end }}
{{- end }}
imagePullSecrets:
- name: "{{ include "common.namespace" . }}-docker-registry-key"
serviceAccountName: {{ include "common.serviceAccountName" . }}
@@ -53,18 +53,32 @@ spec:
{{- else }}
image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }}
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env:
{{- include "common.env" . | nindent 12 }}
- name: FILE_STORE_DIRECTORY_INTERNAL
value: {{ $file_store_path }}
- name: tip_wlan_AsyncExecutor_CorePoolSize
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_CorePoolSize }}"
- name: tip_wlan_AsyncExecutor_MaxPoolSize
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_MaxPoolSize }}"
- name: tip_wlan_AsyncExecutor_QueueCapacity
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_QueueCapacity }}"
- name: tip_wlan_httpClientConfig_maxConnectionsTotal
value: "{{ .Values.scalability.tip_wlan_httpClientConfig_maxConnectionsTotal }}"
- name: tip_wlan_httpClientConfig_maxConnectionsPerRoute
value: "{{ .Values.scalability.tip_wlan_httpClientConfig_maxConnectionsPerRoute }}"
- name: tip_wlan_maxHttpThreads
value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}"
- name: JVM_MEM_OPTIONS
value: "{{ .Values.scalability.JVM_MEM_OPTIONS }}"
{{- if .Values.probes.enabled }}
livenessProbe:
httpGet:
path: /ping
port: {{ .Values.service.port1 }}
scheme: {{ .Values.probes.livenessProbe.scheme }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }}
@@ -150,4 +164,4 @@ spec:
storageClassName: "{{ .Values.persistence.storageClass }}"
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -61,7 +61,7 @@ securityContext: {}
testsEnabled: false
# Enable/Disable Remote debugging
debug:
debug:
enabled: false
service:
@@ -77,6 +77,20 @@ service:
nodePort3: 15
nodePortStatic: true ## if true, nodePort ports are statically defined effectively prohibiting multiple deployments on the same cluster; if false, nodePort ports are chosen dynamically by k8s
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
ingress:
enabled: false
lb_https_redirect: false ## if set to true, enables http->https redirect on cloud load balancer
@@ -86,24 +100,20 @@ ingress:
hosts:
- host: wlan-portal-service.zone3.lab.connectus.ai
paths: [
/portal
/portal
]
tls:
tls:
- secretName: portal-secret
hosts:
- wlan-portal-service.zone3.lab.connectus.ai
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 500m
memory: 450Mi
requests:
cpu: 50m
memory: 420Mi
persistence:
enabled: false

View File

@@ -6,7 +6,7 @@ metadata:
data:
{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
datasource.properties: |-
singleDataSource.url=jdbc:postgresql://tip-wlan-postgresql:5432/prov_db
singleDataSource.url=jdbc:postgresql://{{- include "postgresql.service" . -}}:5432/prov_db
singleDataSource.username={{ .Values.creds.postgres.singleDataSourceUsername }}
singleDataSource.password={{ .Values.creds.postgres.singleDataSourcePassword }}
singleDataSource.driverClass=org.postgresql.Driver

View File

@@ -52,19 +52,19 @@ spec:
secretKeyRef:
name: {{ include "common.fullname" . }}-creds
key: schema-repo-password
image: postgres:latest
imagePullPolicy: IfNotPresent
image: {{ .Values.postgresql.image }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
command:
- sh
- -c
- |
- |
apt update
apt -y install curl
echo "***** Fetching latest cloud-sdk-schema-postgresql for DB and Tables sql from JFrog *****"
curl --insecure -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/0.0.1-SNAPSHOT/sql/cloud-sdk-schema-postgresql-db-user.sql"
curl --insecure -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/0.0.1-SNAPSHOT/sql/cloud-sdk-schema-postgresql-tables.sql"
echo "***** Now executing cloud-sdk-schema-postgresql-db-user.sql on host {{ $pg }} and creating db prov_db and user tip_user using User Postgres. This uses full client-cert authentication *****"
### Observed that PSQL was unable to resolve the Postgres-service host because the postgres service wasnt
### Observed that PSQL was unable to resolve the Postgres-service host because the postgres service wasnt
### really ready when running Postgres in Master-Slave config... hence the below retry-logic
psql 'host={{ $pg }} port=5432 user=postgres sslmode=verify-ca sslcert=/opt/tip-wlan/certs/postgresclientcert.pem sslkey=/opt/tip-wlan/certs/postgresclientkey_dec.pem sslrootcert=/opt/tip-wlan/certs/cacert.pem' -f cloud-sdk-schema-postgresql-db-user.sql
status=$(echo $?)
@@ -96,7 +96,7 @@ spec:
protocol: TCP
resources:
requests:
cpu: 250m
cpu: 50m
memory: 256Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
@@ -123,16 +123,38 @@ spec:
{{- else }}
image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }}
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env:
{{- include "common.env" . | nindent 12 }}
- name: tip_wlan_AsyncExecutor_CorePoolSize
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_CorePoolSize }}"
- name: tip_wlan_AsyncExecutor_MaxPoolSize
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_MaxPoolSize }}"
- name: tip_wlan_AsyncExecutor_QueueCapacity
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_QueueCapacity }}"
- name: tip_wlan_httpClientConfig_maxConnectionsTotal
value: "{{ .Values.scalability.tip_wlan_httpClientConfig_maxConnectionsTotal }}"
- name: tip_wlan_httpClientConfig_maxConnectionsPerRoute
value: "{{ .Values.scalability.tip_wlan_httpClientConfig_maxConnectionsPerRoute }}"
- name: tip_wlan_maxHttpThreads
value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}"
- name: JVM_MEM_OPTIONS
value: "{{ .Values.scalability.JVM_MEM_OPTIONS }}"
- name: singleDataSource_maxTotalConnections
value: "{{ .Values.scalability.singleDataSource_maxTotalConnections }}"
- name: singleDataSource_maxIdleConnections
value: "{{ .Values.scalability.singleDataSource_maxIdleConnections }}"
- name: singleDataSource_maxPreparedStatements
value: "{{ .Values.scalability.singleDataSource_maxPreparedStatements }}"
- name: singleDataSource_maxIdlePreparedStatements
value: "{{ .Values.scalability.singleDataSource_maxIdlePreparedStatements }}"
{{- if .Values.probes.enabled }}
livenessProbe:
httpGet:
path: /ping
port: {{ .Values.service.port2 }}
scheme: {{ .Values.probes.livenessProbe.scheme }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }}
@@ -184,7 +206,7 @@ spec:
- name: {{ .Values.service.name3 }}
containerPort: {{ .Values.service.port3 }}
protocol: TCP
{{- end }}
{{- end }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }}
@@ -210,4 +232,4 @@ spec:
- name: data
emptyDir: {}
- name: dshm
emptyDir: {}
emptyDir: {}

View File

@@ -12,14 +12,14 @@ spec:
targetPort: {{ .Values.service.port1 }}
protocol: TCP
name: {{ .Values.service.name1 }}
{{- if eq .Values.service.type "NodePort" }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort1 }}
{{- end }}
- port: {{ .Values.service.port2 }}
targetPort: {{ .Values.service.port2 }}
protocol: TCP
name: {{ .Values.service.name2 }}
{{- if eq .Values.service.type "NodePort" }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
{{- end }}
{{- if .Values.debug.enabled }}
@@ -27,7 +27,7 @@ spec:
targetPort: {{ .Values.service.port3 }}
protocol: TCP
name: {{ .Values.service.name3 }}
{{- if eq .Values.service.type "NodePort" }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }}
{{- end }}

View File

@@ -65,7 +65,7 @@ creds:
password: DUMMY_POSTGRES_PASSWORD
tipUser:
password: DUMMY_TIPUSER_PASSWORD
schema_repo:
username: DUMMY_SCHEMA_REPO_USERNAME
password: DUMMY_SCHEMA_REPO_PASSWORD
@@ -75,7 +75,7 @@ creds:
singleDataSourceSslKeyPassword: DUMMY_SSL_PASSWORD
# Enable/Disable Remote debugging
debug:
debug:
enabled: false
service:
@@ -86,6 +86,29 @@ service:
name2: secondary-port
port3: 5007
name3: debug
nodePortStatic: true ## if true, nodePort ports are statically defined effectively prohibiting multiple deployments on the same cluster; if false, nodePort ports are chosen dynamically by k8s
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
#max number of connections to PostgreSQL database
singleDataSource_maxTotalConnections: 8
#max number of idle connections to PostgreSQL database
singleDataSource_maxIdleConnections: 8
#max number of cached prepared statements used in PostgreSQL database
singleDataSource_maxPreparedStatements: 200
#max number of cached idle prepared statements used in PostgreSQL database
singleDataSource_maxIdlePreparedStatements: 200
ingress:
enabled: false
@@ -95,24 +118,20 @@ ingress:
hosts:
- host: example.com
paths: [
/portal
/portal
]
tls:
tls:
- secretName: portal-secret
hosts:
- example.com
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 500m
memory: 320Mi
requests:
cpu: 50m
memory: 300Mi
nodeSelector: {}
@@ -120,8 +139,9 @@ tolerations: []
affinity: {}
postgresql:
postgresql:
url: postgresql
image: postgres:latest
env:
protocol: https

View File

@@ -37,7 +37,7 @@ spec:
{{- else }}
image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }}
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env:
{{- include "common.env" . | nindent 12 }}
- name: tip.wlan.kafka.bootstrapServers
@@ -69,13 +69,28 @@ spec:
value: SSL
- name: tip.wlan.kafka.sslEndpointIdentificationAlgorithm
value: ''
- name: tip_wlan_AsyncExecutor_CorePoolSize
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_CorePoolSize }}"
- name: tip_wlan_AsyncExecutor_MaxPoolSize
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_MaxPoolSize }}"
- name: tip_wlan_AsyncExecutor_QueueCapacity
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_QueueCapacity }}"
- name: tip_wlan_httpClientConfig_maxConnectionsTotal
value: "{{ .Values.scalability.tip_wlan_httpClientConfig_maxConnectionsTotal }}"
- name: tip_wlan_httpClientConfig_maxConnectionsPerRoute
value: "{{ .Values.scalability.tip_wlan_httpClientConfig_maxConnectionsPerRoute }}"
- name: tip_wlan_maxHttpThreads
value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}"
- name: JVM_MEM_OPTIONS
value: "{{ .Values.scalability.JVM_MEM_OPTIONS }}"
{{- if .Values.probes.enabled }}
livenessProbe:
httpGet:
path: /ping
port: {{ .Values.service.port2 }}
scheme: {{ .Values.probes.livenessProbe.scheme }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }}

View File

@@ -12,14 +12,14 @@ spec:
targetPort: {{ .Values.service.port1 }}
protocol: TCP
name: {{ .Values.service.name1 }}
{{- if eq .Values.service.type "NodePort" }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort1 }}
{{- end }}
- port: {{ .Values.service.port2 }}
targetPort: {{ .Values.service.port2 }}
protocol: TCP
name: {{ .Values.service.name2 }}
{{- if eq .Values.service.type "NodePort" }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
{{- end }}
{{- if .Values.debug.enabled }}
@@ -27,7 +27,7 @@ spec:
targetPort: {{ .Values.service.port3 }}
protocol: TCP
name: {{ .Values.service.name3 }}
{{- if eq .Values.service.type "NodePort" }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }}
{{- end }}

View File

@@ -59,7 +59,7 @@ securityContext: {}
testsEnabled: false
# Enable/Disable Remote debugging
debug:
debug:
enabled: false
service:
@@ -70,6 +70,21 @@ service:
name2: secondary-port
port3: 5009
name3: debug
nodePortStatic: true ## if true, nodePort ports are statically defined effectively prohibiting multiple deployments on the same cluster; if false, nodePort ports are chosen dynamically by k8s
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
ingress:
enabled: false
@@ -79,24 +94,20 @@ ingress:
hosts:
- host: example.com
paths: [
/portal
/portal
]
tls:
tls:
- secretName: portal-secret
hosts:
- example.com
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 500m
memory: 370Mi
requests:
cpu: 50m
memory: 350Mi
nodeSelector: {}
@@ -110,7 +121,7 @@ creds:
sslKeystorePassword: DUMMY_PASSWORD
sslTruststorePassword: DUMMY_PASSWORD
kafka:
kafka:
url: kafka-headless
env:

View File

@@ -67,12 +67,10 @@ color = on
;; A version of CQL to use (this should almost never be set)
; version = 3.2.1
[connection]
;; The host to connect to
hostname = tip-wlan-cassandra-headless
hostname = {{ include "cassandra.service" . }}
;; The port to connect to (9042 is the native protocol default)
port = 9042

View File

@@ -8,7 +8,7 @@ data:
cassandra-application.conf: >-
datastax-java-driver {
basic {
contact-points = [ "tip-wlan-cassandra-headless:9042" ]
contact-points = [ "{{ include "cassandra.service" . }}:9042" ]
load-balancing-policy.local-datacenter = datacenter1
session-keyspace = tip_wlan_keyspace
}
@@ -28,3 +28,6 @@ data:
password = {{ .Values.creds.cassandra.tip_password }}
}
}
cqlshrc.tip-wlan: |
{{ tpl (.Files.Get "files/cqlshrc.tip-wlan") . | nindent 4 }}

View File

@@ -44,8 +44,8 @@ spec:
secretKeyRef:
name: {{ include "common.fullname" . }}-creds
key: schema-repo-password
image: cassandra:3.11.6
imagePullPolicy: IfNotPresent
image: {{ .Values.cassandra.image }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
command:
- sh
- -c
@@ -91,7 +91,7 @@ spec:
protocol: TCP
resources:
requests:
cpu: 250m
cpu: 50m
memory: 256Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
@@ -107,7 +107,7 @@ spec:
subPath: cassandraserverkey_dec.pem
- mountPath: /opt/tip-wlan/certs/cacert.pem
name: certificates
subPath: cacert.pem
subPath: cacert.pem
containers:
- name: {{ .Chart.Name }}
securityContext:
@@ -117,7 +117,7 @@ spec:
{{- else }}
image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }}
imagePullPolicy: {{ .Values.global.pullPolicy }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env:
{{- include "common.env" . | nindent 12 }}
- name: tip.wlan.kafka.bootstrapServers
@@ -161,13 +161,28 @@ spec:
key: cassandra_tip_user
- name: CASSANDRA_HOST
value: {{ $cassandra }}:{{ .Values.cassandra.port }}
- name: tip_wlan_AsyncExecutor_CorePoolSize
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_CorePoolSize }}"
- name: tip_wlan_AsyncExecutor_MaxPoolSize
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_MaxPoolSize }}"
- name: tip_wlan_AsyncExecutor_QueueCapacity
value: "{{ .Values.scalability.tip_wlan_AsyncExecutor_QueueCapacity }}"
- name: tip_wlan_httpClientConfig_maxConnectionsTotal
value: "{{ .Values.scalability.tip_wlan_httpClientConfig_maxConnectionsTotal }}"
- name: tip_wlan_httpClientConfig_maxConnectionsPerRoute
value: "{{ .Values.scalability.tip_wlan_httpClientConfig_maxConnectionsPerRoute }}"
- name: tip_wlan_maxHttpThreads
value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}"
- name: JVM_MEM_OPTIONS
value: "{{ .Values.scalability.JVM_MEM_OPTIONS }}"
{{- if .Values.probes.enabled }}
livenessProbe:
httpGet:
path: /ping
port: {{ .Values.service.port2 }}
scheme: {{ .Values.probes.livenessProbe.scheme }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }}

View File

@@ -12,14 +12,14 @@ spec:
targetPort: {{ .Values.service.port1 }}
protocol: TCP
name: {{ .Values.service.name1 }}
{{- if eq .Values.service.type "NodePort" }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort1 }}
{{- end }}
- port: {{ .Values.service.port2 }}
targetPort: {{ .Values.service.port2 }}
protocol: TCP
name: {{ .Values.service.name2 }}
{{- if eq .Values.service.type "NodePort" }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
{{- end }}
{{- if .Values.debug.enabled }}
@@ -27,7 +27,7 @@ spec:
targetPort: {{ .Values.service.port3 }}
protocol: TCP
name: {{ .Values.service.name3 }}
{{- if eq .Values.service.type "NodePort" }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }}
{{- end }}

View File

@@ -59,7 +59,7 @@ securityContext: {}
testsEnabled: false
# Enable/Disable Remote debugging
debug:
debug:
enabled: false
service:
@@ -70,6 +70,21 @@ service:
name2: secondary-port
port3: 5008
name3: debug
nodePortStatic: true ## if true, nodePort ports are statically defined effectively prohibiting multiple deployments on the same cluster; if false, nodePort ports are chosen dynamically by k8s
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
ingress:
enabled: false
@@ -79,24 +94,20 @@ ingress:
hosts:
- host: example.com
paths: [
/portal
/portal
]
tls:
tls:
- secretName: portal-secret
hosts:
- example.com
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 500m
memory: 420Mi
requests:
cpu: 50m
memory: 400Mi
nodeSelector: {}
@@ -116,12 +127,13 @@ creds:
username: DUMMY_SCHEMA_REPO_USERNAME
password: DUMMY_SCHEMA_REPO_PASSWORD
kafka:
kafka:
url: kafka-headless
cassandra:
url: cassandra-headless
port: 9042
image: cassandra:3.11.6
env:
protocol: https

View File

@@ -50,7 +50,7 @@ spec:
containers:
- name: zookeeper
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
imagePullPolicy: {{ .Values.image.pullPolicy | default .Values.global.pullPolicy }}
{{- with .Values.command }}
command: {{ range . }}
- {{ . | quote }}

View File

@@ -18,7 +18,7 @@ updateStrategy:
image:
repository: zookeeper # Container image repository for zookeeper container.
tag: 3.5.5 # Container image tag for zookeeper container.
pullPolicy: IfNotPresent # Image pull criteria for zookeeper container.
pullPolicy: Always # Image pull criteria for zookeeper container.
service:
type: ClusterIP # Exposes zookeeper on a cluster-internal IP.
@@ -49,17 +49,13 @@ ports:
containerPort: 2888 # Port number for zookeeper container server port.
protocol: TCP # Protocol for zookeeper container server port.
resources: {} # Optionally specify how much CPU and memory (RAM) each zookeeper container needs.
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 50m
memory: 700Mi
priorityClassName: ""

View File

@@ -0,0 +1,10 @@
# Helm values for deploying two Cloud SDK instances into separate namespaces
## Usage
```bash
helm install tip-wlan-1 tip-wlan -f tip-wlan/example-values/local-multi-namespace/ns-tip-1.yaml
helm install tip-wlan-2 tip-wlan -f tip-wlan/example-values/local-multi-namespace/ns-tip-2.yaml
```
This will create a Cloud SDK instance in each of the namespaces _tip-1_ and _tip-2_.

View File

@@ -0,0 +1,270 @@
# This is a development override file.
# It overrides the default Tip-Wlan parent chart behaviour
#
# It can be tweaked, based on the need to support different
# dev environments.
# This file expects to have a GlusterFS storage solution running
# before "helm install" is performed.
#################################################################
# Global configuration overrides.
#
# These overrides will affect all helm charts (ie. applications)
# that are listed below and are 'enabled'.
#################################################################
global:
# Change to an unused port prefix range to prevent port conflicts
# with other instances running within the same k8s cluster
nodePortPrefix: 302
nsPrefix: tip-1
# image pull policy
pullPolicy: Always
repository: tip-tip-wlan-cloud-docker-repo.jfrog.io
# override default mount path root directory
# referenced by persistent volumes and log files
persistence:
# flag to enable debugging - application support required
debugEnabled: true
# Annotations for namespace
annotations: {
"helm.sh/resource-policy": keep
}
# createReleaseNamespace: false
# Docker registry secret
dockerRegistrySecret: ewoJImF1dGhzIjogewoJCSJ0aXAtdGlwLXdsYW4tY2xvdWQtZG9ja2VyLXJlcG8uamZyb2cuaW8iOiB7CgkJCSJhdXRoIjogImRHbHdMWEpsWVdRNmRHbHdMWEpsWVdRPSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTkuMDMuOCAobGludXgpIgoJfQp9
#################################################################
# Enable/disable and configure helm charts (ie. applications)
# to customize the TIP-WLAN deployment.
#################################################################
opensync-gw-static:
enabled: false
opensync-gw-cloud:
enabled: true
externalhost:
address:
ovsdb: opensync-controller.wlan.local
mqtt: opensync-mqtt-broker.wlan.local
persistence:
enabled: true
filestore:
url: "https://wlan-filestore.wlan.local"
scalability:
#how many concurrent connections single instance of OpenSyncGateway can accept
tip_wlan_ovsdb_listener_threadPoolSize: 50
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
opensync-mqtt-broker:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: standard
wlan-cloud-graphql-gw:
enabled: true
env:
portalsvc: tip-wlan-1-wlan-portal-service:9051
ingress:
hosts:
- host: wlan-ui-graphql-1.wlan.local
paths: [
/
]
tls:
- hosts:
- wlan-ui-graphql-1.wlan.local
wlan-cloud-static-portal:
enabled: true
env:
graphql: https://wlan-ui-graphql-1.wlan.local
service:
type: NodePort
ingress:
hosts:
- host: wlan-ui-1.wlan.local
paths: [
/
]
tls:
- hosts:
- wlan-ui-1.wlan.local
wlan-portal-service:
enabled: true
persistence:
enabled: true
storageClass: standard
filestoreSize: 1Gi
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
wlan-prov-service:
enabled: true
creds:
enabled: true
db:
postgresUser:
password: postgres
tipUser:
password: tip_password
schema_repo:
username: tip-read
password: tip-read
postgres:
singleDataSourceUsername: tip_user
singleDataSourcePassword: tip_password
singleDataSourceSslKeyPassword: mypassword
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
#max number of connections to PostgreSQL database
singleDataSource_maxTotalConnections: 8
#max number of idle connections to PostgreSQL database
singleDataSource_maxIdleConnections: 8
#max number of cached prepared statements used in PostgreSQL database
singleDataSource_maxPreparedStatements: 200
#max number of cached idle prepared statements used in PostgreSQL database
singleDataSource_maxIdlePreparedStatements: 200
wlan-ssc-service:
enabled: true
creds:
sslKeyPassword: mypassword
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
cassandra:
tip_user: tip_user
tip_password: tip_password
schema_repo:
username: tip-read
password: tip-read
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
wlan-spc-service:
enabled: true
creds:
sslKeyPassword: mypassword
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
nginx-ingress-controller:
enabled: true
controller:
service:
type: LoadBalancer
config:
externalStatusAddress: "api.wlan.local"
defaultTLS:
cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZXakNDQTBLZ0F3SUJBZ0lVUU5hUC9zcHZSSHRCVEFLd1lSTndieFJmRkFzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0hURWJNQmtHQTFVRUF3d1NkMnhoYmkxMWFTNTNiR0Z1TG14dlkyRnNNQjRYRFRJd01EZ3lOekl3TWpZMQpObG9YRFRNd01EZ3lOVEl3TWpZMU5sb3dIVEViTUJrR0ExVUVBd3dTZDJ4aGJpMTFhUzUzYkdGdUxteHZZMkZzCk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBd1JhZ2lEV3pDTllCdFd3QmNLK2YKVGtrUW1NdCtRQWdUallyMEtTOERQSkNKZjZLa1BmWkhDdTN3NEx2cnh6WTlObWllaDJYVTgzNGFtZEp4SXVDdwo2SWJObzZ6c2tqc3lmb084d0ZEbWxMVldMZWc1SDlHOWRvZW0rV1RlS1BhRUhpM29xdXpOZ3Q2d0xzM212dk9BClR2aVRJb2M4OEVMams0ZFNSMlQ0ZGhoMHFLQ0NqK0hkWEJBNlYvOWJpcnUralYrL2t4RVF1TDJ6TTM5RHZWZDgKOWtzMzV6TVZVemUzNmxENElDT25sN2hnYVROQmk0NU85c2RMRDBZYVVtamlGd1FsdEpVZG1QS3BhQWRidmpVTwpuc3VwbkRZam0rVW0rOWFFcHFNNHRlMjNlZkM4TjhqMXVrZXh6SnJFMkdlRi9XQi9ZMUxGSUcyd2pxVm5zUGNzCm5GRjRZZDlFQlJSbmUxRVplWEJ1M0ZFTEZ5NmxDT0hJMTQ2b0JjYy9JYjYxN3JkVEtYcXh0di8yTkw2L1RxRmsKbnMvRUVqdmU2a1FZemxCWndXSFdwWndRZmczbW82TmFvRlpwVGFnOThNeXU1clpvT29mVGN4WEg2cExtNVB4MQpPQXpnTG5hOU8rMkZtQTRGanJnSGNNWTFOSXp5blpMK0RIOGZpYnQxRi92MkYyTUErUjl2bzg0dlI1Uk9HTmRECnZhMkFwZXZrTGNqUWcvTHdzWHYwZ1RvcFEvWEl6ZWpoNmJkVWtPcktTd0p6VDJDOS9lOUdRbjBncHBWOExCdUsKMXpRSG9ST0xuQTQxTUNGdlFMUUhvK1h0OEtHdytVYmFseTZoT3hCWkY1MUwvQmJxamtESDlBRUZhSkxwdGlFeQpxbjFFNXYrM3doZ0ZTNUlaVDhJVzV1VUNBd0VBQWFPQmtUQ0JqakFkQmdOVkhRNEVGZ1FVeTJiQVV5TlBYSFM5CjNWVFNEK3dvTjd0M3E4RXdId1lEVlIwakJCZ3dGb0FVeTJiQVV5TlBYSFM5M1ZUU0Qrd29ON3QzcThFd0R3WUQKVlIwVEFRSC9CQVV3QXdFQi96QTdCZ05WSFJFRU5EQXlnaHAzYkdGdUxYVnBMV2R5WVhCb2NXd3VkMnhoYmk1cwpiMk5oYklJT1lYQnBMbmRzWVc0dWJHOWpZV3lIQk1Db0FBRXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBS0grCmJxSmVlMTFuMzRTWWdCRHZnb1o4bEpMUVJ3c0ZucUV4Y1NyL3BsWjdHVklHRkg1L1EyS3lvOVZ5RWlUUHdySXMKS3NFckMxZXZINnh0MVVSZk16cDA1elZRMExZTTUra3NhbVJEYWdBZzNNMWNtN29LT2Rtcy9kcXpQZTJnWmZHSgpwVmR0VlcxQ0hyTDBSTFRSOTNoN2tnU2lCbFNFSVlNb2VLZk41SDlBYXZKNEtyeXlnUXM2M2trR1E1TTllc0FwCnU2YkIzMDd6eWZ6Z1MzdG1Rc1UwMXJnSmZoRUhRL1krQWs5d0R1T2d2bWZ4MFRXZ0FPR2JLcTZUdThNS1lkZWoKSWU3clYxRzVVdjdLZmdvelZYNzZnMktkblRWQmZzcFNLbzN6eXJaa2NrekFwdlV1OUllZkhkVG9lNEpNRVUweQpmazdsRVUvZXh6Qnl5TnhwKzZoZHUvWklnM3hiMXlBMW9WWThORWQxckwxekFWaVBlMzUxU0VORUtlSnBSYW5DCmtDTDNSQUZrYnhRN0loYWNqb3g4YmVsUitnbW84Y3lGWnBqOVhhb1BsU0ZTY2R3ejU3M0NUMGg5N3Y3NkE3c3cKeUMrQ2lTcDg1Z1dFVjV2Z0JpdE5KN1I5b25qQmRzdUgybGdFdE1EM0pOT3M4Y0NTUmloWXhyaXdaU3FoVDdvLwp0Y0lsY0o4NFc1bTZYNnpISjNHbXR1S0czUVBOT21zMC9WVm9EVHA5cWRwTCtFazE3dUIyQTQxTnB4ejNVUytsCjZ5SytwZFFRajdBTHpLdVJmT3lnODBYYk53MnY0U25wSTVxYlhGQlJ1bTUyZjg2c1BlbUZxMUtjdU5XZTRFVkMKeERHM2VLbHUrZGxsVXRLeC9QTjZ5ZmxiVDV4Y0dnY2Rtcnd6UmFXUwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRUUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Nzd2dna25BZ0VBQW9JQ0FRREJGcUNJTmJNSTFnRzEKYkFGd3I1OU9TUkNZeTM1QUNCT05pdlFwTHdNOGtJbC9vcVE5OWtjSzdmRGd1K3ZITmowMmFKNkhaZFR6ZmhxWgowbkVpNExEb2hzMmpyT3lTT3pKK2c3ekFVT2FVdFZZdDZEa2YwYjEyaDZiNVpONG85b1FlTGVpcTdNMkMzckF1CnplYSs4NEJPK0pNaWh6endRdU9UaDFKSFpQaDJHSFNvb0lLUDRkMWNFRHBYLzF1S3U3Nk5YNytURVJDNHZiTXoKZjBPOVYzejJTemZuTXhWVE43ZnFVUGdnSTZlWHVHQnBNMEdMams3Mngwc1BSaHBTYU9JWEJDVzBsUjJZOHFsbwpCMXUrTlE2ZXk2bWNOaU9iNVNiNzFvU21vemkxN2JkNThMdzN5UFc2UjdITW1zVFlaNFg5WUg5alVzVWdiYkNPCnBXZXc5eXljVVhoaDMwUUZGR2Q3VVJsNWNHN2NVUXNYTHFVSTRjalhqcWdGeHo4aHZyWHV0MU1wZXJHMi8vWTAKdnI5T29XU2V6OFFTTzk3cVJCak9VRm5CWWRhbG5CQitEZWFqbzFxZ1ZtbE5xRDN3eks3bXRtZzZoOU56RmNmcQprdWJrL0hVNERPQXVkcjA3N1lXWURnV091QWR3eGpVMGpQS2RrdjRNZngrSnUzVVgrL1lYWXdENUgyK2p6aTlICmxFNFkxME85cllDbDYrUXR5TkNEOHZDeGUvU0JPaWxEOWNqTjZPSHB0MVNRNnNwTEFuTlBZTDM5NzBaQ2ZTQ20KbFh3c0c0clhOQWVoRTR1Y0RqVXdJVzlBdEFlajVlM3dvYkQ1UnRxWExxRTdFRmtYblV2OEZ1cU9RTWYwQVFWbwprdW0ySVRLcWZVVG0vN2ZDR0FWTGtobFB3aGJtNVFJREFRQUJBb0lDQUMyR2hEc1pUaWtiTERQMlR6Q2VkOVVoCmJRUlpsbDdLaUxHcXZYNm9VdjhJcFNLdTJrS3h1blpkTzVvQk5NbzNnNTg4YzRSQkFrQ1d6dmJObzFjeDJ3UTQKSkd3ZTdYaGM5TDdYbUwxUFZjNWlJdnVYOFVBTFY3eUdwMXZONklPSC9BYVJsSFlZZHl3UURVSTcwZGZiMmJqRQo2d3dORHRVbk1Ea3NncjNLbExwamNiNEFla2dxWE9MRUFMMld1Nkt1T1hOankrdUU3b2hnVWN3bWlYWXZGb3VMCm1KYXVlS3l5U202NHdJZnpZQ1JwbUhHMVlCTGpic0xJb20zcmZYRkl3V1hqMkhBSGFIOFRWOVhyUmpwR2tEZm8KbFFqN3l0R0s2ZkllMWcva0ZBN3hDWDE2d1NYMS85bjM1WGYwVmMwZ08zdE9NVHJkM1JTVVNEaVp6eVR1WWxuZwpETEdmYXZjRS82QXJ5cTlWZ3hyUXdXbnZhd0hIcWxBWUtxVHpJYkRJS0Y3SjRYTE9FckFtRE50T1I2Lzc1WjJ3CnVPQlFYT0N3NFM1dWxWdzhIZUM0NGlFTmxJYU5lNDNWTkZUTGtRM3lCeW96VVlYWTN2eEJXMWpURFpFOTB5YTUKZzk4cmFiYWhIS0lockpGYzNXYTE0RWhicUE2TVVLSXRRTkk4K1N1Rk1KV3R4VW1iM1cxK2dHbXJvTmo1TU9kYQpzdjV5OThTYS93UUc4dGc0cmdNQ0xpQVNHL3hudDB3RURrNXFDVUUxRzRSdkdOeUYxU09zNk82c1BTOTg4Umd4CnJuamQvWWZoME5xVnhHcHFGNnhpQVgvZXkyU0NGUWNybEtmNnhGREF4YjI4RTdaNnRQSUZCTWxpQ1IrbzdYR3MKZDNvUWVuMThCalM1NjdtR2ZmNkJBb0lCQVFEanFFcHZqOVhJVVB3bk1RZitRY3R0R1pXZEp2bFZSa1BSMW9maApSVWI2UHdFRkEwdVQyM011ZmFvNGI4bWIrM2Vra1BkYTZmbWJqUGFUckQrbk5YNGxyRE5oYytvcVY4aFVEQnA0CmpVcEg3OXorTVNUZVVQclpnS3VMeEdqaDJiK0FWYVZjZTI2STVYUXVoUnR6ZHFYZDlIeSs4YXpYRTltbHlPQ00KMUpEK2VHZWxhaVJMbEZBbVRDNDNoNlV5T0Q5SmZOSW1oWDQ2WDJRRlFsbGc1cWxVdWQ4Ukx3eFViZTJoYzhTWQp4VnVvYVZSSUdBSmhqRkd3ZVhnRjdzc0tQNXBZMHRkTlNvSGsxeHRnUmVJTlllZFU1cmtpKzloZTN0cStqWUdJCmxVcVVzYzNzN3c4cUk1UXk5NGdmcUI5Lzd4K3BFdGEvak9leE4yL1pGOFJGSXVucEFvSUJBUURaSUpUaUUxKzkKc2xnQ0NGVllLR3Z5aE5odkppck94enlOUWU3YjIvZmxQNzVHd0pTTWpZZTdoTmhGK3JrZHRJcXF5dWxyeGF3YgpPbWliU0FCSG5kT20ycDRMdDhaK20vQXZaRUgzVklLdWkwY0xVbTlKRXNsWURVcFIrdG5BemloNzdrS2FlVzlnCk1wdlpiUzZGdXE2ZlBZQUJyK3dXeU1IazR0UnRNZ3duUFRtSzZQTW85b3FIUURTSVJjL3N0N2hBTUwwMDdtNlEKOTJkRXRqNTNtSTBURTRISVhtY3hZbjV5NGVJLy85aEFMb2xFa0ZHWDU0SmNMdWpDWWkwQ3RIU0xDcnNmQkJwZgpDS2NaMk5sWFNiYVREU1prZWhnQWFWTlM2OVp1K1o2eGFvNmZZMjVxSnNmeXlaUkNjSzJYY0FoUDV2QWNUbWhQClNKUFJZc1dSNXZ1ZEFvSUJBRmtRRXFiWWg1TkprNHdsazNIMS9ZYWVGcmtYY1QzYU1sZ2FiS2hGdVFIWHVpZGkKNWFOZm5BMFpIb25idWV6ckVTQnhra09mKzRYT1BQMEN5eGc0UmpTb3pLVVlld2k3dE9Ta280cDhCQTVtbVhkYwpkSWNBK1ZJMEUyaW5tenlZT21JVG41Q3h2VW1UTXNPc1VWUDNtK1pjYXAwczRTaDNYSk9PSmNNU3VmTEQyaENOCm1NdDBwM0tFSlNTV1RadDdBODlWSk1YclBibktiYy9jNkNpUHRMa3Z5a1BudXhRZ3VYR0xYK05BZXA1RkxyTFIKcWNUTjUzdDUyZW5BUlBDcWQxQytrM3BxWnF6SE5xK1FSMkppNWVTQ0t2V3p2eTlHVWg5d0xyZm5aL2tLSW56SgovWTNIdzRlNDdTa3RWYjF3S0Z1MXdndklMVEJZZHNwZ2tPbFhRbGtDZ2dFQUtKYVJuazFXMldRc1ZYenZUMEtICkkxZTRDZGNOcTRmTkJ1N3JVc2drNkFMcGM5cHVLblFPaW54RDNaa0gzOGl2SDB3OUpEdFlkK0tNU1hMRk1wNEwKUWFhZVlyeGc2NndFMHljZnViZGZrbmRRdVlvWWFZV01nOXhBSjJFSU1hV1lKY3FkUXJrdW04SDZKa1BsclhQLwpUcDgxZlp0QU8rWWRjTWNDUk1OVlNFU0dyRFB0dUp1VnU4REIwVE9Uc2NHS1BOMmZrUFI5VUxZZTVOWllpUXpJCldtZU1IRU9oY0xiandsLzlaazlTUW5Vd2pkT1luUmZXNDVxVlFqa09CdkpxMHM4WHVhMlBySEkyb250SjdhcEcKNmVoTVkvMzYzS0RUeGExMmNWcFNVd0lEVlVKR0VxdmJOc1I5NVltZ3VhMWtzR01RUVlwYXIyOTJ5bTUzVmxYaQpkUUtDQVFCTUFYS0RaNVZobHBRR1VlUk1FNVhqVm1KOE1WdlZTUzV3NzBGOC9CS0ZnZFBJNnR2Nkx5UGh3OTRPCmxZVldoOXJmdUpmbWllK1ZJSWhaeSthUVNpVVhGQUtTdjZFTWJ1bXdjN1pUNEkyYitDTXQxUEhaTEZtUEN0OXAKOEorUDdoaDlRYWRBYzZqZEdSa0NMNkpMU3VoeWhMbW90SG9IS0ZJazdhNENNZGl2QnB3SVdxMWVScHd0aWRrNwpIdytrdlJ5YW5DMUJVU1dYNGxJcW1LanAyR1B2UDVVdVV2RUlPNitqaWFyWTJDTUNKb3BtcVJ2WWQzNGtSVkF1CjZueFl4a05neEFQSnVWN2tkZVVzQXg5Q1FZcFQ1blFmendtdlVGa0FraHJoTmw5dUJRUDhMdkZORFQ0cWU0bFcKUWw0cXRFZFNiZDVxVWVVdkgzOG5JMmpTVDVMawotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==
wildcardTLS:
# self signed wildcard cert for *.wlan.local
cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZEekNDQXZlZ0F3SUJBZ0lVYSthaVJZWG9QTGliSS9wdVJCdi9DZ2RTTDNzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0Z6RVZNQk1HQTFVRUF3d01LaTUzYkdGdUxteHZZMkZzTUI0WERUSXdNVEl5TVRJd05UQXpNVm9YRFRNdwpNVEl4T1RJd05UQXpNVm93RnpFVk1CTUdBMVVFQXd3TUtpNTNiR0Z1TG14dlkyRnNNSUlDSWpBTkJna3Foa2lHCjl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEwQjhuZE1raGIzZEN6N0I2aS9kRlFWenJwaEtQK2RmY2JKN1gKMzB3MU1FWDIvM3ZvVStkRlBNbnZrS3hEdFJwanZCbnhCczF6L1VmajlyUFhDSzZkazNNYU5DajRQYVUxem9WQQppK1Z6amc0ZG5XNjJxWG1qYVYrYUMrQm5zQndyQmx2THQ0dkh1eFRLbHh1RnR4THdid3VObGJvS1lVN01kV3oyCllMY3QzUWZBWElVb2FRK1RTMUZGdVdFeEZOTFRidlBGZWNoajB4ZnhyOU5BcU9aTXI0RGE0NHMzVERxMVVyRTIKbjhaZXFxVXZ1YUE4ZmEzQjNVZVRFNmJ4OEdhN1JybG5Dakd3UDRGVml3ajdvellmanV6T2JOM2dlcjdWcEpLMQpMSjdIdDBBemZlRm9aQ2xPbUVBd1p5alFwRGZOckdNTCs1dWtIK2JxWngyaUo5UndFcDNmdlE4em5jN1Q4dHJDCmxzMjRWNUpySWhUQXlCcTZRWVNnSXdXM2V5TmVpUnQ0ZHp6Sk5rNnd4cFp0WE96WTFwamJrV2FMaEhKOW1LRWoKU3lqVVBnS3dKSVlmb3BJbTJoUzl1dVZHZDdiU1MyV055aHJSOU5LSG5Lamo5Y0IrUWU0eEh0Z1pEcm1GZ1ZpZQp0cXZBUHhJL0ZkV1pSN3RmT2JCNTR3alMxVFk3TEd6cll4TDZSMWNjZDE4WUppcGNTS05xa05ORlllZ092VkNICmFldW1OTUdVNlZZalJWS1JmQXMva2FzcWxleGpheSt0SXNtd3dDZGoxUUN3UitRa2VEZFdoNE8vQzM1NENRb28KTkxZYzRNRk8xbVVDY2NsbUgvbFBvcTd1anBCMWI2VmFBNVprNFhjVUpRc0c4SUlSMDFHTFM5RW1HVVZaeTlOWApwV2dCbXNVQ0F3RUFBYU5UTUZFd0hRWURWUjBPQkJZRUZOZlVJSGhXdnFwUzg2ZC82SnJvbmxFYzZMU1NNQjhHCkExVWRJd1FZTUJhQUZOZlVJSGhXdnFwUzg2ZC82SnJvbmxFYzZMU1NNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHcKRFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUtlTW9PckhLZ3BGemtkckVhMVhSSVRUOHFZanhKc04yNmFIMFovLwp1dDRXVkE4ckNDNzV4VkpaNnpBQWlBOFE2eTRYSHBzRzl2ZSs1QlJIWEdCS0lYOU5FZGNrbWdNdExzQ2xOR0JCCkxkN3lWd3hhaGVCQzhVTWIrVTAxMlNwaFc3K0t6UFJhQ3g4cHNMMUlFQUkyblQ1MzlCNDBmR2NyTktNSDRqZGkKdkxad3VxT00rZnJucFJ1MkZlK3Bja2Fwek92SEJTb0I3THovR1dmMWUwZ0llc1B4WEdmVG9hbGM1SzU5bDF1TQpCTkhpUW15S3E4TS9MbllMejhyOWp3dHNKU2lLYUljelpISjNtQ0ZUb3ljREF3NTl3WEdmWXZWcFBMaWZXTTJxCm1uSlJKM2dQS1lzOUhXWFgyYktoSmZoMjRLOTN2M1duMVRUellYOGtTbWlnRG0wTUhOSTNwZktlMmJqVW9MNmgKMlQ4bWhRbjdPQ2dvZHMvOXczR1dOdmFxYTAySHRnc0tTbk9YdmpSNXFMaVFLRjdhMi95TTlrNWNQcUdHaW1GYgppUWV3eUgvMWw2YjQ0T0s2RGwwMVltWFltNUVqR3plckp2aU90eUhSaWhtME01VmNBWWJaYkE0S1Y1eHhLZjRqClIwaktwQXdqbEpzTDdRMk9zTC9IRkxmaDV1RU1HMXlmTzF1blZkVURKK1FBZHJQUG5tZTZVTVFQZm1UcGx1WjAKS3pvOXY3NEpYV0pwQkNtaWNTbFBQdnB3cXZLTk5iOWd6b0hjOXFheWMwNWVxRldRbzNNZjIzYU82b05wU2ZuaAp5aWMvczFQcC9ZS2FHakVSQXB1UmRvYTlWT1diUncycFZMei9rZVNraS9QTDJFRFc4RUVHYjFXcUFBMkJPVVhDCi9oYXQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Mwd2dna3BBZ0VBQW9JQ0FRRFFIeWQweVNGdmQwTFAKc0hxTDkwVkJYT3VtRW8vNTE5eHNudGZmVERVd1JmYi9lK2hUNTBVOHllK1FyRU8xR21POEdmRUd6WFA5UitQMgpzOWNJcnAyVGN4bzBLUGc5cFRYT2hVQ0w1WE9PRGgyZGJyYXBlYU5wWDVvTDRHZXdIQ3NHVzh1M2k4ZTdGTXFYCkc0VzNFdkJ2QzQyVnVncGhUc3gxYlBaZ3R5M2RCOEJjaFNocEQ1TkxVVVc1WVRFVTB0TnU4OFY1eUdQVEYvR3YKMDBDbzVreXZnTnJqaXpkTU9yVlNzVGFmeGw2cXBTKzVvRHg5cmNIZFI1TVRwdkh3WnJ0R3VXY0tNYkEvZ1ZXTApDUHVqTmgrTzdNNXMzZUI2dnRXa2tyVXNuc2UzUUROOTRXaGtLVTZZUURCbktOQ2tOODJzWXd2N202UWY1dXBuCkhhSW4xSEFTbmQrOUR6T2R6dFB5MnNLV3piaFhrbXNpRk1ESUdycEJoS0FqQmJkN0kxNkpHM2gzUE1rMlRyREcKbG0xYzdOaldtTnVSWm91RWNuMllvU05MS05RK0FyQWtoaCtpa2liYUZMMjY1VVozdHRKTFpZM0tHdEgwMG9lYwpxT1Axd0g1QjdqRWUyQmtPdVlXQldKNjJxOEEvRWo4VjFabEh1MTg1c0huakNOTFZOanNzYk90akV2cEhWeHgzClh4Z21LbHhJbzJxUTAwVmg2QTY5VUlkcDY2WTB3WlRwVmlORlVwRjhDeitScXlxVjdHTnJMNjBpeWJEQUoyUFYKQUxCSDVDUjROMWFIZzc4TGZuZ0pDaWcwdGh6Z3dVN1daUUp4eVdZZitVK2lydTZPa0hWdnBWb0RsbVRoZHhRbApDd2J3Z2hIVFVZdEwwU1laUlZuTDAxZWxhQUdheFFJREFRQUJBb0lDQVFDUVRkbXN4enl3cmUrY1ZCQlVkaW9GCjdTalRhTEY5bWFlVGhQdkhMMjc5dnJWSlpoK3I5WUp6YU16NzhnV3NUOVR4ZXNjOVlUMVlVLzJEZENUWU4wSzUKRnlrSEc1VXNJUjVTeU4vOVlDWWtURE5La3BhQ29mMmxOWTE1U0twOFdMdVlXQlBEZTE4TW41anM5ejlhdGY0Ugo4Ti9GL2szdU5KWGRvYVNmWU1Pakt4bTh6UE05RFhpaTA0SlZ6RWNjMmlXU0crSkQwNmNybWNHUm1SZVBSTWZOCk5Mb1E1ZGw4dUlRN0J2Y0tCNkJpRDlFc2t5YitPWGxmTlo2TUZNaFNXTmpuYSt3L0REN1plWkxYcVczWk45RGYKNStBbGFoNlkzVE1EUGxueXkxRk5CVzN1alZrMWdkS21ESFBEUTNDUFBNWVdEa01qdlVJcWdKRHMySVl6dWIvTwpXRjRVUTV5UEJhZzluaWp1dS9uMVZDdGZuSkxwakZIakU1VzdkK3p1UGh6aUJ1WDFOcjRtOVVJdEpaSTNsYmJtCmdvZFlMdGl4b3RwNWF3ang1eXA3MU1zUHlTZzcrbHBPenA4dStuRENJcnc0K0VSME56MG8yTXFmcmJ2VklGQXIKWHIyc2YrejljbmtxalBWWEZaVks3em1TUHI5N0YrbTV4RHpURG9lTG53aVlhUUpOQ0ZhejhMVERjNldVT2w4SQpLOWhHd3FaK0llTlgreW16em16Nkx6WWVPaGlrRmNRaUI0UXVPSjdWWnZWRmVoS3JJMXJLWHJDRU01VmpJZXBkCkhzR0c1eTlLUkcxdEszSU5ScmI0SHlhRDF6SHJSTHRneFpLT1BvWDN0UjNmbTJ1aGova3dwelZnWTltRXJDWDkKd2I4SVA5TXdRR3REQVNBcjZWVmJvUUtDQVFFQThIeWlaK1lVeFEzQnprL1hoNmZMWWNYakE3NTJrQ204VWZzWQp0d1Z4N0EyNW5YRStiUDRIT3UyVC9kTlc0Tkw1elZPT0JkaWZIcTJQVFNVMGYzQUFHL0pNcnVzM3NrNHd4azM5CitYYlh0dHltWkdxb3FEcVN3TUw2czVpY1RnangvenRhSXk1TWFKYWhUYUpNdFRQQlVpZ3U3enhoeGNwVlhNVUMKTklHcFl5Mkt5R2hyMjVVOFdlR0RYQm9SS2xYUXJXYkNZeW1kMXdYQStEaVl0dzA5eit0VHhPNTRodjFCZkJKZwpWMGd0VWdJU0I2WEZDMU9CWDZXQ1pXYlhCN2hPaHhISjNkNHAyQlZyN0gxL2JDQ0ZvVDY5by9WQVNHRmdtTHRiCnpGalRNbjFIaTluVW5jUFlScWpsN1h0NWdPOHBOa3BwMjVrNHIxRVludWhIazcrYzdRS0NBUUVBM1l3THozNloKNEVPRndvODIrUlVId2lkaFExOEdrU1JvWStKVm1udXJpSXdHZTk3ZmRTVk91d092SDlZSVhsRWpjRitoOHFQVQpJVnpIOXBuYXZjTENEMnhIOWZ5d09ML3pmYmJnYnExZjV4Y3BOUXlYM1JnTGFDUVpLNkpJa3NzOUtDb0dhSzlaCmpMVm41MjFFZlFBRE5DSi93YlRCb3dLQ0dTNDUzSzRBaWFEWHN6TkJLUk5MOHVaWWYwK0x0U2IzV3lkZVQ2eUgKdGZiSXR3NlBSS1lxb2NaeGIrM0pWQWFHcGxScjVZSlNDU1BtTjFMSjU0djlTcXBIVnJMNzJudFNwKzdDODJ6SgpJajVOSXFEOGFsOVZ3WFB5dExRd25hYWc1TW5ka0NLQ3R0MlVHSGZwMEh3ZTJTL1hkemppS2gzZTZaT3MyMSt1CitQUHVrSkUxTTZzU09RS0NBUUJjWVJRbDR6MUJRUHFjM1JESEhJN0UvVFlxWHdTK2RqblFLQ3VqU3FVcmIwNUoKQzVKV1hmSzdFVDVUTjliY3dFNlRNRENUVUZZM2U2WmJsUm9vaGdhVXRhdjlXWC9vcjU2TzNyRGNIbW5ZNWNQSgpPU3VXakFHSnFKeVRWdUZjSEpXUlhPUlFOVjNHbzI1Tkd6WnFPUHBmSys1em1mZFkrbE4yTW51WlhlR0twcGowClNTQjlsa003cDZSRlFnSXNDQkVFTzBBYXhZYkxiWHRtSHArVFdiUFA1ZThrN0JKQ2tKQ1NMNkR3aGxwYWNVOHAKdnVVRlo4dC95VjFneEhOL2xLNGR0cGliOE5hVUdnNStKdXRHeHV0dU9HS3kwK2dncGI5c2pEUkVPQzdRNjAwTApqTjdleDdlUjFSbVY4Mk9HUXRqSzhTVGU1V25mOXNBRmN1YmorNncxQW9JQkFHYXM4Z2hQRHpkOWM2OXd1alNFCkI1MTJyTUFSZVRTcEgrd3l5Q09aYnkwUVlDem1aTCtnODdUK2h4b0ZFc25MWnRZOHJBeU0ydEkvY3JrYUl1TlIKTUtqL01QYVREb1N1aVVWWkRQaWVSMVVOU2Q2NUlHU3FNUmNwcTdTcU9HSTM2UGNGU3dVWFJ6Uk1Hb1NLQW5UQQpIYnY2eFNUY0JlWHJVcW9pMzFRa0hFR3NsbXNKdFFnNVZqaVRncTQyQ25TQlE2QXVSYW85Tm9RaGhISTZRREc3CnBRUm11TW43OVJPSkZyeGRZY2Z6TnR2ZmxHRk5jQjlzcEk0SERwcml4cEJDR1ZPVTl5cmozdStNMmlqVFhVaGIKT0o0NGcySTJKRlhjRkxNVHp5aHVwZy9qN3kvTDIwUHhVa2Fyd25zUmxOZWFFbVpFTjVkUDZBS2U0cENEaTVtUApqaGtDZ2dFQkFMUmtVeG9oZDh2ZVBwR3hPbWlOak5HekpiTDlscGx0TWxhR0dPQ3JOUkZSeEppblgzWU9UVnhiCkRFVlpqaXRHNldydzFxaDdnZXAzeEdJaWZHQ1lZV3pNc0RZTitueGtwV0lRRmZOV3dYemNRWlhrTEduZVlUdTAKSVU2RjY5Myt1Q0tkcHVCdVl0d3BQNEJCVkNCRTVON0FzRGV4bFBYTzk1cEw3ZzR4OG5RckdNeGJlRXVOdytaTwpPYmYvTnFFMGZZcURkaERiVHI0UDR6bUpBRlpYeDlKMjNJdWRMUFI3MDZITGZ5bDMrb1pUS2Y2ZWdEL1drWXZGCllLdEtDZzI1UmtSYmZBakZkeDlpOVkzcDlPNEFNVUNaRVFIOWQwU1d6LzJWR0VmYzVha09YL2xvWlAyUXF3c2UKeXMyc0k1U0Z5TEd1ZGM3R2MzVTd5UGd0RVN0elVoWT0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
zookeeper:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: standard
kafka:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: standard
creds:
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
sslKeyPassword: mypassword
cassandra:
enabled: true
image:
debug: true
cluster:
replicaCount: 1
seedCount: 1
persistence:
enabled: true
storageClass: standard
creds:
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
postgresql:
enabled: true
postgresqlPassword: postgres
## NOTE: If we are using glusterfs as Storage class, we don't really need
## replication turned on, since the data is anyway replicated on glusterfs nodes
## Replication is useful:
## a. When we use HostPath as storage mechanism
## b. If master goes down and one of the slave is promoted as master
replication:
enabled: true
slaveReplicas: 1
persistence:
enabled: true
storageClass: standard
readinessProbe:
initialDelaySeconds: 30
livenessProbe:
initialDelaySeconds: 30

View File

@@ -0,0 +1,258 @@
# This is a development override file.
# It overrides the default Tip-Wlan parent chart behaviour
#
# It can be tweaked, based on the need to support different
# dev environments.
# This file expects to have a GlusterFS storage solution running
# before "helm install" is performed.
#################################################################
# Global configuration overrides.
#
# These overrides will affect all helm charts (ie. applications)
# that are listed below and are 'enabled'.
#################################################################
global:
# Change to an unused port prefix range to prevent port conflicts
# with other instances running within the same k8s cluster
nodePortPrefix: 304
nsPrefix: tip-2
# image pull policy
pullPolicy: Always
repository: tip-tip-wlan-cloud-docker-repo.jfrog.io
# override default mount path root directory
# referenced by persistent volumes and log files
persistence:
# flag to enable debugging - application support required
debugEnabled: true
# Annotations for namespace
annotations: {
"helm.sh/resource-policy": keep
}
# createReleaseNamespace: false
# Docker registry secret
dockerRegistrySecret: ewoJImF1dGhzIjogewoJCSJ0aXAtdGlwLXdsYW4tY2xvdWQtZG9ja2VyLXJlcG8uamZyb2cuaW8iOiB7CgkJCSJhdXRoIjogImRHbHdMWEpsWVdRNmRHbHdMWEpsWVdRPSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTkuMDMuOCAobGludXgpIgoJfQp9
#################################################################
# Enable/disable and configure helm charts (ie. applications)
# to customize the TIP-WLAN deployment.
#################################################################
opensync-gw-static:
enabled: false
opensync-gw-cloud:
enabled: true
externalhost:
address:
ovsdb: opensync-controller.wlan.local
mqtt: opensync-mqtt-broker.wlan.local
persistence:
enabled: true
filestore:
url: "https://wlan-filestore.wlan.local"
scalability:
#how many concurrent connections single instance of OpenSyncGateway can accept
tip_wlan_ovsdb_listener_threadPoolSize: 50
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
opensync-mqtt-broker:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: standard
wlan-cloud-graphql-gw:
enabled: true
env:
portalsvc: tip-wlan-2-wlan-portal-service:9051
ingress:
hosts:
- host: wlan-ui-graphql-2.wlan.local
paths: [
/
]
tls:
- hosts:
- wlan-ui-graphql-2.wlan.local
wlan-cloud-static-portal:
enabled: true
env:
graphql: https://wlan-ui-graphql-2.wlan.local
service:
type: NodePort
ingress:
hosts:
- host: wlan-ui-2.wlan.local
paths: [
/
]
tls:
- hosts:
- wlan-ui-2.wlan.local
wlan-portal-service:
enabled: true
persistence:
enabled: true
storageClass: standard
filestoreSize: 1Gi
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
wlan-prov-service:
enabled: true
creds:
enabled: true
db:
postgresUser:
password: postgres
tipUser:
password: tip_password
schema_repo:
username: tip-read
password: tip-read
postgres:
singleDataSourceUsername: tip_user
singleDataSourcePassword: tip_password
singleDataSourceSslKeyPassword: mypassword
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
#max number of connections to PostgreSQL database
singleDataSource_maxTotalConnections: 8
#max number of idle connections to PostgreSQL database
singleDataSource_maxIdleConnections: 8
#max number of cached prepared statements used in PostgreSQL database
singleDataSource_maxPreparedStatements: 200
#max number of cached idle prepared statements used in PostgreSQL database
singleDataSource_maxIdlePreparedStatements: 200
wlan-ssc-service:
enabled: true
creds:
sslKeyPassword: mypassword
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
cassandra:
tip_user: tip_user
tip_password: tip_password
schema_repo:
username: tip-read
password: tip-read
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
wlan-spc-service:
enabled: true
creds:
sslKeyPassword: mypassword
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
nginx-ingress-controller:
enabled: false
zookeeper:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: standard
kafka:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: standard
creds:
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
sslKeyPassword: mypassword
cassandra:
enabled: true
image:
debug: true
cluster:
replicaCount: 1
seedCount: 1
persistence:
enabled: true
storageClass: standard
creds:
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
postgresql:
enabled: true
postgresqlPassword: postgres
## NOTE: If we are using glusterfs as Storage class, we don't really need
## replication turned on, since the data is anyway replicated on glusterfs nodes
## Replication is useful:
## a. When we use HostPath as storage mechanism
## b. If master goes down and one of the slave is promoted as master
replication:
enabled: true
slaveReplicas: 1
persistence:
enabled: true
storageClass: standard
readinessProbe:
initialDelaySeconds: 30
livenessProbe:
initialDelaySeconds: 30

View File

@@ -52,6 +52,22 @@ opensync-gw-cloud:
enabled: true
filestore:
url: "https://wlan-filestore.wlan.local"
scalability:
#how many concurrent connections single instance of OpenSyncGateway can accept
tip_wlan_ovsdb_listener_threadPoolSize: 50
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
opensync-mqtt-broker:
enabled: true
replicaCount: 1
@@ -71,7 +87,6 @@ wlan-cloud-graphql-gw:
tls:
- hosts:
- wlan-ui-graphql.wlan.local
secretName: nginx-ingress-controller-default-server-secret
wlan-cloud-static-portal:
enabled: true
env:
@@ -87,13 +102,26 @@ wlan-cloud-static-portal:
tls:
- hosts:
- wlan-ui.wlan.local
secretName: nginx-ingress-controller-default-server-secret
wlan-portal-service:
enabled: true
persistence:
enabled: true
storageClass: standard
filestoreSize: 1Gi
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
wlan-prov-service:
enabled: true
creds:
@@ -110,6 +138,28 @@ wlan-prov-service:
singleDataSourceUsername: tip_user
singleDataSourcePassword: tip_password
singleDataSourceSslKeyPassword: mypassword
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
#max number of connections to PostgreSQL database
singleDataSource_maxTotalConnections: 8
#max number of idle connections to PostgreSQL database
singleDataSource_maxIdleConnections: 8
#max number of cached prepared statements used in PostgreSQL database
singleDataSource_maxPreparedStatements: 200
#max number of cached idle prepared statements used in PostgreSQL database
singleDataSource_maxIdlePreparedStatements: 200
wlan-ssc-service:
enabled: true
creds:
@@ -122,12 +172,40 @@ wlan-ssc-service:
schema_repo:
username: tip-read
password: tip-read
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
wlan-spc-service:
enabled: true
creds:
sslKeyPassword: mypassword
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
nginx-ingress-controller:
enabled: true
controller:
@@ -138,6 +216,11 @@ nginx-ingress-controller:
defaultTLS:
cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZXakNDQTBLZ0F3SUJBZ0lVUU5hUC9zcHZSSHRCVEFLd1lSTndieFJmRkFzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0hURWJNQmtHQTFVRUF3d1NkMnhoYmkxMWFTNTNiR0Z1TG14dlkyRnNNQjRYRFRJd01EZ3lOekl3TWpZMQpObG9YRFRNd01EZ3lOVEl3TWpZMU5sb3dIVEViTUJrR0ExVUVBd3dTZDJ4aGJpMTFhUzUzYkdGdUxteHZZMkZzCk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBd1JhZ2lEV3pDTllCdFd3QmNLK2YKVGtrUW1NdCtRQWdUallyMEtTOERQSkNKZjZLa1BmWkhDdTN3NEx2cnh6WTlObWllaDJYVTgzNGFtZEp4SXVDdwo2SWJObzZ6c2tqc3lmb084d0ZEbWxMVldMZWc1SDlHOWRvZW0rV1RlS1BhRUhpM29xdXpOZ3Q2d0xzM212dk9BClR2aVRJb2M4OEVMams0ZFNSMlQ0ZGhoMHFLQ0NqK0hkWEJBNlYvOWJpcnUralYrL2t4RVF1TDJ6TTM5RHZWZDgKOWtzMzV6TVZVemUzNmxENElDT25sN2hnYVROQmk0NU85c2RMRDBZYVVtamlGd1FsdEpVZG1QS3BhQWRidmpVTwpuc3VwbkRZam0rVW0rOWFFcHFNNHRlMjNlZkM4TjhqMXVrZXh6SnJFMkdlRi9XQi9ZMUxGSUcyd2pxVm5zUGNzCm5GRjRZZDlFQlJSbmUxRVplWEJ1M0ZFTEZ5NmxDT0hJMTQ2b0JjYy9JYjYxN3JkVEtYcXh0di8yTkw2L1RxRmsKbnMvRUVqdmU2a1FZemxCWndXSFdwWndRZmczbW82TmFvRlpwVGFnOThNeXU1clpvT29mVGN4WEg2cExtNVB4MQpPQXpnTG5hOU8rMkZtQTRGanJnSGNNWTFOSXp5blpMK0RIOGZpYnQxRi92MkYyTUErUjl2bzg0dlI1Uk9HTmRECnZhMkFwZXZrTGNqUWcvTHdzWHYwZ1RvcFEvWEl6ZWpoNmJkVWtPcktTd0p6VDJDOS9lOUdRbjBncHBWOExCdUsKMXpRSG9ST0xuQTQxTUNGdlFMUUhvK1h0OEtHdytVYmFseTZoT3hCWkY1MUwvQmJxamtESDlBRUZhSkxwdGlFeQpxbjFFNXYrM3doZ0ZTNUlaVDhJVzV1VUNBd0VBQWFPQmtUQ0JqakFkQmdOVkhRNEVGZ1FVeTJiQVV5TlBYSFM5CjNWVFNEK3dvTjd0M3E4RXdId1lEVlIwakJCZ3dGb0FVeTJiQVV5TlBYSFM5M1ZUU0Qrd29ON3QzcThFd0R3WUQKVlIwVEFRSC9CQVV3QXdFQi96QTdCZ05WSFJFRU5EQXlnaHAzYkdGdUxYVnBMV2R5WVhCb2NXd3VkMnhoYmk1cwpiMk5oYklJT1lYQnBMbmRzWVc0dWJHOWpZV3lIQk1Db0FBRXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBS0grCmJxSmVlMTFuMzRTWWdCRHZnb1o4bEpMUVJ3c0ZucUV4Y1NyL3BsWjdHVklHRkg1L1EyS3lvOVZ5RWlUUHdySXMKS3NFckMxZXZINnh0MVVSZk16cDA1elZRMExZTTUra3NhbVJEYWdBZzNNMWNtN29LT2Rtcy9kcXpQZTJnWmZHSgpwVmR0VlcxQ0hyTDBSTFRSOTNoN2tnU2lCbFNFSVlNb2VLZk41SDlBYXZKNEtyeXlnUXM2M2trR1E1TTllc0FwCnU2YkIzMDd6eWZ6Z1MzdG1Rc1UwMXJnSmZoRUhRL1krQWs5d0R1T2d2bWZ4MFRXZ0FPR2JLcTZUdThNS1lkZWoKSWU3clYxRzVVdjdLZmdvelZYNzZnMktkblRWQmZzcFNLbzN6eXJaa2NrekFwdlV1OUllZkhkVG9lNEpNRVUweQpmazdsRVUvZXh6Qnl5TnhwKzZoZHUvWklnM3hiMXlBMW9WWThORWQxckwxekFWaVBlMzUxU0VORUtlSnBSYW5DCmtDTDNSQUZrYnhRN0loYWNqb3g4YmVsUitnbW84Y3lGWnBqOVhhb1BsU0ZTY2R3ejU3M0NUMGg5N3Y3NkE3c3cKeUMrQ2lTcDg1Z1dFVjV2Z0JpdE5KN1I5b25qQmRzdUgybGdFdE1EM0pOT3M4Y0NTUmloWXhyaXdaU3FoVDdvLwp0Y0lsY0o4NFc1bTZYNnpISjNHbXR1S0czUVBOT21zMC9WVm9EVHA5cWRwTCtFazE3dUIyQTQxTnB4ejNVUytsCjZ5SytwZFFRajdBTHpLdVJmT3lnODBYYk53MnY0U25wSTVxYlhGQlJ1bTUyZjg2c1BlbUZxMUtjdU5XZTRFVkMKeERHM2VLbHUrZGxsVXRLeC9QTjZ5ZmxiVDV4Y0dnY2Rtcnd6UmFXUwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRUUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Nzd2dna25BZ0VBQW9JQ0FRREJGcUNJTmJNSTFnRzEKYkFGd3I1OU9TUkNZeTM1QUNCT05pdlFwTHdNOGtJbC9vcVE5OWtjSzdmRGd1K3ZITmowMmFKNkhaZFR6ZmhxWgowbkVpNExEb2hzMmpyT3lTT3pKK2c3ekFVT2FVdFZZdDZEa2YwYjEyaDZiNVpONG85b1FlTGVpcTdNMkMzckF1CnplYSs4NEJPK0pNaWh6endRdU9UaDFKSFpQaDJHSFNvb0lLUDRkMWNFRHBYLzF1S3U3Nk5YNytURVJDNHZiTXoKZjBPOVYzejJTemZuTXhWVE43ZnFVUGdnSTZlWHVHQnBNMEdMams3Mngwc1BSaHBTYU9JWEJDVzBsUjJZOHFsbwpCMXUrTlE2ZXk2bWNOaU9iNVNiNzFvU21vemkxN2JkNThMdzN5UFc2UjdITW1zVFlaNFg5WUg5alVzVWdiYkNPCnBXZXc5eXljVVhoaDMwUUZGR2Q3VVJsNWNHN2NVUXNYTHFVSTRjalhqcWdGeHo4aHZyWHV0MU1wZXJHMi8vWTAKdnI5T29XU2V6OFFTTzk3cVJCak9VRm5CWWRhbG5CQitEZWFqbzFxZ1ZtbE5xRDN3eks3bXRtZzZoOU56RmNmcQprdWJrL0hVNERPQXVkcjA3N1lXWURnV091QWR3eGpVMGpQS2RrdjRNZngrSnUzVVgrL1lYWXdENUgyK2p6aTlICmxFNFkxME85cllDbDYrUXR5TkNEOHZDeGUvU0JPaWxEOWNqTjZPSHB0MVNRNnNwTEFuTlBZTDM5NzBaQ2ZTQ20KbFh3c0c0clhOQWVoRTR1Y0RqVXdJVzlBdEFlajVlM3dvYkQ1UnRxWExxRTdFRmtYblV2OEZ1cU9RTWYwQVFWbwprdW0ySVRLcWZVVG0vN2ZDR0FWTGtobFB3aGJtNVFJREFRQUJBb0lDQUMyR2hEc1pUaWtiTERQMlR6Q2VkOVVoCmJRUlpsbDdLaUxHcXZYNm9VdjhJcFNLdTJrS3h1blpkTzVvQk5NbzNnNTg4YzRSQkFrQ1d6dmJObzFjeDJ3UTQKSkd3ZTdYaGM5TDdYbUwxUFZjNWlJdnVYOFVBTFY3eUdwMXZONklPSC9BYVJsSFlZZHl3UURVSTcwZGZiMmJqRQo2d3dORHRVbk1Ea3NncjNLbExwamNiNEFla2dxWE9MRUFMMld1Nkt1T1hOankrdUU3b2hnVWN3bWlYWXZGb3VMCm1KYXVlS3l5U202NHdJZnpZQ1JwbUhHMVlCTGpic0xJb20zcmZYRkl3V1hqMkhBSGFIOFRWOVhyUmpwR2tEZm8KbFFqN3l0R0s2ZkllMWcva0ZBN3hDWDE2d1NYMS85bjM1WGYwVmMwZ08zdE9NVHJkM1JTVVNEaVp6eVR1WWxuZwpETEdmYXZjRS82QXJ5cTlWZ3hyUXdXbnZhd0hIcWxBWUtxVHpJYkRJS0Y3SjRYTE9FckFtRE50T1I2Lzc1WjJ3CnVPQlFYT0N3NFM1dWxWdzhIZUM0NGlFTmxJYU5lNDNWTkZUTGtRM3lCeW96VVlYWTN2eEJXMWpURFpFOTB5YTUKZzk4cmFiYWhIS0lockpGYzNXYTE0RWhicUE2TVVLSXRRTkk4K1N1Rk1KV3R4VW1iM1cxK2dHbXJvTmo1TU9kYQpzdjV5OThTYS93UUc4dGc0cmdNQ0xpQVNHL3hudDB3RURrNXFDVUUxRzRSdkdOeUYxU09zNk82c1BTOTg4Umd4CnJuamQvWWZoME5xVnhHcHFGNnhpQVgvZXkyU0NGUWNybEtmNnhGREF4YjI4RTdaNnRQSUZCTWxpQ1IrbzdYR3MKZDNvUWVuMThCalM1NjdtR2ZmNkJBb0lCQVFEanFFcHZqOVhJVVB3bk1RZitRY3R0R1pXZEp2bFZSa1BSMW9maApSVWI2UHdFRkEwdVQyM011ZmFvNGI4bWIrM2Vra1BkYTZmbWJqUGFUckQrbk5YNGxyRE5oYytvcVY4aFVEQnA0CmpVcEg3OXorTVNUZVVQclpnS3VMeEdqaDJiK0FWYVZjZTI2STVYUXVoUnR6ZHFYZDlIeSs4YXpYRTltbHlPQ00KMUpEK2VHZWxhaVJMbEZBbVRDNDNoNlV5T0Q5SmZOSW1oWDQ2WDJRRlFsbGc1cWxVdWQ4Ukx3eFViZTJoYzhTWQp4VnVvYVZSSUdBSmhqRkd3ZVhnRjdzc0tQNXBZMHRkTlNvSGsxeHRnUmVJTlllZFU1cmtpKzloZTN0cStqWUdJCmxVcVVzYzNzN3c4cUk1UXk5NGdmcUI5Lzd4K3BFdGEvak9leE4yL1pGOFJGSXVucEFvSUJBUURaSUpUaUUxKzkKc2xnQ0NGVllLR3Z5aE5odkppck94enlOUWU3YjIvZmxQNzVHd0pTTWpZZTdoTmhGK3JrZHRJcXF5dWxyeGF3YgpPbWliU0FCSG5kT20ycDRMdDhaK20vQXZaRUgzVklLdWkwY0xVbTlKRXNsWURVcFIrdG5BemloNzdrS2FlVzlnCk1wdlpiUzZGdXE2ZlBZQUJyK3dXeU1IazR0UnRNZ3duUFRtSzZQTW85b3FIUURTSVJjL3N0N2hBTUwwMDdtNlEKOTJkRXRqNTNtSTBURTRISVhtY3hZbjV5NGVJLy85aEFMb2xFa0ZHWDU0SmNMdWpDWWkwQ3RIU0xDcnNmQkJwZgpDS2NaMk5sWFNiYVREU1prZWhnQWFWTlM2OVp1K1o2eGFvNmZZMjVxSnNmeXlaUkNjSzJYY0FoUDV2QWNUbWhQClNKUFJZc1dSNXZ1ZEFvSUJBRmtRRXFiWWg1TkprNHdsazNIMS9ZYWVGcmtYY1QzYU1sZ2FiS2hGdVFIWHVpZGkKNWFOZm5BMFpIb25idWV6ckVTQnhra09mKzRYT1BQMEN5eGc0UmpTb3pLVVlld2k3dE9Ta280cDhCQTVtbVhkYwpkSWNBK1ZJMEUyaW5tenlZT21JVG41Q3h2VW1UTXNPc1VWUDNtK1pjYXAwczRTaDNYSk9PSmNNU3VmTEQyaENOCm1NdDBwM0tFSlNTV1RadDdBODlWSk1YclBibktiYy9jNkNpUHRMa3Z5a1BudXhRZ3VYR0xYK05BZXA1RkxyTFIKcWNUTjUzdDUyZW5BUlBDcWQxQytrM3BxWnF6SE5xK1FSMkppNWVTQ0t2V3p2eTlHVWg5d0xyZm5aL2tLSW56SgovWTNIdzRlNDdTa3RWYjF3S0Z1MXdndklMVEJZZHNwZ2tPbFhRbGtDZ2dFQUtKYVJuazFXMldRc1ZYenZUMEtICkkxZTRDZGNOcTRmTkJ1N3JVc2drNkFMcGM5cHVLblFPaW54RDNaa0gzOGl2SDB3OUpEdFlkK0tNU1hMRk1wNEwKUWFhZVlyeGc2NndFMHljZnViZGZrbmRRdVlvWWFZV01nOXhBSjJFSU1hV1lKY3FkUXJrdW04SDZKa1BsclhQLwpUcDgxZlp0QU8rWWRjTWNDUk1OVlNFU0dyRFB0dUp1VnU4REIwVE9Uc2NHS1BOMmZrUFI5VUxZZTVOWllpUXpJCldtZU1IRU9oY0xiandsLzlaazlTUW5Vd2pkT1luUmZXNDVxVlFqa09CdkpxMHM4WHVhMlBySEkyb250SjdhcEcKNmVoTVkvMzYzS0RUeGExMmNWcFNVd0lEVlVKR0VxdmJOc1I5NVltZ3VhMWtzR01RUVlwYXIyOTJ5bTUzVmxYaQpkUUtDQVFCTUFYS0RaNVZobHBRR1VlUk1FNVhqVm1KOE1WdlZTUzV3NzBGOC9CS0ZnZFBJNnR2Nkx5UGh3OTRPCmxZVldoOXJmdUpmbWllK1ZJSWhaeSthUVNpVVhGQUtTdjZFTWJ1bXdjN1pUNEkyYitDTXQxUEhaTEZtUEN0OXAKOEorUDdoaDlRYWRBYzZqZEdSa0NMNkpMU3VoeWhMbW90SG9IS0ZJazdhNENNZGl2QnB3SVdxMWVScHd0aWRrNwpIdytrdlJ5YW5DMUJVU1dYNGxJcW1LanAyR1B2UDVVdVV2RUlPNitqaWFyWTJDTUNKb3BtcVJ2WWQzNGtSVkF1CjZueFl4a05neEFQSnVWN2tkZVVzQXg5Q1FZcFQ1blFmendtdlVGa0FraHJoTmw5dUJRUDhMdkZORFQ0cWU0bFcKUWw0cXRFZFNiZDVxVWVVdkgzOG5JMmpTVDVMawotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==
wildcardTLS:
# self signed wildcard cert for *.wlan.local
cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZEekNDQXZlZ0F3SUJBZ0lVYSthaVJZWG9QTGliSS9wdVJCdi9DZ2RTTDNzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0Z6RVZNQk1HQTFVRUF3d01LaTUzYkdGdUxteHZZMkZzTUI0WERUSXdNVEl5TVRJd05UQXpNVm9YRFRNdwpNVEl4T1RJd05UQXpNVm93RnpFVk1CTUdBMVVFQXd3TUtpNTNiR0Z1TG14dlkyRnNNSUlDSWpBTkJna3Foa2lHCjl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEwQjhuZE1raGIzZEN6N0I2aS9kRlFWenJwaEtQK2RmY2JKN1gKMzB3MU1FWDIvM3ZvVStkRlBNbnZrS3hEdFJwanZCbnhCczF6L1VmajlyUFhDSzZkazNNYU5DajRQYVUxem9WQQppK1Z6amc0ZG5XNjJxWG1qYVYrYUMrQm5zQndyQmx2THQ0dkh1eFRLbHh1RnR4THdid3VObGJvS1lVN01kV3oyCllMY3QzUWZBWElVb2FRK1RTMUZGdVdFeEZOTFRidlBGZWNoajB4ZnhyOU5BcU9aTXI0RGE0NHMzVERxMVVyRTIKbjhaZXFxVXZ1YUE4ZmEzQjNVZVRFNmJ4OEdhN1JybG5Dakd3UDRGVml3ajdvellmanV6T2JOM2dlcjdWcEpLMQpMSjdIdDBBemZlRm9aQ2xPbUVBd1p5alFwRGZOckdNTCs1dWtIK2JxWngyaUo5UndFcDNmdlE4em5jN1Q4dHJDCmxzMjRWNUpySWhUQXlCcTZRWVNnSXdXM2V5TmVpUnQ0ZHp6Sk5rNnd4cFp0WE96WTFwamJrV2FMaEhKOW1LRWoKU3lqVVBnS3dKSVlmb3BJbTJoUzl1dVZHZDdiU1MyV055aHJSOU5LSG5Lamo5Y0IrUWU0eEh0Z1pEcm1GZ1ZpZQp0cXZBUHhJL0ZkV1pSN3RmT2JCNTR3alMxVFk3TEd6cll4TDZSMWNjZDE4WUppcGNTS05xa05ORlllZ092VkNICmFldW1OTUdVNlZZalJWS1JmQXMva2FzcWxleGpheSt0SXNtd3dDZGoxUUN3UitRa2VEZFdoNE8vQzM1NENRb28KTkxZYzRNRk8xbVVDY2NsbUgvbFBvcTd1anBCMWI2VmFBNVprNFhjVUpRc0c4SUlSMDFHTFM5RW1HVVZaeTlOWApwV2dCbXNVQ0F3RUFBYU5UTUZFd0hRWURWUjBPQkJZRUZOZlVJSGhXdnFwUzg2ZC82SnJvbmxFYzZMU1NNQjhHCkExVWRJd1FZTUJhQUZOZlVJSGhXdnFwUzg2ZC82SnJvbmxFYzZMU1NNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHcKRFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUtlTW9PckhLZ3BGemtkckVhMVhSSVRUOHFZanhKc04yNmFIMFovLwp1dDRXVkE4ckNDNzV4VkpaNnpBQWlBOFE2eTRYSHBzRzl2ZSs1QlJIWEdCS0lYOU5FZGNrbWdNdExzQ2xOR0JCCkxkN3lWd3hhaGVCQzhVTWIrVTAxMlNwaFc3K0t6UFJhQ3g4cHNMMUlFQUkyblQ1MzlCNDBmR2NyTktNSDRqZGkKdkxad3VxT00rZnJucFJ1MkZlK3Bja2Fwek92SEJTb0I3THovR1dmMWUwZ0llc1B4WEdmVG9hbGM1SzU5bDF1TQpCTkhpUW15S3E4TS9MbllMejhyOWp3dHNKU2lLYUljelpISjNtQ0ZUb3ljREF3NTl3WEdmWXZWcFBMaWZXTTJxCm1uSlJKM2dQS1lzOUhXWFgyYktoSmZoMjRLOTN2M1duMVRUellYOGtTbWlnRG0wTUhOSTNwZktlMmJqVW9MNmgKMlQ4bWhRbjdPQ2dvZHMvOXczR1dOdmFxYTAySHRnc0tTbk9YdmpSNXFMaVFLRjdhMi95TTlrNWNQcUdHaW1GYgppUWV3eUgvMWw2YjQ0T0s2RGwwMVltWFltNUVqR3plckp2aU90eUhSaWhtME01VmNBWWJaYkE0S1Y1eHhLZjRqClIwaktwQXdqbEpzTDdRMk9zTC9IRkxmaDV1RU1HMXlmTzF1blZkVURKK1FBZHJQUG5tZTZVTVFQZm1UcGx1WjAKS3pvOXY3NEpYV0pwQkNtaWNTbFBQdnB3cXZLTk5iOWd6b0hjOXFheWMwNWVxRldRbzNNZjIzYU82b05wU2ZuaAp5aWMvczFQcC9ZS2FHakVSQXB1UmRvYTlWT1diUncycFZMei9rZVNraS9QTDJFRFc4RUVHYjFXcUFBMkJPVVhDCi9oYXQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Mwd2dna3BBZ0VBQW9JQ0FRRFFIeWQweVNGdmQwTFAKc0hxTDkwVkJYT3VtRW8vNTE5eHNudGZmVERVd1JmYi9lK2hUNTBVOHllK1FyRU8xR21POEdmRUd6WFA5UitQMgpzOWNJcnAyVGN4bzBLUGc5cFRYT2hVQ0w1WE9PRGgyZGJyYXBlYU5wWDVvTDRHZXdIQ3NHVzh1M2k4ZTdGTXFYCkc0VzNFdkJ2QzQyVnVncGhUc3gxYlBaZ3R5M2RCOEJjaFNocEQ1TkxVVVc1WVRFVTB0TnU4OFY1eUdQVEYvR3YKMDBDbzVreXZnTnJqaXpkTU9yVlNzVGFmeGw2cXBTKzVvRHg5cmNIZFI1TVRwdkh3WnJ0R3VXY0tNYkEvZ1ZXTApDUHVqTmgrTzdNNXMzZUI2dnRXa2tyVXNuc2UzUUROOTRXaGtLVTZZUURCbktOQ2tOODJzWXd2N202UWY1dXBuCkhhSW4xSEFTbmQrOUR6T2R6dFB5MnNLV3piaFhrbXNpRk1ESUdycEJoS0FqQmJkN0kxNkpHM2gzUE1rMlRyREcKbG0xYzdOaldtTnVSWm91RWNuMllvU05MS05RK0FyQWtoaCtpa2liYUZMMjY1VVozdHRKTFpZM0tHdEgwMG9lYwpxT1Axd0g1QjdqRWUyQmtPdVlXQldKNjJxOEEvRWo4VjFabEh1MTg1c0huakNOTFZOanNzYk90akV2cEhWeHgzClh4Z21LbHhJbzJxUTAwVmg2QTY5VUlkcDY2WTB3WlRwVmlORlVwRjhDeitScXlxVjdHTnJMNjBpeWJEQUoyUFYKQUxCSDVDUjROMWFIZzc4TGZuZ0pDaWcwdGh6Z3dVN1daUUp4eVdZZitVK2lydTZPa0hWdnBWb0RsbVRoZHhRbApDd2J3Z2hIVFVZdEwwU1laUlZuTDAxZWxhQUdheFFJREFRQUJBb0lDQVFDUVRkbXN4enl3cmUrY1ZCQlVkaW9GCjdTalRhTEY5bWFlVGhQdkhMMjc5dnJWSlpoK3I5WUp6YU16NzhnV3NUOVR4ZXNjOVlUMVlVLzJEZENUWU4wSzUKRnlrSEc1VXNJUjVTeU4vOVlDWWtURE5La3BhQ29mMmxOWTE1U0twOFdMdVlXQlBEZTE4TW41anM5ejlhdGY0Ugo4Ti9GL2szdU5KWGRvYVNmWU1Pakt4bTh6UE05RFhpaTA0SlZ6RWNjMmlXU0crSkQwNmNybWNHUm1SZVBSTWZOCk5Mb1E1ZGw4dUlRN0J2Y0tCNkJpRDlFc2t5YitPWGxmTlo2TUZNaFNXTmpuYSt3L0REN1plWkxYcVczWk45RGYKNStBbGFoNlkzVE1EUGxueXkxRk5CVzN1alZrMWdkS21ESFBEUTNDUFBNWVdEa01qdlVJcWdKRHMySVl6dWIvTwpXRjRVUTV5UEJhZzluaWp1dS9uMVZDdGZuSkxwakZIakU1VzdkK3p1UGh6aUJ1WDFOcjRtOVVJdEpaSTNsYmJtCmdvZFlMdGl4b3RwNWF3ang1eXA3MU1zUHlTZzcrbHBPenA4dStuRENJcnc0K0VSME56MG8yTXFmcmJ2VklGQXIKWHIyc2YrejljbmtxalBWWEZaVks3em1TUHI5N0YrbTV4RHpURG9lTG53aVlhUUpOQ0ZhejhMVERjNldVT2w4SQpLOWhHd3FaK0llTlgreW16em16Nkx6WWVPaGlrRmNRaUI0UXVPSjdWWnZWRmVoS3JJMXJLWHJDRU01VmpJZXBkCkhzR0c1eTlLUkcxdEszSU5ScmI0SHlhRDF6SHJSTHRneFpLT1BvWDN0UjNmbTJ1aGova3dwelZnWTltRXJDWDkKd2I4SVA5TXdRR3REQVNBcjZWVmJvUUtDQVFFQThIeWlaK1lVeFEzQnprL1hoNmZMWWNYakE3NTJrQ204VWZzWQp0d1Z4N0EyNW5YRStiUDRIT3UyVC9kTlc0Tkw1elZPT0JkaWZIcTJQVFNVMGYzQUFHL0pNcnVzM3NrNHd4azM5CitYYlh0dHltWkdxb3FEcVN3TUw2czVpY1RnangvenRhSXk1TWFKYWhUYUpNdFRQQlVpZ3U3enhoeGNwVlhNVUMKTklHcFl5Mkt5R2hyMjVVOFdlR0RYQm9SS2xYUXJXYkNZeW1kMXdYQStEaVl0dzA5eit0VHhPNTRodjFCZkJKZwpWMGd0VWdJU0I2WEZDMU9CWDZXQ1pXYlhCN2hPaHhISjNkNHAyQlZyN0gxL2JDQ0ZvVDY5by9WQVNHRmdtTHRiCnpGalRNbjFIaTluVW5jUFlScWpsN1h0NWdPOHBOa3BwMjVrNHIxRVludWhIazcrYzdRS0NBUUVBM1l3THozNloKNEVPRndvODIrUlVId2lkaFExOEdrU1JvWStKVm1udXJpSXdHZTk3ZmRTVk91d092SDlZSVhsRWpjRitoOHFQVQpJVnpIOXBuYXZjTENEMnhIOWZ5d09ML3pmYmJnYnExZjV4Y3BOUXlYM1JnTGFDUVpLNkpJa3NzOUtDb0dhSzlaCmpMVm41MjFFZlFBRE5DSi93YlRCb3dLQ0dTNDUzSzRBaWFEWHN6TkJLUk5MOHVaWWYwK0x0U2IzV3lkZVQ2eUgKdGZiSXR3NlBSS1lxb2NaeGIrM0pWQWFHcGxScjVZSlNDU1BtTjFMSjU0djlTcXBIVnJMNzJudFNwKzdDODJ6SgpJajVOSXFEOGFsOVZ3WFB5dExRd25hYWc1TW5ka0NLQ3R0MlVHSGZwMEh3ZTJTL1hkemppS2gzZTZaT3MyMSt1CitQUHVrSkUxTTZzU09RS0NBUUJjWVJRbDR6MUJRUHFjM1JESEhJN0UvVFlxWHdTK2RqblFLQ3VqU3FVcmIwNUoKQzVKV1hmSzdFVDVUTjliY3dFNlRNRENUVUZZM2U2WmJsUm9vaGdhVXRhdjlXWC9vcjU2TzNyRGNIbW5ZNWNQSgpPU3VXakFHSnFKeVRWdUZjSEpXUlhPUlFOVjNHbzI1Tkd6WnFPUHBmSys1em1mZFkrbE4yTW51WlhlR0twcGowClNTQjlsa003cDZSRlFnSXNDQkVFTzBBYXhZYkxiWHRtSHArVFdiUFA1ZThrN0JKQ2tKQ1NMNkR3aGxwYWNVOHAKdnVVRlo4dC95VjFneEhOL2xLNGR0cGliOE5hVUdnNStKdXRHeHV0dU9HS3kwK2dncGI5c2pEUkVPQzdRNjAwTApqTjdleDdlUjFSbVY4Mk9HUXRqSzhTVGU1V25mOXNBRmN1YmorNncxQW9JQkFHYXM4Z2hQRHpkOWM2OXd1alNFCkI1MTJyTUFSZVRTcEgrd3l5Q09aYnkwUVlDem1aTCtnODdUK2h4b0ZFc25MWnRZOHJBeU0ydEkvY3JrYUl1TlIKTUtqL01QYVREb1N1aVVWWkRQaWVSMVVOU2Q2NUlHU3FNUmNwcTdTcU9HSTM2UGNGU3dVWFJ6Uk1Hb1NLQW5UQQpIYnY2eFNUY0JlWHJVcW9pMzFRa0hFR3NsbXNKdFFnNVZqaVRncTQyQ25TQlE2QXVSYW85Tm9RaGhISTZRREc3CnBRUm11TW43OVJPSkZyeGRZY2Z6TnR2ZmxHRk5jQjlzcEk0SERwcml4cEJDR1ZPVTl5cmozdStNMmlqVFhVaGIKT0o0NGcySTJKRlhjRkxNVHp5aHVwZy9qN3kvTDIwUHhVa2Fyd25zUmxOZWFFbVpFTjVkUDZBS2U0cENEaTVtUApqaGtDZ2dFQkFMUmtVeG9oZDh2ZVBwR3hPbWlOak5HekpiTDlscGx0TWxhR0dPQ3JOUkZSeEppblgzWU9UVnhiCkRFVlpqaXRHNldydzFxaDdnZXAzeEdJaWZHQ1lZV3pNc0RZTitueGtwV0lRRmZOV3dYemNRWlhrTEduZVlUdTAKSVU2RjY5Myt1Q0tkcHVCdVl0d3BQNEJCVkNCRTVON0FzRGV4bFBYTzk1cEw3ZzR4OG5RckdNeGJlRXVOdytaTwpPYmYvTnFFMGZZcURkaERiVHI0UDR6bUpBRlpYeDlKMjNJdWRMUFI3MDZITGZ5bDMrb1pUS2Y2ZWdEL1drWXZGCllLdEtDZzI1UmtSYmZBakZkeDlpOVkzcDlPNEFNVUNaRVFIOWQwU1d6LzJWR0VmYzVha09YL2xvWlAyUXF3c2UKeXMyc0k1U0Z5TEd1ZGM3R2MzVTd5UGd0RVN0elVoWT0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
zookeeper:
enabled: true
replicaCount: 1

View File

@@ -0,0 +1,285 @@
# This is a development override file.
# It overrides the default Tip-Wlan parent chart behaviour
#
# It can be tweaked, based on the need to support different
# dev environments.
# This file expects to have a GlusterFS storage solution running
# before "helm install" is performed.
#################################################################
# Global configuration overrides.
#
# These overrides will affect all helm charts (ie. applications)
# that are listed below and are 'enabled'.
#################################################################
global:
# Change to an unused port prefix range to prevent port conflicts
# with other instances running within the same k8s cluster
nodePortPrefix: 302
nsPrefix: tip
# image pull policy
pullPolicy: Always
repository: tip-tip-wlan-cloud-docker-repo.jfrog.io
# override default mount path root directory
# referenced by persistent volumes and log files
persistence:
# flag to enable debugging - application support required
debugEnabled: true
# Annotations for namespace
annotations: {
"helm.sh/resource-policy": keep
}
# createReleaseNamespace: false
# Docker registry secret
dockerRegistrySecret: ewoJImF1dGhzIjogewoJCSJ0aXAtdGlwLXdsYW4tY2xvdWQtZG9ja2VyLXJlcG8uamZyb2cuaW8iOiB7CgkJCSJhdXRoIjogImRHbHdMWEpsWVdRNmRHbHdMWEpsWVdRPSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTkuMDMuOCAobGludXgpIgoJfQp9
#################################################################
# Enable/disable and configure helm charts (ie. applications)
# to customize the TIP-WLAN deployment.
#################################################################
opensync-gw-static:
enabled: false
opensync-gw-cloud:
enabled: true
externalhost:
address:
ovsdb: opensync-controller.wlan.local
mqtt: opensync-mqtt-broker.wlan.local
persistence:
enabled: true
filestore:
url: "https://wlan-filestore.wlan.local"
service:
type: LoadBalancer
annotations:
metallb.universe.tf/allow-shared-ip: default
scalability:
#how many concurrent connections single instance of OpenSyncGateway can accept
tip_wlan_ovsdb_listener_threadPoolSize: 50
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 100
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
opensync-mqtt-broker:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: microk8s-hostpath
service:
type: LoadBalancer
annotations:
metallb.universe.tf/allow-shared-ip: default
wlan-cloud-graphql-gw:
enabled: true
env:
portalsvc: tip-wlan-wlan-portal-service:9051
ingress:
hosts:
- host: wlan-ui-graphql.home.lan
paths: [
/
]
tls:
- hosts:
- wlan-ui-graphql.wlan.local
# secretName: nginx-ingress-controller-default-server-secret
wlan-cloud-static-portal:
enabled: true
env:
graphql: https://wlan-ui-graphql.wlan.local
service:
type: NodePort
ingress:
hosts:
- host: wlan-ui.home.lan
paths: [
/
]
tls:
- hosts:
- wlan-ui.wlan.local
wlan-portal-service:
enabled: true
persistence:
enabled: true
storageClass: microk8s-hostpath
filestoreSize: 1Gi
service:
type: LoadBalancer
annotations:
metallb.universe.tf/allow-shared-ip: default
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 20
tip_wlan_AsyncExecutor_MaxPoolSize: 150
tip_wlan_AsyncExecutor_QueueCapacity: 150
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 150
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 50
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 250
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
wlan-prov-service:
enabled: true
creds:
enabled: true
db:
postgresUser:
password: postgres
tipUser:
password: tip_password
schema_repo:
username: tip-read
password: tip-read
postgres:
singleDataSourceUsername: tip_user
singleDataSourcePassword: tip_password
singleDataSourceSslKeyPassword: mypassword
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 75
tip_wlan_AsyncExecutor_QueueCapacity: 75
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 20
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 250
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
#max number of connections to PostgreSQL database
singleDataSource_maxTotalConnections: 8
#max number of idle connections to PostgreSQL database
singleDataSource_maxIdleConnections: 8
#max number of cached prepared statements used in PostgreSQL database
singleDataSource_maxPreparedStatements: 200
#max number of cached idle prepared statements used in PostgreSQL database
singleDataSource_maxIdlePreparedStatements: 200
wlan-ssc-service:
enabled: true
creds:
sslKeyPassword: mypassword
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
cassandra:
tip_user: tip_user
tip_password: tip_password
schema_repo:
username: tip-read
password: tip-read
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 100
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 250
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
wlan-spc-service:
enabled: true
creds:
sslKeyPassword: mypassword
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
scalability:
#asynchronous task executor - monitor metrics and adjust if tasks start being rejected
tip_wlan_AsyncExecutor_CorePoolSize: 10
tip_wlan_AsyncExecutor_MaxPoolSize: 50
tip_wlan_AsyncExecutor_QueueCapacity: 50
#max total number of persistent connections in the http client pool
tip_wlan_httpClientConfig_maxConnectionsTotal: 250
#max number of persistent connections in the http client pool per destination
tip_wlan_httpClientConfig_maxConnectionsPerRoute: 10
#max number of concurrent REST API calls a single instance of this service can process
tip_wlan_maxHttpThreads: 250
#memory tuning parameters for the JVM - max size, initialsize, garbage collection tuning options, etc.
JVM_MEM_OPTIONS: " "
nginx-ingress-controller:
enabled: true
controller:
service:
type: LoadBalancer
annotations:
metallb.universe.tf/allow-shared-ip: default
config:
externalStatusAddress: "api.wlan.local"
defaultTLS:
cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZXakNDQTBLZ0F3SUJBZ0lVUU5hUC9zcHZSSHRCVEFLd1lSTndieFJmRkFzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0hURWJNQmtHQTFVRUF3d1NkMnhoYmkxMWFTNTNiR0Z1TG14dlkyRnNNQjRYRFRJd01EZ3lOekl3TWpZMQpObG9YRFRNd01EZ3lOVEl3TWpZMU5sb3dIVEViTUJrR0ExVUVBd3dTZDJ4aGJpMTFhUzUzYkdGdUxteHZZMkZzCk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBd1JhZ2lEV3pDTllCdFd3QmNLK2YKVGtrUW1NdCtRQWdUallyMEtTOERQSkNKZjZLa1BmWkhDdTN3NEx2cnh6WTlObWllaDJYVTgzNGFtZEp4SXVDdwo2SWJObzZ6c2tqc3lmb084d0ZEbWxMVldMZWc1SDlHOWRvZW0rV1RlS1BhRUhpM29xdXpOZ3Q2d0xzM212dk9BClR2aVRJb2M4OEVMams0ZFNSMlQ0ZGhoMHFLQ0NqK0hkWEJBNlYvOWJpcnUralYrL2t4RVF1TDJ6TTM5RHZWZDgKOWtzMzV6TVZVemUzNmxENElDT25sN2hnYVROQmk0NU85c2RMRDBZYVVtamlGd1FsdEpVZG1QS3BhQWRidmpVTwpuc3VwbkRZam0rVW0rOWFFcHFNNHRlMjNlZkM4TjhqMXVrZXh6SnJFMkdlRi9XQi9ZMUxGSUcyd2pxVm5zUGNzCm5GRjRZZDlFQlJSbmUxRVplWEJ1M0ZFTEZ5NmxDT0hJMTQ2b0JjYy9JYjYxN3JkVEtYcXh0di8yTkw2L1RxRmsKbnMvRUVqdmU2a1FZemxCWndXSFdwWndRZmczbW82TmFvRlpwVGFnOThNeXU1clpvT29mVGN4WEg2cExtNVB4MQpPQXpnTG5hOU8rMkZtQTRGanJnSGNNWTFOSXp5blpMK0RIOGZpYnQxRi92MkYyTUErUjl2bzg0dlI1Uk9HTmRECnZhMkFwZXZrTGNqUWcvTHdzWHYwZ1RvcFEvWEl6ZWpoNmJkVWtPcktTd0p6VDJDOS9lOUdRbjBncHBWOExCdUsKMXpRSG9ST0xuQTQxTUNGdlFMUUhvK1h0OEtHdytVYmFseTZoT3hCWkY1MUwvQmJxamtESDlBRUZhSkxwdGlFeQpxbjFFNXYrM3doZ0ZTNUlaVDhJVzV1VUNBd0VBQWFPQmtUQ0JqakFkQmdOVkhRNEVGZ1FVeTJiQVV5TlBYSFM5CjNWVFNEK3dvTjd0M3E4RXdId1lEVlIwakJCZ3dGb0FVeTJiQVV5TlBYSFM5M1ZUU0Qrd29ON3QzcThFd0R3WUQKVlIwVEFRSC9CQVV3QXdFQi96QTdCZ05WSFJFRU5EQXlnaHAzYkdGdUxYVnBMV2R5WVhCb2NXd3VkMnhoYmk1cwpiMk5oYklJT1lYQnBMbmRzWVc0dWJHOWpZV3lIQk1Db0FBRXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBS0grCmJxSmVlMTFuMzRTWWdCRHZnb1o4bEpMUVJ3c0ZucUV4Y1NyL3BsWjdHVklHRkg1L1EyS3lvOVZ5RWlUUHdySXMKS3NFckMxZXZINnh0MVVSZk16cDA1elZRMExZTTUra3NhbVJEYWdBZzNNMWNtN29LT2Rtcy9kcXpQZTJnWmZHSgpwVmR0VlcxQ0hyTDBSTFRSOTNoN2tnU2lCbFNFSVlNb2VLZk41SDlBYXZKNEtyeXlnUXM2M2trR1E1TTllc0FwCnU2YkIzMDd6eWZ6Z1MzdG1Rc1UwMXJnSmZoRUhRL1krQWs5d0R1T2d2bWZ4MFRXZ0FPR2JLcTZUdThNS1lkZWoKSWU3clYxRzVVdjdLZmdvelZYNzZnMktkblRWQmZzcFNLbzN6eXJaa2NrekFwdlV1OUllZkhkVG9lNEpNRVUweQpmazdsRVUvZXh6Qnl5TnhwKzZoZHUvWklnM3hiMXlBMW9WWThORWQxckwxekFWaVBlMzUxU0VORUtlSnBSYW5DCmtDTDNSQUZrYnhRN0loYWNqb3g4YmVsUitnbW84Y3lGWnBqOVhhb1BsU0ZTY2R3ejU3M0NUMGg5N3Y3NkE3c3cKeUMrQ2lTcDg1Z1dFVjV2Z0JpdE5KN1I5b25qQmRzdUgybGdFdE1EM0pOT3M4Y0NTUmloWXhyaXdaU3FoVDdvLwp0Y0lsY0o4NFc1bTZYNnpISjNHbXR1S0czUVBOT21zMC9WVm9EVHA5cWRwTCtFazE3dUIyQTQxTnB4ejNVUytsCjZ5SytwZFFRajdBTHpLdVJmT3lnODBYYk53MnY0U25wSTVxYlhGQlJ1bTUyZjg2c1BlbUZxMUtjdU5XZTRFVkMKeERHM2VLbHUrZGxsVXRLeC9QTjZ5ZmxiVDV4Y0dnY2Rtcnd6UmFXUwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRUUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Nzd2dna25BZ0VBQW9JQ0FRREJGcUNJTmJNSTFnRzEKYkFGd3I1OU9TUkNZeTM1QUNCT05pdlFwTHdNOGtJbC9vcVE5OWtjSzdmRGd1K3ZITmowMmFKNkhaZFR6ZmhxWgowbkVpNExEb2hzMmpyT3lTT3pKK2c3ekFVT2FVdFZZdDZEa2YwYjEyaDZiNVpONG85b1FlTGVpcTdNMkMzckF1CnplYSs4NEJPK0pNaWh6endRdU9UaDFKSFpQaDJHSFNvb0lLUDRkMWNFRHBYLzF1S3U3Nk5YNytURVJDNHZiTXoKZjBPOVYzejJTemZuTXhWVE43ZnFVUGdnSTZlWHVHQnBNMEdMams3Mngwc1BSaHBTYU9JWEJDVzBsUjJZOHFsbwpCMXUrTlE2ZXk2bWNOaU9iNVNiNzFvU21vemkxN2JkNThMdzN5UFc2UjdITW1zVFlaNFg5WUg5alVzVWdiYkNPCnBXZXc5eXljVVhoaDMwUUZGR2Q3VVJsNWNHN2NVUXNYTHFVSTRjalhqcWdGeHo4aHZyWHV0MU1wZXJHMi8vWTAKdnI5T29XU2V6OFFTTzk3cVJCak9VRm5CWWRhbG5CQitEZWFqbzFxZ1ZtbE5xRDN3eks3bXRtZzZoOU56RmNmcQprdWJrL0hVNERPQXVkcjA3N1lXWURnV091QWR3eGpVMGpQS2RrdjRNZngrSnUzVVgrL1lYWXdENUgyK2p6aTlICmxFNFkxME85cllDbDYrUXR5TkNEOHZDeGUvU0JPaWxEOWNqTjZPSHB0MVNRNnNwTEFuTlBZTDM5NzBaQ2ZTQ20KbFh3c0c0clhOQWVoRTR1Y0RqVXdJVzlBdEFlajVlM3dvYkQ1UnRxWExxRTdFRmtYblV2OEZ1cU9RTWYwQVFWbwprdW0ySVRLcWZVVG0vN2ZDR0FWTGtobFB3aGJtNVFJREFRQUJBb0lDQUMyR2hEc1pUaWtiTERQMlR6Q2VkOVVoCmJRUlpsbDdLaUxHcXZYNm9VdjhJcFNLdTJrS3h1blpkTzVvQk5NbzNnNTg4YzRSQkFrQ1d6dmJObzFjeDJ3UTQKSkd3ZTdYaGM5TDdYbUwxUFZjNWlJdnVYOFVBTFY3eUdwMXZONklPSC9BYVJsSFlZZHl3UURVSTcwZGZiMmJqRQo2d3dORHRVbk1Ea3NncjNLbExwamNiNEFla2dxWE9MRUFMMld1Nkt1T1hOankrdUU3b2hnVWN3bWlYWXZGb3VMCm1KYXVlS3l5U202NHdJZnpZQ1JwbUhHMVlCTGpic0xJb20zcmZYRkl3V1hqMkhBSGFIOFRWOVhyUmpwR2tEZm8KbFFqN3l0R0s2ZkllMWcva0ZBN3hDWDE2d1NYMS85bjM1WGYwVmMwZ08zdE9NVHJkM1JTVVNEaVp6eVR1WWxuZwpETEdmYXZjRS82QXJ5cTlWZ3hyUXdXbnZhd0hIcWxBWUtxVHpJYkRJS0Y3SjRYTE9FckFtRE50T1I2Lzc1WjJ3CnVPQlFYT0N3NFM1dWxWdzhIZUM0NGlFTmxJYU5lNDNWTkZUTGtRM3lCeW96VVlYWTN2eEJXMWpURFpFOTB5YTUKZzk4cmFiYWhIS0lockpGYzNXYTE0RWhicUE2TVVLSXRRTkk4K1N1Rk1KV3R4VW1iM1cxK2dHbXJvTmo1TU9kYQpzdjV5OThTYS93UUc4dGc0cmdNQ0xpQVNHL3hudDB3RURrNXFDVUUxRzRSdkdOeUYxU09zNk82c1BTOTg4Umd4CnJuamQvWWZoME5xVnhHcHFGNnhpQVgvZXkyU0NGUWNybEtmNnhGREF4YjI4RTdaNnRQSUZCTWxpQ1IrbzdYR3MKZDNvUWVuMThCalM1NjdtR2ZmNkJBb0lCQVFEanFFcHZqOVhJVVB3bk1RZitRY3R0R1pXZEp2bFZSa1BSMW9maApSVWI2UHdFRkEwdVQyM011ZmFvNGI4bWIrM2Vra1BkYTZmbWJqUGFUckQrbk5YNGxyRE5oYytvcVY4aFVEQnA0CmpVcEg3OXorTVNUZVVQclpnS3VMeEdqaDJiK0FWYVZjZTI2STVYUXVoUnR6ZHFYZDlIeSs4YXpYRTltbHlPQ00KMUpEK2VHZWxhaVJMbEZBbVRDNDNoNlV5T0Q5SmZOSW1oWDQ2WDJRRlFsbGc1cWxVdWQ4Ukx3eFViZTJoYzhTWQp4VnVvYVZSSUdBSmhqRkd3ZVhnRjdzc0tQNXBZMHRkTlNvSGsxeHRnUmVJTlllZFU1cmtpKzloZTN0cStqWUdJCmxVcVVzYzNzN3c4cUk1UXk5NGdmcUI5Lzd4K3BFdGEvak9leE4yL1pGOFJGSXVucEFvSUJBUURaSUpUaUUxKzkKc2xnQ0NGVllLR3Z5aE5odkppck94enlOUWU3YjIvZmxQNzVHd0pTTWpZZTdoTmhGK3JrZHRJcXF5dWxyeGF3YgpPbWliU0FCSG5kT20ycDRMdDhaK20vQXZaRUgzVklLdWkwY0xVbTlKRXNsWURVcFIrdG5BemloNzdrS2FlVzlnCk1wdlpiUzZGdXE2ZlBZQUJyK3dXeU1IazR0UnRNZ3duUFRtSzZQTW85b3FIUURTSVJjL3N0N2hBTUwwMDdtNlEKOTJkRXRqNTNtSTBURTRISVhtY3hZbjV5NGVJLy85aEFMb2xFa0ZHWDU0SmNMdWpDWWkwQ3RIU0xDcnNmQkJwZgpDS2NaMk5sWFNiYVREU1prZWhnQWFWTlM2OVp1K1o2eGFvNmZZMjVxSnNmeXlaUkNjSzJYY0FoUDV2QWNUbWhQClNKUFJZc1dSNXZ1ZEFvSUJBRmtRRXFiWWg1TkprNHdsazNIMS9ZYWVGcmtYY1QzYU1sZ2FiS2hGdVFIWHVpZGkKNWFOZm5BMFpIb25idWV6ckVTQnhra09mKzRYT1BQMEN5eGc0UmpTb3pLVVlld2k3dE9Ta280cDhCQTVtbVhkYwpkSWNBK1ZJMEUyaW5tenlZT21JVG41Q3h2VW1UTXNPc1VWUDNtK1pjYXAwczRTaDNYSk9PSmNNU3VmTEQyaENOCm1NdDBwM0tFSlNTV1RadDdBODlWSk1YclBibktiYy9jNkNpUHRMa3Z5a1BudXhRZ3VYR0xYK05BZXA1RkxyTFIKcWNUTjUzdDUyZW5BUlBDcWQxQytrM3BxWnF6SE5xK1FSMkppNWVTQ0t2V3p2eTlHVWg5d0xyZm5aL2tLSW56SgovWTNIdzRlNDdTa3RWYjF3S0Z1MXdndklMVEJZZHNwZ2tPbFhRbGtDZ2dFQUtKYVJuazFXMldRc1ZYenZUMEtICkkxZTRDZGNOcTRmTkJ1N3JVc2drNkFMcGM5cHVLblFPaW54RDNaa0gzOGl2SDB3OUpEdFlkK0tNU1hMRk1wNEwKUWFhZVlyeGc2NndFMHljZnViZGZrbmRRdVlvWWFZV01nOXhBSjJFSU1hV1lKY3FkUXJrdW04SDZKa1BsclhQLwpUcDgxZlp0QU8rWWRjTWNDUk1OVlNFU0dyRFB0dUp1VnU4REIwVE9Uc2NHS1BOMmZrUFI5VUxZZTVOWllpUXpJCldtZU1IRU9oY0xiandsLzlaazlTUW5Vd2pkT1luUmZXNDVxVlFqa09CdkpxMHM4WHVhMlBySEkyb250SjdhcEcKNmVoTVkvMzYzS0RUeGExMmNWcFNVd0lEVlVKR0VxdmJOc1I5NVltZ3VhMWtzR01RUVlwYXIyOTJ5bTUzVmxYaQpkUUtDQVFCTUFYS0RaNVZobHBRR1VlUk1FNVhqVm1KOE1WdlZTUzV3NzBGOC9CS0ZnZFBJNnR2Nkx5UGh3OTRPCmxZVldoOXJmdUpmbWllK1ZJSWhaeSthUVNpVVhGQUtTdjZFTWJ1bXdjN1pUNEkyYitDTXQxUEhaTEZtUEN0OXAKOEorUDdoaDlRYWRBYzZqZEdSa0NMNkpMU3VoeWhMbW90SG9IS0ZJazdhNENNZGl2QnB3SVdxMWVScHd0aWRrNwpIdytrdlJ5YW5DMUJVU1dYNGxJcW1LanAyR1B2UDVVdVV2RUlPNitqaWFyWTJDTUNKb3BtcVJ2WWQzNGtSVkF1CjZueFl4a05neEFQSnVWN2tkZVVzQXg5Q1FZcFQ1blFmendtdlVGa0FraHJoTmw5dUJRUDhMdkZORFQ0cWU0bFcKUWw0cXRFZFNiZDVxVWVVdkgzOG5JMmpTVDVMawotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==
wildcardTLS:
# self signed wildcard cert for *.wlan.local
cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZEekNDQXZlZ0F3SUJBZ0lVYSthaVJZWG9QTGliSS9wdVJCdi9DZ2RTTDNzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0Z6RVZNQk1HQTFVRUF3d01LaTUzYkdGdUxteHZZMkZzTUI0WERUSXdNVEl5TVRJd05UQXpNVm9YRFRNdwpNVEl4T1RJd05UQXpNVm93RnpFVk1CTUdBMVVFQXd3TUtpNTNiR0Z1TG14dlkyRnNNSUlDSWpBTkJna3Foa2lHCjl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEwQjhuZE1raGIzZEN6N0I2aS9kRlFWenJwaEtQK2RmY2JKN1gKMzB3MU1FWDIvM3ZvVStkRlBNbnZrS3hEdFJwanZCbnhCczF6L1VmajlyUFhDSzZkazNNYU5DajRQYVUxem9WQQppK1Z6amc0ZG5XNjJxWG1qYVYrYUMrQm5zQndyQmx2THQ0dkh1eFRLbHh1RnR4THdid3VObGJvS1lVN01kV3oyCllMY3QzUWZBWElVb2FRK1RTMUZGdVdFeEZOTFRidlBGZWNoajB4ZnhyOU5BcU9aTXI0RGE0NHMzVERxMVVyRTIKbjhaZXFxVXZ1YUE4ZmEzQjNVZVRFNmJ4OEdhN1JybG5Dakd3UDRGVml3ajdvellmanV6T2JOM2dlcjdWcEpLMQpMSjdIdDBBemZlRm9aQ2xPbUVBd1p5alFwRGZOckdNTCs1dWtIK2JxWngyaUo5UndFcDNmdlE4em5jN1Q4dHJDCmxzMjRWNUpySWhUQXlCcTZRWVNnSXdXM2V5TmVpUnQ0ZHp6Sk5rNnd4cFp0WE96WTFwamJrV2FMaEhKOW1LRWoKU3lqVVBnS3dKSVlmb3BJbTJoUzl1dVZHZDdiU1MyV055aHJSOU5LSG5Lamo5Y0IrUWU0eEh0Z1pEcm1GZ1ZpZQp0cXZBUHhJL0ZkV1pSN3RmT2JCNTR3alMxVFk3TEd6cll4TDZSMWNjZDE4WUppcGNTS05xa05ORlllZ092VkNICmFldW1OTUdVNlZZalJWS1JmQXMva2FzcWxleGpheSt0SXNtd3dDZGoxUUN3UitRa2VEZFdoNE8vQzM1NENRb28KTkxZYzRNRk8xbVVDY2NsbUgvbFBvcTd1anBCMWI2VmFBNVprNFhjVUpRc0c4SUlSMDFHTFM5RW1HVVZaeTlOWApwV2dCbXNVQ0F3RUFBYU5UTUZFd0hRWURWUjBPQkJZRUZOZlVJSGhXdnFwUzg2ZC82SnJvbmxFYzZMU1NNQjhHCkExVWRJd1FZTUJhQUZOZlVJSGhXdnFwUzg2ZC82SnJvbmxFYzZMU1NNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHcKRFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUtlTW9PckhLZ3BGemtkckVhMVhSSVRUOHFZanhKc04yNmFIMFovLwp1dDRXVkE4ckNDNzV4VkpaNnpBQWlBOFE2eTRYSHBzRzl2ZSs1QlJIWEdCS0lYOU5FZGNrbWdNdExzQ2xOR0JCCkxkN3lWd3hhaGVCQzhVTWIrVTAxMlNwaFc3K0t6UFJhQ3g4cHNMMUlFQUkyblQ1MzlCNDBmR2NyTktNSDRqZGkKdkxad3VxT00rZnJucFJ1MkZlK3Bja2Fwek92SEJTb0I3THovR1dmMWUwZ0llc1B4WEdmVG9hbGM1SzU5bDF1TQpCTkhpUW15S3E4TS9MbllMejhyOWp3dHNKU2lLYUljelpISjNtQ0ZUb3ljREF3NTl3WEdmWXZWcFBMaWZXTTJxCm1uSlJKM2dQS1lzOUhXWFgyYktoSmZoMjRLOTN2M1duMVRUellYOGtTbWlnRG0wTUhOSTNwZktlMmJqVW9MNmgKMlQ4bWhRbjdPQ2dvZHMvOXczR1dOdmFxYTAySHRnc0tTbk9YdmpSNXFMaVFLRjdhMi95TTlrNWNQcUdHaW1GYgppUWV3eUgvMWw2YjQ0T0s2RGwwMVltWFltNUVqR3plckp2aU90eUhSaWhtME01VmNBWWJaYkE0S1Y1eHhLZjRqClIwaktwQXdqbEpzTDdRMk9zTC9IRkxmaDV1RU1HMXlmTzF1blZkVURKK1FBZHJQUG5tZTZVTVFQZm1UcGx1WjAKS3pvOXY3NEpYV0pwQkNtaWNTbFBQdnB3cXZLTk5iOWd6b0hjOXFheWMwNWVxRldRbzNNZjIzYU82b05wU2ZuaAp5aWMvczFQcC9ZS2FHakVSQXB1UmRvYTlWT1diUncycFZMei9rZVNraS9QTDJFRFc4RUVHYjFXcUFBMkJPVVhDCi9oYXQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Mwd2dna3BBZ0VBQW9JQ0FRRFFIeWQweVNGdmQwTFAKc0hxTDkwVkJYT3VtRW8vNTE5eHNudGZmVERVd1JmYi9lK2hUNTBVOHllK1FyRU8xR21POEdmRUd6WFA5UitQMgpzOWNJcnAyVGN4bzBLUGc5cFRYT2hVQ0w1WE9PRGgyZGJyYXBlYU5wWDVvTDRHZXdIQ3NHVzh1M2k4ZTdGTXFYCkc0VzNFdkJ2QzQyVnVncGhUc3gxYlBaZ3R5M2RCOEJjaFNocEQ1TkxVVVc1WVRFVTB0TnU4OFY1eUdQVEYvR3YKMDBDbzVreXZnTnJqaXpkTU9yVlNzVGFmeGw2cXBTKzVvRHg5cmNIZFI1TVRwdkh3WnJ0R3VXY0tNYkEvZ1ZXTApDUHVqTmgrTzdNNXMzZUI2dnRXa2tyVXNuc2UzUUROOTRXaGtLVTZZUURCbktOQ2tOODJzWXd2N202UWY1dXBuCkhhSW4xSEFTbmQrOUR6T2R6dFB5MnNLV3piaFhrbXNpRk1ESUdycEJoS0FqQmJkN0kxNkpHM2gzUE1rMlRyREcKbG0xYzdOaldtTnVSWm91RWNuMllvU05MS05RK0FyQWtoaCtpa2liYUZMMjY1VVozdHRKTFpZM0tHdEgwMG9lYwpxT1Axd0g1QjdqRWUyQmtPdVlXQldKNjJxOEEvRWo4VjFabEh1MTg1c0huakNOTFZOanNzYk90akV2cEhWeHgzClh4Z21LbHhJbzJxUTAwVmg2QTY5VUlkcDY2WTB3WlRwVmlORlVwRjhDeitScXlxVjdHTnJMNjBpeWJEQUoyUFYKQUxCSDVDUjROMWFIZzc4TGZuZ0pDaWcwdGh6Z3dVN1daUUp4eVdZZitVK2lydTZPa0hWdnBWb0RsbVRoZHhRbApDd2J3Z2hIVFVZdEwwU1laUlZuTDAxZWxhQUdheFFJREFRQUJBb0lDQVFDUVRkbXN4enl3cmUrY1ZCQlVkaW9GCjdTalRhTEY5bWFlVGhQdkhMMjc5dnJWSlpoK3I5WUp6YU16NzhnV3NUOVR4ZXNjOVlUMVlVLzJEZENUWU4wSzUKRnlrSEc1VXNJUjVTeU4vOVlDWWtURE5La3BhQ29mMmxOWTE1U0twOFdMdVlXQlBEZTE4TW41anM5ejlhdGY0Ugo4Ti9GL2szdU5KWGRvYVNmWU1Pakt4bTh6UE05RFhpaTA0SlZ6RWNjMmlXU0crSkQwNmNybWNHUm1SZVBSTWZOCk5Mb1E1ZGw4dUlRN0J2Y0tCNkJpRDlFc2t5YitPWGxmTlo2TUZNaFNXTmpuYSt3L0REN1plWkxYcVczWk45RGYKNStBbGFoNlkzVE1EUGxueXkxRk5CVzN1alZrMWdkS21ESFBEUTNDUFBNWVdEa01qdlVJcWdKRHMySVl6dWIvTwpXRjRVUTV5UEJhZzluaWp1dS9uMVZDdGZuSkxwakZIakU1VzdkK3p1UGh6aUJ1WDFOcjRtOVVJdEpaSTNsYmJtCmdvZFlMdGl4b3RwNWF3ang1eXA3MU1zUHlTZzcrbHBPenA4dStuRENJcnc0K0VSME56MG8yTXFmcmJ2VklGQXIKWHIyc2YrejljbmtxalBWWEZaVks3em1TUHI5N0YrbTV4RHpURG9lTG53aVlhUUpOQ0ZhejhMVERjNldVT2w4SQpLOWhHd3FaK0llTlgreW16em16Nkx6WWVPaGlrRmNRaUI0UXVPSjdWWnZWRmVoS3JJMXJLWHJDRU01VmpJZXBkCkhzR0c1eTlLUkcxdEszSU5ScmI0SHlhRDF6SHJSTHRneFpLT1BvWDN0UjNmbTJ1aGova3dwelZnWTltRXJDWDkKd2I4SVA5TXdRR3REQVNBcjZWVmJvUUtDQVFFQThIeWlaK1lVeFEzQnprL1hoNmZMWWNYakE3NTJrQ204VWZzWQp0d1Z4N0EyNW5YRStiUDRIT3UyVC9kTlc0Tkw1elZPT0JkaWZIcTJQVFNVMGYzQUFHL0pNcnVzM3NrNHd4azM5CitYYlh0dHltWkdxb3FEcVN3TUw2czVpY1RnangvenRhSXk1TWFKYWhUYUpNdFRQQlVpZ3U3enhoeGNwVlhNVUMKTklHcFl5Mkt5R2hyMjVVOFdlR0RYQm9SS2xYUXJXYkNZeW1kMXdYQStEaVl0dzA5eit0VHhPNTRodjFCZkJKZwpWMGd0VWdJU0I2WEZDMU9CWDZXQ1pXYlhCN2hPaHhISjNkNHAyQlZyN0gxL2JDQ0ZvVDY5by9WQVNHRmdtTHRiCnpGalRNbjFIaTluVW5jUFlScWpsN1h0NWdPOHBOa3BwMjVrNHIxRVludWhIazcrYzdRS0NBUUVBM1l3THozNloKNEVPRndvODIrUlVId2lkaFExOEdrU1JvWStKVm1udXJpSXdHZTk3ZmRTVk91d092SDlZSVhsRWpjRitoOHFQVQpJVnpIOXBuYXZjTENEMnhIOWZ5d09ML3pmYmJnYnExZjV4Y3BOUXlYM1JnTGFDUVpLNkpJa3NzOUtDb0dhSzlaCmpMVm41MjFFZlFBRE5DSi93YlRCb3dLQ0dTNDUzSzRBaWFEWHN6TkJLUk5MOHVaWWYwK0x0U2IzV3lkZVQ2eUgKdGZiSXR3NlBSS1lxb2NaeGIrM0pWQWFHcGxScjVZSlNDU1BtTjFMSjU0djlTcXBIVnJMNzJudFNwKzdDODJ6SgpJajVOSXFEOGFsOVZ3WFB5dExRd25hYWc1TW5ka0NLQ3R0MlVHSGZwMEh3ZTJTL1hkemppS2gzZTZaT3MyMSt1CitQUHVrSkUxTTZzU09RS0NBUUJjWVJRbDR6MUJRUHFjM1JESEhJN0UvVFlxWHdTK2RqblFLQ3VqU3FVcmIwNUoKQzVKV1hmSzdFVDVUTjliY3dFNlRNRENUVUZZM2U2WmJsUm9vaGdhVXRhdjlXWC9vcjU2TzNyRGNIbW5ZNWNQSgpPU3VXakFHSnFKeVRWdUZjSEpXUlhPUlFOVjNHbzI1Tkd6WnFPUHBmSys1em1mZFkrbE4yTW51WlhlR0twcGowClNTQjlsa003cDZSRlFnSXNDQkVFTzBBYXhZYkxiWHRtSHArVFdiUFA1ZThrN0JKQ2tKQ1NMNkR3aGxwYWNVOHAKdnVVRlo4dC95VjFneEhOL2xLNGR0cGliOE5hVUdnNStKdXRHeHV0dU9HS3kwK2dncGI5c2pEUkVPQzdRNjAwTApqTjdleDdlUjFSbVY4Mk9HUXRqSzhTVGU1V25mOXNBRmN1YmorNncxQW9JQkFHYXM4Z2hQRHpkOWM2OXd1alNFCkI1MTJyTUFSZVRTcEgrd3l5Q09aYnkwUVlDem1aTCtnODdUK2h4b0ZFc25MWnRZOHJBeU0ydEkvY3JrYUl1TlIKTUtqL01QYVREb1N1aVVWWkRQaWVSMVVOU2Q2NUlHU3FNUmNwcTdTcU9HSTM2UGNGU3dVWFJ6Uk1Hb1NLQW5UQQpIYnY2eFNUY0JlWHJVcW9pMzFRa0hFR3NsbXNKdFFnNVZqaVRncTQyQ25TQlE2QXVSYW85Tm9RaGhISTZRREc3CnBRUm11TW43OVJPSkZyeGRZY2Z6TnR2ZmxHRk5jQjlzcEk0SERwcml4cEJDR1ZPVTl5cmozdStNMmlqVFhVaGIKT0o0NGcySTJKRlhjRkxNVHp5aHVwZy9qN3kvTDIwUHhVa2Fyd25zUmxOZWFFbVpFTjVkUDZBS2U0cENEaTVtUApqaGtDZ2dFQkFMUmtVeG9oZDh2ZVBwR3hPbWlOak5HekpiTDlscGx0TWxhR0dPQ3JOUkZSeEppblgzWU9UVnhiCkRFVlpqaXRHNldydzFxaDdnZXAzeEdJaWZHQ1lZV3pNc0RZTitueGtwV0lRRmZOV3dYemNRWlhrTEduZVlUdTAKSVU2RjY5Myt1Q0tkcHVCdVl0d3BQNEJCVkNCRTVON0FzRGV4bFBYTzk1cEw3ZzR4OG5RckdNeGJlRXVOdytaTwpPYmYvTnFFMGZZcURkaERiVHI0UDR6bUpBRlpYeDlKMjNJdWRMUFI3MDZITGZ5bDMrb1pUS2Y2ZWdEL1drWXZGCllLdEtDZzI1UmtSYmZBakZkeDlpOVkzcDlPNEFNVUNaRVFIOWQwU1d6LzJWR0VmYzVha09YL2xvWlAyUXF3c2UKeXMyc0k1U0Z5TEd1ZGM3R2MzVTd5UGd0RVN0elVoWT0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
zookeeper:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: microk8s-hostpath
kafka:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: microk8s-hostpath
creds:
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
sslKeyPassword: mypassword
cassandra:
enabled: true
image:
debug: true
cluster:
replicaCount: 1
seedCount: 1
persistence:
enabled: true
storageClass: microk8s-hostpath
creds:
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
postgresql:
enabled: true
postgresqlPassword: postgres
## NOTE: If we are using glusterfs as Storage class, we don't really need
## replication turned on, since the data is anyway replicated on glusterfs nodes
## Replication is useful:
## a. When we use HostPath as storage mechanism
## b. If master goes down and one of the slave is promoted as master
replication:
enabled: true
slaveReplicas: 1
persistence:
enabled: true
storageClass: microk8s-hostpath
readinessProbe:
initialDelaySeconds: 30
livenessProbe:
initialDelaySeconds: 30