Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Safety Critical "Change Freeze" mode where the Agent will continue to run any active agreements / workloads but will not contact the Mgmt Hub for changes to agreements  download/start new services
  • Goal: prevent agreements / workloads from changing while the edge node is in a "safety critical state".

...

<Describe how the problem is fixed. Include all affected components. Include diagrams for clarity. This should be the longest section in the document. Use the sections below to call out specifics related to each aspect of the overall system, and refer back to this section for context. Provide links to any relevant external information.>

A) freeze the agent change state via API / cli

set the state actively from outside the agent. the agreements would be negotiated as usual, but the download of the service would not be started unless the state is not freezed. 

  • Possibly send heartbeats but not accept node property updates or changes
  • Possibly allow geofencing information updates?  Where the edge node is located might be important to know.  Aha "The car is on the driveway, geofenced at home" is an important clue that might allow the agent to trigger changes to workloads.   If the car is at the supermarket, not a good idea.
  • Governance should restart the agreement, if it dies unexpectedly - tricky?

...

Node Management- behavior?

B) per service: include an "change-constraint" in the deployment policy

this could be compared to a normal node-property but would only be relevant for the actual (de)activation of the payload. In this case _change.allow would be a reserved constraint-parameter to avoid changes to the definitions on the first level.


Code Block
{
  "constraints": [
    "openhorizon.arch == arm64",
    "_change.allow": [
       "property.example >= 1
    ]
  ]
}


User Experience

<Describe which user roles are related to the problem AND the solution, e.g. admin, deployer, node owner, etc. If you need to define a new role in your design, make that very clear. Remember this is about what a user is thinking when interacting with the system before and after this design change. This section is not about a UI, it's more abstract than that. This section should explain all the aspects of the proposed feature that will surface to users.>

...