kubeclient

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2024 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckIfPVCIsDataset added in v0.8.0

func CheckIfPVCIsDataset(pvc *corev1.PersistentVolumeClaim) (isDataset bool)

CheckIfPVCIsDataset checks if the pvc is dataset

func CopyConfigMap added in v0.9.0

func CopyConfigMap(client client.Client, src types.NamespacedName, dst types.NamespacedName, reference metav1.OwnerReference) error

func CopySecretToNamespace added in v0.9.0

func CopySecretToNamespace(client client.Client, from types.NamespacedName, to types.NamespacedName, ownerReference *common.OwnerReference) error

func CreateConfigMap added in v1.0.0

func CreateConfigMap(client client.Client, name string, namespace string, key string, data []byte) (err error)

func CreateSecret added in v0.7.0

func CreateSecret(client client.Client, secret *v1.Secret) error

func DeleteConfigMap

func DeleteConfigMap(client client.Client, name, namespace string) (err error)

DeleteConfigMap deletes the configmap given its name and namespace if the configmap exists.

func DeletePersistentVolume

func DeletePersistentVolume(client client.Client, name string) (err error)

DeletePersistentVolume deletes volume

func DeletePersistentVolumeClaim

func DeletePersistentVolumeClaim(client client.Client, name, namespace string) (err error)

DeletePersistentVolumeClaim deletes volume claim

func DeleteRole added in v1.0.0

func DeleteRole(client client.Client, name, namespace string) (err error)

func DeleteRoleBinding added in v1.0.0

func DeleteRoleBinding(client client.Client, name, namespace string) (err error)

func DeleteServiceAccount added in v1.0.0

func DeleteServiceAccount(client client.Client, name, namespace string) (err error)

func EnsureNamespace

func EnsureNamespace(client client.Client, namespace string) (err error)

EnsureNamespace makes sure the namespace exist.

func ExecCommandInContainer

func ExecCommandInContainer(podName string, containerName string, namespace string, cmd []string) (stdout string, stderr string, err error)

A wrapper function of ExecCommandInContainerWithFullOutput

func ExecCommandInContainerWithFullOutput

func ExecCommandInContainerWithFullOutput(podName string, containerName string, namespace string, cmd []string) (stdout string, stderr string, err error)

ExecCommandInContainerWithFullOutput executes a command in the specified container and return stdout, stderr and error

func ExecCommandInPod

func ExecCommandInPod(podName string, namespace string, cmd []string) (stdout string, stderr string, err error)

ExecCommandInPod finds the first container in the given pod, executes command in that container, and return stdout, stderr and error.

func ExecWithOptions

func ExecWithOptions(options ExecOptions) (string, string, error)

ExecWithOptions executes a command in the specified container, returning stdout, stderr and error. `options` allowed for additional parameters to be passed.

func GetConfigmapByName added in v0.5.0

func GetConfigmapByName(client client.Client, name, namespace string) (configmap *v1.ConfigMap, err error)

GetConfigmapByName gets configmap with given name and namespace of the configmap.

func GetCronJobStatus added in v1.0.0

func GetCronJobStatus(client client.Client, key types.NamespacedName) (*batchv1.CronJobStatus, error)

GetCronJobStatus gets CronJob's status given its namespace and name. It converts batchv1beta1.CronJobStatus to batchv1.CronJobStatus when batchv1.CronJob is not supported by the cluster.

func GetDaemonPods added in v0.7.0

func GetDaemonPods(c client.Client, ds *appsv1.DaemonSet) (pods []*v1.Pod, err error)

GetDaemonPods gets pods of the specified daemonset

func GetDaemonset added in v0.7.0

func GetDaemonset(c client.Client, name string, namespace string) (ds *appsv1.DaemonSet, err error)

GetDaemonset gets the daemonset by name and namespace

func GetDeployment added in v0.8.0

func GetDeployment(c client.Client, key types.NamespacedName) (deploy *appsv1.Deployment, err error)

GetDeployment gets the deployment by name and namespace

func GetFuseMountInContainer added in v0.7.0

func GetFuseMountInContainer(mountType string, container corev1.Container) (volumeMount corev1.VolumeMount, err error)

func GetIpAddressesOfNodes added in v0.9.0

func GetIpAddressesOfNodes(nodes []corev1.Node) (ipAddresses []string)

GetIpAddressesOfNodes gets the ipAddresses of nodes

func GetIpAddressesOfPods added in v0.9.0

