From a986835e24e67589e1321691c8dd54b267f0adb9 Mon Sep 17 00:00:00 2001 From: Roger Date: Sat, 20 Apr 2024 18:56:55 +0000 Subject: [PATCH 1/6] dev-k8s --- deploy/kubernetes/frontend.yaml | 18 +++++++++--------- deploy/kubernetes/mqtt.yaml | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/deploy/kubernetes/frontend.yaml b/deploy/kubernetes/frontend.yaml index 6731899..0f8e9e5 100644 --- a/deploy/kubernetes/frontend.yaml +++ b/deploy/kubernetes/frontend.yaml @@ -25,13 +25,13 @@ spec: memory: 256Mi cpu: 200m ports: - - containerPort: 3000 + - containerPort: 8080 imagePullPolicy: IfNotPresent env: - - name: NEXT_PUBLIC_REST_ENDPOINT - value: "192.168.1.130:30003" - - name: NEXT_PUBLIC_WS_ENDPOINT - value: "192.168.1.130:30005" + # - name: NEXT_PUBLIC_REST_ENDPOINT + # value: "192.168.1.130:30003" + #- name: NEXT_PUBLIC_WS_ENDPOINT + # value: "192.168.1.130:30005" --- apiVersion: v1 kind: Service @@ -42,7 +42,7 @@ spec: app: frontend ports: - protocol: TCP - port: 3000 - targetPort: 3000 - nodePort: 30001 - type: NodePort + port: 8080 + targetPort: 8080 + externalTrafficPolicy: Local + type: LoadBalancer diff --git a/deploy/kubernetes/mqtt.yaml b/deploy/kubernetes/mqtt.yaml index 0d705ee..d421f58 100644 --- a/deploy/kubernetes/mqtt.yaml +++ b/deploy/kubernetes/mqtt.yaml @@ -9,8 +9,8 @@ spec: - protocol: TCP port: 1883 targetPort: 1883 - nodePort: 30000 - type: NodePort + externalTrafficPolicy: Local + type: LoadBalancer --- apiVersion: apps/v1 kind: Deployment From 5e7340c1fa797fb217c0d824dd8c7dc08e27c8fb Mon Sep 17 00:00:00 2001 From: Roger Date: Sun, 21 Apr 2024 01:24:28 +0000 Subject: [PATCH 2/6] ingress controller for frontend and rest api --- deploy/kubernetes/controller.yaml | 3 +-- deploy/kubernetes/frontend.yaml | 16 +++++------ .../haproxy-kubernetes-ingress-cm.yaml | 7 ----- .../kubernetes/haproxy-tcp-services-cm.yaml | 8 ------ deploy/kubernetes/haproxy-tcp-services.yaml | 8 ------ deploy/kubernetes/ingress.yaml | 27 +++++++++++++++++++ 6 files changed, 36 insertions(+), 33 deletions(-) delete mode 100644 deploy/kubernetes/haproxy-kubernetes-ingress-cm.yaml delete mode 100644 deploy/kubernetes/haproxy-tcp-services-cm.yaml delete mode 100644 deploy/kubernetes/haproxy-tcp-services.yaml create mode 100644 deploy/kubernetes/ingress.yaml diff --git a/deploy/kubernetes/controller.yaml b/deploy/kubernetes/controller.yaml index 450317d..17b13cf 100644 --- a/deploy/kubernetes/controller.yaml +++ b/deploy/kubernetes/controller.yaml @@ -48,6 +48,5 @@ spec: - protocol: TCP port: 8000 targetPort: 8000 - nodePort: 30003 - type: NodePort + type: ClusterIP diff --git a/deploy/kubernetes/frontend.yaml b/deploy/kubernetes/frontend.yaml index 0f8e9e5..6c6b9e7 100644 --- a/deploy/kubernetes/frontend.yaml +++ b/deploy/kubernetes/frontend.yaml @@ -16,7 +16,7 @@ spec: spec: containers: - name: frontend - image: oktopusp/frontend:latest + image: rogersacchelli/frontend:1.0.3 resources: requests: memory: 64Mi @@ -25,11 +25,11 @@ spec: memory: 256Mi cpu: 200m ports: - - containerPort: 8080 + - containerPort: 3000 imagePullPolicy: IfNotPresent env: - # - name: NEXT_PUBLIC_REST_ENDPOINT - # value: "192.168.1.130:30003" + - name: NEXT_PUBLIC_REST_ENDPOINT + value: "/api" #- name: NEXT_PUBLIC_WS_ENDPOINT # value: "192.168.1.130:30005" --- @@ -42,7 +42,7 @@ spec: app: frontend ports: - protocol: TCP - port: 8080 - targetPort: 8080 - externalTrafficPolicy: Local - type: LoadBalancer + port: 3000 + targetPort: 3000 + #externalTrafficPolicy: Local + type: ClusterIP diff --git a/deploy/kubernetes/haproxy-kubernetes-ingress-cm.yaml b/deploy/kubernetes/haproxy-kubernetes-ingress-cm.yaml deleted file mode 100644 index c4aabd9..0000000 --- a/deploy/kubernetes/haproxy-kubernetes-ingress-cm.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: haproxy-kubernetes-ingress - namespace: haproxy-controller -data: - syslog-server: "address:stdout, format: raw, facility:daemon" diff --git a/deploy/kubernetes/haproxy-tcp-services-cm.yaml b/deploy/kubernetes/haproxy-tcp-services-cm.yaml deleted file mode 100644 index a4b8f7f..0000000 --- a/deploy/kubernetes/haproxy-tcp-services-cm.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: haproxy-tcp - namespace: default -data: - 1883: # Port where the frontend is going to listen to. - default/mqtt-svc:1883 # Kubernetes service in the format NS/ServiceName:ServicePort diff --git a/deploy/kubernetes/haproxy-tcp-services.yaml b/deploy/kubernetes/haproxy-tcp-services.yaml deleted file mode 100644 index 77db1d6..0000000 --- a/deploy/kubernetes/haproxy-tcp-services.yaml +++ /dev/null @@ -1,8 +0,0 @@ -controller: - service: - tcpPorts: - - name: mqtt - port: 1883 - targetPort: 1883 - extraArgs: - - --configmap-tcp-services=default/haproxy-tcp diff --git a/deploy/kubernetes/ingress.yaml b/deploy/kubernetes/ingress.yaml new file mode 100644 index 0000000..5072c8b --- /dev/null +++ b/deploy/kubernetes/ingress.yaml @@ -0,0 +1,27 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: web-ingress + namespace: default + annotations: +spec: + ingressClassName: "haproxy" + rules: + - host: oktopus.rdss.cloud + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: frontend-svc + port: + number: 3000 + - path: /api + pathType: Prefix + backend: + service: + name: controller-svc + port: + number: 8000 + From 01dbfd01632825d710688f30575d8ca15ba753a2 Mon Sep 17 00:00:00 2001 From: Roger Date: Sun, 21 Apr 2024 02:10:37 +0000 Subject: [PATCH 3/6] socketio ingress configuration --- deploy/kubernetes/adapter.yaml | 2 +- deploy/kubernetes/ingress.yaml | 7 +++++++ deploy/kubernetes/socketio.yaml | 2 -- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/deploy/kubernetes/adapter.yaml b/deploy/kubernetes/adapter.yaml index d2d2d23..3160766 100644 --- a/deploy/kubernetes/adapter.yaml +++ b/deploy/kubernetes/adapter.yaml @@ -33,7 +33,7 @@ spec: - name: NATS_VERIFY_CERTIFICATES value: "false" - name: MONGO_URI - value: "mongodb://oktopusp:oktopusp@mongodb-0.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-1.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-2.mongodb-svc.mongodb.svc.cluster.local:27017/adapter?replicaSet=mongodb&ssl=false" + value: "mongodb://oktopusp:oktopusp@mongodb-0.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-1.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-2.mongodb-svc.mongodb.svc.cluster.local:27017/?replicaSet=mongodb&ssl=false" - name: CONTROLLER_ID value: "oktopusController" diff --git a/deploy/kubernetes/ingress.yaml b/deploy/kubernetes/ingress.yaml index 5072c8b..b429543 100644 --- a/deploy/kubernetes/ingress.yaml +++ b/deploy/kubernetes/ingress.yaml @@ -24,4 +24,11 @@ spec: name: controller-svc port: number: 8000 + - path: /socket.io + pathType: Prefix + backend: + service: + name: socketio-svc + port: + number: 5000 diff --git a/deploy/kubernetes/socketio.yaml b/deploy/kubernetes/socketio.yaml index a51c5fd..7a71bdc 100644 --- a/deploy/kubernetes/socketio.yaml +++ b/deploy/kubernetes/socketio.yaml @@ -31,5 +31,3 @@ spec: - protocol: TCP port: 5000 targetPort: 5000 - nodePort: 30002 - type: NodePort From 36285e314f89e0db5a0e18c5e47cb59ecb36398e Mon Sep 17 00:00:00 2001 From: Roger Date: Tue, 23 Apr 2024 02:09:19 +0000 Subject: [PATCH 4/6] final adjustments --- deploy/kubernetes/frontend.yaml | 2 -- deploy/kubernetes/mqtt-adapter.yaml | 2 +- deploy/kubernetes/mqtt.yaml | 3 +++ deploy/kubernetes/socketio.yaml | 2 ++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/deploy/kubernetes/frontend.yaml b/deploy/kubernetes/frontend.yaml index 6c6b9e7..92d9391 100644 --- a/deploy/kubernetes/frontend.yaml +++ b/deploy/kubernetes/frontend.yaml @@ -30,8 +30,6 @@ spec: env: - name: NEXT_PUBLIC_REST_ENDPOINT value: "/api" - #- name: NEXT_PUBLIC_WS_ENDPOINT - # value: "192.168.1.130:30005" --- apiVersion: v1 kind: Service diff --git a/deploy/kubernetes/mqtt-adapter.yaml b/deploy/kubernetes/mqtt-adapter.yaml index 3d7b7b5..8bd522d 100644 --- a/deploy/kubernetes/mqtt-adapter.yaml +++ b/deploy/kubernetes/mqtt-adapter.yaml @@ -31,7 +31,7 @@ spec: - name: NATS_VERIFY_CERTIFICATES value: "false" - name: MQTT_URL - value: "tcp://mqtt:1883" + value: "tcp://mqtt-svc:1883" - name: MQTT_CLIENT_ID value: "mqtt-adapter" - name: MQTT_USERNAME diff --git a/deploy/kubernetes/mqtt.yaml b/deploy/kubernetes/mqtt.yaml index d421f58..55fca1b 100644 --- a/deploy/kubernetes/mqtt.yaml +++ b/deploy/kubernetes/mqtt.yaml @@ -46,3 +46,6 @@ spec: value: "false" - name: LOG_LEVEL value: "0" # 0 - DEBUG + - name: REDIS_ENABLE + value: "false" + diff --git a/deploy/kubernetes/socketio.yaml b/deploy/kubernetes/socketio.yaml index 7a71bdc..e8695a1 100644 --- a/deploy/kubernetes/socketio.yaml +++ b/deploy/kubernetes/socketio.yaml @@ -19,6 +19,8 @@ spec: env: - name: NATS_URL value: "nats:4222" + - name: CORS_ALLOWED_ORIGINS + value: "" --- apiVersion: v1 kind: Service From ec9161b037cb35a09fc521918736cddc16bf0b5a Mon Sep 17 00:00:00 2001 From: Roger Date: Tue, 23 Apr 2024 02:14:00 +0000 Subject: [PATCH 5/6] Ingress Controller on Readme --- deploy/kubernetes/README.md | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/deploy/kubernetes/README.md b/deploy/kubernetes/README.md index 9ef30ea..8975b3e 100644 --- a/deploy/kubernetes/README.md +++ b/deploy/kubernetes/README.md @@ -19,6 +19,15 @@ git clone https://github.com/OktopUSP/oktopus export DEPLOYMENT_PATH=oktopus/deploy/kubernetes ``` +## HAProxy Ingress Controller + +```shell +helm install haproxy-kubernetes-ingress haproxytech/kubernetes-ingress \ + --create-namespace \ + --namespace haproxy-controller \ + --set controller.kind=DaemonSet \ + --set controller.daemonset.useHostPort=true +``` ## MongoBD @@ -49,27 +58,6 @@ helm install nats nats/nats --set config.jetstream.enabled=true ## Oktopus - -Node Ports - -For this deployment, we are not using a load balancer and kubernetes is deployed on-premises so we are using Nodeports to insource the client traffic into cluster. below the ports set on deployment files: - -1. MQTT broker service (mqtt-svc): 30000 -2. Frontend (frontend-svc): 30001 -3. SocketIO: (socketio-svc): 30002 -4. Controller (controller-svc): 30003 -5. WebSocket (ws-svc): 30005 - -Before deploying the files, edit the frontend.yaml file to set the correct enviroment variables: - -```yaml -env: - - name: NEXT_PUBLIC_REST_ENDPOINT - value: ":30003" - - name: NEXT_PUBLIC_WS_ENDPOINT - value: ":30005" -``` - ```shell kubectl apply -f $DEPLOYMENT_PATH/mqtt.yaml kubectl apply -f $DEPLOYMENT_PATH/mqtt-adapter.yaml @@ -88,4 +76,4 @@ kubectl apply -f $DEPLOYMENT_PATH/ws-adapter.yaml kubectl get pods kubectl get svc -``` \ No newline at end of file +``` From 74ffae7feb3aa7d58f37811e6e0e8cfb33f37508 Mon Sep 17 00:00:00 2001 From: Roger Date: Tue, 23 Apr 2024 02:18:05 +0000 Subject: [PATCH 6/6] Frontend image oktopusp --- deploy/kubernetes/frontend.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/kubernetes/frontend.yaml b/deploy/kubernetes/frontend.yaml index 92d9391..86945db 100644 --- a/deploy/kubernetes/frontend.yaml +++ b/deploy/kubernetes/frontend.yaml @@ -16,7 +16,7 @@ spec: spec: containers: - name: frontend - image: rogersacchelli/frontend:1.0.3 + image: oktopusp/frontend:latest resources: requests: memory: 64Mi