Compare commits

..

7 Commits

Author SHA1 Message Date
Eugene Taranov
aee7382f7e enabled metallb for opensync-gw-cloud 2020-11-04 18:55:32 +03:00
Eugene Taranov
7fb6d2b0a3 - replace ip if needed in tip-wlan/resources/environments/dev-local.yaml;
- microk8s enable metallb:192.168.0.11-192.168.0.11;
- helm upgrade --install tip-wlan tip-wlan -f tip-wlan/resources/environments/dev-local.yaml -n default;
2020-10-27 16:59:07 +03:00
Eugene Taranov
0e8be5edd5 upd docs 2020-10-27 14:14:38 +03:00
Eugene Taranov
15b01c9d78 cleanup 2020-10-27 13:08:37 +03:00
Eugene Taranov
ffb6319f74 - removed hardcoded credentials; 2020-10-27 13:02:46 +03:00
Eugene Taranov
3c6819bff7 - enabling logs; 2020-10-27 12:01:07 +03:00
Eugene Taranov
86bddba8bc - added dev-local.yaml values file;
- updated README;
2020-10-27 11:57:55 +03:00
44 changed files with 390 additions and 279 deletions

View File

@@ -1 +0,0 @@
Contains certs needed for this service to start. Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution

View File

@@ -4,17 +4,14 @@
*/}}
{{- define "container.dev.debugport" -}}
{{- if .Values.debug.enabled }}
{{- range $index, $portid := .Values.debugPorts }}
- name: debugport-{{ $index }}
containerPort: {{ $portid }}
protocol: TCP
{{- end }}
{{- end }}
{{- end -}}
{{- define "service.dev.debugport" -}}
{{- if .Values.debug.enabled }}
{{- range $index, $portid := .Values.debugPorts }}
- port: {{ $portid }}
targetPort: {{ $portid }}
@@ -24,5 +21,4 @@
nodePort: {{ $portid }}
{{- end }}
{{- end }}
{{- end }}
{{- end -}}

View File

@@ -0,0 +1,11 @@
ssl.endpoint.identification.algorithm=
security.protocol=SSL
ssl.key.password=DUMMY_PASSWORD
ssl.keystore.location=/etc/kafka/secrets/kafka-server.pkcs12
ssl.keystore.password=DUMMY_PASSWORD
ssl.keystore.type=PKCS12
ssl.truststore.location=/etc/kafka/secrets/truststore.jks
ssl.truststore.password=DUMMY_PASSWORD
ssl.truststore.type=JKS
bootstrap.servers=tip-wlan-kafka-headless:9093

View File

@@ -4,14 +4,4 @@ metadata:
name: {{ include "common.fullname" . }}-clientconfig
namespace: {{ include "common.namespace" . }}
data:
admin-client.properties: |
ssl.endpoint.identification.algorithm=
security.protocol=SSL
ssl.key.password={{ .Values.creds.sslKeyPassword | b64enc }}
ssl.keystore.location=/etc/kafka/secrets/kafka-server.pkcs12
ssl.keystore.password={{ .Values.creds.sslKeystorePassword | b64enc }}
ssl.keystore.type=PKCS12
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
{{ tpl (.Files.Glob "resources/config/admin-client.properties").AsConfig . | indent 2 }}

View File

