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
+```
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/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 6731899..86945db 100644
--- a/deploy/kubernetes/frontend.yaml
+++ b/deploy/kubernetes/frontend.yaml
@@ -28,10 +28,8 @@ spec:
- containerPort: 3000
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: "/api"
---
apiVersion: v1
kind: Service
@@ -44,5 +42,5 @@ spec:
- protocol: TCP
port: 3000
targetPort: 3000
- nodePort: 30001
- type: NodePort
+ #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..b429543
--- /dev/null
+++ b/deploy/kubernetes/ingress.yaml
@@ -0,0 +1,34 @@
+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
+ - path: /socket.io
+ pathType: Prefix
+ backend:
+ service:
+ name: socketio-svc
+ port:
+ number: 5000
+
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 0d705ee..55fca1b 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
@@ -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 a51c5fd..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
@@ -31,5 +33,3 @@ spec:
- protocol: TCP
port: 5000
targetPort: 5000
- nodePort: 30002
- type: NodePort