func GetIpAddressesOfPods(client client.Client, pods []corev1.Pod) (ipAddresses []string, err error)

GetIpAddressesOfPods gets the ipAddresses of pods

func GetJob added in v1.0.0

func GetJob(client client.Client, name, namespace string) (*v1.Job, error)

GetJob gets the job given its name and namespace

func GetMountInfoFromVolumeClaim added in v0.7.0

func GetMountInfoFromVolumeClaim(client client.Client, name, namespace string) (path string, mountType string, subpath string, err error)

GetMountInfoFromVolumeClaim gets the mountPath and type for CSI plugin

func GetMountPathInContainer added in v0.8.0

func GetMountPathInContainer(container corev1.Container) (string, error)

func GetNode

func GetNode(client client.Reader, name string) (node *corev1.Node, err error)

GetNode gets the latest node info

func GetPVCNamesFromPod added in v0.6.0

func GetPVCNamesFromPod(pod *corev1.Pod) (pvcNames []string)

GetPVCNamesFromPod get names of pvc mounted by Pod

func GetPVCsFromPod added in v0.6.0

func GetPVCsFromPod(pod corev1.Pod) (pvcs []corev1.Volume)

GetPVCsFromPod get PersistVolumeClaims of pod

func GetPersistentVolume added in v0.7.0

func GetPersistentVolume(client client.Reader, name string) (pv *corev1.PersistentVolume, err error)

func GetPersistentVolumeClaim added in v0.7.0

func GetPersistentVolumeClaim(client client.Client, name, namespace string) (pvc *v1.PersistentVolumeClaim, err error)

func GetPhaseFromStatefulset added in v0.7.0

func GetPhaseFromStatefulset(replicas int32, sts appsv1.StatefulSet) (phase datav1alpha1.RuntimePhase)

GetPhaseFromStatefulset gets the phase from statefulset

func GetPodByName

func GetPodByName(client client.Client, name, namespace string) (pod *corev1.Pod, err error)

GetPodByName gets pod with given name and namespace of the pod.

func GetPodsForStatefulSet added in v0.7.0

func GetPodsForStatefulSet(c client.Client, sts *appsv1.StatefulSet, selector labels.Selector) (pods []v1.Pod, err error)

GetPodsForStatefulSet gets pods of the specified statefulset

func GetPvcMountNodes added in v0.5.0

func GetPvcMountNodes(e client.Client, pvcName, namespace string) (map[string]int64, error)

GetPvcMountNodes get nodes which have pods mounted the specific pvc for a given namespace it will only return a map of nodeName and amount of PvcMountPods on it if the Pvc mount Pod has completed, it will be ignored if fail to get pvc mount Nodes, treat every nodes as with no PVC mount Pods

func GetPvcMountPods

func GetPvcMountPods(e client.Client, pvcName, namespace string) ([]corev1.Pod, error)

GetPvcMountPods get pods that mounted the specific pvc for a given namespace

func GetReferringDatasetPVCInfo added in v0.9.0

func GetReferringDatasetPVCInfo(pvc *corev1.PersistentVolumeClaim) (ok bool, name string, namespace string)

GetReferringDatasetPVCInfo check whether the PVC is a referring dataset PVC

func GetSecret added in v0.7.0

func GetSecret(client client.Client, name, namespace string) (*v1.Secret, error)

GetSecret gets the secret. It returns a pointer to the secret if successful.

func GetServiceByName added in v0.4.0

func GetServiceByName(client client.Client, name, namespace string) (service *corev1.Service, err error)

get service given name and namespace of the service.

func GetStatefulSet added in v0.7.0

func GetStatefulSet(c client.Client, name string, namespace string) (master *appsv1.StatefulSet, err error)

GetStatefulset gets the statefulset by name and namespace

func GetUnavailableDaemonPodNames added in v0.7.0

func GetUnavailableDaemonPodNames(c client.Client, ds *appsv1.DaemonSet) (names []types.NamespacedName, err error)

GetUnavailableDaemonPods gets unavailable pods of the specified daemonset

func GetUnavailableDaemonPods added in v0.7.0

func GetUnavailableDaemonPods(c client.Client, ds *appsv1.DaemonSet) (unavailablePods []*v1.Pod, err error)

GetUnavailableDaemonPods gets unavailable pods of the specified daemonset

func GetUnavailablePodNamesForStatefulSet added in v0.7.0