@@ -4,6 +4,7 @@
{{- $mqtt := include "mqtt.service" . -}}
{{- $ns := include "common.namespace" . -}}
{{- $file_store_path := include "filestore.dir.name" . -}}
{{- $cloudeployment := .Values.global.isCloudDeployment -}}
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -27,13 +28,43 @@ spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers:
- name: wait-for-services
image: opsfleet/depends-on:latest
args:
- "-service={{ .Release.Name }}-opensync-mqtt-broker"
- "-service={{ .Release.Name }}-wlan-prov-service"
- "-service={{ .Release.Name }}-wlan-ssc-service"
- -check_interval=5
- name: {{ include "common.name" . }}-mqtt-readiness
image: eclipse-mosquitto:latest
imagePullPolicy: {{ .Values.global.pullPolicy }}
command:
- sh
- -c
- |
mosquitto_pub -h {{ $mqtt }} -p 1883 --cafile /certs/cacert.pem --cert /certs/clientcert.pem --key /certs/clientkey.pem --insecure -t "/ap/test" -q 0 -m "CheckingMQTTAliveness"
status=$(echo $?)
echo mosquitto_pub response of the request = $status
counter=0
while [ $counter -lt 10 ] && [ $status -ne 0 ]
do
echo {{ $mqtt }} service isnt ready. Tried $counter times
sleep 2
counter=`expr $counter + 1`
mosquitto_pub -h {{ $mqtt }} -p 1883 --cafile /certs/cacert.pem --cert /certs/clientcert.pem --key /certs/clientkey.pem --insecure -t "/ap/test" -q 0 -m "CheckingMQTTAliveness"
status=$(echo $?)
echo mosquitto_pub response of the request = $status
done
if [ $status -eq 0 ]
then
echo {{ $mqtt }} service is ready!
else
echo {{ $mqtt }} service failed to respond after 20 secs
exit 1
fi
volumeMounts:
- mountPath: /certs/cacert.pem
name: certificates
subPath: cacert.pem
- mountPath: /certs/clientcert.pem
name: certificates
subPath: clientcert.pem
- mountPath: /certs/clientkey.pem
name: certificates
subPath: clientkey.pem
{{- if .Values.global.integratedDeployment }}
- name: {{ include "common.name" . }}-readiness-int-cloud
image: alpine
@@ -42,6 +73,11 @@ spec:
- sh
- -c
- |
if [ {{ $cloudeployment }} = false ]
then
echo "151.101.112.249 dl-cdn.alpinelinux.org" >> /etc/hosts
echo "Added name-resolution for local deployments"
fi
apk add curl
url=https://{{ $icc }}/ping
counter=0
@@ -60,7 +96,70 @@ spec:
else
echo ${url} service failed to respond after 50 secs
exit 1
fi
{{- else }}
- name: {{ include "common.name" . }}-readiness-prov
image: alpine
imagePullPolicy: {{ .Values.global.pullPolicy }}
command:
- sh
- -c
- |
if [ {{ $cloudeployment }} = false ]
then
echo "151.101.112.249 dl-cdn.alpinelinux.org" >> /etc/hosts
echo "Added name-resolution for local deployments"
fi
apk add curl
url=https://{{ $prov }}/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 ]
do
echo ${url} service isnt ready. Tried $counter times
sleep 5
counter=`expr $counter + 1`
status=$(curl --insecure --head --location --connect-timeout 5 --write-out %{http_code} --silent --output /dev/null ${url});
echo Http Response code of ping request = $status
done
if [ $status -eq 200 ]
then
echo ${url} service is ready!
else
echo ${url} service failed to respond after 50 secs
exit 1
fi
- name: {{ include "common.name" . }}-readiness-ssc
image: alpine
imagePullPolicy: {{ .Values.global.pullPolicy }}
command:
- sh
- -c
- |
if [ {{ $cloudeployment }} = false ]
then
echo "151.101.112.249 dl-cdn.alpinelinux.org" >> /etc/hosts
echo "Added name-resolution for local deployments"
fi
apk add curl
url=https://{{ $ssc }}/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 ]
do
echo ${url} service isnt ready. Tried $counter times
sleep 5
counter=`expr $counter + 1`
status=$(curl --insecure --head --location --connect-timeout 5 --write-out %{http_code} --silent --output /dev/null ${url});
echo Http Response code of ping request = $status
done
if [ $status -eq 200 ]
then
echo ${url} service is ready!
else
echo ${url} service failed to respond after 50 secs
exit 1
fi
{{- end }}
containers:
- name: {{ .Chart.Name }}
@@ -93,9 +192,7 @@ spec:
env:
{{- include "common.env" . | nindent 12 }}
- name: OVSDB_MANAGER
value: {{ .Values.externalhost.address.ovsdb }}
- name: OVSDB_EXTERNAL_PORT
value: "{{ .Values.externalhost.ports.ovsdb }}"
value: {{ .Values.externalhostaddress.ovsdb }}
- name: OVSDB_MANAGER_IP
valueFrom:
fieldRef:
@@ -103,9 +200,7 @@ spec:
- name: MQTT_SERVER_INTERNAL
value: {{ .Release.Name }}-{{ .Values.mqtt.url }}
- name: MQTT_SERVER_EXTERNAL
value: {{ .Values.externalhost.address.mqtt }}
- name: MQTT_BROKER_EXTERNAL_PORT
value: "{{ .Values.externalhost.ports.mqtt }}"
value: {{ .Values.externalhostaddress.mqtt }}
{{- if .Values.global.integratedDeployment }}
- name: INTEGRATED_SERVER
value: {{ .Release.Name }}-{{ .Values.integratedcloudcomponent.url }}

