How do you a initialize a new volume without a file system or partition table?



  • I'm using OpenStack and I am trying to provision a compute resource on it. I want that compute resource to attach to a volume. We have three things in play.

    • Volume https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/blockstorage_volume_v3
    • Compute Resource https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/compute_instance_v2
    • Mapping/Attachment https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/compute_volume_attach_v2

    I need something to,

    1. Create a partition table on first mount.
    2. To create a file system (ext4) on first mount.
    3. To initialize the file system with the things I need.

    Does the logic to initialize this volume typically hang out in the cloud-init for the machine? If I initialize it manually, I can mount it using https://cloudinit.readthedocs.io/en/latest/topics/examples.html?highlight=mount#adjust-mount-points-mounted . But without manually installation, how do we instruct user_data to initialize the volume before if necessary before the mount?

    What I'm trying to do is store the .git file for a monorepo on an external shared mount. What I would like is on first boot of the sandbox for that to be ready. On subsequent boots/refreshes, I would just like them to run git fetch so they only pull down what's necessary rather than needing to re-clone.



  • Cloud-init solution

    cloud-init accommodates the partitioning with https://cloudinit.readthedocs.io/en/latest/topics/examples.html#disk-setup

    disk_setup:
      /dev/vdb:
        table_type: gpt
        layout: true
    

    And the corresponding filesystem initialization with https://cloudinit.readthedocs.io/en/latest/topics/examples.html#create-partitions-and-filesystems

    fs_setup:
    - label: repo
      filesystem: ext4
      device: /dev/vdb1
      partition: auto
    


Suggested Topics