From a17fb42ba218a8578dc50c42861acbe2bfc40d6b Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 11 Aug 2023 23:00:52 -0400 Subject: [PATCH 01/37] Implemented sensantionl-sensor manifest --- deploy/manifest/sensational-sensors.yaml | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 deploy/manifest/sensational-sensors.yaml diff --git a/deploy/manifest/sensational-sensors.yaml b/deploy/manifest/sensational-sensors.yaml new file mode 100644 index 00000000..39e4d09e --- /dev/null +++ b/deploy/manifest/sensational-sensors.yaml @@ -0,0 +1,33 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sensational-sensors +spec: + replicas: 1 + selector: + matchLabels: + app: sensational-sensors + template: + metadata: + labels: + app: sensational-sensors + spec: + imagePullSecrets: + - name: ghcr-secret + containers: + - name: sensational-sensors + image: ghcr.io/button-inc/iot-system-prototype/sensational_sensors:latest + ports: + - containerPort: 8082 +--- +apiVersion: v1 +kind: Service +metadata: + name: sensational-sensor-service +spec: + selector: + app: sensational-sensors + ports: + - protocol: TCP + port: 8080 + targetPort: 8082 From 88b8b8f64ac371d7f08f3837a7ae1136197734da Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 11 Aug 2023 23:07:47 -0400 Subject: [PATCH 02/37] Added api and real-fake manifest --- deploy/manifest/api.yaml | 33 +++++++++++++++++++++++++++++++++ deploy/manifest/real-fake.yaml | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 deploy/manifest/api.yaml create mode 100644 deploy/manifest/real-fake.yaml diff --git a/deploy/manifest/api.yaml b/deploy/manifest/api.yaml new file mode 100644 index 00000000..b41176e3 --- /dev/null +++ b/deploy/manifest/api.yaml @@ -0,0 +1,33 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: api +spec: + replicas: 1 + selector: + matchLabels: + app: api + template: + metadata: + labels: + app: api + spec: + imagePullSecrets: + - name: ghcr-secret + containers: + - name: api + image: ghcr.io/button-inc/iot-system-prototype/api:latest + ports: + - containerPort: 8080 +--- +apiVersion: v1 +kind: Service +metadata: + name: api-service +spec: + selector: + app: api + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 diff --git a/deploy/manifest/real-fake.yaml b/deploy/manifest/real-fake.yaml new file mode 100644 index 00000000..30cf59cd --- /dev/null +++ b/deploy/manifest/real-fake.yaml @@ -0,0 +1,33 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: real-fake +spec: + replicas: 1 + selector: + matchLabels: + app: real-fake + template: + metadata: + labels: + app: real-fake + spec: + imagePullSecrets: + - name: ghcr-secret + containers: + - name: real-fake + image: ghcr.io/button-inc/iot-system-prototype/real_fake_sensors:latest + ports: + - containerPort: 8081 +--- +apiVersion: v1 +kind: Service +metadata: + name: real-fake-service +spec: + selector: + app: real-fake + ports: + - protocol: TCP + port: 8081 + targetPort: 8081 From 66428b52fc35ab10fc015a80c790ac5e164964fe Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Mon, 14 Aug 2023 10:45:09 -0400 Subject: [PATCH 03/37] Added sensation router --- deploy/manifest/iot-system-ingress.yaml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 deploy/manifest/iot-system-ingress.yaml diff --git a/deploy/manifest/iot-system-ingress.yaml b/deploy/manifest/iot-system-ingress.yaml new file mode 100644 index 00000000..cc3848de --- /dev/null +++ b/deploy/manifest/iot-system-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: iot-ingress +spec: + rules: + - host: iot.local + http: + paths: + - pathType: Prefix + path: / + backend: + service: + name: sensational-sensor-service + port: + number: 8080 + - pathType: Prefix + path: /sensors + backend: + service: + name: sensational-sensor-service + port: + number: 8080 From 567a03261e249cad15290c275e1e88252e24a21d Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Mon, 14 Aug 2023 17:23:27 -0400 Subject: [PATCH 04/37] Added proxy headers for uvicorn Chanaged github trigger to k8s_manifest branch --- .github/workflows/build-and-push.yaml | 4 +--- api/Dockerfile | 4 ++-- real_fake_sensors/Dockerfile | 4 ++-- sensational_sensors/Dockerfile | 4 ++-- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-and-push.yaml b/.github/workflows/build-and-push.yaml index 867b7614..ea5bb276 100644 --- a/.github/workflows/build-and-push.yaml +++ b/.github/workflows/build-and-push.yaml @@ -2,9 +2,7 @@ name: Build and push images on: push: - branches: [develop, main] - pull_request: - branches: [develop, main] + branches: [k8s-manifest] jobs: docker-build: diff --git a/api/Dockerfile b/api/Dockerfile index fbda8fb9..fadc77f8 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -8,7 +8,7 @@ RUN pip install --no-cache-dir --upgrade -r /requirements.txt COPY ./api/main.py main.py EXPOSE 8080 -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] +# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -# CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] diff --git a/real_fake_sensors/Dockerfile b/real_fake_sensors/Dockerfile index 376ef2a0..9d677600 100644 --- a/real_fake_sensors/Dockerfile +++ b/real_fake_sensors/Dockerfile @@ -8,7 +8,7 @@ RUN pip install --no-cache-dir --upgrade -r /requirements.txt COPY ./real_fake_sensors/main.py main.py EXPOSE 8081 -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8081"] +# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8081"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -# CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] diff --git a/sensational_sensors/Dockerfile b/sensational_sensors/Dockerfile index 903c0778..e494310b 100644 --- a/sensational_sensors/Dockerfile +++ b/sensational_sensors/Dockerfile @@ -8,7 +8,7 @@ RUN pip install --no-cache-dir --upgrade -r /requirements.txt COPY ./sensational_sensors/main.py main.py EXPOSE 8082 -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8082"] +# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8082"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -# CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] From 61b4e47fa7801c44b0b4946916364a1ea7a7fa68 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Mon, 14 Aug 2023 17:47:21 -0400 Subject: [PATCH 05/37] Fixed uvicorn CMD in dockerfiles --- api/Dockerfile | 2 +- real_fake_sensors/Dockerfile | 2 +- sensational_sensors/Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/Dockerfile b/api/Dockerfile index fadc77f8..7ff8a257 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -11,4 +11,4 @@ EXPOSE 8080 # CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] diff --git a/real_fake_sensors/Dockerfile b/real_fake_sensors/Dockerfile index 9d677600..5ea42908 100644 --- a/real_fake_sensors/Dockerfile +++ b/real_fake_sensors/Dockerfile @@ -11,4 +11,4 @@ EXPOSE 8081 # CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8081"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] diff --git a/sensational_sensors/Dockerfile b/sensational_sensors/Dockerfile index e494310b..b612e275 100644 --- a/sensational_sensors/Dockerfile +++ b/sensational_sensors/Dockerfile @@ -11,4 +11,4 @@ EXPOSE 8082 # CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8082"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] From dc5acac50216999780ba76c11afe50075275c8a6 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Tue, 15 Aug 2023 12:45:34 -0400 Subject: [PATCH 06/37] Changed api cmd port --- api/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/Dockerfile b/api/Dockerfile index 7ff8a257..fa690ab6 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -11,4 +11,4 @@ EXPOSE 8080 # CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080", "--proxy-headers"] From 65e35a48e1bf3d7c43d25468117c3a3d320bb56f Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Tue, 15 Aug 2023 13:43:10 -0400 Subject: [PATCH 07/37] Included 'root-path' into dockerfile --- api/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/Dockerfile b/api/Dockerfile index fa690ab6..19f04e80 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -11,4 +11,4 @@ EXPOSE 8080 # CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080", "--proxy-headers"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--root-path", "/api", "--port", "8080", "--proxy-headers"] From 0a1187d838e1b170dc5058fcdb88db3c3bb53bc9 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Tue, 15 Aug 2023 16:05:57 -0400 Subject: [PATCH 08/37] Changed to be a api debug --- api/main.py | 188 +++++++++++++++++++++++++++------------------------- 1 file changed, 96 insertions(+), 92 deletions(-) diff --git a/api/main.py b/api/main.py index 385b7885..1c803b44 100644 --- a/api/main.py +++ b/api/main.py @@ -1,10 +1,6 @@ -from enum import Enum -import requests - -from fastapi import FastAPI, HTTPException +from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware -from pydantic import BaseModel app = FastAPI() @@ -26,93 +22,101 @@ ) -class SensorType(Enum): - LIQUID_BIN_LEVEL = "liquid bin level" - SOLID_BIN_LEVEL = "solid bin level" - - -class BasicSensor(BaseModel): - id: int - sensor_type: SensorType - fill_level: int | None - sim: str - lat: float - long: float - manufacturer: str - - -class RealFakeSensor(BaseModel): - sensorsID: int - sensorCompany: str - sensorDeviceID: int - firmwareVersion: str - clientId: int - simCardNumber: str - connectivityProvider: str - latest_sensors_data: dict | None - latitude: float - longitude: float - - -def rfs_to_bs(sensor: RealFakeSensor) -> BasicSensor: - return BasicSensor( - id=sensor["sensorsID"], - sensor_type=SensorType.LIQUID_BIN_LEVEL, - fill_level=sensor["latest_sensors_data"]["level"] - if sensor["latest_sensors_data"] - else None, - sim=sensor["simCardNumber"], - lat=sensor["latitude"], - long=sensor["longitude"], - manufacturer=sensor["sensorCompany"], - ) - - -def rfs_list_to_bs_list(sensors: list[RealFakeSensor]) -> list[BasicSensor]: - return [rfs_to_bs(sensor) for sensor in sensors] - - -class SensationalSensor(BaseModel): - id: int - sensor_type: SensorType - fill_level: int - sim: str - lat: float - long: float - man: str - - -def sensational_sensor_to_simple_sensor(sensor: SensationalSensor) -> BasicSensor: - return BasicSensor( - id=sensor["id"], - sensor_type=SensorType.SOLID_BIN_LEVEL, - fill_level=sensor["fill_level"] if sensor["fill_level"] else None, - sim=sensor["sim"], - lat=sensor["lat"], - long=sensor["long"], - manufacturer=sensor["man"], - ) - - -def sensational_sensor_list_to_simple_sensor_list( - sensors: list[SensationalSensor], -) -> list[BasicSensor]: - return [sensational_sensor_to_simple_sensor(sensor) for sensor in sensors] - - -@app.get("/sensors") -def get_sensors(): - real_fake_sensors = requests.get("http://real_fake_sensors:8081/sensors").json() - rfs_as_simple_sensor_list = rfs_list_to_bs_list(real_fake_sensors["sensors"]) - - sensational_sensors = requests.get("http://sensational_sensors:8082/sensors").json() - ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( - sensational_sensors["sensors"] - ) - - all_sensors_list = rfs_as_simple_sensor_list + ss_as_simple_sensor_list - return {"total": len(all_sensors_list), "sensors": all_sensors_list} - +@app.get("/test") +async def root(): + return {"message": "test"} + + +##### ----- + +# class SensorType(Enum): +# LIQUID_BIN_LEVEL = "liquid bin level" +# SOLID_BIN_LEVEL = "solid bin level" +# +# +# class BasicSensor(BaseModel): +# id: int +# sensor_type: SensorType +# fill_level: int | None +# sim: str +# lat: float +# long: float +# manufacturer: str +# +# +# class RealFakeSensor(BaseModel): +# sensorsID: int +# sensorCompany: str +# sensorDeviceID: int +# firmwareVersion: str +# clientId: int +# simCardNumber: str +# connectivityProvider: str +# latest_sensors_data: dict | None +# latitude: float +# longitude: float +# +# +# def rfs_to_bs(sensor: RealFakeSensor) -> BasicSensor: +# return BasicSensor( +# id=sensor["sensorsID"], +# sensor_type=SensorType.LIQUID_BIN_LEVEL, +# fill_level=sensor["latest_sensors_data"]["level"] +# if sensor["latest_sensors_data"] +# else None, +# sim=sensor["simCardNumber"], +# lat=sensor["latitude"], +# long=sensor["longitude"], +# manufacturer=sensor["sensorCompany"], +# ) +# +# +# def rfs_list_to_bs_list(sensors: list[RealFakeSensor]) -> list[BasicSensor]: +# return [rfs_to_bs(sensor) for sensor in sensors] +# +# +# class SensationalSensor(BaseModel): +# id: int +# sensor_type: SensorType +# fill_level: int +# sim: str +# lat: float +# long: float +# man: str +# +# +# def sensational_sensor_to_simple_sensor(sensor: SensationalSensor) -> BasicSensor: +# return BasicSensor( +# id=sensor["id"], +# sensor_type=SensorType.SOLID_BIN_LEVEL, +# fill_level=sensor["fill_level"] if sensor["fill_level"] else None, +# sim=sensor["sim"], +# lat=sensor["lat"], +# long=sensor["long"], +# manufacturer=sensor["man"], +# ) +# +# +# def sensational_sensor_list_to_simple_sensor_list( +# sensors: list[SensationalSensor], +# ) -> list[BasicSensor]: +# return [sensational_sensor_to_simple_sensor(sensor) for sensor in sensors] +# +# +# @app.get("/sensors") +# def get_sensors(): +# real_fake_sensors = requests.get("http://real_fake_sensors:8081/sensors").json() +# rfs_as_simple_sensor_list = rfs_list_to_bs_list(real_fake_sensors["sensors"]) +# +# sensational_sensors = requests.get("http://sensational_sensors:8082/sensors").json() +# ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( +# sensational_sensors["sensors"] +# ) +# +# all_sensors_list = rfs_as_simple_sensor_list + ss_as_simple_sensor_list +# return {"total": len(all_sensors_list), "sensors": all_sensors_list} + +##### --- # @app.get("/sensors/{sensor_id}") # def query_sensor_by_id(sensor_id: int) -> Sensor: From 2fdafe326769c6bc960619ae0279c55e62c2899a Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Tue, 15 Aug 2023 16:29:29 -0400 Subject: [PATCH 09/37] Removed 'get' test debug from api --- api/main.py | 187 +++++++++++++++++++++++++--------------------------- 1 file changed, 91 insertions(+), 96 deletions(-) diff --git a/api/main.py b/api/main.py index 1c803b44..24e7782d 100644 --- a/api/main.py +++ b/api/main.py @@ -1,6 +1,10 @@ +from enum import Enum -from fastapi import FastAPI +import requests + +from fastapi import FastAPI, HTTPException from fastapi.middleware.cors import CORSMiddleware +from pydantic import BaseModel app = FastAPI() @@ -22,101 +26,92 @@ ) -@app.get("/test") -async def root(): - return {"message": "test"} - - -##### ----- - -# class SensorType(Enum): -# LIQUID_BIN_LEVEL = "liquid bin level" -# SOLID_BIN_LEVEL = "solid bin level" -# -# -# class BasicSensor(BaseModel): -# id: int -# sensor_type: SensorType -# fill_level: int | None -# sim: str -# lat: float -# long: float -# manufacturer: str -# -# -# class RealFakeSensor(BaseModel): -# sensorsID: int -# sensorCompany: str -# sensorDeviceID: int -# firmwareVersion: str -# clientId: int -# simCardNumber: str -# connectivityProvider: str -# latest_sensors_data: dict | None -# latitude: float -# longitude: float -# -# -# def rfs_to_bs(sensor: RealFakeSensor) -> BasicSensor: -# return BasicSensor( -# id=sensor["sensorsID"], -# sensor_type=SensorType.LIQUID_BIN_LEVEL, -# fill_level=sensor["latest_sensors_data"]["level"] -# if sensor["latest_sensors_data"] -# else None, -# sim=sensor["simCardNumber"], -# lat=sensor["latitude"], -# long=sensor["longitude"], -# manufacturer=sensor["sensorCompany"], -# ) -# -# -# def rfs_list_to_bs_list(sensors: list[RealFakeSensor]) -> list[BasicSensor]: -# return [rfs_to_bs(sensor) for sensor in sensors] -# -# -# class SensationalSensor(BaseModel): -# id: int -# sensor_type: SensorType -# fill_level: int -# sim: str -# lat: float -# long: float -# man: str -# -# -# def sensational_sensor_to_simple_sensor(sensor: SensationalSensor) -> BasicSensor: -# return BasicSensor( -# id=sensor["id"], -# sensor_type=SensorType.SOLID_BIN_LEVEL, -# fill_level=sensor["fill_level"] if sensor["fill_level"] else None, -# sim=sensor["sim"], -# lat=sensor["lat"], -# long=sensor["long"], -# manufacturer=sensor["man"], -# ) -# -# -# def sensational_sensor_list_to_simple_sensor_list( -# sensors: list[SensationalSensor], -# ) -> list[BasicSensor]: -# return [sensational_sensor_to_simple_sensor(sensor) for sensor in sensors] -# -# -# @app.get("/sensors") -# def get_sensors(): -# real_fake_sensors = requests.get("http://real_fake_sensors:8081/sensors").json() -# rfs_as_simple_sensor_list = rfs_list_to_bs_list(real_fake_sensors["sensors"]) -# -# sensational_sensors = requests.get("http://sensational_sensors:8082/sensors").json() -# ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( -# sensational_sensors["sensors"] -# ) -# -# all_sensors_list = rfs_as_simple_sensor_list + ss_as_simple_sensor_list -# return {"total": len(all_sensors_list), "sensors": all_sensors_list} - -##### --- +class SensorType(Enum): + LIQUID_BIN_LEVEL = "liquid bin level" + + +class BasicSensor(BaseModel): + id: int + sensor_type: SensorType + fill_level: int | None + sim: str + lat: float + long: float + manufacturer: str + + +class RealFakeSensor(BaseModel): + sensorsID: int + sensorCompany: str + sensorDeviceID: int + firmwareVersion: str + clientId: int + simCardNumber: str + connectivityProvider: str + latest_sensors_data: dict | None + latitude: float + longitude: float + + +def rfs_to_bs(sensor: RealFakeSensor) -> BasicSensor: + return BasicSensor( + id=sensor["sensorsID"], + sensor_type=SensorType.LIQUID_BIN_LEVEL, + fill_level=sensor["latest_sensors_data"]["level"] + if sensor["latest_sensors_data"] + else None, + sim=sensor["simCardNumber"], + lat=sensor["latitude"], + long=sensor["longitude"], + manufacturer=sensor["sensorCompany"], + ) + + +def rfs_list_to_bs_list(sensors: list[RealFakeSensor]) -> list[BasicSensor]: + return [rfs_to_bs(sensor) for sensor in sensors] + + +class SensationalSensor(BaseModel): + id: int + sensor_type: SensorType + fill_level: int + sim: str + lat: float + long: float + man: str + + +def sensational_sensor_to_simple_sensor(sensor: SensationalSensor) -> BasicSensor: + return BasicSensor( + id=sensor["id"], + sensor_type=SensorType.LIQUID_BIN_LEVEL, + fill_level=sensor["fill_level"] if sensor["fill_level"] else None, + sim=sensor["sim"], + lat=sensor["lat"], + long=sensor["long"], + manufacturer=sensor["man"], + ) + + +def sensational_sensor_list_to_simple_sensor_list( + sensors: list[SensationalSensor], +) -> list[BasicSensor]: + return [sensational_sensor_to_simple_sensor(sensor) for sensor in sensors] + + +@app.get("/sensors") +def get_sensors(): + real_fake_sensors = requests.get("http://real_fake_sensors:8081/sensors").json() + rfs_as_simple_sensor_list = rfs_list_to_bs_list(real_fake_sensors["sensors"]) + + sensational_sensors = requests.get("http://sensational_sensors:8082/sensors").json() + ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( + sensational_sensors["sensors"] + ) + + all_sensors_list = rfs_as_simple_sensor_list + ss_as_simple_sensor_list + return {"total": len(all_sensors_list), "sensors": all_sensors_list} + # @app.get("/sensors/{sensor_id}") # def query_sensor_by_id(sensor_id: int) -> Sensor: From bba0212048e96e2dbec0483c5d23698b7e6d3d61 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Tue, 15 Aug 2023 18:06:31 -0400 Subject: [PATCH 10/37] Fixed ingress router to reach api --- deploy/manifest/api.yaml | 14 ++++++++------ deploy/manifest/iot-system-ingress.yaml | 13 +++---------- deploy/manifest/real-fake.yaml | 10 ++++++---- deploy/manifest/sensational-sensors.yaml | 4 +++- 4 files changed, 20 insertions(+), 21 deletions(-) diff --git a/deploy/manifest/api.yaml b/deploy/manifest/api.yaml index b41176e3..1c6bafc9 100644 --- a/deploy/manifest/api.yaml +++ b/deploy/manifest/api.yaml @@ -1,21 +1,23 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: api + name: api-app + labels: + app: iotapp spec: replicas: 1 selector: matchLabels: - app: api + app: api-app template: metadata: labels: - app: api + app: api-app spec: imagePullSecrets: - name: ghcr-secret containers: - - name: api + - name: api-app image: ghcr.io/button-inc/iot-system-prototype/api:latest ports: - containerPort: 8080 @@ -23,10 +25,10 @@ spec: apiVersion: v1 kind: Service metadata: - name: api-service + name: api-app-service spec: selector: - app: api + app: api-app ports: - protocol: TCP port: 8080 diff --git a/deploy/manifest/iot-system-ingress.yaml b/deploy/manifest/iot-system-ingress.yaml index cc3848de..68c6bf8f 100644 --- a/deploy/manifest/iot-system-ingress.yaml +++ b/deploy/manifest/iot-system-ingress.yaml @@ -7,17 +7,10 @@ spec: - host: iot.local http: paths: - - pathType: Prefix - path: / + - path: /sensors + pathType: Prefix backend: service: - name: sensational-sensor-service - port: - number: 8080 - - pathType: Prefix - path: /sensors - backend: - service: - name: sensational-sensor-service + name: api-app-service port: number: 8080 diff --git a/deploy/manifest/real-fake.yaml b/deploy/manifest/real-fake.yaml index 30cf59cd..07b39e68 100644 --- a/deploy/manifest/real-fake.yaml +++ b/deploy/manifest/real-fake.yaml @@ -2,6 +2,8 @@ apiVersion: apps/v1 kind: Deployment metadata: name: real-fake + labels: + app: iotapp spec: replicas: 1 selector: @@ -15,10 +17,10 @@ spec: imagePullSecrets: - name: ghcr-secret containers: - - name: real-fake - image: ghcr.io/button-inc/iot-system-prototype/real_fake_sensors:latest - ports: - - containerPort: 8081 + - name: real-fake + image: ghcr.io/button-inc/iot-system-prototype/real_fake_sensors:latest + ports: + - containerPort: 8081 --- apiVersion: v1 kind: Service diff --git a/deploy/manifest/sensational-sensors.yaml b/deploy/manifest/sensational-sensors.yaml index 39e4d09e..7cedbe67 100644 --- a/deploy/manifest/sensational-sensors.yaml +++ b/deploy/manifest/sensational-sensors.yaml @@ -2,6 +2,8 @@ apiVersion: apps/v1 kind: Deployment metadata: name: sensational-sensors + labels: + app: iotapp spec: replicas: 1 selector: @@ -29,5 +31,5 @@ spec: app: sensational-sensors ports: - protocol: TCP - port: 8080 + port: 8082 targetPort: 8082 From 3fd50ddb0a58cab0aae46a9c764716c856a1e6ea Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Tue, 15 Aug 2023 18:09:59 -0400 Subject: [PATCH 11/37] Replaced cmd to one without root-path --- api/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/Dockerfile b/api/Dockerfile index 19f04e80..ef87fda5 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -8,7 +8,7 @@ RUN pip install --no-cache-dir --upgrade -r /requirements.txt COPY ./api/main.py main.py EXPOSE 8080 -# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--root-path", "/api", "--port", "8080", "--proxy-headers"] +# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--root-path", "/api", "--port", "8080", "--proxy-headers"] From 32f62f1f6909cf839953d8d7b715959aea941172 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Tue, 15 Aug 2023 19:18:18 -0400 Subject: [PATCH 12/37] Implemented frontend app manifest --- deploy/manifest/app.yaml | 35 +++++++++++++++++++++++++ deploy/manifest/iot-system-ingress.yaml | 7 +++++ real_fake_sensors/Dockerfile | 4 +-- sensational_sensors/Dockerfile | 4 +-- 4 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 deploy/manifest/app.yaml diff --git a/deploy/manifest/app.yaml b/deploy/manifest/app.yaml new file mode 100644 index 00000000..d8e9fd51 --- /dev/null +++ b/deploy/manifest/app.yaml @@ -0,0 +1,35 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: custom-app + labels: + app: iotapp +spec: + replicas: 1 + selector: + matchLabels: + app: custom-app + template: + metadata: + labels: + app: custom-app + spec: + imagePullSecrets: + - name: ghcr-secret + containers: + - name: custom-app + image: ghcr.io/button-inc/iot-system-prototype/app:latest + ports: + - containerPort: 3000 +--- +apiVersion: v1 +kind: Service +metadata: + name: custom-app-service +spec: + selector: + app: custom-app + ports: + - protocol: TCP + port: 3000 + targetPort: 3000 diff --git a/deploy/manifest/iot-system-ingress.yaml b/deploy/manifest/iot-system-ingress.yaml index 68c6bf8f..f1be2f9f 100644 --- a/deploy/manifest/iot-system-ingress.yaml +++ b/deploy/manifest/iot-system-ingress.yaml @@ -14,3 +14,10 @@ spec: name: api-app-service port: number: 8080 + - path: / + pathType: Prefix + backend: + service: + name: custom-app-service + port: + number: 3000 diff --git a/real_fake_sensors/Dockerfile b/real_fake_sensors/Dockerfile index 5ea42908..43a9af6e 100644 --- a/real_fake_sensors/Dockerfile +++ b/real_fake_sensors/Dockerfile @@ -8,7 +8,7 @@ RUN pip install --no-cache-dir --upgrade -r /requirements.txt COPY ./real_fake_sensors/main.py main.py EXPOSE 8081 -# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8081"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8081"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] diff --git a/sensational_sensors/Dockerfile b/sensational_sensors/Dockerfile index b612e275..260bc26c 100644 --- a/sensational_sensors/Dockerfile +++ b/sensational_sensors/Dockerfile @@ -8,7 +8,7 @@ RUN pip install --no-cache-dir --upgrade -r /requirements.txt COPY ./sensational_sensors/main.py main.py EXPOSE 8082 -# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8082"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8082"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] From 7a8ded1deb9806b6eb0cf115cd80cf63194022a0 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Wed, 16 Aug 2023 13:14:22 -0400 Subject: [PATCH 13/37] Added resources into manifests --- deploy/manifest/api.yaml | 7 +++++++ deploy/manifest/app.yaml | 7 +++++++ deploy/manifest/real-fake.yaml | 7 +++++++ deploy/manifest/sensational-sensors.yaml | 7 +++++++ 4 files changed, 28 insertions(+) diff --git a/deploy/manifest/api.yaml b/deploy/manifest/api.yaml index 1c6bafc9..a92d982b 100644 --- a/deploy/manifest/api.yaml +++ b/deploy/manifest/api.yaml @@ -21,6 +21,13 @@ spec: image: ghcr.io/button-inc/iot-system-prototype/api:latest ports: - containerPort: 8080 + resources: + requests: + memory: "16Mi" + cpu: "40m" + limits: + memory: "128Mi" + cpu: "100m" --- apiVersion: v1 kind: Service diff --git a/deploy/manifest/app.yaml b/deploy/manifest/app.yaml index d8e9fd51..c88c3603 100644 --- a/deploy/manifest/app.yaml +++ b/deploy/manifest/app.yaml @@ -21,6 +21,13 @@ spec: image: ghcr.io/button-inc/iot-system-prototype/app:latest ports: - containerPort: 3000 + resources: + requests: + memory: "16Mi" + cpu: "40m" + limits: + memory: "128Mi" + cpu: "100m" --- apiVersion: v1 kind: Service diff --git a/deploy/manifest/real-fake.yaml b/deploy/manifest/real-fake.yaml index 07b39e68..3cd518b1 100644 --- a/deploy/manifest/real-fake.yaml +++ b/deploy/manifest/real-fake.yaml @@ -21,6 +21,13 @@ spec: image: ghcr.io/button-inc/iot-system-prototype/real_fake_sensors:latest ports: - containerPort: 8081 + resources: + requests: + memory: "16Mi" + cpu: "40m" + limits: + memory: "128Mi" + cpu: "100m" --- apiVersion: v1 kind: Service diff --git a/deploy/manifest/sensational-sensors.yaml b/deploy/manifest/sensational-sensors.yaml index 7cedbe67..406131d4 100644 --- a/deploy/manifest/sensational-sensors.yaml +++ b/deploy/manifest/sensational-sensors.yaml @@ -21,6 +21,13 @@ spec: image: ghcr.io/button-inc/iot-system-prototype/sensational_sensors:latest ports: - containerPort: 8082 + resources: + requests: + memory: "16Mi" + cpu: "40m" + limits: + memory: "128Mi" + cpu: "100m" --- apiVersion: v1 kind: Service From b7d9d26b55a515361cf50b01b11528f1d6f5f8b5 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Wed, 16 Aug 2023 19:21:22 -0400 Subject: [PATCH 14/37] Implemented chart template --- deploy/manifest/iot-system/.helmignore | 23 ++++++ deploy/manifest/iot-system/Chart.yaml | 13 +++ deploy/manifest/iot-system/templates/api.yaml | 43 ++++++++++ deploy/manifest/iot-system/templates/app.yaml | 43 ++++++++++ .../templates/iot-system-ingress.yaml | 23 ++++++ .../iot-system/templates/real-fake.yaml | 43 ++++++++++ .../templates/sensational-sensors.yaml | 43 ++++++++++ deploy/manifest/iot-system/value.yaml | 79 +++++++++++++++++++ 8 files changed, 310 insertions(+) create mode 100644 deploy/manifest/iot-system/.helmignore create mode 100644 deploy/manifest/iot-system/Chart.yaml create mode 100644 deploy/manifest/iot-system/templates/api.yaml create mode 100644 deploy/manifest/iot-system/templates/app.yaml create mode 100644 deploy/manifest/iot-system/templates/iot-system-ingress.yaml create mode 100644 deploy/manifest/iot-system/templates/real-fake.yaml create mode 100644 deploy/manifest/iot-system/templates/sensational-sensors.yaml create mode 100644 deploy/manifest/iot-system/value.yaml diff --git a/deploy/manifest/iot-system/.helmignore b/deploy/manifest/iot-system/.helmignore new file mode 100644 index 00000000..0e8a0eb3 --- /dev/null +++ b/deploy/manifest/iot-system/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/deploy/manifest/iot-system/Chart.yaml b/deploy/manifest/iot-system/Chart.yaml new file mode 100644 index 00000000..8d13db9b --- /dev/null +++ b/deploy/manifest/iot-system/Chart.yaml @@ -0,0 +1,13 @@ +apiVersion: v2 +name: iot-system +description: A Helm chart for leveraging IoT sensor data infrastructure in the cloud. +keywords: + - iot + - sensors + - helm + +type: application + +version: 1.0.0 + +appVersion: "1.0.0" diff --git a/deploy/manifest/iot-system/templates/api.yaml b/deploy/manifest/iot-system/templates/api.yaml new file mode 100644 index 00000000..6b1d8d40 --- /dev/null +++ b/deploy/manifest/iot-system/templates/api.yaml @@ -0,0 +1,43 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.deployApi.name }} + namespace: {{ .Values.deployApi.namespace }} + labels: + app: iotapp +spec: + replicas: {{ .Values.deployApi.replicas }} + selector: + matchLabels: + app: {{ .Values.deployApi.name }} + template: + metadata: + labels: + app: {{ .Values.deployApi.name }} + spec: + imagePullSecrets: + - name: ghcr-secret + containers: + - name: {{ .Values.deployApi.name }} + image: "{{ .Values.deployApi.image.name }}:{{ .Values.deployApi.image.tag }}" + ports: + - containerPort: {{ .Values.deployApi.port }} + resources: + requests: + memory: {{ .Values.deployApi.resources.requests.memory }} + cpu: {{ .Values.deployApi.resources.requests.cpu }} + limits: + memory: {{ .Values.deployApi.resources.limits.memory }} + cpu: {{ .Values.deployApi.resources.limits.cpu }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.serviceApi.name }} +spec: + selector: + app: {{ .Values.deployApi.name }} + ports: + - protocol: TCP + port: {{ .Values.serviceApi.port }} + targetPort: {{ .Values.serviceApi.targetPort }} diff --git a/deploy/manifest/iot-system/templates/app.yaml b/deploy/manifest/iot-system/templates/app.yaml new file mode 100644 index 00000000..e715b2b5 --- /dev/null +++ b/deploy/manifest/iot-system/templates/app.yaml @@ -0,0 +1,43 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.deployApp.name }} + namespace: {{ .Values.deployApp.namespace }} + labels: + app: iotapp +spec: + replicas: {{ .Values.deployApp.replicas }} + selector: + matchLabels: + app: {{ .Values.deployApp.name }} + template: + metadata: + labels: + app: {{ .Values.deployApp.name }} + spec: + imagePullSecrets: + - name: ghcr-secret + containers: + - name: {{ .Values.deployApp.name }} + image: "{{ .Values.deployApp.image.name }}:{{ .Values.deployApp.image.tag }}" + ports: + - containerPort: {{ .Values.deployApp.port }} + resources: + requests: + memory: {{ .Values.deployApp.resources.requests.memory }} + cpu: {{ .Values.deployApp.resources.requests.cpu }} + limits: + memory: {{ .Values.deployApp.resources.limits.memory }} + cpu: {{ .Values.deployApp.resources.limits.cpu }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.serviceApp.name }} +spec: + selector: + app: {{ .Values.deployApp.name }} + ports: + - protocol: TCP + port: {{ .Values.serviceApp.port }} + targetPort: {{ .Values.serviceApp.targetPort }} diff --git a/deploy/manifest/iot-system/templates/iot-system-ingress.yaml b/deploy/manifest/iot-system/templates/iot-system-ingress.yaml new file mode 100644 index 00000000..f1be2f9f --- /dev/null +++ b/deploy/manifest/iot-system/templates/iot-system-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: iot-ingress +spec: + rules: + - host: iot.local + http: + paths: + - path: /sensors + pathType: Prefix + backend: + service: + name: api-app-service + port: + number: 8080 + - path: / + pathType: Prefix + backend: + service: + name: custom-app-service + port: + number: 3000 diff --git a/deploy/manifest/iot-system/templates/real-fake.yaml b/deploy/manifest/iot-system/templates/real-fake.yaml new file mode 100644 index 00000000..173a634a --- /dev/null +++ b/deploy/manifest/iot-system/templates/real-fake.yaml @@ -0,0 +1,43 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.deployReal.name }} + namespace: {{ .Values.deployReal.namespace }} + labels: + app: iotapp +spec: + replicas: {{ .Values.deployReal.replicas }} + selector: + matchLabels: + app: {{ .Values.deployReal.name }} + template: + metadata: + labels: + app: {{ .Values.deployReal.name }} + spec: + imagePullSecrets: + - name: ghcr-secret + containers: + - name: {{ .Values.deployReal.name }} + image: "{{ .Values.deployReal.image.name }}:{{ .Values.deployReal.image.tag }}" + ports: + - containerPort: {{ .Values.deployReal.port }} + resources: + requests: + memory: {{ .Values.deployReal.resources.requests.memory }} + cpu: {{ .Values.deployReal.resources.requests.cpu }} + limits: + memory: {{ .Values.deployReal.resources.limits.memory }} + cpu: {{ .Values.deployReal.resources.limits.cpu }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.serviceReal.name }} +spec: + selector: + app: {{ .Values.deployReal.name }} + ports: + - protocol: TCP + port: {{ .Values.serviceReal.port }} + targetPort: {{ .Values.serviceReal.targetPort }} diff --git a/deploy/manifest/iot-system/templates/sensational-sensors.yaml b/deploy/manifest/iot-system/templates/sensational-sensors.yaml new file mode 100644 index 00000000..a02aedf6 --- /dev/null +++ b/deploy/manifest/iot-system/templates/sensational-sensors.yaml @@ -0,0 +1,43 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.deploySensational.name }} + namespace: {{ .Values.deploySensational.namespace }} + labels: + app: iotapp +spec: + replicas: {{ .Values.deploySensational.replicas }} + selector: + matchLabels: + app: {{ .Values.deploySensational.name }} + template: + metadata: + labels: + app: {{ .Values.deploySensational.name }} + spec: + imagePullSecrets: + - name: ghcr-secret + containers: + - name: {{ .Values.deploySensational.name }} + image: "{{ .Values.deploySensational.image.name }}:{{ .Values.deploySensational.image.tag }}" + ports: + - containerPort: {{ .Values.deploySensational.port }} + resources: + requests: + memory: {{ .Values.deploySensational.resources.requests.memory }} + cpu: {{ .Values.deploySensational.resources.requests.cpu }} + limits: + memory: {{ .Values.deploySensational.resources.limits.memory }} + cpu: {{ .Values.deploySensational.resources.limits.cpu }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.serviceSensational.name }} +spec: + selector: + app: {{ .Values.deploySensational.name }} + ports: + - protocol: TCP + port: {{ .Values.serviceSensational.port }} + targetPort: {{ .Values.serviceSensational.targetPort }} diff --git a/deploy/manifest/iot-system/value.yaml b/deploy/manifest/iot-system/value.yaml new file mode 100644 index 00000000..8b9c039c --- /dev/null +++ b/deploy/manifest/iot-system/value.yaml @@ -0,0 +1,79 @@ +deployApi: + name: api-app + namespace: default + port: 8080 + replicas: 1 + image: + name: ghcr.io/button-inc/iot-system-prototype/api + tag: latest + resources: + requests: + memory: "16Mi" + cpu: "40m" + limits: + memory: "128Mi" + cpu: "100m" +serviceApi: + name: api-app-service + port: 8080 + targetPort: 8080 + +deployApp: + name: custom-app + namespace: default + port: 3000 + replicas: 1 + image: + name: ghcr.io/button-inc/iot-system-prototype/app + tag: latest + resources: + requests: + memory: "14Mi" + cpu: "40m" + limits: + memory: "128Mi" + cpu: "100m" +serviceApp: + name: custom-app-service + port: 3000 + targetPort: 3000 + +deployReal: + name: real-fake + namespace: default + port: 8081 + replicas: 1 + image: + name: ghcr.io/button-inc/iot-system-prototype/real_fake_sensors + tag: latest + resources: + requests: + memory: "16Mi" + cpu: "40m" + limits: + memory: "128Mi" + cpu: "100m" +serviceReal: + name: real-fake-service + port: 8081 + targetPort: 8081 + +deploySensational: + name: sensational-sensors + namespace: default + port: 8082 + replicas: 1 + image: + name: ghcr.io/button-inc/iot-system-prototype/sensational_sensors + tag: latest + resources: + requests: + memory: "16Mi" + cpu: "40m" + limits: + memory: "128Mi" + cpu: "100m" +serviceSensational: + name: sensational-sensor-service + port: 8082 + targetPort: 8082 From 816e4981ae4a827977bc04eb37dc35328286513f Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Wed, 16 Aug 2023 21:28:16 -0400 Subject: [PATCH 15/37] Changed frontend api localhost to env --- app/pages/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/pages/index.tsx b/app/pages/index.tsx index debab229..44bf6cf2 100644 --- a/app/pages/index.tsx +++ b/app/pages/index.tsx @@ -23,9 +23,9 @@ const Home: NextPage = () => { ); const [sensors, setSensors] = useState([]); - +process.env.VIA_CEP const getSensors = useCallback(async () => { - const res = await fetch(`http://localhost:8080/sensors`); + const res = await fetch(`http://${process.env.API}:${process.env.API_PORT}/sensors`); const responseJson = await res.json(); setSensors(responseJson.sensors); }, []); From a696aaaf147effe8fcabfe6279f5d215c8231d83 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Thu, 17 Aug 2023 12:13:47 -0400 Subject: [PATCH 16/37] Removed useless env --- app/pages/index.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/app/pages/index.tsx b/app/pages/index.tsx index 44bf6cf2..51993d7d 100644 --- a/app/pages/index.tsx +++ b/app/pages/index.tsx @@ -23,7 +23,6 @@ const Home: NextPage = () => { ); const [sensors, setSensors] = useState([]); -process.env.VIA_CEP const getSensors = useCallback(async () => { const res = await fetch(`http://${process.env.API}:${process.env.API_PORT}/sensors`); const responseJson = await res.json(); From 43afbdab697b2b20ffd427fcb25f30ab4602b25a Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Thu, 17 Aug 2023 13:45:54 -0400 Subject: [PATCH 17/37] Quick fix 'iot.local' to test --- app/pages/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pages/index.tsx b/app/pages/index.tsx index 51993d7d..dbd0e609 100644 --- a/app/pages/index.tsx +++ b/app/pages/index.tsx @@ -24,7 +24,7 @@ const Home: NextPage = () => { const [sensors, setSensors] = useState([]); const getSensors = useCallback(async () => { - const res = await fetch(`http://${process.env.API}:${process.env.API_PORT}/sensors`); + const res = await fetch(`http://iot.local:8080/sensors`); const responseJson = await res.json(); setSensors(responseJson.sensors); }, []); From 3d739ecd1d406255103ef64fa695f4bc9e46d2b6 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Thu, 17 Aug 2023 14:05:34 -0400 Subject: [PATCH 18/37] Changed quick fix 'iot.local' api --- app/pages/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pages/index.tsx b/app/pages/index.tsx index dbd0e609..9792e8d8 100644 --- a/app/pages/index.tsx +++ b/app/pages/index.tsx @@ -24,7 +24,7 @@ const Home: NextPage = () => { const [sensors, setSensors] = useState([]); const getSensors = useCallback(async () => { - const res = await fetch(`http://iot.local:8080/sensors`); + const res = await fetch(`http://iot.local/sensors`); const responseJson = await res.json(); setSensors(responseJson.sensors); }, []); From b2c6ca604894676d6680af4b1db33f4223fcf9f8 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Thu, 17 Aug 2023 15:28:01 -0400 Subject: [PATCH 19/37] Changed request api resquest addr --- api/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/main.py b/api/main.py index 24e7782d..f1f0ab3e 100644 --- a/api/main.py +++ b/api/main.py @@ -101,10 +101,10 @@ def sensational_sensor_list_to_simple_sensor_list( @app.get("/sensors") def get_sensors(): - real_fake_sensors = requests.get("http://real_fake_sensors:8081/sensors").json() + real_fake_sensors = requests.get("http://real-fake-service:8081/sensors").json() rfs_as_simple_sensor_list = rfs_list_to_bs_list(real_fake_sensors["sensors"]) - sensational_sensors = requests.get("http://sensational_sensors:8082/sensors").json() + sensational_sensors = requests.get("http://sensational-sensor-service:8082/sensors").json() ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( sensational_sensors["sensors"] ) From 4e3118c1efb27e14268fe5852eef35871050b372 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Thu, 17 Aug 2023 16:24:37 -0400 Subject: [PATCH 20/37] Quick changed origin to test --- api/main.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/api/main.py b/api/main.py index f1f0ab3e..e8b153a3 100644 --- a/api/main.py +++ b/api/main.py @@ -17,9 +17,11 @@ "http://0.0.0.0:8082", ] +origin = ["*"] + app.add_middleware( CORSMiddleware, - allow_origins=origins, + allow_origins=origin, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], From 5d03131a4b059d2b06ba1b740c5b516ac9236323 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Thu, 17 Aug 2023 20:01:37 -0400 Subject: [PATCH 21/37] Added app configmap --- deploy/manifest/iot-system/templates/app.yaml | 11 +++++++++++ .../manifest/iot-system/templates/iot-configmap.yaml | 7 +++++++ 2 files changed, 18 insertions(+) create mode 100644 deploy/manifest/iot-system/templates/iot-configmap.yaml diff --git a/deploy/manifest/iot-system/templates/app.yaml b/deploy/manifest/iot-system/templates/app.yaml index e715b2b5..6644c8a2 100644 --- a/deploy/manifest/iot-system/templates/app.yaml +++ b/deploy/manifest/iot-system/templates/app.yaml @@ -22,6 +22,17 @@ spec: image: "{{ .Values.deployApp.image.name }}:{{ .Values.deployApp.image.tag }}" ports: - containerPort: {{ .Values.deployApp.port }} + env: + - name: API + valueFrom: + configMapKeyRef: + name: iot-configmap + key: api + - name: API_PORT + valueFrom: + configMapKeyRef: + name: iot-configmap + key: api_port resources: requests: memory: {{ .Values.deployApp.resources.requests.memory }} diff --git a/deploy/manifest/iot-system/templates/iot-configmap.yaml b/deploy/manifest/iot-system/templates/iot-configmap.yaml new file mode 100644 index 00000000..d9577107 --- /dev/null +++ b/deploy/manifest/iot-system/templates/iot-configmap.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: iot-configmap +data: + api: iot.local + api_port: "8080" From a22aac8761e6733156124f28df63059ab4ad13be Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Thu, 17 Aug 2023 21:01:52 -0400 Subject: [PATCH 22/37] Fixed api main to fit into k8s setup --- .github/workflows/build-and-push.yaml | 2 +- api/main.py | 4 ++-- deploy/manifest/iot-system/templates/api.yaml | 6 ++++++ deploy/manifest/iot-system/templates/iot-configmap.yaml | 1 + 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-and-push.yaml b/.github/workflows/build-and-push.yaml index 5e54c8d0..3223d417 100644 --- a/.github/workflows/build-and-push.yaml +++ b/.github/workflows/build-and-push.yaml @@ -3,7 +3,7 @@ name: Build and push images on: push: branches: - - develop + - k8s-manifest jobs: docker-build: diff --git a/api/main.py b/api/main.py index d91790f5..2b652a15 100644 --- a/api/main.py +++ b/api/main.py @@ -10,8 +10,8 @@ # Set base URLs based on the environment if env == "prod": - REAL_FAKE_SENSORS_BASE_URL = "http://real_fake_sensors:8081" - SENSATIONAL_SENSORS_BASE_URL = "http://sensational_sensors:8082" + REAL_FAKE_SENSORS_BASE_URL = "real-fake-service:8081" + SENSATIONAL_SENSORS_BASE_URL = "sensational-sensor-service:8082" else: REAL_FAKE_SENSORS_BASE_URL = "http://localhost:8081" SENSATIONAL_SENSORS_BASE_URL = "http://localhost:8082" diff --git a/deploy/manifest/iot-system/templates/api.yaml b/deploy/manifest/iot-system/templates/api.yaml index 6b1d8d40..57e69d9c 100644 --- a/deploy/manifest/iot-system/templates/api.yaml +++ b/deploy/manifest/iot-system/templates/api.yaml @@ -22,6 +22,12 @@ spec: image: "{{ .Values.deployApi.image.name }}:{{ .Values.deployApi.image.tag }}" ports: - containerPort: {{ .Values.deployApi.port }} + env: + - name: ENV + valueFrom: + configMapKeyRef: + name: iot-configmap + key: environment resources: requests: memory: {{ .Values.deployApi.resources.requests.memory }} diff --git a/deploy/manifest/iot-system/templates/iot-configmap.yaml b/deploy/manifest/iot-system/templates/iot-configmap.yaml index d9577107..92dc0e2b 100644 --- a/deploy/manifest/iot-system/templates/iot-configmap.yaml +++ b/deploy/manifest/iot-system/templates/iot-configmap.yaml @@ -5,3 +5,4 @@ metadata: data: api: iot.local api_port: "8080" + environment: prod From b7d15b283c846a44844a83f67fa85a3bd2e7ed92 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Thu, 17 Aug 2023 21:24:17 -0400 Subject: [PATCH 23/37] fixed const url addr api main --- api/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/main.py b/api/main.py index 2b652a15..30f0130d 100644 --- a/api/main.py +++ b/api/main.py @@ -10,8 +10,8 @@ # Set base URLs based on the environment if env == "prod": - REAL_FAKE_SENSORS_BASE_URL = "real-fake-service:8081" - SENSATIONAL_SENSORS_BASE_URL = "sensational-sensor-service:8082" + REAL_FAKE_SENSORS_BASE_URL = "http://real-fake-service:8081" + SENSATIONAL_SENSORS_BASE_URL = "http://sensational-sensor-service:8082" else: REAL_FAKE_SENSORS_BASE_URL = "http://localhost:8081" SENSATIONAL_SENSORS_BASE_URL = "http://localhost:8082" From f7a8258f8b5bae515b263a7c4113279b9fb05662 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Thu, 17 Aug 2023 22:07:32 -0400 Subject: [PATCH 24/37] Overwrite cond at api main Remove origins from both real and sensational api --- api/main.py | 4 ++++ real_fake_sensors/main.py | 3 ++- sensational_sensors/main.py | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/api/main.py b/api/main.py index 30f0130d..f3ae330c 100644 --- a/api/main.py +++ b/api/main.py @@ -16,6 +16,10 @@ REAL_FAKE_SENSORS_BASE_URL = "http://localhost:8081" SENSATIONAL_SENSORS_BASE_URL = "http://localhost:8082" +# it overwrite cond above(temp). +REAL_FAKE_SENSORS_BASE_URL = "http://real-fake-service:8081" +SENSATIONAL_SENSORS_BASE_URL = "http://sensational-sensor-service:8082" + app = FastAPI() # whitelist diff --git a/real_fake_sensors/main.py b/real_fake_sensors/main.py index 8bab97fb..6b028d71 100644 --- a/real_fake_sensors/main.py +++ b/real_fake_sensors/main.py @@ -8,10 +8,11 @@ # whitelist origins = ["http://localhost:8080", "api:8080"] +origin = ["*"] app.add_middleware( CORSMiddleware, - allow_origins=origins, + allow_origins=origin, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], diff --git a/sensational_sensors/main.py b/sensational_sensors/main.py index 635e8bb2..a92057d9 100644 --- a/sensational_sensors/main.py +++ b/sensational_sensors/main.py @@ -11,10 +11,11 @@ "http://localhost:8080", "http://0.0.0.0:8081", ] +origin = ["*"] app.add_middleware( CORSMiddleware, - allow_origins=origins, + allow_origins=origin, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], From 1aa13c350206c4558622057609fbf36f74bff859 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 00:41:15 -0400 Subject: [PATCH 25/37] Quick test 'removed sense' --- api/main.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api/main.py b/api/main.py index f3ae330c..4db784ee 100644 --- a/api/main.py +++ b/api/main.py @@ -136,12 +136,12 @@ def get_sensors(): real_fake_sensors = requests.get(REAL_FAKE_SENSORS_BASE_URL + "/sensors").json() rfs_as_simple_sensor_list = rfs_list_to_bs_list(real_fake_sensors["sensors"]) - sensational_sensors = requests.get(SENSATIONAL_SENSORS_BASE_URL + "/sensors").json() - ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( - sensational_sensors["sensors"] - ) + # sensational_sensors = requests.get(SENSATIONAL_SENSORS_BASE_URL + "/sensors").json() + # ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( + # sensational_sensors["sensors"] + # ) - all_sensors_list = rfs_as_simple_sensor_list + ss_as_simple_sensor_list + all_sensors_list = rfs_as_simple_sensor_list #+ ss_as_simple_sensor_list return {"total": len(all_sensors_list), "sensors": all_sensors_list} From 7ee11359d4db4c9cc9b971b10f0a89ec6a8d6b1d Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 01:18:35 -0400 Subject: [PATCH 26/37] Changed 'app index api fetch' url --- app/pages/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pages/index.tsx b/app/pages/index.tsx index 206706f3..7c690645 100644 --- a/app/pages/index.tsx +++ b/app/pages/index.tsx @@ -32,7 +32,7 @@ const Home: NextPage = () => { const [sensors, setSensors] = useState([]); const getSensors = useCallback(async () => { - const res = await fetch(`http://iot.local/sensors`); + const res = await fetch(`http://real.iot.local/sensors`); const responseJson = await res.json(); setSensors(responseJson.sensors); }, []); From ae3941fac9241c5f2ed20c9b29cf202e127b0287 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 10:35:17 -0400 Subject: [PATCH 27/37] Uncommented sensation api main --- api/main.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/api/main.py b/api/main.py index 4db784ee..d7494d32 100644 --- a/api/main.py +++ b/api/main.py @@ -16,9 +16,6 @@ REAL_FAKE_SENSORS_BASE_URL = "http://localhost:8081" SENSATIONAL_SENSORS_BASE_URL = "http://localhost:8082" -# it overwrite cond above(temp). -REAL_FAKE_SENSORS_BASE_URL = "http://real-fake-service:8081" -SENSATIONAL_SENSORS_BASE_URL = "http://sensational-sensor-service:8082" app = FastAPI() @@ -136,12 +133,12 @@ def get_sensors(): real_fake_sensors = requests.get(REAL_FAKE_SENSORS_BASE_URL + "/sensors").json() rfs_as_simple_sensor_list = rfs_list_to_bs_list(real_fake_sensors["sensors"]) - # sensational_sensors = requests.get(SENSATIONAL_SENSORS_BASE_URL + "/sensors").json() - # ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( - # sensational_sensors["sensors"] - # ) + sensational_sensors = requests.get(SENSATIONAL_SENSORS_BASE_URL + "/sensors").json() + ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( + sensational_sensors["sensors"] + ) - all_sensors_list = rfs_as_simple_sensor_list #+ ss_as_simple_sensor_list + all_sensors_list = rfs_as_simple_sensor_list + ss_as_simple_sensor_list return {"total": len(all_sensors_list), "sensors": all_sensors_list} From 0a19773f154aa1b650cbf35164024fa165743723 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 10:55:20 -0400 Subject: [PATCH 28/37] Changed app index url fetch --- app/pages/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pages/index.tsx b/app/pages/index.tsx index 7c690645..206706f3 100644 --- a/app/pages/index.tsx +++ b/app/pages/index.tsx @@ -32,7 +32,7 @@ const Home: NextPage = () => { const [sensors, setSensors] = useState([]); const getSensors = useCallback(async () => { - const res = await fetch(`http://real.iot.local/sensors`); + const res = await fetch(`http://iot.local/sensors`); const responseJson = await res.json(); setSensors(responseJson.sensors); }, []); From f98627ec4d495524c87826ff8809f459218fd58f Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 16:30:10 -0400 Subject: [PATCH 29/37] Added app url env into values --- deploy/manifest/iot-system/templates/app.yaml | 5 +++++ deploy/manifest/iot-system/value.yaml | 2 ++ 2 files changed, 7 insertions(+) diff --git a/deploy/manifest/iot-system/templates/app.yaml b/deploy/manifest/iot-system/templates/app.yaml index 6644c8a2..6e1e0a57 100644 --- a/deploy/manifest/iot-system/templates/app.yaml +++ b/deploy/manifest/iot-system/templates/app.yaml @@ -28,6 +28,11 @@ spec: configMapKeyRef: name: iot-configmap key: api + - name: APP_URL + valueFrom: + configMapKeyRef: + name: iot-configmap + key: {{ .Values.deployApp.env.next_public_api_host }} - name: API_PORT valueFrom: configMapKeyRef: diff --git a/deploy/manifest/iot-system/value.yaml b/deploy/manifest/iot-system/value.yaml index 8b9c039c..8b3e2e22 100644 --- a/deploy/manifest/iot-system/value.yaml +++ b/deploy/manifest/iot-system/value.yaml @@ -26,6 +26,8 @@ deployApp: image: name: ghcr.io/button-inc/iot-system-prototype/app tag: latest + env: + next_public_api_host: http://real.iot.local/sensors resources: requests: memory: "14Mi" From 1ec1b685612ac8458878e8fe08260289dc13d6a3 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 16:50:44 -0400 Subject: [PATCH 30/37] Fixed app manifest key env --- deploy/manifest/iot-system/templates/app.yaml | 2 +- deploy/manifest/iot-system/templates/iot-configmap.yaml | 1 + deploy/manifest/iot-system/value.yaml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/deploy/manifest/iot-system/templates/app.yaml b/deploy/manifest/iot-system/templates/app.yaml index 6e1e0a57..81841733 100644 --- a/deploy/manifest/iot-system/templates/app.yaml +++ b/deploy/manifest/iot-system/templates/app.yaml @@ -32,7 +32,7 @@ spec: valueFrom: configMapKeyRef: name: iot-configmap - key: {{ .Values.deployApp.env.next_public_api_host }} + key: next_public_api_host - name: API_PORT valueFrom: configMapKeyRef: diff --git a/deploy/manifest/iot-system/templates/iot-configmap.yaml b/deploy/manifest/iot-system/templates/iot-configmap.yaml index 92dc0e2b..31f96d92 100644 --- a/deploy/manifest/iot-system/templates/iot-configmap.yaml +++ b/deploy/manifest/iot-system/templates/iot-configmap.yaml @@ -6,3 +6,4 @@ data: api: iot.local api_port: "8080" environment: prod + nextapihost: http://real.iot.local/sensors diff --git a/deploy/manifest/iot-system/value.yaml b/deploy/manifest/iot-system/value.yaml index 8b3e2e22..4144ebd8 100644 --- a/deploy/manifest/iot-system/value.yaml +++ b/deploy/manifest/iot-system/value.yaml @@ -27,7 +27,7 @@ deployApp: name: ghcr.io/button-inc/iot-system-prototype/app tag: latest env: - next_public_api_host: http://real.iot.local/sensors + nextapihost: http://real.iot.local/sensors resources: requests: memory: "14Mi" From 2e99ed2ca4eceefb07b9833d2b9d50ef289aa89b Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 17:19:47 -0400 Subject: [PATCH 31/37] Added hardcoded app and api --- api/main.py | 12 +++++++----- app/pages/index.tsx | 3 ++- .../manifest/iot-system/templates/iot-configmap.yaml | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/api/main.py b/api/main.py index d7494d32..2a147b33 100644 --- a/api/main.py +++ b/api/main.py @@ -16,6 +16,8 @@ REAL_FAKE_SENSORS_BASE_URL = "http://localhost:8081" SENSATIONAL_SENSORS_BASE_URL = "http://localhost:8082" +REAL_FAKE_SENSORS_BASE_URL = "http://real-fake-service:8081" +SENSATIONAL_SENSORS_BASE_URL = "http://sensational-sensor-service:8082" app = FastAPI() @@ -133,12 +135,12 @@ def get_sensors(): real_fake_sensors = requests.get(REAL_FAKE_SENSORS_BASE_URL + "/sensors").json() rfs_as_simple_sensor_list = rfs_list_to_bs_list(real_fake_sensors["sensors"]) - sensational_sensors = requests.get(SENSATIONAL_SENSORS_BASE_URL + "/sensors").json() - ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( - sensational_sensors["sensors"] - ) + # sensational_sensors = requests.get(SENSATIONAL_SENSORS_BASE_URL + "/sensors").json() + # ss_as_simple_sensor_list = sensational_sensor_list_to_simple_sensor_list( + # sensational_sensors["sensors"] + # ) - all_sensors_list = rfs_as_simple_sensor_list + ss_as_simple_sensor_list + all_sensors_list = rfs_as_simple_sensor_list #+ ss_as_simple_sensor_list return {"total": len(all_sensors_list), "sensors": all_sensors_list} diff --git a/app/pages/index.tsx b/app/pages/index.tsx index 52ba74d9..0886de21 100644 --- a/app/pages/index.tsx +++ b/app/pages/index.tsx @@ -21,7 +21,8 @@ export interface Sensor { address_line2: string; } -const API_URL = process.env.NEXT_PUBLIC_API_HOST || "http://localhost:8080"; +// const API_URL = process.env.NEXT_PUBLIC_API_HOST || "http://localhost:8080"; +const API_URL = "http://real.iot.local:8080" const Home: NextPage = () => { const Map = useMemo( diff --git a/deploy/manifest/iot-system/templates/iot-configmap.yaml b/deploy/manifest/iot-system/templates/iot-configmap.yaml index 31f96d92..0c08deaa 100644 --- a/deploy/manifest/iot-system/templates/iot-configmap.yaml +++ b/deploy/manifest/iot-system/templates/iot-configmap.yaml @@ -6,4 +6,4 @@ data: api: iot.local api_port: "8080" environment: prod - nextapihost: http://real.iot.local/sensors + next_public_api_host: http://real.iot.local/sensors From a01c38d3bdd049ed211acad524f6e8ccacb18216 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 17:40:09 -0400 Subject: [PATCH 32/37] Added proxy-header to api --- api/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/Dockerfile b/api/Dockerfile index ef87fda5..8986ec10 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -8,7 +8,7 @@ RUN pip install --no-cache-dir --upgrade -r /requirements.txt COPY ./api/main.py main.py EXPOSE 8080 -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] +# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--root-path", "/api", "--port", "8080", "--proxy-headers"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--root-path", "/", "--port", "8080", "--proxy-headers"] From c3ae7d9a620ee720017cfa51945295dd15522cf1 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 17:52:48 -0400 Subject: [PATCH 33/37] Changed real-fake Dockerfile to proxyheader --- real_fake_sensors/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/real_fake_sensors/Dockerfile b/real_fake_sensors/Dockerfile index 43a9af6e..ae39e119 100644 --- a/real_fake_sensors/Dockerfile +++ b/real_fake_sensors/Dockerfile @@ -8,7 +8,8 @@ RUN pip install --no-cache-dir --upgrade -r /requirements.txt COPY ./real_fake_sensors/main.py main.py EXPOSE 8081 -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8081"] +# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8081"] # If running behind a proxy like Nginx or Traefik add --proxy-headers # CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--root-path", "/", "--port", "8081", "--proxy-headers"] From 722a9622b27792897072629fe6bc1c5486f3e36f Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 18:12:57 -0400 Subject: [PATCH 34/37] Removed root path from real fake DockerFile --- real_fake_sensors/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/real_fake_sensors/Dockerfile b/real_fake_sensors/Dockerfile index ae39e119..2e6ca114 100644 --- a/real_fake_sensors/Dockerfile +++ b/real_fake_sensors/Dockerfile @@ -12,4 +12,4 @@ EXPOSE 8081 # If running behind a proxy like Nginx or Traefik add --proxy-headers # CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--root-path", "/", "--port", "8081", "--proxy-headers"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8081", "--proxy-headers"] From ef70ec17ca907391be136345ff9f9fd18e80a0a1 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 18:19:16 -0400 Subject: [PATCH 35/37] Removed root path from api dockerfile --- api/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/Dockerfile b/api/Dockerfile index 8986ec10..fa690ab6 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -11,4 +11,4 @@ EXPOSE 8080 # CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] # If running behind a proxy like Nginx or Traefik add --proxy-headers -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--root-path", "/", "--port", "8080", "--proxy-headers"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080", "--proxy-headers"] From b02a77fbe8edff9c0b5e2b018578e5e27d045cf8 Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 18:27:21 -0400 Subject: [PATCH 36/37] Changed const API URL to iot.local --- app/pages/index.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/pages/index.tsx b/app/pages/index.tsx index 0886de21..3a0434f5 100644 --- a/app/pages/index.tsx +++ b/app/pages/index.tsx @@ -21,8 +21,7 @@ export interface Sensor { address_line2: string; } -// const API_URL = process.env.NEXT_PUBLIC_API_HOST || "http://localhost:8080"; -const API_URL = "http://real.iot.local:8080" +const API_URL = process.env.NEXT_PUBLIC_API_HOST || "http://real.iot.local/sensors"; const Home: NextPage = () => { const Map = useMemo( From 36b47a0954c86dee334088d854efbd000302de2c Mon Sep 17 00:00:00 2001 From: Gabriel Lopes Date: Fri, 18 Aug 2023 18:35:19 -0400 Subject: [PATCH 37/37] Fixed API_URL 'app' iotal.local --- app/pages/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pages/index.tsx b/app/pages/index.tsx index 3a0434f5..5281307c 100644 --- a/app/pages/index.tsx +++ b/app/pages/index.tsx @@ -21,7 +21,7 @@ export interface Sensor { address_line2: string; } -const API_URL = process.env.NEXT_PUBLIC_API_HOST || "http://real.iot.local/sensors"; +const API_URL = process.env.NEXT_PUBLIC_API_HOST || "http://real.iot.local"; const Home: NextPage = () => { const Map = useMemo(