canonical / microk8s

MicroK8s is a small, fast, single-package Kubernetes for datacenters and the edge.
https://microk8s.io
Apache License 2.0
8.45k stars 770 forks source link

microk8s connect-external-ceph is not creating a ceph fs storage class #4687

Closed sibelius closed 1 week ago

sibelius commented 2 weeks ago

Summary

I'm trying to create both ceph rbd and ceph fs

it is only creating the storage class for the ceph rbd, and not for the ceph fs

What Should Happen Instead?

it should also create the storage class for ceph fs

Reproduction Steps

I'm following this https://discuss.kubernetes.io/t/microk8s-microceph-cephfs-ubuntu-22/29022/2

Create a meta data pool for your CephFS
sudo ceph osd pool create cephfs_metadata 32 32

Create a data pool for your CephFS
sudo ceph osd pool create cephfs_data 64 64

Create CephFS using the two previous pools
sudo ceph fs new my_cephfs cephfs_metadata cephfs_data

then just run the “sudo microk8s connect-external-ceph” again and the storage class will show up in your microk8s deployments
image
Looking for MicroCeph on the host
Detected existing MicroCeph installation
Attempting to connect to Ceph cluster
Successfully connected to e5c1bd5d-792a-475c-a63b-10d1846bd6ac (10.0.99.21:0/3574713525)
WARNING: Pool microk8s-rbd0 already exists
Configuring pool microk8s-rbd0 for RBD
Successfully configured pool microk8s-rbd0 for RBD
Creating namespace rook-ceph-external
Error from server (AlreadyExists): namespaces "rook-ceph-external" already exists
Configuring Ceph CSI secrets
Successfully configured Ceph CSI secrets
Importing Ceph CSI secrets into MicroK8s
secret rook-ceph-mon already exists
configmap rook-ceph-mon-endpoints already exists
secret rook-csi-rbd-node already exists
secret csi-rbd-provisioner already exists
storageclass ceph-rbd already exists
Importing external Ceph cluster
Error: INSTALLATION FAILED: cannot re-use a name that is still in use

=================================================

Successfully imported external Ceph cluster. You can now use the following storageclass
to provision PersistentVolumes using Ceph CSI:

NAME                          PROVISIONER                  RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
ceph-rbd                      rook-ceph.rbd.csi.ceph.com   Delete          Immediate              true                   5m9s
microk8s-hostpath (default)   microk8s.io/hostpath         Delete          WaitForFirstConsumer   false                  59d

Introspection Report

Can you suggest a fix?

Try to create the storageclass manually

Following this https://rook.io/docs/rook/v1.8/ceph-filesystem.html

it is missing some ceph csi secrets to make it work

Are you interested in contributing with a fix?

If you point it out where to provide the fix in the codebase I can give a try

sibelius commented 1 week ago

doing this from scratch works well https://discuss.kubernetes.io/t/microk8s-microceph-cephfs-ubuntu-22/29022/2