Deploy services from helm3 charts with edge cluster agent

Deploy services from helm3 charts with edge cluster agent

Status: In Progress

Sponsor User:

Date of Submission: Aug 29, 2025

Submitted by: Lily Zhang

Affiliation(s): IBM

<Please fill out the above fields, and the Overview, Design and User Experience sections below for an initial review of the proposed feature.>

Scope and Signoff: (to be filled out by Chair)

Overview

Open horizon agent currently supports two types of service deployment: service that run as docker container, and service that run as kubernete operator. This design is about the extending the service deployment to also include services that run as helm3 charts deployment. The helm3 service deployment is valid for the cluster agent only.

 

Design

To create a service in the exchange, the format of service definition should follow:

 

Service.definition.json (template)

{ "org": "<yourOrg>", "label": "Helm3 service", "description": "Test service in a Helm3 package", "public": false, "url": "<service-url>", "version": "1.0.0", "arch": "amd64", "sharable": "single", "matchHardware": {}, "requiredServices": [], "userInput": [], "helm3Deployment": { "chart_archive": "../external-hello-1.0.0.tgz", /* <--- path to your package */ "release_name": "release1" /* <--- update your values here */ } "helm3DeploymentSignature": "" }

 

hzn dev command will be helpful to create a helm3 service template:

hzn dev service new --dconfig=helm3

 

Namespace:

It is not common to put namespace in the helm charts. In open horizon, to deploy helm charts, the namespace is specified in the deployment policy/pattern. If it omits in the deployment policy/pattern, the helm charts will be deployed to the agent’s namespace. Namespace scoped agent can only deploy in its own namespace.

 

Dependent service:

Currently dependent service is not supported for helm3 service.

 

The same as other types of services, to deploy the service on the targeted node, user will need to create a deployment policy for the service.

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 is not about the UI, it's more abstract. This should explain the aspects of the change that will surface to users.>

Command Line Interface

<Describe any changes to the hzn CLI, including before and after command examples for clarity. Include which users will use the changed CLI. This section should flow very naturally from the User Experience section.>

hzn node freeze - enable the changefreeze state

hzn node unfreeze - disable the changefreeze state

External Components

<Describe any new or changed interactions with components that are not the agent or the management hub.>

 

Affected Components

<List all of the internal components (agent, MMS, Exchange, etc) which need to be updated to support the proposed feature. Include a link to the github epic for this feature (and the epic should contain the github issues for each component).>

Security

<Describe any related security aspects of the solution. Think about security of components interacting with each other, users interacting with the system, components interacting with external systems, permissions of users or components>

 

APIs

<Describe and new/changed/deprecated APIs, including before and after snippets for clarity. Include which components or users will use the APIs.>

 

Build, Install, Packaging

<Describe any changes to the way any component of the system is built (e.g. agent packages, containers, etc), installed (operators, manual install, batch install, SDO), configured, and deployed (consider the hub and edge nodes).>

 

Documentation Notes

<Describe the aspects of documentation that will be new/changed/updated. Be sure to indicate if this is new or changed doc, the impacted artifacts (e.g. technical doc, website, etc) and links to the related doc issue(s) in github.>

 

Test

<Summarize new automated tests that need to be added in support of this feature, and describe any special test requirements that you can foresee.>