Is your feature request related to a problem? Please describe.
At the moment, Middleware supports only stateless NetApps. When NetApp provides functionality like image recognition, there is no problem. However, when NetApp has to provide mapping functionality, it has to store the map somewhere.
Middleware will have to provide a way to save the state of the NetApp. It can either be a Persistent Volume Claim in Kubernetes, AWS S3 or OpenStack binary storage.
Feature goes into the planning phase.
The current goal is to provide the NetApp with the persistence layer that will allow saving and reading data directly in the Pod. The Pod will access the data using Volume Claims.
The main ideas behind the implementation;
[x] Each piece of persisted data has its unique identifier
[x] Robot can request providing the specific dataset to the NetApp by passing the ID to the Middleware
[x] When the robot does not request a specific data ID, Middleware will provide the robot with a new data ID
[x] Data will be stored in AWS S3 (in the future, an alternative source will be provided)
[x] Middleware will fetch the data from S3 using init-container functionality in K8s
[x] Middleware will upload the data back to S3 during the termination of the container using preStop hooks
[x] Middleware will connect volume with data to the NetApp and set the Env variables pointing to the data directory
[x] Middleware will increase terminationGracePeriodSeconds to ensure that all the files will be uploaded to S3
[x] The init-container will need to be a separate container (consider Golang for development, it's easy to wait for SIGKILL signal)
Is your feature request related to a problem? Please describe. At the moment, Middleware supports only stateless NetApps. When NetApp provides functionality like image recognition, there is no problem. However, when NetApp has to provide mapping functionality, it has to store the map somewhere.
Middleware will have to provide a way to save the state of the NetApp. It can either be a Persistent Volume Claim in Kubernetes, AWS S3 or OpenStack binary storage.
Feature goes into the planning phase. The current goal is to provide the NetApp with the persistence layer that will allow saving and reading data directly in the Pod. The Pod will access the data using Volume Claims.
The main ideas behind the implementation;
init-container
functionality in K8sinit-container
will need to be a separate container (consider Golang for development, it's easy to wait for SIGKILL signal)