I’m trying to build a charmed model where the machines that the controller is talking to are behind a NAT. Since the IP address of the controller does not match the IP address that the provisioned machines need to use to communicate they never can report to the Juju controller and are stuck “pending” forever.
I have tried setting the “public-dns-address” controller-config value, and the “controller-url” value on the controller charm. Is there somewhere else I should be looking?
If you can access one of the provisioned machines (via direct SSH for example), check the agent configuration to see what API addresses it is getting. That should tell you if the controller configuration values you’re using are taking effect.
I was able to get onto the nodes and check the agent configuration, but it would only ever set the API address to the IP addresses assigned to the network interfaces, and I was unable to find any way to get it to create a URL. Ultimately I was able to work around this by assigning a static IP to one of the interfaces, and create a routing rule on the firewall directly.
That said, it would still be nice to have a way to use a URL to point to controllers.