fix(agent): check if region endpoints are reachable
Region Controller might return IP:PORT that is not reachable by the
Agent (due to firewall configuration or network setup). Hence we should
add check if endpoints are reachable before applying them as targets
when configuring Agent HTTP reverse proxy service.
Workflow logic is constrained by deterministic execution requirements.
In Go, Workflow Definition code cannot directly do the following:
- Call an external API, conduct a file I/O operation, talk to another service, etc
Normally we should use Activity for this scenario, however we are
confident and consider that we want to do this I/O inside the workflow.
But by having a blocking I/O you might get the following panic:
```
panic: Potential deadlock detected: workflow goroutine "root" didn't yield for over a second
```
It happens simply because the "root" goroutine was not scheduled for
execution. By using `workflow.Go` we don't mess with the scheduler and
we should worry about logic inside `workflow.Go` not take more than 1
second.
(cherry picked from commit 17596243156a800d060b8c5138798da8eae0950b)
feat(bootresources): check if the controller has enough space
- don't export images from DB if they don't fit in the disk
- don't retry downloads on out-of-disk errors, let the user fix this first
- notify the user about out-of-disk errors
(cherry picked from commit 194a121188e58116833c782dd71b1b7fafd7ce50)