Bootstrapping Juju controllers inside MicroCloud-based LXD clouds

I am struggling to find the right “juju bootstrap” command --config parameters to pass when bootstrapping into a MicroCloud-based LXD cloud, with an OVN-based “default” network and a physical “UPLINK”, all created by the book. Juju controller gets created but then cannot be reached, obviously, on its OVN-assigned address, while I am unable to find the way of instructing my Juju client how to go about reaching it via its forward IP address instead. Would really appreciate some guidance here.

Hi @zsubic, configuring a forward sounds like a good idea. If you are unsure about the steps, those are documented here https://documentation.ubuntu.com/lxd/latest/howto/network_forwards/.

I wonder if there is a way to override the API when deploying the controller? I was just browsing through juju bootstrap -h and found controller-external-ips:

Specifies a comma separated list of external IPs for a k8s controller
of type external

Maybe that could be of use?
In any case I think it would be best to reach out to the Juju team directly.

Hi Julian,

Thanks for your reply.

I did configure forward IPs using a pool of IPs from an externally accessible subnet my secondary NIC on each cluster node is connected to but left un-configured, alongside a cluster-wide managed physical network (UPLINK) created on top of these NICs, and configured to provide external network access as well as ingress via this pool of forward IPs to my OVN bridge (“default”) network that all my cloud instances are homed on.
So everything is properly done and working, when it comes to the MicroCloud setup in isolation, with all manually created instances having access to and being accessible from the ourside network.
My only problem here is that when I add this MicroCloud LXD cluster cloud to my Juju client and try to bootstrap a Juju controller into, I cannot find a way of forcing it to use forward IP in the process.

As per your suggestions, please note that this is an LXD cloud story and that bootstrap, controller and controller-model config and constraint keys you are referring to are only supported and applicable on K8s clouds.

As the currently available Juju <=> LXD out-of-the-box configuration and integration options are very limited, I am looking for any smart alternative solution - e.g. through handling and manipulating LXD profiles, etc.

Also note that this is an LXD cloud story strictly confined into a MicroCloud compartment and that I already have fully functional Juju integration with a “standard” LXD cluster cloud that uses existing host bridge networking or a fan network with an open L2 access to the rest of my Lab.

I guess that many people already have different sorts of workaround solutions to my problem in their back-pockets and look forward to having some of those shared with me.

Rgds Z