canonical / microcloud

Automated private cloud based on LXD, Ceph and OVN
https://microcloud.is
GNU Affero General Public License v3.0
295 stars 47 forks source link

Interactive init not asking for CephFS #283

Closed simondeziel closed 7 months ago

simondeziel commented 7 months ago

While following https://canonical-microcloud.readthedocs-hosted.com/en/latest/tutorial/get_started/#initialise-microcloud, I noticed that on my system, the interactive init process didn't ask for the setting up CephFS for a remote-fs pool:

root@micro1:~# microcloud init
Waiting for LXD to start...
Select an address for MicroCloud's internal traffic:

 Using address "10.113.186.136" for MicroCloud

Limit search for other MicroCloud servers to 10.113.186.136/24? (yes/no) [default=yes]: 
Scanning for eligible servers ...

 Selected "micro1" at "10.113.186.136"
 Selected "micro4" at "10.113.186.66"
 Selected "micro2" at "10.113.186.146"
 Selected "micro3" at "10.113.186.61"

Would you like to set up local storage? (yes/no) [default=yes]: 
Select exactly one disk from each cluster member:

Select which disks to wipe:

 Using "/dev/disk/by-id/scsi-SQEMU_QEMU_HARDDISK_lxd_local4" on "micro4" for local storage pool
 Using "/dev/disk/by-id/scsi-SQEMU_QEMU_HARDDISK_lxd_local1" on "micro1" for local storage pool
 Using "/dev/disk/by-id/scsi-SQEMU_QEMU_HARDDISK_lxd_local2" on "micro2" for local storage pool
 Using "/dev/disk/by-id/scsi-SQEMU_QEMU_HARDDISK_lxd_local3" on "micro3" for local storage pool

Would you like to set up distributed storage? (yes/no) [default=yes]: 
Unable to find disks on some systems. Continue anyway? (yes/no) [default=yes]: 
Select from the available unpartitioned disks:

Select which disks to wipe:

 Using 1 disk(s) on "micro1" for remote storage pool
 Using 1 disk(s) on "micro2" for remote storage pool
 Using 1 disk(s) on "micro3" for remote storage pool

Configure distributed networking? (yes/no) [default=yes]: 
Select exactly one network interface from each cluster member:

 Using "enp6s0" on "micro1" for OVN uplink
 Using "enp6s0" on "micro4" for OVN uplink
 Using "enp6s0" on "micro2" for OVN uplink
 Using "enp6s0" on "micro3" for OVN uplink

Specify the IPv4 gateway (CIDR) on the uplink network (empty to skip IPv4): 10.50.85.1/24
Specify the first IPv4 address in the range to use with LXD: 10.50.85.100
Specify the last IPv4 address in the range to use with LXD: 10.50.85.254
Specify the IPv6 gateway (CIDR) on the uplink network (empty to skip IPv6): fd42:5592:d69b:99e8::1/64
Initializing a new cluster
 Local MicroCloud is ready
 Local LXD is ready
 Local MicroOVN is ready
 Local MicroCeph is ready
Awaiting cluster formation ...
 Peer "micro2" has joined the cluster
 Peer "micro3" has joined the cluster
 Peer "micro4" has joined the cluster
Configuring cluster-wide devices ...
MicroCloud is ready
root@micro1:~# lxc storage ls
+--------+--------+-----------------------------+---------+---------+
|  NAME  | DRIVER |         DESCRIPTION         | USED BY |  STATE  |
+--------+--------+-----------------------------+---------+---------+
| local  | zfs    | Local storage on ZFS        | 8       | CREATED |
+--------+--------+-----------------------------+---------+---------+
| remote | ceph   | Distributed storage on Ceph | 1       | CREATED |
+--------+--------+-----------------------------+---------+---------+

Additional information:

root@micro1:~# snap list
Name        Version                 Rev    Tracking       Publisher   Notes
core22      20240111                1122   latest/stable  canonical✓  base
lxd         5.21.1-3f3c2a9          28156  5.21/stable    canonical✓  in-cohort
microceph   0+git.4a608fc           793    quincy/stable  canonical✓  in-cohort
microcloud  1.1-04a1c49             734    latest/stable  canonical✓  in-cohort
microovn    22.03.3+snap0e23a0e4f5  395    22.03/stable   canonical✓  in-cohort
snapd       2.61.2                  21184  latest/stable  canonical✓  snapd

root@micro1:~# cat /etc/os-release 
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

root@micro1:~# uname -a
Linux micro1 5.15.0-1051-kvm #56-Ubuntu SMP Thu Feb 8 23:30:16 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
masnax commented 7 months ago

Looks like you're using latest/stable which doesn't have this feature yet. The debug binaries also only work with latest/edge.

simondeziel commented 7 months ago

Yeah, I followed the tutorial to the letter and thus used latest/stable. Since the tutorial mentions CephFS, I assumed it was already available in the referenced version. Looks like the tutorial is ready for latest/edge then ;)

Thanks for checking!

masnax commented 7 months ago

Hmm, I wasn't aware that the official docs pull from the default branch. We do tag releases so I wonder if the docs should be sourced from the latest tag instead? @ru-fu

ru-fu commented 7 months ago

Hmm, I wasn't aware that the official docs pull from the default branch. We do tag releases so I wonder if the docs should be sourced from the latest tag instead? @ru-fu

That would mean we need to (manually) update the RTD build for every tag, so I don't think this is feasible. For LXD, we have the latest docs and all LTS releases, but no point releases.

masnax commented 7 months ago

Hmm, I wasn't aware that the official docs pull from the default branch. We do tag releases so I wonder if the docs should be sourced from the latest tag instead? @ru-fu

That would mean we need to (manually) update the RTD build for every tag, so I don't think this is feasible. For LXD, we have the latest docs and all LTS releases, but no point releases.

What worries me here is that MicroCloud has a larger time frame in between stable releases than LXD, and we have had a pattern of substantially changing the interactive process each release. This cycle was very LXD focused so MicroCloud got pushed very far back but in a usual cycle, it's likely that the docs will not be applicable to what the majority of users are running within just a few weeks after the stable release, and will only continue to diverge for months, while we continue to encourage users to run latest/stable.

ru-fu commented 7 months ago

We could have a stable branch in addition to the main branch (which would have edge)? Or use the main branch for stable and have a development branch for edge?

To add a version in RTD, we'll need to have a branch. And ideally one that doesn't constantly change its name, because that would mean manual changes (and also URL changes if I'm not mistaken).