diff options
| author | duanhongyi <duanhongyi@doopai.com> | 2024-01-11 14:36:05 +0800 |
|---|---|---|
| committer | Chris Lu <chrislusf@users.noreply.github.com> | 2024-01-11 07:48:44 -0800 |
| commit | 785e69a08ef47eab94742b040870ec0716f20f13 (patch) | |
| tree | c94ea66e80a85b7ea36321f590e7549f5d4a54cf /pkg/k8s/client.go | |
| parent | 9278f2d0ba560b375236c845b9f13124ce281195 (diff) | |
| download | seaweedfs-csi-driver-785e69a08ef47eab94742b040870ec0716f20f13.tar.xz seaweedfs-csi-driver-785e69a08ef47eab94742b040870ec0716f20f13.zip | |
Fix: capacity error in re mounting after expand volume
Diffstat (limited to 'pkg/k8s/client.go')
| -rw-r--r-- | pkg/k8s/client.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/pkg/k8s/client.go b/pkg/k8s/client.go new file mode 100644 index 0000000..8861d0a --- /dev/null +++ b/pkg/k8s/client.go @@ -0,0 +1,42 @@ +package k8s + +import ( + "context" + "time" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" +) + +func NewInCluster() (*kubernetes.Clientset, error) { + //creates the in-cluster config + config, err := rest.InClusterConfig() + if err != nil { + panic(err.Error()) + } + + // creates the clientset + clientset, err := kubernetes.NewForConfig(config) + if err != nil { + panic(err.Error()) + } + return clientset, nil +} + +func GetVolumeCapacity(volumeId string) (int64, error) { + client, err := NewInCluster() + if err != nil { + return 0, err + } + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + + if volume, err := client.CoreV1().PersistentVolumes().Get(ctx, volumeId, metav1.GetOptions{}); err != nil { + return 0, err + } else { + storage := volume.Spec.Capacity.Storage() + capacity, _ := storage.AsInt64() + return capacity, nil + } +} |
