Jhack is meant to wrap the juju client. If the juju snap had a slot exposing access to its client binary, I would use that, but it doesn’t, so I had to embed in jhack my own juju snap.
The goal is then to make the embedded juju snap behave as if it were the ‘outer’ juju snap.
The juju-client-observe slot is not enough, because it provides read access only and the juju client requires write access to that directory (to write some locks and keep some state), hence the
Next, it is my understanding that:
config-lxd instance is required (to my understanding) to pass lxd config to the juju client.
dot-kubernetes instance is required to make the juju snap see the locally available k8s config. In particular, if I locally have a microk8s snap, unless I give the kube config to the embedded juju instance, it won’t be able to see or talk to the locally available k8s controllers.