utils

package
v1.0.0-beta.17 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2024 License: AGPL-3.0 Imports: 39 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddTolerations

func AddTolerations(podSpec *corev1.PodSpec) (err error)

func BuildEnvByParameters

func BuildEnvByParameters(parameters []dpv1alpha1.ParameterPair) []corev1.EnvVar

func BuildEnvByTarget

func BuildEnvByTarget(pod *corev1.Pod, credential *dpv1alpha1.ConnectionCredential, containerPort *dpv1alpha1.ContainerPort) ([]corev1.EnvVar, error)

func CovertEnvToMap

func CovertEnvToMap(env []corev1.EnvVar) map[string]string

CovertEnvToMap coverts env array to map.

func EventsToString added in v0.8.0

func EventsToString(events *corev1.EventList) string

func ExistTargetVolume added in v0.8.3

func ExistTargetVolume(targetVolumes *dpv1alpha1.TargetVolumeInfo, volumeName string) bool

ExistTargetVolume checks if the backup.status.backupMethod.targetVolumes exists the target volume which should be restored.

func GetActionSetByName

func GetActionSetByName(reqCtx intctrlutil.RequestCtx, cli client.Client, name string) (*dpv1alpha1.ActionSet, error)

GetActionSetByName gets the ActionSet by name.

func GetAssociatedPodsOfJob added in v0.8.0

func GetAssociatedPodsOfJob(ctx context.Context, cli client.Client, namespace, jobName string, opts ...client.ListOption) (*corev1.PodList, error)

func GetBackupMethodByName added in v0.7.1

func GetBackupMethodByName(name string, backupPolicy *dpv1alpha1.BackupPolicy) *dpv1alpha1.BackupMethod

func GetBackupMethodsFromBackupPolicy

func GetBackupMethodsFromBackupPolicy(backupPolicyList *dpv1alpha1.BackupPolicyList, backupPolicyName string) (string, map[string]struct{})

GetBackupMethodsFromBackupPolicy get backup methods from backup policy if backup policy is specified, search the backup policy with the name if backup policy is not specified, search the default backup policy if method's snapshotVolumes is true, use the method as the default backup method

func GetBackupPolicyByName added in v0.7.1

func GetBackupPolicyByName(reqCtx intctrlutil.RequestCtx, cli client.Client, name string) (*dpv1alpha1.BackupPolicy, error)

func GetBackupStatusTarget added in v0.9.0

func GetBackupStatusTarget(backupObj *dpv1alpha1.Backup, sourceTargetName string) *dpv1alpha1.BackupStatusTarget

func GetBackupTargets added in v0.9.0

func GetBackupTargets(backupPolicy *dpv1alpha1.BackupPolicy, backupMethod *dpv1alpha1.BackupMethod) []dpv1alpha1.BackupTarget

GetBackupTargets gets the backup targets by 'backupMethod' and 'backupPolicy'. 'backupMethod' has a higher priority than the global targets in 'backupPolicy'.

func GetBackupType

func GetBackupType(actionSet *dpv1alpha1.ActionSet, useSnapshot *bool) dpv1alpha1.BackupType

func GetBackupVolumeSnapshotName

func GetBackupVolumeSnapshotName(backupName, volumeSource string, index int) string

func GetDPDBPortEnv

func GetDPDBPortEnv(pod *corev1.Pod, containerPort *dpv1alpha1.ContainerPort) (*corev1.EnvVar, error)

GetDPDBPortEnv get the EnvVar which consists of the port number of targetPod.

func GetFirstIndexRunningPod added in v0.7.2

func GetFirstIndexRunningPod(podList *corev1.PodList) *corev1.Pod

GetFirstIndexRunningPod gets the first running pod with index.

func GetKubeVersion added in v0.7.2

func GetKubeVersion() (string, error)

GetKubeVersion get the version of Kubernetes and return the gitVersion

func GetOldBackupVolumeSnapshotName added in v0.9.0

func GetOldBackupVolumeSnapshotName(backupName, volumeSource string) string

func GetPodByName added in v0.9.1

func GetPodByName(podList *corev1.PodList, name string) *corev1.Pod

func GetPodFirstContainerPort added in v0.8.2

func GetPodFirstContainerPort(pod *corev1.Pod) int32

func GetPodListByLabelSelector

func GetPodListByLabelSelector(reqCtx intctrlutil.RequestCtx,
	cli client.Client,
	labelSelector *metav1.LabelSelector) (*corev1.PodList, error)

