FlowFuse / flowfuse

Connect, collect, transform, visualise, and interact with your Industrial Data in a single platform. Use FlowFuse to manage, scale and secure your Node-RED solutions.
https://flowfuse.com
Other
278 stars 63 forks source link

Assign stand-alone Devices to DevOps pipeline #2756

Closed MarianRaphael closed 11 months ago

MarianRaphael commented 1 year ago

Epic

https://github.com/flowforge/flowforge/issues/2334

Description

Allow FlowForge Users, to assign their stand-alone devices to DevOps pipelines (source and target stage). This feature should follow the behavior implemented in the "Push Snapshots Through DevOps Pipeline" (#2651) issue.

Requirements

As we already have the functionality to assign devices directly to applications (#2619) and create snapshots (#2609), it is the next step to extend this to DevOps pipelines.

User Story

As a FlowForge User who works primarily with Devices, I want the possibility to assign my stand-alone Devices to DevOps Pipelines, So that I can promote my developed snapshots from a Device to another Device (or instance).

Which customers would this be availble to

Licensed Edition (EE)

Acceptance Criteria

Have you provided an initial effort estimate for this issue?

I have provided an initial effort estimate

MarianRaphael commented 1 year ago

Keep in mind the next iteration will include Device tagging (see https://github.com/FlowFuse/flowforge/issues/2655) when making database changes

Pezmc commented 1 year ago

Edge cases of note (rough notes for myself)

Currently stages are 1:1 mapped to instances at the application layer (but 1:many at the database layer). After the proposed changes in this issue, a stage can be end alone.

A stage will now be able to have:

Open question: Does dev-ops pipelines replace the need for devices to be tied to instance in the first place? Currently pipelines is EE only, so we'd need to consider the business implications of that.

We need to talk through device tagging and device pipeline overlap and use cases; and what is out of scope.

Open qs:

More misc notes:

Bigger picture: Assign a development device (queue stage) to devops pipeline. Push that snapshot from the development decive to a fleet. Later a dev device could promote it's state to a fleet of devices with the same tag.

Short term: device->device and instance->instance only; instance->device; device->instance

Source device: when snapshot is created, must be in dev mode

Should be able to choose a device instead of an instance (and limit actions based).

Pezmc commented 11 months ago

Verified on staging, follow up issues for polish created: #3112, #3113, #3114