...
accommodates edge cluster services that are already built this way, but does not encourage continued usage.
Agent Install:
The agent install script is updated to include a namespace flag indicating the target namespace of the agent:
...
When an edge cluster service is deployed, by default, it is deployed into the same namespace as the agent/node.
When deploying an edge cluster service, the service deployer MAY write a constraint expression referencing the built-in openhorizon.kubernetesNamespace property in order to limit the placement of the edge service onto to nodes in a specific namespace or set of namespaces.
...
The first problem is solved by the introduction of the "cluster_namespace" field in the deployment policy. This field allows deployers to have control of the target namespace, especially when the deployer is dealing primarily dealing with cluster scoped nodes.
The second problem
A namespace specified in the deployment policy overrides any namespace defined in the operator definition.
...
As a DevOps user, I want to install the OH agent into one or more namespaces that I have permission to use for my project.
As a DevOps userservice deployer, I want to select the namespace into which a service is deployed, for both cluster scoped and namespace scoped agents.
As a service deployer, I want to use a node's namespace as (one of) the criteria for selecting deployment targets.
As a service deployer, I want to know if my deployment policy will deploy to a namespace or cluster scoped node.
As a node owner, I want OH ensure that DevOps teams using my edge cluster are isolated from each other, based on the namespace(s) I have given to each team.
...