revise the helm chart and update the poerty install lists#24
revise the helm chart and update the poerty install lists#24
Conversation
|
I took a quick look and will take a closer look later. I'd also like to
test it on the JIT Cloudlet to make sure they don't break anything. I get a
little nervous when things get hardcoded.
…On Tue, Aug 15, 2023 at 9:26 AM Thomas Eiszler ***@***.***> wrote:
The changes to the Dockerfile and pyproject.toml look fine. @jaharkes
<https://github.com/jaharkes> and or @jblakley
<https://github.com/jblakley>, Can you review the helm chart changes. It
mostly seems like removal of the namespace tag from every chart.
—
Reply to this email directly, view it on GitHub
<#24 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABTSNMCNMEE4P5XDUXV6M73XVN2IFANCNFSM6AAAAAA3NH2I7E>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Jim Blakley
Living Edge Lab Associate Director
Carnegie Mellon University
|
|
Removing the namespace is a good change because that way helm can define it and we can deploy multiple backends in the same cluster (for sinfonia deployments).
I didn't like some of the hardcoded stuff like vm039.elijah and such. Not sure if that has been addressed.
Jan
…On August 15, 2023 10:37:57 AM EDT, Jim Blakley ***@***.***> wrote:
I took a quick look and will take a closer look later. I'd also like to
test it on the JIT Cloudlet to make sure they don't break anything. I get a
little nervous when things get hardcoded.
On Tue, Aug 15, 2023 at 9:26 AM Thomas Eiszler ***@***.***>
wrote:
> The changes to the Dockerfile and pyproject.toml look fine. @jaharkes
> <https://github.com/jaharkes> and or @jblakley
> <https://github.com/jblakley>, Can you review the helm chart changes. It
> mostly seems like removal of the namespace tag from every chart.
>
> —
> Reply to this email directly, view it on GitHub
> <#24 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ABTSNMCNMEE4P5XDUXV6M73XVN2IFANCNFSM6AAAAAA3NH2I7E>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
|
|
What do you mean by "helm can define it"? The pre-PR method is to specify
namespace in values.yaml. How is it set post-PR?
On Tue, Aug 15, 2023 at 11:01 AM Jan Harkes ***@***.***>
wrote:
… Removing the namespace is a good change because that way helm can define
it and we can deploy multiple backends in the same cluster (for sinfonia
deployments).
I didn't like some of the hardcoded stuff like vm039.elijah and such. Not
sure if that has been addressed.
Jan
On August 15, 2023 10:37:57 AM EDT, Jim Blakley ***@***.***> wrote:
>I took a quick look and will take a closer look later. I'd also like to
>test it on the JIT Cloudlet to make sure they don't break anything. I get
a
>little nervous when things get hardcoded.
>
>On Tue, Aug 15, 2023 at 9:26 AM Thomas Eiszler ***@***.***>
>wrote:
>
>> The changes to the Dockerfile and pyproject.toml look fine. @jaharkes
>> <https://github.com/jaharkes> and or @jblakley
>> <https://github.com/jblakley>, Can you review the helm chart changes.
It
>> mostly seems like removal of the namespace tag from every chart.
>>
>> —
>> Reply to this email directly, view it on GitHub
>> <
#24 (comment)>,
>> or unsubscribe
>> <
https://github.com/notifications/unsubscribe-auth/ABTSNMCNMEE4P5XDUXV6M73XVN2IFANCNFSM6AAAAAA3NH2I7E>
>> .
>> You are receiving this because you were mentioned.Message ID:
>> ***@***.***>
>>
>
>
—
Reply to this email directly, view it on GitHub
<#24 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABTSNMDQQMY4MEQZHAYU35TXVOFM3ANCNFSM6AAAAAA3NH2I7E>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Jim Blakley
Living Edge Lab Associate Director
Carnegie Mellon University
|
|
Hi Jan and Jim, Sorry for the confusion with hard-coded lines. There are the lines with vm039.elijah in the init container section of object engine deployment file. They are for downloading ultralytics model frames and models from the edge cloudlet(vm039.elijah) I am running. For model frames, in this case master.zip file under prepare-model-2 section, I added that just for testing the compatibility of different versions of model frames with different models and ultralytics library verison. This whole section could be deleted entirely later on. For models, in this case coco.pt under prepare-model-1 section, I think openscout object engine expects there are some models like coco.pt, robomaster.pt to be in the /openscout-server/models dir to start. Therefore, I have init container downloaded some model that I have exposed from the edge cloudlet. Users could just change the model url specified in the values.yml file if they need to choose other models. Ant |
|
It may be useful to have a generic model like coco.pt as a default in the Docker image, basically anything we download anyway when the container is started, probably should be part of the container. If it is part of the image, it is effectively cached between invocations, but if we have to download anything on startup we always have to wait for that download to complete. If it is small download is cheap, but so is adding it to the container. And if it is large, having it pre-cached is better than having to re-download it every time. |
IC. I'll try to make some default model in the image, and maybe add the if condition saying that if there is no specific url is defined by user, the openscout will load that default model. |
|
I tested the basic object detection function of the PR on the ARM JIT Cloudlet. I did no ELK breakage test but those containers deployed OK. Object detection is working. The deployment, however, is going into default namespace rather than the openscout namespace. I'm assuming that the intent of the change is to force use of the Regardless, the PR broke my deployment by putting it in the wrong namespace. A few other things I noticed:
|
Hi Jim, I'm not sure about the namespace either. I'll take a look on it, and keep u updated. For the things that u have noted:
Ant |
|
Anthony, that sounds good. I will look at creating a helmfile to allow namespace declaration. Once @jaharkes has rebuilt the ARM container, I can test out in the JIT Cloudlet. |
| name: openscout | ||
| repository: cmusatyalab/openscout | ||
| tag: latest | ||
| repository: xianglic/openscout |
There was a problem hiding this comment.
We should not refer to a non-cmusatyalab docker registry here
|
I looked at To deploy this, it becomes simply: To change the namespace on the command line: With this capability, I'm comfortable removing the namespace definition from all of the charts. Up to you whether you want to include a default helmfile.yaml in the repository. |
…te the prepare model2 init container; changed the prepare model 1 init container based on the rebuilt docker image; reposition the model url, name specification in the values.yml file
…models dir with models (coco.pt; robomaster.pt, and yolov5m) in the docker image; commented out the volume mount of ./models in the docker-compose file since we have now have one in the image itself
|
Hi Jan, Jim, Tom, I have revised several things as follow: For the docker aspect:
For the helm chart aspect:
For other aspect:
|
|
My main remaining issue is being able to build a working ARM container image. I pushed the old base image to my dockerhub account so we don't lose the ability to recreate the current version. But, need to have a working updated version. I don't have strong input on the implementation of the model folders. But, here are some thoughts on design requirements:
These are certainly debatable requirements. They assume a paradigm of an evolving and growing number of models as the cognitive engines evolve. Another paradigm assumes that we lock things down to a specific set of models and packages and leave extensions to a developer. Given the challenge of #5, that may be the only option anyway. This seems somewhat tied to the openscout approach of modular cognitive engines. If I'm a developer adding a new engine, what's the process? |
I have a somewhat ugly but working fix for that, when i tried to do it the official way by adding the download.pytorch.org repositories it was still unable to find the right aarch64 torch wheels, so I just hardcoded the download urls for different python releases. poetry lock is taking about 10-20 minutes to pin down the right package versions though, so right now I'm trying to see what is causing that and will probably tighten up some of the versions (or add some additional restrictions) it seems like it is cycling in the dependency resolver on botocore and roboflow which are indirect dependencies.
Complete agreement on the models folder, just include one example model and hopefully a relatively small one at that, but generic enough that people can test their openscout client/backend with common objects (person/keyboard/tv) which I guess would be the coco.pt model.
Actually there are 3 possible methods, each with their own advantages and disadvantages.
|
Revise the helm chart to make it compatible with sinphonia
Update the poetry toml for ultralytics from ^8.0.1 to ^8.0.145 to update the ultralytics package for new yolov5 model to use.