oracle / oci-cloud-controller-manager

Kubernetes Cloud Controller Manager implementation for Oracle Cloud Infrastructure
Apache License 2.0
135 stars 85 forks source link

Support for volumeMode block during pvc creation #431

Closed reenakabra closed 1 year ago

reenakabra commented 1 year ago

Is this a BUG REPORT or FEATURE REQUEST?

Feature request

Choose one: BUG REPORT or FEATURE REQUEST

Versions

CCM Version:

Environment:

What happened?

PVC with volumeMode block is in pending state

What you expected to happen?

PVC should be created and when mounted in application pod as volumeDevices and devicePath disk should be attached to the node where the pod is running. Should be able to create own file system on the disk.

How to reproduce it (as minimally and precisely as possible)?

Create pvc using

apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mynginxclaim spec: storageClassName: "oci-bv" volumeMode: Block accessModes:

Create pod using apiVersion: v1 kind: Pod metadata: name: nginx spec: containers:

Anything else we need to know?

There is an option when OKE worker instance is accessed through console to attach block volume. There is no documentation around that. Is it supported method? PVC creation is the only way that i found on internet. Block volume created through console is not visible in lsblk o/p.

mrunalpagnis commented 1 year ago

Raw block volume is the raodmap, it is not supported currently.

reenakabra commented 1 year ago

Can you please share the timeline for this feature?

stevefan1999-personal commented 10 months ago

@mrunalpagnis Please open this issue again and make this a high priority support as it is a pretty useful feature, especially when I need this feature for Rook: PVC Storage Cluster - Rook Ceph Documentation so something awesome like this can't be done despite being very close:

apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
  name: rook-ceph
  namespace: rook-ceph
spec:
  cephVersion:
    image: quay.io/ceph/ceph:v17.2.5-20221017
  dashboard:
    enabled: true
  dataDirHostPath: /var/lib/rook
  mgr:
    count: 1
    modules:
      - enabled: true
        name: pg_autoscaler
    volumeClaimTemplate:
      spec:
        resources:
          requests:
            storage: 5Gi
        storageClassName: oci-fss
  mon:
    allowMultiplePerNode: false
    count: 1
    volumeClaimTemplate:
      spec:
        resources:
          requests:
            storage: 5Gi
        storageClassName: oci-fss
  storage:
    useAllDevices: true
    useAllNodes: true
    storageClassDeviceSets:
    - name: default
      count: 1
      portable: true
      encrypted: false
      volumeClaimTemplates:
      - metadata:
          name: data
        spec:
          resources:
            requests:
              storage: 50Gi
          storageClassName: oci-bv
          volumeMode: Block
          accessModes:
            - ReadWriteOnce

I seriously have no idea why this is not doable, given I can indeed manually attach the Ceph OSD volume in OCI, but this means I have to manually do that again and again especially during node pool updates. What kind of roadblocks are here ahead?