util

package
v0.24.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 27, 2024 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	MountPointDevMinorTable sync.Map
)

Functions

func AddPodAnnotation added in v0.17.4

func AddPodAnnotation(ctx context.Context, client *k8sclient.K8sClient, pod *corev1.Pod, addAnnotations map[string]string) error

func AddPodLabel added in v0.21.0

func AddPodLabel(ctx context.Context, client *k8sclient.K8sClient, pod *corev1.Pod, addLabels map[string]string) error

func AddSecretFinalizer added in v0.22.0

func AddSecretFinalizer(ctx context.Context, client *k8s.K8sClient, secret *v1.Secret, finalizer string) error

func CheckDynamicPV added in v0.16.0

func CheckDynamicPV(name string) (bool, error)

func CheckExpectValue added in v0.18.0

func CheckExpectValue(m map[string]string, key string, targetValue string) bool

CheckExpectValue Check if the key has the expected value

func CheckForSecretFinalizer added in v0.22.0

func CheckForSecretFinalizer(ctx context.Context, client *k8s.K8sClient, volume *v1.PersistentVolume) (shouldRemoveFinalizer bool, err error)

func CheckForSubPath added in v0.18.0

func CheckForSubPath(ctx context.Context, client *k8s.K8sClient, volume *v1.PersistentVolume, pathPattern string) (shouldDeleted bool, err error)

func ConsistentRead added in v0.14.1

func ConsistentRead(filename string, attempts int) ([]byte, error)

ConsistentRead repeatedly reads a file until it gets the same content twice. This is useful when reading files in /proc that are larger than page size and kernel may modify them between individual read() syscalls.

func ContainsPrefix added in v0.17.2

func ContainsPrefix(slice []string, s string) bool

ContainsPrefix String checks if a string slice contains a string with a given prefix

func ContainsString added in v0.10.0

func ContainsString(slice []string, s string) bool

ContainsString checks if a string is in a string slice.

func DelPodAnnotation added in v0.17.4

func DelPodAnnotation(ctx context.Context, client *k8sclient.K8sClient, pod *corev1.Pod, delAnnotations []string) error

func DeleteResourceOfPod added in v0.10.0

func DeleteResourceOfPod(pod *corev1.Pod)

func DevMinor added in v0.23.6

func DevMinor(dev uint64) uint32

DevMinor returns the minor component of a Linux device number.

func DoWithContext added in v0.17.1

func DoWithContext(ctx context.Context, f func() error) error

func DoWithTimeout added in v0.17.1

func DoWithTimeout(parent context.Context, timeout time.Duration, f func() error) error

func GetAllRefKeys added in v0.17.5

func GetAllRefKeys(pod corev1.Pod) map[string]string

func GetDiskUsage added in v0.23.4

func GetDiskUsage(path string) (uint64, uint64, uint64, uint64)

func GetMountDeviceRefs added in v0.13.2

func GetMountDeviceRefs(pathname string, corrupted bool) ([]string, error)

GetMountDeviceRefs Get all mountpoints whose source is the device of `pathname` mountpoint, the `pathname` will be excluded. The `pathname` must be a mountpoint, and if the `corrupted` is true, the `pathname` is a corrupted mountpoint.

func GetMountPathOfPod added in v0.10.7

func GetMountPathOfPod(pod corev1.Pod) (string, string, error)

func GetNamespace added in v0.23.0

func GetNamespace(ctx context.Context, client *k8sclient.K8sClient, pod *corev1.Pod) (namespace string, err error)

GetNamespace get juicefs pv & pvc from pod when pod namespace is empty

func GetReferenceKey added in v0.10.7

func GetReferenceKey(target string) string

func GetTime added in v0.13.0

func GetTime(str string) (time.Time, error)

func GetTimeAfterDelay added in v0.13.0

func GetTimeAfterDelay(delayStr string) (string, error)

GetTimeAfterDelay get time which after delay

func ImageResol added in v0.19.0

func ImageResol(image string) (hasCE, hasEE bool)

ImageResol check if image contains CE or EE ce image starts with "ce-" (latest image is CE) ee image starts with "ee-" Compatible with previous images: has both ce and ee