View File

@@ -1,24 +0,0 @@
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "common.fullname" . }}-depends-on
namespace: {{ include "common.namespace" . }}
rules:
- apiGroups: ["batch", "apps", ""]
resources: ["pods", "services", "jobs"]
verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "common.fullname" . }}-depends-on
namespace: {{ include "common.namespace" . }}
subjects:
- kind: ServiceAccount
name: {{ include "common.serviceAccountName" . }}
roleRef:
kind: Role
name: {{ include "common.fullname" . }}-depends-on
apiGroup: rbac.authorization.k8s.io

View File

@@ -5,10 +5,10 @@ metadata:
namespace: {{ include "common.namespace" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.service.annotations }}
{{- if .Values.service.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{ toYaml .Values.service.annotations | indent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
ports:
@@ -16,38 +16,28 @@ spec:
targetPort: {{ .Values.service.port1 }}
protocol: TCP
name: {{ .Values.service.name1 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort1 }}
{{- end }}
- port: {{ .Values.service.port2 }}
targetPort: {{ .Values.service.port2 }}
protocol: TCP
name: {{ .Values.service.name2 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort2 }}
{{- end }}
- port: {{ .Values.service.port3 }}
targetPort: {{ .Values.service.port3 }}
protocol: TCP
name: {{ .Values.service.name3 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }}
- port: {{ .Values.service.port4 }}
targetPort: {{ .Values.service.port4 }}
protocol: TCP
name: {{ .Values.service.name4 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort4 }}
{{- end }}
{{- if .Values.debug.enabled }}
- port: {{ .Values.service.port5 }}
targetPort: {{ .Values.service.port5 }}
protocol: TCP
name: {{ .Values.service.name5 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort5 }}
{{- end }}
{{- end }}
selector:
{{- include "common.selectorLabels" . | nindent 4 }}

View File

@@ -78,7 +78,6 @@ service:
name5: debug
nodePort5: 26
annotations: {}
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
persistence:
enabled: false
@@ -115,21 +114,13 @@ portal:
name: file-store-data
ordinal: 0
# These are the address and ports for the externalhost
# 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
externalhost:
address:
ovsdb: opensync-gw-cloud
mqtt: opensync-mqtt-broker
ports:
ovsdb: 6640
mqtt: 1883
# These are list of external HostAddresses for ovsdb, mqtt.
# 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.
externalhostaddress:
ovsdb: opensync-gw-cloud
mqtt: opensync-mqtt-broker
ethernetType:
lanName: "lan"

View File

@@ -5,10 +5,10 @@ metadata:
namespace: {{ include "common.namespace" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.service.annotations }}
{{- if .Values.service.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{ toYaml .Values.service.annotations | indent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
ports:
@@ -16,15 +16,11 @@ spec:
targetPort: {{ .Values.service.port1 }}
protocol: TCP
name: {{ .Values.service.name1 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort1 }}
{{- end }}
- port: {{ .Values.service.port2 }}
targetPort: {{ .Values.service.port2 }}
protocol: TCP
name: {{ .Values.service.name2 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort2 }}
{{- end }}
selector:
{{- include "common.selectorLabels" . | nindent 4 }}

View File

@@ -62,7 +62,6 @@ service:
name2: debug
nodePort2: 32
annotations: {}
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: false

View File

@@ -32,12 +32,6 @@ spec:
- host: {{ .host | quote }}
http:
paths:
{{- if $.Values.ingress.lb_https_redirect }}
- path: /*
backend:
serviceName: ssl-redirect
servicePort: use-annotation
{{- end }}
{{- range .paths }}
- path: {{ . }}
backend:

View File

@@ -5,6 +5,10 @@ metadata:
namespace: {{ include "common.namespace" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- if .Values.service.annotations }}
annotations:
{{ toYaml .Values.service.annotations | indent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
ports:
@@ -12,8 +16,6 @@ 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,11 +51,10 @@ 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
annotations: {}
ingress:
enabled: true
lb_https_redirect: false ## if set to true, enables http->https redirect on cloud load balancer
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"

View File

@@ -32,12 +32,6 @@ spec:
- host: {{ .host | quote }}
http:
paths:
{{- if $.Values.ingress.lb_https_redirect }}
- path: /*
backend:
serviceName: ssl-redirect
servicePort: use-annotation
{{- end }}
{{- range .paths }}
- path: {{ . }}
backend:

View File

@@ -5,10 +5,6 @@ metadata:
namespace: {{ include "common.namespace" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.service.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
ports:

View File

@@ -50,7 +50,6 @@ service:
ingress:
enabled: true
lb_https_redirect: false ## if set to true, enables http->https redirect on cloud load balancer
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"

View File

@@ -1,6 +1,7 @@
{{- if .Values.global.integratedDeployment }}
{{- $pg := include "postgresql.service" . -}}
{{- $ns := include "common.namespace" . -}}
{{- $cloudeployment := .Values.global.isCloudDeployment -}}
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -54,6 +55,15 @@ spec:
- sh
- -c
- |
if [ {{ $cloudeployment }} = false ]
then
echo "151.101.112.249 dl-cdn.alpinelinux.org" >> /etc/hosts
echo "34.215.47.158 tip-tip-wlan-cloud-docker-repo.jfrog.io" >> /etc/hosts
echo "151.101.128.204 security.debian.org" >> /etc/hosts
echo "151.101.126.133 deb.debian.org" >> /etc/hosts
echo "147.75.85.69 apt.postgresql.org" >> /etc/hosts
echo "Added name-resolution for local deployments"
fi
apt update
apt -y install curl
echo "***** Fetching cloud-sdk-schema-postgresql.sql from JFrog *****"

View File

@@ -1,3 +1,4 @@
{{- $cloudeployment := .Values.global.isCloudDeployment -}}
{{- $opensyncgw := include "opensyncgw.service" . -}}
apiVersion: apps/v1
kind: Deployment
@@ -29,6 +30,11 @@ spec:
- sh
- -c
- |
if [ {{ $cloudeployment }} = false ]
then
echo "151.101.112.249 dl-cdn.alpinelinux.org" >> /etc/hosts
echo "Added name-resolution for local deployments"
fi
apk add curl
url=https://{{ $opensyncgw }}/ping
counter=0

View File

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

View File

@@ -78,7 +78,6 @@ 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
# The below ports are the ports that Java would choose as Local ports whenever it opens up
# a developer session for debug.

View File

@@ -32,12 +32,6 @@ spec:
- host: {{ .host | quote }}
http:
paths:
{{- if $.Values.ingress.lb_https_redirect }}
- path: /*
backend:
serviceName: ssl-redirect
servicePort: use-annotation
{{- end }}
{{- range .paths }}
- path: {{ . }}
backend:

View File

@@ -5,10 +5,6 @@ metadata:
namespace: {{ include "common.namespace" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.service.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
ports:
@@ -16,14 +12,14 @@ spec:
targetPort: {{ .Values.service.port1 }}
protocol: TCP
name: {{ .Values.service.name1 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if 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 and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if eq .Values.service.type "NodePort" }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
{{- end }}
{{- if .Values.debug.enabled }}
@@ -31,7 +27,7 @@ spec:
targetPort: {{ .Values.service.port3 }}
protocol: TCP
name: {{ .Values.service.name3 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if eq .Values.service.type "NodePort" }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }}
{{- end }}

View File

@@ -74,12 +74,10 @@ service:
nodePort2: 52
port3: 5006
name3: debug
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
nodePort3: 15
ingress:
enabled: false
lb_https_redirect: false ## if set to true, enables http->https redirect on cloud load balancer
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"

View File

@@ -1,5 +1,6 @@
{{- $pg := include "postgresql.service" . -}}
{{- $ns := include "common.namespace" . -}}
{{- $cloudeployment := .Values.global.isCloudDeployment -}}
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -23,11 +24,10 @@ spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers:
- name: wait-for-services
image: opsfleet/depends-on:latest
args:
- "-service={{ .Release.Name }}-postgresql"
- -check_interval=5
- name: {{ include "common.name" . }}-readiness
image: busybox:1.28
imagePullPolicy: {{ .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:
- name: POSTGRESQL_PORT_NUMBER
@@ -57,7 +57,16 @@ spec:
command:
- sh
- -c
- |
- |
if [ {{ $cloudeployment }} = false ]
then
echo "151.101.2.133 dl-cdn.alpinelinux.org" >> /etc/hosts
echo "52.35.62.28 tip-tip-wlan-cloud-docker-repo.jfrog.io" >> /etc/hosts
echo "151.101.192.204 security.debian.org" >> /etc/hosts
echo "199.232.38.133 deb.debian.org" >> /etc/hosts
echo "147.75.85.69 apt.postgresql.org" >> /etc/hosts
echo "Added name-resolution for local deployments"
fi
apt update
apt -y install curl
echo "***** Fetching latest cloud-sdk-schema-postgresql for DB and Tables sql from JFrog *****"

View File

@@ -1,24 +0,0 @@
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "common.fullname" . }}-depends-on
namespace: {{ include "common.namespace" . }}
rules:
- apiGroups: ["batch", "apps", ""]
resources: ["pods", "services", "jobs"]
verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "common.fullname" . }}-depends-on
namespace: {{ include "common.namespace" . }}
subjects:
- kind: ServiceAccount
name: {{ include "common.serviceAccountName" . }}
roleRef:
kind: Role
name: {{ include "common.fullname" . }}-depends-on
apiGroup: rbac.authorization.k8s.io

View File

@@ -12,14 +12,14 @@ spec:
targetPort: {{ .Values.service.port1 }}
protocol: TCP
name: {{ .Values.service.name1 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if 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 and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if 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 and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if eq .Values.service.type "NodePort" }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }}
{{- end }}

View File

@@ -86,7 +86,6 @@ 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
ingress:
enabled: false

View File

@@ -23,11 +23,10 @@ spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers:
- name: wait-for-services
image: opsfleet/depends-on:latest
args:
- "-service={{ .Release.Name }}-kafka-headless"
- -check_interval=5
- name: {{ include "common.name" . }}-readiness
image: busybox:1.28
imagePullPolicy: {{ .Values.global.pullPolicy }}
command: ['sh', '-c', "until nslookup {{ $kafka }}.{{ $ns }}.svc.cluster.local; do echo waiting for Kafka; sleep 2; done"]
containers:
- name: {{ .Chart.Name }}
securityContext:

View File

@@ -1,24 +0,0 @@
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "common.fullname" . }}-depends-on
namespace: {{ include "common.namespace" . }}
rules:
- apiGroups: ["batch", "apps", ""]
resources: ["pods", "services", "jobs"]
verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "common.fullname" . }}-depends-on
namespace: {{ include "common.namespace" . }}
subjects:
- kind: ServiceAccount
name: {{ include "common.serviceAccountName" . }}
roleRef:
kind: Role
name: {{ include "common.fullname" . }}-depends-on
apiGroup: rbac.authorization.k8s.io

View File

@@ -12,14 +12,14 @@ spec:
targetPort: {{ .Values.service.port1 }}
protocol: TCP
name: {{ .Values.service.name1 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if 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 and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if 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 and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if eq .Values.service.type "NodePort" }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }}
{{- end }}

View File

@@ -70,7 +70,6 @@ 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
ingress:
enabled: false

View File

@@ -1,6 +1,7 @@
{{- $kafka := include "kafka.service" . -}}
{{- $cassandra := include "cassandra.service" . -}}
{{- $ns := include "common.namespace" . -}}
{{- $cloudeployment := .Values.global.isCloudDeployment -}}
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -24,12 +25,14 @@ spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers:
- name: wait-for-services
image: opsfleet/depends-on:latest
args:
- "-service={{ .Release.Name }}-kafka-headless"
- "-service={{ .Release.Name }}-cassandra"
- -check_interval=5
- name: {{ include "common.name" . }}-kafka-readiness
image: busybox:1.28
imagePullPolicy: {{ .Values.global.pullPolicy }}
command: ['sh', '-c', "until nslookup {{ $kafka }}.{{ $ns }}.svc.cluster.local; do echo waiting for Kafka; sleep 2; done"]
- name: {{ include "common.name" . }}-cassandra-readiness
image: busybox:1.28
imagePullPolicy: {{ .Values.global.pullPolicy }}
command: ['sh', '-c', "until nslookup {{ $cassandra }}.{{ $ns }}.svc.cluster.local; do echo waiting for Cassandra; sleep 2; done"]
- name: {{ include "common.name" . }}-create-db-schema-cassandra
env:
- name: CASSANDRA_PORT_NUMBER
@@ -50,6 +53,13 @@ spec:
- sh
- -c
- |
if [ {{ $cloudeployment }} = false ]
then
echo "52.35.62.28 tip-tip-wlan-cloud-docker-repo.jfrog.io" >> /etc/hosts
echo "91.189.88.152 security.ubuntu.com" >> /etc/hosts
echo "91.189.88.142 archive.ubuntu.com" >> /etc/hosts
echo "Added name-resolution for local deployments"
fi
apt update
apt -y install curl
echo "***** Fetching cloud-sdk-schema-cassandra.cql from JFrog *****"
@@ -216,7 +226,7 @@ spec:
- name: {{ .Values.service.name3 }}
containerPort: {{ .Values.service.port3 }}
protocol: TCP
{{- end }}
{{- end }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }}

View File

@@ -1,24 +0,0 @@
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "common.fullname" . }}-depends-on
namespace: {{ include "common.namespace" . }}
rules:
- apiGroups: ["batch", "apps", ""]
resources: ["pods", "services", "jobs"]
verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "common.fullname" . }}-depends-on
namespace: {{ include "common.namespace" . }}
subjects:
- kind: ServiceAccount
name: {{ include "common.serviceAccountName" . }}
roleRef:
kind: Role
name: {{ include "common.fullname" . }}-depends-on
apiGroup: rbac.authorization.k8s.io

View File

@@ -12,14 +12,14 @@ spec:
targetPort: {{ .Values.service.port1 }}
protocol: TCP
name: {{ .Values.service.name1 }}
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if 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 and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if 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 and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
{{- if eq .Values.service.type "NodePort" }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }}
{{- end }}

View File

@@ -70,7 +70,6 @@ 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
ingress:
enabled: false

View File

@@ -53,10 +53,9 @@ common:
storageClass: aws-efs
opensync-gw-cloud:
enabled: true
externalhost:
address:
ovsdb: opensync-controller.demo.lab.wlan.tip.build
mqtt: opensync-mqtt-broker.demo.lab.wlan.tip.build
externalhostaddress:
ovsdb: opensync-controller.demo.lab.wlan.tip.build
mqtt: opensync-mqtt-broker.demo.lab.wlan.tip.build
persistence:
enabled: false
filestore:

View File

@@ -0,0 +1,131 @@
# 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
# Integrated Deployment which deploys Prov Service, Portal Service and
# SSC Service in a single docker image
integratedDeployment: 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
externalhostaddress:
ovsdb: "15.222.171.117"
mqtt: "3.96.17.34"
env:
protocol: https
ssc:
service: wlan-integrated-cloud-component-service
port: 9092
prov:
service: wlan-integrated-cloud-component-service
port: 9092
opensync-mqtt-broker:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: "gp2"
wlan-port-forwarding-gateway-service:
enabled: true
externallyVisible:
host: api.wlan.zone3.lab.connectus.ai
port: 30401
wlan-cloud-graphql-gw:
enabled: true
env:
portalsvc: wlan-portal-svc.zone3.lab.connectus.ai
wlan-cloud-static-portal:
enabled: true
wlan-integrated-cloud-component-service:
enabled: true
image:
name: wlan-integrated-cloud-component-service-persistence
tag: 0.0.1-SNAPSHOT
creds:
enabled: true
postgres:
password: cG9zdGdyZXMxMjM=
schema_repo:
username: tip-read
password: tip-read
integratedWithPersistence:
enabled: true
nginx-ingress-controller:
enabled: true
controller:
config:
externalStatusAddress: "api.wlan.zone3.lab.connectus.ai"
zookeeper:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: "gp2"
kafka:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: "gp2"
cassandra:
enabled: true
config:
cluster_size: 3
seed_size: 2
persistence:
enabled: true
storageClass: "glusterfs-storage"
postgresql:
enabled: true
postgresqlPassword: cG9zdGdyZXMxMjM=
## 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: "glusterfs-storage"

View File

@@ -48,10 +48,9 @@ opensync-gw-static:
enabled: false
opensync-gw-cloud:
enabled: true
externalhost:
address:
ovsdb: opensync-controller.tip.lab.connectus.ai
mqtt: opensync-mqtt-broker.tip.lab.connectus.ai
externalhostaddress:
ovsdb: opensync-controller.tip.lab.connectus.ai
mqtt: opensync-mqtt-broker.tip.lab.connectus.ai
env:
protocol: https
ssc:

View File

@@ -30,6 +30,8 @@ global:
# Integrated Deployment which deploys Prov Service, Portal Service and
# SSC Service in a single docker image
integratedDeployment: true
# Is the Cluster deployed in Cloud
isCloudDeployment: false
# Annotations for namespace
annotations: {
"helm.sh/resource-policy": keep

View File

@@ -44,20 +44,27 @@ opensync-gw-static:
enabled: false
opensync-gw-cloud:
enabled: true
externalhost:
address:
ovsdb: opensync-controller.wlan.local
mqtt: opensync-mqtt-broker.wlan.local
externalhostaddress:
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: 192.168.0.11
opensync-mqtt-broker:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: standard
storageClass: microk8s-hostpath
service:
type: LoadBalancer
annotations:
metallb.universe.tf/allow-shared-ip: 192.168.0.11
wlan-cloud-graphql-gw:
enabled: true
env:
@@ -72,6 +79,10 @@ wlan-cloud-graphql-gw:
- hosts:
- wlan-ui-graphql.wlan.local
secretName: nginx-ingress-controller-default-server-secret
service:
type: LoadBalancer
annotations:
metallb.universe.tf/allow-shared-ip: 192.168.0.11
wlan-cloud-static-portal:
enabled: true
env:
@@ -92,7 +103,7 @@ wlan-portal-service:
enabled: true
persistence:
enabled: true
storageClass: standard
storageClass: microk8s-hostpath
filestoreSize: 1Gi
wlan-prov-service:
enabled: true
@@ -133,6 +144,8 @@ nginx-ingress-controller:
controller:
service:
type: LoadBalancer
annotations:
metallb.universe.tf/allow-shared-ip: 192.168.0.11
config:
externalStatusAddress: "api.wlan.local"
defaultTLS:
@@ -143,13 +156,13 @@ zookeeper:
replicaCount: 1
persistence:
enabled: true
storageClass: standard
storageClass: microk8s-hostpath
kafka:
enabled: true
replicaCount: 1
persistence:
enabled: true
storageClass: standard
storageClass: microk8s-hostpath
creds:
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
@@ -163,7 +176,7 @@ cassandra:
seedCount: 1
persistence:
enabled: true
storageClass: standard
storageClass: microk8s-hostpath
creds:
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
@@ -180,7 +193,7 @@ postgresql:
slaveReplicas: 1
persistence:
enabled: true
storageClass: standard
storageClass: microk8s-hostpath
readinessProbe:
initialDelaySeconds: 30
livenessProbe:

View File

@@ -26,6 +26,9 @@ global:
# flag to enable debugging - application support required
debugEnabled: true
# Is the Cluster deployed in Cloud
isCloudDeployment: false
# Annotations for namespace
annotations: {
"helm.sh/resource-policy": keep
@@ -43,10 +46,9 @@ opensync-gw-static:
enabled: false
opensync-gw-cloud:
enabled: true
externalhost:
address:
ovsdb: tip-wlan-opensync-gw-cloud
mqtt: tip-wlan-opensync-mqtt-broker
externalhostaddress:
ovsdb: tip-wlan-opensync-gw-cloud
mqtt: tip-wlan-opensync-mqtt-broker
persistence:
enabled: true
filestore:

View File

@@ -28,6 +28,9 @@ global:
# flag to enable debugging - application support required
debugEnabled: true
# Is the Cluster deployed in Cloud
isCloudDeployment: false
# Annotations for namespace
annotations: {
"helm.sh/resource-policy": keep
@@ -45,10 +48,9 @@ opensync-gw-static:
enabled: false
opensync-gw-cloud:
enabled: true
externalhost:
address:
ovsdb: tip-wlan-opensync-gw-cloud
mqtt: tip-wlan-opensync-mqtt-broker
externalhostaddress:
ovsdb: tip-wlan-opensync-gw-cloud
mqtt: tip-wlan-opensync-mqtt-broker
persistence:
enabled: true
filestore:
@@ -80,10 +82,6 @@ wlan-prov-service:
schema_repo:
username: tip-read
password: tip-read
postgres:
singleDataSourceUsername: tip_user
singleDataSourcePassword: tip_password
singleDataSourceSslKeyPassword: mypassword
wlan-ssc-service:
enabled: true
creds:
@@ -129,10 +127,6 @@ kafka:
persistence:
enabled: true
storageClass: "glusterfs-storage"
creds:
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
sslKeyPassword: mypassword
cassandra:
enabled: true
cluster:
@@ -145,9 +139,6 @@ cassandra:
persistence:
enabled: true
storageClass: "glusterfs-storage"
creds:
sslKeystorePassword: mypassword
sslTruststorePassword: mypassword
postgresql:
enabled: true
postgresqlPassword: postgres
@@ -161,8 +152,4 @@ postgresql:
slaveReplicas: 1
persistence:
enabled: true
storageClass: "glusterfs-storage"
readinessProbe:
initialDelaySeconds: 30
livenessProbe:
initialDelaySeconds: 30
storageClass: "glusterfs-storage"

View File

@@ -30,6 +30,9 @@ global:
# flag to enable debugging - application support required
debugEnabled: true
# Is the Cluster deployed in Cloud
isCloudDeployment: false
createReleaseNamespace: false
createDockerRegistrySecret: false
@@ -41,10 +44,9 @@ opensync-gw-static:
enabled: false
opensync-gw-cloud:
enabled: false
externalhost:
address:
ovsdb: tip-wlan-opensync-gw-cloud
mqtt: tip-wlan-opensync-mqtt-broker
externalhostaddress:
ovsdb: tip-wlan-opensync-gw-cloud
mqtt: tip-wlan-opensync-mqtt-broker
persistence:
enabled: true
filestore:

View File

@@ -34,6 +34,9 @@ global:
# SSC Service in a single docker image
integratedDeployment: false
# Is the Cluster deployed in Cloud
isCloudDeployment: true
testingEnabled: false
testingTimestamp: