From 785e69a08ef47eab94742b040870ec0716f20f13 Mon Sep 17 00:00:00 2001 From: duanhongyi Date: Thu, 11 Jan 2024 14:36:05 +0800 Subject: Fix: capacity error in re mounting after expand volume --- pkg/k8s/client.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 pkg/k8s/client.go (limited to 'pkg/k8s') 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 + } +} -- cgit v1.2.3