Documentation
¶
Index ¶
- Constants
- func GenJobNameByVolumeId(volumeId string) string
- func GenMetadata(jfsSetting *config.JfsSetting) (labels map[string]string, annotations map[string]string)
- func NewCanaryJob(ctx context.Context, client *k8s.K8sClient, mountPod *corev1.Pod, restart bool) (*batchv1.Job, error)
- func NewFuseAbortJob(mountpod *corev1.Pod, devMinor uint32) *batchv1.Job
- func SetJobAsOwner(secret *corev1.Secret, owner batchv1.Job)
- func SetPVAsOwner(secret *corev1.Secret, owner *corev1.PersistentVolume)
- func SetPVCAsOwner(secret *corev1.Secret, owner *corev1.PersistentVolumeClaim)
- func SetPodAsOwner(secret *corev1.Secret, owner corev1.Pod)
- type BaseBuilder
- type CCIBuilder
- type ContainerBuilder
- type JobBuilder
- type PodBuilder
- type ServerlessBuilder
- type SidecarInterface
- func NewCCIBuilder(setting *config.JfsSetting, capacity int64, app corev1.Pod, ...) SidecarInterface
- func NewContainerBuilder(setting *config.JfsSetting, capacity int64) SidecarInterface
- func NewServerlessBuilder(setting *config.JfsSetting, capacity int64, app corev1.Pod, ...) SidecarInterface
- func NewVCIBuilder(setting *config.JfsSetting, capacity int64, app corev1.Pod, ...) SidecarInterface
- type VCIBuilder
- type VCIPropagationStruct
Constants ¶
const ( CCIANNOKey = "virtual-kubelet.io/burst-to-cci" CCIANNOValue = "enforce" CCIDriverName = "juicefs.csi.everest.io" CCIDriverType = "gpath" )
const ( JfsDirName = "jfs-dir" UpdateDBDirName = "updatedb" UpdateDBCfgFile = "/etc/updatedb.conf" )
const ( VCIANNOKey = "vke.volcengine.com/burst-to-vci" VCIANNOValue = "enforce" VCIPropagation = "vci.vke.volcengine.com/config-bidirectional-mount-propagation" VCIPropagationConfig = "vke.al.vci-enable-bidirectional-mount-propagation" VCIPropagationConfigValue = "vke.al.vci-enable-bidirectional-mount-propagation" )
const DefaultJobTTLSecond = int32(5)
Variables ¶
This section is empty.
Functions ¶
func GenJobNameByVolumeId ¶
func GenMetadata ¶ added in v0.26.0
func NewCanaryJob ¶ added in v0.25.0
func NewCanaryJob(ctx context.Context, client *k8s.K8sClient, mountPod *corev1.Pod, restart bool) (*batchv1.Job, error)
NewCanaryJob restart: pull image ahead !restart: for download binary
func NewFuseAbortJob ¶ added in v0.23.6
func SetPVAsOwner ¶ added in v0.24.6
func SetPVAsOwner(secret *corev1.Secret, owner *corev1.PersistentVolume)
func SetPVCAsOwner ¶ added in v0.18.0
func SetPVCAsOwner(secret *corev1.Secret, owner *corev1.PersistentVolumeClaim)
Types ¶
type BaseBuilder ¶ added in v0.23.0
type BaseBuilder struct {
// contains filtered or unexported fields
}
func (*BaseBuilder) GetEnvKey ¶ added in v0.26.0
func (r *BaseBuilder) GetEnvKey() []string
func (*BaseBuilder) NewSecret ¶ added in v0.23.0
func (r *BaseBuilder) NewSecret() corev1.Secret
type CCIBuilder ¶ added in v0.23.1
type CCIBuilder struct { ServerlessBuilder // contains filtered or unexported fields }
func (*CCIBuilder) NewMountSidecar ¶ added in v0.23.1
func (r *CCIBuilder) NewMountSidecar() *corev1.Pod
NewMountSidecar generates a pod with a juicefs sidecar in serverless mode 1. no hostpath 2. without privileged container 3. no propagationBidirectional 4. with env JFS_NO_UMOUNT=1 5. annotations for CCI
func (*CCIBuilder) OverwriteVolumeMounts ¶ added in v0.23.1
func (r *CCIBuilder) OverwriteVolumeMounts(mount *corev1.VolumeMount)
func (*CCIBuilder) OverwriteVolumes ¶ added in v0.23.1
func (r *CCIBuilder) OverwriteVolumes(volume *corev1.Volume, mountPath string)
type ContainerBuilder ¶ added in v0.23.0
type ContainerBuilder struct {
PodBuilder
}
func (*ContainerBuilder) NewMountSidecar ¶ added in v0.23.0
func (r *ContainerBuilder) NewMountSidecar() *corev1.Pod
NewMountSidecar generates a pod with a juicefs sidecar exactly the same spec as Mount Pod except fuse passfd path
func (*ContainerBuilder) OverwriteVolumeMounts ¶ added in v0.23.0
func (r *ContainerBuilder) OverwriteVolumeMounts(mount *corev1.VolumeMount)
func (*ContainerBuilder) OverwriteVolumes ¶ added in v0.23.0
func (r *ContainerBuilder) OverwriteVolumes(volume *corev1.Volume, mountPath string)
type JobBuilder ¶ added in v0.23.0
type JobBuilder struct {
PodBuilder
}
func NewJobBuilder ¶ added in v0.23.0
func NewJobBuilder(setting *config.JfsSetting, capacity int64) *JobBuilder
func (*JobBuilder) NewJobForCleanCache ¶ added in v0.23.0
func (r *JobBuilder) NewJobForCleanCache() *batchv1.Job
func (*JobBuilder) NewJobForCreateVolume ¶ added in v0.23.0
func (r *JobBuilder) NewJobForCreateVolume() *batchv1.Job
func (*JobBuilder) NewJobForDeleteVolume ¶ added in v0.23.0
func (r *JobBuilder) NewJobForDeleteVolume() *batchv1.Job
type PodBuilder ¶ added in v0.23.0
type PodBuilder struct {
BaseBuilder
}
func NewPodBuilder ¶ added in v0.23.0
func NewPodBuilder(setting *config.JfsSetting, capacity int64) *PodBuilder
func (*PodBuilder) NewMountPod ¶ added in v0.23.0
func (r *PodBuilder) NewMountPod(podName string) (*corev1.Pod, error)
NewMountPod generates a pod with juicefs client
type ServerlessBuilder ¶ added in v0.23.0
type ServerlessBuilder struct { PodBuilder // contains filtered or unexported fields }
func (*ServerlessBuilder) NewMountSidecar ¶ added in v0.23.0
func (r *ServerlessBuilder) NewMountSidecar() *corev1.Pod
NewMountSidecar generates a pod with a juicefs sidecar in serverless mode 1. no hostpath 2. use emptyDir as mount point 3. with privileged container (the serverless cluster must have this permission.) 4. no initContainer
func (*ServerlessBuilder) OverwriteVolumeMounts ¶ added in v0.23.0
func (r *ServerlessBuilder) OverwriteVolumeMounts(mount *corev1.VolumeMount)
func (*ServerlessBuilder) OverwriteVolumes ¶ added in v0.23.0
func (r *ServerlessBuilder) OverwriteVolumes(volume *corev1.Volume, mountPath string)
type SidecarInterface ¶ added in v0.23.0
type SidecarInterface interface { NewMountSidecar() *corev1.Pod NewSecret() corev1.Secret OverwriteVolumes(volume *corev1.Volume, mountPath string) OverwriteVolumeMounts(mount *corev1.VolumeMount) }
func NewCCIBuilder ¶ added in v0.23.1
func NewCCIBuilder(setting *config.JfsSetting, capacity int64, app corev1.Pod, pvc corev1.PersistentVolumeClaim) SidecarInterface
func NewContainerBuilder ¶ added in v0.23.0
func NewContainerBuilder(setting *config.JfsSetting, capacity int64) SidecarInterface
func NewServerlessBuilder ¶ added in v0.23.0
func NewServerlessBuilder(setting *config.JfsSetting, capacity int64, app corev1.Pod, pvc corev1.PersistentVolumeClaim) SidecarInterface
func NewVCIBuilder ¶ added in v0.23.0
func NewVCIBuilder(setting *config.JfsSetting, capacity int64, app corev1.Pod, pvc corev1.PersistentVolumeClaim) SidecarInterface
type VCIBuilder ¶ added in v0.23.0
type VCIBuilder struct {
ServerlessBuilder
}
func (*VCIBuilder) NewMountSidecar ¶ added in v0.23.0
func (r *VCIBuilder) NewMountSidecar() *corev1.Pod
NewMountSidecar generates a pod with a juicefs sidecar in serverless mode 1. no hostpath 2. without privileged container 3. no propagationBidirectional 4. with env JFS_NO_UMOUNT=1 5. annotations for VCI
func (*VCIBuilder) OverwriteVolumeMounts ¶ added in v0.23.0
func (r *VCIBuilder) OverwriteVolumeMounts(mount *corev1.VolumeMount)
func (*VCIBuilder) OverwriteVolumes ¶ added in v0.23.0
func (r *VCIBuilder) OverwriteVolumes(volume *corev1.Volume, mountPath string)