func InjectDatasafed

func InjectDatasafed(podSpec *corev1.PodSpec, repo *dpv1alpha1.BackupRepo, repoVolumeMountPath string,
	encryptionConfig *dpv1alpha1.EncryptionConfig, kopiaRepoPath string)

func InjectDatasafedWithConfig

func InjectDatasafedWithConfig(podSpec *corev1.PodSpec, configSecretName string, kopiaRepoPath string)

func InjectDatasafedWithPVC

func InjectDatasafedWithPVC(podSpec *corev1.PodSpec, pvcName string, mountPath string, kopiaRepoPath string)

func IsJobFinished

func IsJobFinished(job *batchv1.Job) (bool, batchv1.JobConditionType, string)

IsJobFinished if the job is completed or failed, return true. if the job is failed, return the failed message.

func IsVolumeSnapshotEnabled added in v0.9.0

func IsVolumeSnapshotEnabled(ctx context.Context, cli client.Client, pvName string) (bool, error)

IsVolumeSnapshotEnabled checks if the CSI supports the volume snapshot.

func MergeEnv

func MergeEnv(originalEnv, targetEnv []corev1.EnvVar) []corev1.EnvVar

MergeEnv merges the targetEnv to original env. if original env exist the same name var, it will be replaced.

func PrependSpaces added in v0.8.0

func PrependSpaces(content string, spaces int) string

PrependSpaces prepends spaces to each line of the content.

func RemoveDataProtectionFinalizer

func RemoveDataProtectionFinalizer(ctx context.Context, cli client.Client, obj client.Object) error

func SetControllerReference

func SetControllerReference(owner, controlled metav1.Object, scheme *runtime.Scheme) error

func SupportsCronJobV1 added in v0.8.2

func SupportsCronJobV1() bool

func SupportsVolumeSnapshotV1 added in v0.9.0

func SupportsVolumeSnapshotV1() bool

func ValidateParameters

func ValidateParameters(actionSet *dpv1alpha1.ActionSet, parameters []dpv1alpha1.ParameterPair, isBackup bool) error

func ValidateScheduleNames

func ValidateScheduleNames(schedules []dpv1alpha1.SchedulePolicy) error

func VolumeSnapshotEnabled

func VolumeSnapshotEnabled(ctx context.Context, cli client.Client, pod *corev1.Pod, volumes []string) (bool, error)

VolumeSnapshotEnabled checks if the volumes support snapshot.

Types

type CompatClient added in v0.9.0

type CompatClient struct {
	client.Client
}

CompatClient is compatible with VolumeSnapshot v1 and v1beta1, and CronJob v1 and v1beta1.

func NewCompatClient added in v0.9.0

func NewCompatClient(cli client.Client) *CompatClient

func (*CompatClient) Create added in v0.9.0

func (c *CompatClient) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error

func (*CompatClient) Delete added in v0.9.0

func (c *CompatClient) Delete(ctx context.Context, obj client.Object, opts ...client.DeleteOption) error

func (*CompatClient) Get added in v0.9.0

func (c *CompatClient) Get(ctx context.Context, key client.ObjectKey, obj client.Object, opts ...client.GetOption) error

func (*CompatClient) List added in v0.9.0

func (c *CompatClient) List(ctx context.Context, objList client.ObjectList, opts ...client.ListOption) error

func (*CompatClient) Patch added in v0.9.0

func (c *CompatClient) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.PatchOption) error

type PeriodicalEnqueueSource

type PeriodicalEnqueueSource struct {
	client.Client
	// contains filtered or unexported fields
}

PeriodicalEnqueueSource is an implementation of interface sigs.k8s.io/controller-runtime/pkg/source/Source It reads the specific resources from cache and enqueue them into the queue to trigger the reconcile procedure periodically.

func NewPeriodicalEnqueueSource

func NewPeriodicalEnqueueSource(
	client client.Client,
	objList client.ObjectList,
	period time.Duration,
	option PeriodicalEnqueueSourceOption) *PeriodicalEnqueueSource

func (*PeriodicalEnqueueSource) Start

func (*PeriodicalEnqueueSource) String

func (p *PeriodicalEnqueueSource) String() string

type PeriodicalEnqueueSourceOption

type PeriodicalEnqueueSourceOption struct {
	OrderFunc func(objList client.ObjectList) client.ObjectList
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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