As the differences related to (1) are already documented generically in our Tutorial, How-to guides, and Reference docs, here we record just those that follow from (2).
Requirements
MicroK8s snap
Juju 3.x requires MicroK8s to operate in strict mode.
Thereās an open bug which results in the microk8s installation failing. microk8s needs to be installed before juju and the user has to be in the microk8s group before installing juju or else the installation will fail.
It also ran out of memory when trying to bootstrap it in a VM with only 4GB. Some minimum system requirements for microk8s with juju together would be helpful.
Nothing else refers to setting up such a storage pool (and indeed the charm deploys without having explicitly done so) - is this a holdover from a previous version somewhere?
This is quite unfortunate. 4GB RAM is the recommended minimum currently, I believe. Iāve encountered issues at this size on another cluster before because Kubernetes was unable to deploy some background services alongside the Juju controllerā¦ The controller pod was deemed āunplaceableā.
It seems the videos are not found now. I guess the videos are still there somewhere, itās just the links are not working now.
So I just removed them for now but we can bring them back anytime when we fixed the links.
Add your account to the microk8s group. This grants the account elevated privileges to the cluster, meaning that sudo will not be required to interact with microk8s:
sudo usermod -a -G microk8s $USER
This is not enough. You need to also run:
sudo chown -f -R $USER ~/.kube
This is stated in the microk8s installation instructions (MicroK8s - Get started) as well.
a suggestion for the next refresh: enabling the storage add-on brings now a warning that storage is deprecated and hostpath-storage should be used instead
It seems very odd that weāre not suggesting/recommending that people install the ingress add-on here. Without it you wonāt have any kind of ingress controller configured so many http workloads wonāt be reachable without hitting the pod IP and port directly (or service port and IP), which seems less than ideal.
$ juju bootstrap microk8s micro
Since Juju 3 is being run for the first time, it has downloaded the latest public cloud information.
ERROR "/var/snap/juju/21122/microk8s/credentials/client.config" does not exist: juju "3.0.0" can only work with strictly confined microk8s
$ snap list
Name Version Rev Tracking Publisher Notes
[...]
juju 3.0.0 21122 latest/stable canonicalā -
microk8s v1.25.4 4221 1.25/stable canonicalā classic
WARNING: Do not enable or disable multiple addons in one command.
This form of chained operations on addons will be DEPRECATED in the future.
Please, enable one addon at a time: 'microk8s enable <addon>'
results in
Warning: flag --classic ignored for strictly confined snap juju
Results in
ERROR "/var/snap/juju/23354/microk8s/credentials/client.config" does not exist: juju "3.1.5" can only work with strictly confined microk8s
You can work around this by manually adding the cluster to Juju:
$ sudo microk8s config | juju add-k8s my-k8s --client
k8s substrate "microk8s/localhost" added as cloud "my-k8s".
You can now bootstrap to this cloud by running 'juju bootstrap my-k8s'.
$ juju bootstrap my-k8s uk8sx
Creating Juju controller "uk8sx" on my-k8s/localhost
Bootstrap to Kubernetes cluster identified as microk8s/localhost
Creating k8s resources for controller "controller-uk8sx"
Downloading images
Starting controller pod
Bootstrap agent now started
Contacting Juju controller at 10.152.183.170 to verify accessibility...
Bootstrap complete, controller "uk8sx" is now available in namespace "controller-uk8sx"
Now you can run
juju add-model <model-name>
to create a new model to deploy k8s workloads.
Iām not really sure why it says that it doesnāt support it when it in reality does, just with a different command.