We are trying to upgrade our juju 3.3 controllers to 3.6 and are running into a number of strange problems. Essentially the setup goal is like this:
- The controllers are hosted on Noble
- We preinstantiate them and use manual/user@IP as the cloud
- We also use external users from api.jujucharms.com/identity
- The containers with the controller on them are LXC containers which live on a 3 machine cluster.
We can get the controller to bootstrap sometimes, but no matter what we do we cannot get it to authenticate external users, and we cannot get it to add models. All the errors claim there are TLS errors of various kinds (handshake timeouts, invalid certificates, no certificates at all etc.). For example, when we try to log in with an external user, the client gives us the following error message:
ERROR cannot log into "192.168.111.67:17070": cannot create macaroon: cannot add caveat checkers.Caveat{Condition:"need-declared username is-authenticated-user", Namespace:"", Location:"https://api.jujucharms.com/identity"}: cannot find public key for location "https://api.jujucharms.com/identity": Get "https://api.jujucharms.com/identity/discharge/info": net/http: TLS handshake timeout (unauthorized access)
Juju bootstrap example command that is used:
juju_36 bootstrap manual/ubuntu@<ip-address> <controller-name> --config identity-url=https://api.jujucharms.com/identity
Test deploy on a controller that managed to get bootstrapped:
$ juju_36 deploy tiny-bash tiny-bash2 -v --debug
15:44:00 INFO juju.cmd supercommand.go:56 running juju [3.6.2 87cae7505aee356eda90d98ae345e1c11eb26c72 gc go1.23.4]
15:44:00 DEBUG juju.cmd supercommand.go:57 args: []string{"/snap/juju_36/29493/bin/juju", "deploy", "tiny-bash", "tiny-bash2", "-v", "--debug"}
15:44:00 INFO juju.juju api.go:86 connecting to API addresses: [192.168.108.38:17070]
15:44:00 DEBUG juju.api apiclient.go:1035 successfully dialed "wss://192.168.108.38:17070/model/e82530e0-894a-469e-8ece-1c2bbb604d7f/api"
15:44:00 INFO juju.api apiclient.go:570 connection established to "wss://192.168.108.38:17070/model/e82530e0-894a-469e-8ece-1c2bbb604d7f/api"
15:44:00 INFO juju.juju api.go:86 connecting to API addresses: [192.168.108.38:17070]
15:44:01 DEBUG juju.api apiclient.go:1035 successfully dialed "wss://192.168.108.38:17070/api"
15:44:01 INFO juju.api apiclient.go:570 connection established to "wss://192.168.108.38:17070/api"
15:44:21 DEBUG juju.api monitor.go:35 RPC connection died
15:44:21 DEBUG juju.api monitor.go:35 RPC connection died
ERROR resolving with preferred channel: Post "https://api.charmhub.io/v2/charms/refresh": net/http: TLS handshake timeout
15:44:21 DEBUG cmd supercommand.go:549 error stack:
resolving with preferred channel: Post "https://api.charmhub.io/v2/charms/refresh": net/http: TLS handshake timeout
github.com/juju/juju/cmd/juju/application/store.(*CharmAdaptor).ResolveCharm:68:
github.com/juju/juju/cmd/juju/application/store.(*CharmAdaptor).ResolveBundleURL:85:
github.com/juju/juju/cmd/juju/application/deployer.(*factory).repoBundleDeployer:201:
github.com/juju/juju/cmd/juju/application/deployer.(*factory).GetDeployer:159:
github.com/juju/juju/cmd/juju/application.(*DeployCommand).Run:855:
We have tried different ubuntu server OS versions (22.04 & 24.04), different container os versions, different servers, different network. All results in the same way.
We have been trying to figure this out for some time now and can’t get to the bottom of things. Does anyone have any ideas?
EDIT At later states we have successfully been able to login with external users but we still get this issue when deploying charm etc.