Versions Compared

Key

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

...

A new built-in node property called openhorizon.kubernetesNamespace is introduced, the value reflects the namespace in which the agent is installed. This property is read-only, it is always set by the OH runtime and is not settable by any user role. This property MAY be used in a deployment policy constraint expression.


Service Definition:

<TBD>


Deployment

...

:

A new field is added to the service section of a deployment policy, indicating the target namespace for the service's deployment.

"service": { ...
"namespace": <string>
}

This field is optional and ignored for service's services deployed to a device.

A cluster based service MAY contain a namespace definition (yaml), which indicates the namespace in which the service should be deployed. The yaml file is packaged with the operator definition in the cluster deployment section of the service definition. This is already supported in the agent.

A namespace specified in the deployment policy overrides any namespace defined in the operator definition.

The Agbot calculates the target namespace of a cluster based service as follows:

  1. If present, use the namespace in the deployment policy.
  2. If present, use the namespace in the service definition.
  3. Use openhorizon-agent namespace (this is the default namespace where the cluster scoped agent is installed).

Once the Agbot has calculated the target namespace it:

  1. Uses this namespace as a built-in constraint when searching for deployment targets.


Patterns:

A new field is added to the schema of a pattern, indicating the target namespace for the pattern's deployment.

 "namespace": <string>


The namespace field is optional and ignored for patterns deployed to a device.

A namespace specified in the pattern overrides any namespace defined in the operator definition of all services in the pattern.

A pattern is in error if it attempts to deploy services to a namespace scoped node where the collection of services in the pattern are NOT deployable to the same namespace. Clearly this can only happen when the namespace is NOT specified in the pattern definition but is contained within the operator definition.This field overrides any namespace definition in the

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.>

...