Documentation ¶
Index ¶
Constants ¶
View Source
const ( CSINodeLabelKey = "app" CSINodeLabelValue = "juicefs-csi-node" PodTypeKey = "app.kubernetes.io/name" PodTypeValue = "juicefs-mount" PodUniqueIdLabelKey = "volume-id" PodJuiceHashLabelKey = "juicefs-hash" Finalizer = "juicefs.com/finalizer" JuiceFSUUID = "juicefs-uuid" UniqueId = "juicefs-uniqueid" CleanCache = "juicefs-clean-cache" // DeleteDelayTimeKey mount pod annotation DeleteDelayTimeKey = "juicefs-delete-delay" DeleteDelayAtKey = "juicefs-delete-at" )
Variables ¶
View Source
var ( ByProcess = false // csi driver runs juicefs in process or not PodManager = false // enable pod manager or not (only in k8s) FormatInPod = false // put format/auth in pod (only in k8s) Provisioner = false // provisioner in controller MountManager = false // manage mount pod in controller (only in k8s) NodeName = "" Namespace = "" PodName = "" MountImage = "" MountLabels = "" HostIp = "" KubeletPort = "" CSIPod = corev1.Pod{} ContainerResource = corev1.ResourceRequirements{} MountPointPath = "/var/lib/juicefs/volume" JFSConfigPath = "/var/lib/juicefs/config" JFSMountPriorityName = "system-node-critical" PodMountBase = "/jfs" MountBase = "/var/lib/jfs" FsType = "juicefs" CliPath = "/usr/bin/juicefs" CeCliPath = "/usr/local/bin/juicefs" CeMountPath = "/bin/mount.juicefs" JfsMountPath = "/sbin/mount.juicefs" ReconcilerInterval = 5 )
View Source
var PodLocks [1024]sync.Mutex
Functions ¶
func GetPodLock ¶
Types ¶
type JfsSetting ¶
type JfsSetting struct { IsCe bool UsePod bool UUID string Name string `json:"name"` MetaUrl string `json:"metaurl"` Source string `json:"source"` Storage string `json:"storage"` FormatOptions string `json:"format-options"` CachePVCs []CachePVC // PVC using by mount pod CacheDirs []string // hostPath using by mount pod // put in secret SecretKey string `json:"secret-key,omitempty"` SecretKey2 string `json:"secret-key2,omitempty"` Token string `json:"token,omitempty"` Passphrase string `json:"passphrase,omitempty"` Envs map[string]string `json:"envs_map,omitempty"` EncryptRsaKey string `json:"encrypt_rsa_key,omitempty"` InitConfig string `json:"initconfig,omitempty"` Configs map[string]string `json:"configs_map,omitempty"` // put in volCtx MountPodLabels map[string]string `json:"mount_pod_labels"` MountPodAnnotations map[string]string `json:"mount_pod_annotations"` DeletedDelay string `json:"deleted_delay"` CleanCache bool `json:"clean_cache"` ServiceAccountName string Resources corev1.ResourceRequirements // mount VolumeId string // volumeHandle of PV UniqueId string // mount pod name is generated by uniqueId MountPath string // mountPath of mount pod or process mount TargetPath string // which bind to container path Options []string // mount options FormatCmd string // format or auth SubPath string // subPath which is to be created or deleted SecretName string // secret name which is set env in pod Attr PodAttr }
func ParseSetting ¶
type PodAttr ¶ added in v0.16.0
type PodAttr struct { Namespace string MountPointPath string JFSConfigPath string JFSMountPriorityName string // inherit from csi Image string HostNetwork bool HostAliases []corev1.HostAlias HostPID bool HostIPC bool DNSConfig *corev1.PodDNSConfig DNSPolicy corev1.DNSPolicy ImagePullSecrets []corev1.LocalObjectReference PreemptionPolicy *corev1.PreemptionPolicy Tolerations []corev1.Toleration }
Click to show internal directories.
Click to hide internal directories.