From: agrawalgaurav Date: Thu, 25 Mar 2021 05:37:58 +0000 (+0530) Subject: Added deployment and development artifacts. X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=commitdiff_plain;h=5b9f456c977f69840fc9470b304c6360adc2d971;hp=f7aebbe9c6b823009e1a42fe9983c878e54616e1;p=ealt-edge.git Added deployment and development artifacts. Signed-off-by: agrawalgaurav Change-Id: I0a33be3aa999a7de5693fa5d05646fe5124a2cb1 --- diff --git a/example-apps/ROBO/Deployment/robo-dep.yaml b/example-apps/ROBO/Deployment/robo-dep.yaml deleted file mode 100644 index 3137b90..0000000 --- a/example-apps/ROBO/Deployment/robo-dep.yaml +++ /dev/null @@ -1,34 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: robo-deployment -spec: - replicas: 2 - selector: - matchLabels: - app: robo - template: - metadata: - labels: - app: robo - spec: - containers: - - name: robo - image: ealtedge/robo - ports: - - containerPort: 80 ---- -apiVersion: v1 -kind: Service -metadata: - name: robo-service -spec: - type: NodePort - selector: - app: robo - ports: - - protocol: "TCP" - port: 8000 - targetPort: 80 - nodePort: 30001 diff --git a/example-apps/ROBO/deployment/SmartShelf_description.md b/example-apps/ROBO/deployment/SmartShelf_description.md new file mode 100644 index 0000000..0835c76 --- /dev/null +++ b/example-apps/ROBO/deployment/SmartShelf_description.md @@ -0,0 +1,31 @@ +# Smart Shelf Application + +This application is an entry level application to demonstrate Remote Office Branch Office usecase (ROBO) for Retail Enterprise for scenario wherein there is a retail chain comprising of multiple retail stores and a retail headquater. +The application provides Smart Shelf solution to monitor shelf's for a retail chain. + +Why Smart Shelf solution: +Smart Shelf is a technological breakthrough that enhances the overall shopping experience and improves a store’s operational efficiency in terms of stock misplacement and notify empty shelves. + +Smart shelf benefits: +- Smart Shelves can notify empty shelf for items when needed without requiring humans, making it easier to prevent + shortages of popular items at peak times. +- Smart Shelves allow retailers to make more informed decisions about stocking and inventory, notify the back-end + system about the existing quantity of items on the shelves, alert when product levels are running low and when items are misplaced. +- Provides access to the store or shelf information remotely, enables visibility of stock position, cross and up + selling of products. +- Better customer experience with proper inventory for each shelf. + +Available Solutions: +- Camera based with Video analytics solution +- weight sensors/optical sensors based solutions +This application is based on 1st solution + +Why Edge: +This use case demands for low latency, jitter for scenarios like theft detection, stock misplacement. +Currently available in-retail enterprise solutions, wherein in store deployment of compute/storage resources + are done, consumes store spaces and are not cost effective. 5G Telco edge based solution is a need here and this + application demonstrates the same. + +This application is developed as part of Akraino EALTEdge BP using EdgeGallery as an upstream project. Kindly refer + below link to get more insights about this application: +https://wiki.akraino.org/display/AK/EALT-EDGE+Landing+Application diff --git a/example-apps/ROBO/deployment/SmartShelf_icon.png b/example-apps/ROBO/deployment/SmartShelf_icon.png new file mode 100644 index 0000000..def1751 Binary files /dev/null and b/example-apps/ROBO/deployment/SmartShelf_icon.png differ diff --git a/example-apps/ROBO/deployment/smartshelf-deployment.yaml b/example-apps/ROBO/deployment/smartshelf-deployment.yaml new file mode 100644 index 0000000..8ceb09d --- /dev/null +++ b/example-apps/ROBO/deployment/smartshelf-deployment.yaml @@ -0,0 +1,217 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: robo-deployment +spec: + replicas: 2 + selector: + matchLabels: + app: robo + template: + metadata: + labels: + app: robo + spec: + containers: + - name: robo + image: ealtedge/robo + ports: + - containerPort: 80 +--- +apiVersion: v1 +kind: Service +metadata: + name: robo-service +spec: + type: NodePort + selector: + app: robo + ports: + - protocol: "TCP" + port: 8000 + targetPort: 80 + nodePort: 30001 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backup-be +spec: + replicas: 1 + selector: + matchLabels: + app: backup + template: + metadata: + labels: + app: backup + spec: + volumes: + - name: task-pv-storage + persistentVolumeClaim: + claimName: task-pv-claim + containers: + - name: backup-be + image: ealtedge/robo-be + env: + - name: KUBE_CONFIG + value: "/usr/app/.kube/config" + - name: HOSTIP + value: "159.138.129.53" + ports: + - containerPort: 8091 + volumeMounts: + - name: task-pv-storage + mountPath: "/usr/app/.kube/" +--- +apiVersion: v1 +kind: Service +metadata: + name: backup-be +spec: + selector: + app: backup + type: NodePort + ports: + - port: 8091 + name: service-port + nodePort: 30081 +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: task-pv-volume + labels: + type: local +spec: + storageClassName: manual + capacity: + storage: 1Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/root/.kube/" +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: task-pv-claim +spec: + storageClassName: manual + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: inventory-be + namespace: my-test +spec: + replicas: 1 + selector: + matchLabels: + app: inventory + template: + metadata: + labels: + app: inventory + spec: + containers: + - name: inventory-be + image: ealtedge/inventory-be:v1.3 + env: + - name: INFLUXDB_IP + value: "159.138.129.53" + - name: INFLUXDB_PORT + value: "30270" + - name: OBJ_DET_SER_IP + value: "159.138.129.53" + - name: OBJ_DET_SER_PORT + value: "30093" + ports: + - containerPort: 9995 +--- +apiVersion: v1 +kind: Service +metadata: + name: inventory-be + namespace: my-test +spec: + selector: + app: inventory + type: NodePort + ports: + - port: 9995 + name: service-port + nodePort: 30092 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: obj-detection +spec: + replicas: 1 + selector: + matchLabels: + app: detection + template: + metadata: + labels: + app: detection + spec: + containers: + - name: obj-detection + image: ealtedge/obj-detection + ports: + - containerPort: 9999 + volumeMounts: + - name: host-path-storage + mountPath: "/usr/app/model/" + volumes: + - name: host-path-storage + persistentVolumeClaim: + claimName: host-path-claim +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: host-path-pv + labels: + type: local +spec: + storageClassName: manual + capacity: + storage: 2Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/root/model/" +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: host-path-claim +spec: + storageClassName: manual + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi +--- +apiVersion: v1 +kind: Service +metadata: + name: obj-detection +spec: + selector: + app: detection + type: NodePort + ports: + - port: 9999 + name: service-port + nodePort: 30093