Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Device Agent updates at scale #253

Open
1 task
Steve-Mcl opened this issue Apr 16, 2024 · 6 comments
Open
1 task

Device Agent updates at scale #253

Steve-Mcl opened this issue Apr 16, 2024 · 6 comments
Labels
customer request requested by customer story A user-oriented description of a feature

Comments

@Steve-Mcl
Copy link
Contributor

Steve-Mcl commented Apr 16, 2024

Epic

No response

Description

As a FlowFuse user: I want a means of updating the device agent at scale.

So that we get latest features and fixes:

First raised on NR forum: https://discourse.nodered.org/t/how-to-update-device-agent-version-in-scale/87260

Acceptance Criteria

  • TBD

Customer Requests

  1. https://app-eu1.hubspot.com/contacts/26586079/record/0-1/11047851
@Steve-Mcl Steve-Mcl added the story A user-oriented description of a feature label Apr 16, 2024
@ZJvandeWeg
Copy link
Member

What if the user is running in a docker container? I guess we run npm install in the container?

I think just doing an npm install to a newer version and the exec(1) syscall might just do on the device agent side. Problem is that the agent doesn't just continue the current workload but will reinstall everything and so there's downtime? In a first iteration this might be acceptable?

@hardillb
Copy link
Contributor

The problem with running npm install in the container is that the updates would be lost when the container is restarted.

The only way it would persist would be if the device-agent was on an external volume, which kind of defeats the point of having the device agent in a container.

@robmarcer robmarcer added the customer request requested by customer label Apr 29, 2024
@robmarcer
Copy link
Contributor

@Anmirazik
Copy link

Im not sure if my suggestions are good enough but after some googling i found out that i can update the device agent at scale using ansible , I never had any experience with ansible for now but i think thats the best solution i can think of for now if the flowfuse team does not have any plans on developing this specific features . In addition , i believe it might be helpful if the flowfuse team can provide a working ansible playbook settings and writing tutorial for updating the device agent whether it is running using docker or natively. I believe this might help the flowfuse grow as well , what are your thoughts ? Thanks

@joepavitt
Copy link
Contributor

Fundamentally, this boils down to the device-agent needing to be able to self-update. The key challenge here is that we aren't going to be aware of how the agent is installed, as Ben mentioned above, there are complexities with Docker for example.

We would need to break this down into common ways that the Device Agent is run, and work out if there is a consistent approach for each, and then establish where there are blockers.

@joepavitt
Copy link
Contributor

Putting it into "Next" as this will require Engineering Design resource

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
customer request requested by customer story A user-oriented description of a feature
Projects
Status: Next
Development

No branches or pull requests

6 participants