func IsJobCompleted added in v0.13.0

func IsJobCompleted(job *batchv1.Job) bool

func IsJobFailed added in v0.13.0

func IsJobFailed(job *batchv1.Job) bool

func IsJobShouldBeRecycled added in v0.20.0

func IsJobShouldBeRecycled(job *batchv1.Job) bool

func IsPodError added in v0.10.0

func IsPodError(pod *corev1.Pod) bool

func IsPodHasResource added in v0.10.0

func IsPodHasResource(pod corev1.Pod) bool

func IsPodReady added in v0.10.0

func IsPodReady(pod *corev1.Pod) bool

func IsPodResourceError added in v0.10.0

func IsPodResourceError(pod *corev1.Pod) bool

func NewPrometheus added in v0.23.4

func NewPrometheus(nodeName string) (prometheus.Registerer, *prometheus.Registry)

func ParseEndpoint

func ParseEndpoint(endpoint string) (string, string, error)

func ParseMntPath added in v0.10.7

func ParseMntPath(cmd string) (string, string, error)

ParseMntPath return mntPath, volumeId (/jfs/volumeId, volumeId err)

func ParseToBytes added in v0.23.6

func ParseToBytes(value string) (uint64, error)

ParseToBytes parses a string with a unit suffix (e.g. "1M", "2G") to bytes. default unit is M

func QuoteForShell added in v0.13.0

func QuoteForShell(cmd string) string

func RandStringRunes added in v0.14.1

func RandStringRunes(n int) string

func RemoveFinalizer added in v0.15.0

func RemoveFinalizer(ctx context.Context, client *k8sclient.K8sClient, pod *corev1.Pod, finalizer string) error

func RemoveSecretFinalizer added in v0.22.0

func RemoveSecretFinalizer(ctx context.Context, client *k8s.K8sClient, secret *v1.Secret, finalizer string) error

func ReplacePodAnnotation added in v0.17.4

func ReplacePodAnnotation(ctx context.Context, client *k8sclient.K8sClient, pod *corev1.Pod, annotation map[string]string) error

func ShouldDelay added in v0.13.0

func ShouldDelay(ctx context.Context, pod *corev1.Pod, Client *k8s.K8sClient) (shouldDelay bool, err error)

func StripPasswd added in v0.13.0

func StripPasswd(uri string) string

func StripReadonlyOption added in v0.17.4

func StripReadonlyOption(options []string) []string

func UmountPath added in v0.17.1

func UmountPath(ctx context.Context, sourcePath string)

func WaitUtilMountReady added in v0.23.6

func WaitUtilMountReady(ctx context.Context, podName, mntPath string, timeout time.Duration) error

Types

type ObjectMeta added in v0.23.3

type ObjectMeta struct {
	// contains filtered or unexported fields
}

func NewObjectMeta added in v0.23.3

func NewObjectMeta(pvc v1.PersistentVolumeClaim, node *v1.Node) *ObjectMeta

func (*ObjectMeta) ResolveSecret added in v0.23.3

func (meta *ObjectMeta) ResolveSecret(str string, pvName string) string

func (*ObjectMeta) StringParser added in v0.23.3

func (meta *ObjectMeta) StringParser(str string) string

type PVPair added in v0.23.0

type PVPair struct {
	PV  *corev1.PersistentVolume
	PVC *corev1.PersistentVolumeClaim
}

func GetVolumes added in v0.23.0

func GetVolumes(ctx context.Context, client *k8sclient.K8sClient, pod *corev1.Pod) (used bool, pvPairGot []PVPair, err error)

GetVolumes get juicefs pv & pvc from pod

type VolumeLocks added in v0.24.0

type VolumeLocks struct {
	// contains filtered or unexported fields
}

func NewVolumeLocks added in v0.24.0

func NewVolumeLocks() *VolumeLocks

func (*VolumeLocks) Release added in v0.24.0

func (vl *VolumeLocks) Release(volumeID string)

Release deletes the lock on volumeID.

func (*VolumeLocks) TryAcquire added in v0.24.0

func (vl *VolumeLocks) TryAcquire(volumeID string) bool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL