• Jing Xu's avatar
    Redesign and implement volume reconstruction work · 9588d209
    Jing Xu authored
    This PR is the first part of redesign of volume reconstruction work. The
    changes include
    1. Remove dependency on volume spec stored in actual state for volume
    cleanup process (UnmountVolume and UnmountDevice)
    
    Modify AttachedVolume struct to add DeviceMountPath so that volume
    unmount operation can use this information instead of constructing from
    volume spec
    
    2. Modify reconciler's volume reconstruction process (syncState). Currently workflow
    is when kubelet restarts, syncState() is only called once before
    reconciler starts its loop.
    a. If volume plugin supports reconstruction, it will use the
    reconstructed volume spec information to update actual state as before.
    b. If volume plugin cannot support reconstruction, it will use the
    scanned mount path information to clean up the mounts.
    
    In this PR, all the plugins still support reconstruction (except
    glusterfs), so reconstruction of some plugins will still have issues.
    The next PR will modify those plugins that cannot support reconstruction
    well.
    
    This PR addresses issue #52683, #54108 (This PR includes the changes to
    update devicePath after local attach finishes)
    9588d209
config.go 16.8 KB