func GetUnavailablePodNamesForStatefulSet(c client.Client, sts *appsv1.StatefulSet, selector labels.Selector) (names []types.NamespacedName, err error)

GetUnavailablePodNamesForStatefulSet gets pod names of the specified statefulset

func GetUnavailablePodsStatefulSet added in v0.7.0

func GetUnavailablePodsStatefulSet(c client.Client, sts *appsv1.StatefulSet, selector labels.Selector) (unavailablePods []*v1.Pod, err error)

GetUnavailablePodsStatefulSet gets unavailable pods of the specified statefulset

func IsCompletePod

func IsCompletePod(pod *corev1.Pod) bool

IsCompletePod determines if the pod is complete

func IsConfigMapExist

func IsConfigMapExist(client client.Client, name, namespace string) (found bool, err error)

IsConfigMapExist checks if the configMap exists given its name and namespace.

func IsDatasetPVC added in v0.6.0

func IsDatasetPVC(client client.Reader, name string, namespace string) (find bool, err error)

IsDatasetPVC check whether the PVC is a dataset PVC

func IsFailedPod

func IsFailedPod(pod *corev1.Pod) bool

IsFailedPod determines if the pod is failed

func IsFinishedPod added in v0.9.0

func IsFinishedPod(pod *corev1.Pod) bool

IsFinishedPod determines if the pod is succeeded or failed

func IsPersistentVolumeClaimExist

func IsPersistentVolumeClaimExist(client client.Client, name, namespace string, annotations map[string]string) (found bool, err error)

IsPersistentVolumeClaimExist checks if the persistent volume claim exists given name, namespace and annotations of the PVC.

func IsPersistentVolumeExist

func IsPersistentVolumeExist(client client.Client, name string, annotations map[string]string) (found bool, err error)

IsPersistentVolumeExist checks if the persistent volume exists given name and annotations of the PV.

func IsReady

func IsReady(node corev1.Node) (ready bool)

IsReady checks if the node is ready If the node is ready,it returns True.Otherwise,it returns False.

func IsSucceededPod added in v0.5.0

func IsSucceededPod(pod *corev1.Pod) bool

IsSucceededPod determines if the pod is Succeeded

func MergeNodeSelectorAndNodeAffinity added in v1.0.0

func MergeNodeSelectorAndNodeAffinity(nodeSelector map[string]string, podAffinity *corev1.Affinity) (nodeAffinity *corev1.NodeAffinity)

func PVCNames added in v0.7.0

func PVCNames(volumeMounts []corev1.VolumeMount, volumes []corev1.Volume) (pvcNames []string)

func RemoveProtectionFinalizer

func RemoveProtectionFinalizer(client client.Client, name, namespace string) (err error)

RemoveProtectionFinalizer removes finalizers of PersistentVolumeClaim if all owners that this PVC is mounted by are inactive (Succeed or Failed)

func ScaleStatefulSet added in v1.0.0

func ScaleStatefulSet(client client.Client, name string, namespace string, replicas int32) error

ScaleStatefulSet scale the statefulset replicas

func SetPVCDeleteTimeout added in v0.9.0

func SetPVCDeleteTimeout(timeout time.Duration)

SetPVCDeleteTimeout is only for test case usage

func ShouldDeleteDataset added in v0.5.0

func ShouldDeleteDataset(client client.Client, name, namespace string) (err error)

ShouldDeleteDataset return no err when no pod is using the volume If cannot get PVC, cannot get PvcMountPods, or running pod is using the volume, return corresponding error

func ShouldRemoveProtectionFinalizer

func ShouldRemoveProtectionFinalizer(client client.Client, name, namespace string) (should bool, err error)

ShouldRemoveProtectionFinalizer check if should remove pvc-protection finalizer by force. Force-removal happens only when it matches both the two following conditions:

  1. PVC's in Terminating state for over than 30 seconds
  2. PVC's not actively used by any pods

func UpdateConfigMap added in v1.0.0

func UpdateConfigMap(client client.Client, cm *v1.ConfigMap) error

func UpdateSecret added in v0.7.0

func UpdateSecret(client client.Client, secret *v1.Secret) error

Types

type ExecOptions

type ExecOptions struct {
	Command []string

	Namespace     string
	PodName       string
	ContainerName string

	Stdin         io.Reader
	CaptureStdout bool
	CaptureStderr bool
	// If false, whitespace in std{err,out} will be removed.
	PreserveWhitespace bool
}

ExecOptions passed to ExecWithOptions

Jump to

Keyboard shortcuts

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