We do not support having multiple Controllers managing one Agent. One Agent will only be able to communicate with one Controller at the time.
We are currently working on the feature of being able to move on Agent (and all its deployed microservices) from one Controller to another, but this is not implemented yet.
In the meantime, you can delete the agent from ControllerA, and deploy it with ControllerB.
the easiest way would be to connect to ControllerA in a namespace:
$> iofogctl create namespace controllerA
$> iofogctl -n controllerA connect --endpoint ENDPOINT --name NAME --email EMAIL --pass PASSWORD
$> iofogctl describe agent AGENT_NAME -o agent.yaml
$> iofogctl delete agent AGENT_NAME
Then in another namespace, connect to ControllerB and deploy the agent using its yaml file (Updating the namespace in the yaml file first). See: https://iofog.org/docs/1.3.0/iofogctl/platform-yaml-spec.html#agent
$> iofogctl create namespace controllerB
$> iofogctl -n controllerB connect --endpoint ENDPOINT --name NAME --email EMAIL --pass PASSWORD
$> iofogctl deploy -f agent.yaml
If you do not wish to use namespaces, you can do it all in the default namespace by disconnecting from ControllerA (using
iofogctl disconnect) before connecting to ControllerB
Let me know if you have any more question,