Documentation ¶
Overview ¶
Copyright 2021 The Fluid Authors.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- Variables
- func CheckExpectValue(m map[string]string, key string, targetValue string) bool
- func CriticalFusePodEnabled() bool
- func GetDatasetNumLabelName() string
- func GetDefaultTieredStoreOrder(MediumType MediumType) (order int)
- func GetManagerDatasetFromLabels(labels map[string]string) (datasetName string, exists bool)
- func HostPIDEnabled(annotations map[string]string) bool
- func IsFluidNativeScheme(s string) bool
- func IsFluidRefSchema(s string) bool
- func IsFluidWebScheme(s string) bool
- func PortCheckEnabled() bool
- type AdmissionHandler
- type CacheStateList
- type CacheStateName
- type CacheStoreType
- type Category
- type ConditionType
- type FluidApplication
- type FluidObject
- type FluidUFSScheme
- type FuseInjectionTemplate
- type FuseMountInfo
- type FuseSidecarInjectOption
- type ImageInfo
- type InitPortCheck
- type InitUsers
- type LabelToModify
- type LabelsToModify
- type MediumType
- type OperationType
- type OwnerReference
- type Phase
- type ReadType
- type ResourceList
- type Resources
- type RuntimeIdentity
- type RuntimeRole
- type StorageType
- type UserInfo
- type VolumeType
Constants ¶
const ( AlluxioRuntime = "alluxio" AlluxioMountType = "fuse.alluxio-fuse" AlluxioChart = AlluxioRuntime AlluxioEngineImpl = AlluxioRuntime )
Runtime for Alluxio
const ( DefaultInitImageEnv = "DEFAULT_INIT_IMAGE_ENV" AlluxioRuntimeImageEnv = "ALLUXIO_RUNTIME_IMAGE_ENV" AlluxioFuseImageEnv = "ALLUXIO_FUSE_IMAGE_ENV" DefaultAlluxioRuntimeImage = "registry.cn-huhehaote.aliyuncs.com/alluxio/alluxio:2.3.0-SNAPSHOT-2c41226" DefaultAlluxioFuseImage = "registry.cn-huhehaote.aliyuncs.com/alluxio/alluxio-fuse:2.3.0-SNAPSHOT-2c41226" )
Constants for Alluxio Images
const ( ErrorCreateDataset = "ErrorCreateDataset" ErrorProcessDatasetReason = "ErrorProcessDataset" ErrorDeleteDataset = "ErrorDeleteDataset" ErrorValidateSpecFieldsReason = "ErrorValidateSpecFields" ErrorProcessRuntimeReason = "ErrorProcessRuntime" ErrorHelmInstall = "ErrorHelmInstall" RuntimeScaleInFailed = "RuntimeScaleInFailed" Succeed = "Succeed" FuseRecoverFailed = "FuseRecoverFailed" FuseRecoverSucceed = "FuseRecoverSucceed" FuseUmountDuplicate = "UnmountDuplicateMountpoint" RuntimeDeprecated = "RuntimeDeprecated" RuntimeWithSecretNotSupported = "RuntimeWithSecretNotSupported" )
Fluid events related to datasets/runtimes
const ( TargetDatasetNotFound = "TargetDatasetNotFound" TargetDatasetNotReady = "TargetDatasetNotReady" TargetDatasetNamespaceNotSame = "TargetDatasetNamespaceNotSame" DataOperationNotSupport = "DataOperationNotSupport" DataOperationExecutionFailed = "DataOperationExecutionFailed" DataOperationFailed = "DataOperationFailed" DataOperationSucceed = "DataOperationSucceed" DataOperationNotValid = "DataOperationNotValid" DataOperationCollision = "DataOperationCollision" TargetSSHSecretNameNotSet = "TargetSSHSecretNameNotSet" )
Events related to all type of Data Operations
const ( DataOperationNotFound = "DataOperationNotFound" DataOperationWaiting = "DataOperationWaiting" )
Events related to dataflow
const ( DataLoadCollision = "DataLoadCollision" RuntimeNotReady = "RuntimeNotReady" DataLoadJobStarted = "DataLoadJobStarted" DataLoadJobFailed = "DataLoadJobFailed" DataLoadJobComplete = "DataLoadJobComplete" )
Events related to DataLoad
const ( DataMigrateCollision = "DataMigrateCollision" DataMigrateJobStarted = "DataMigrateJobStarted" DataMigrateJobFailed = "DataMigrateJobFailed" DataMigrateJobComplete = "DataMigrateJobComplete" )
Events related to DataMigrate
const ( DataProcessProcessorNotSpecified = "ProcessorNotSpecified" DataProcessMultipleProcessorSpecified = "MultipleProcessorSpecified" DataProcessConflictMountPath = "ConflictMountPath" )
Events related to DataProcess
const ( EnvFuseDeviceResourceName string = "VFUSE_RESOURCE_NAME" DefaultFuseDeviceResourceName string = "fluid.io/fuse" )
const ( DefaultImagePullPolicy = "IfNotPresent" MyPodNamespace = "MY_POD_NAMESPACE" True = "true" False = "false" App = "app" JobPolicy = "fluid.io/jobPolicy" CronPolicy = "cron" PodRoleType = "role" DataloadPod = "dataload-pod" NamespaceFluidSystem = "fluid-system" )
const ( InjectServerless = "serverless" + inject // serverless.fluid.io/inject InjectUnprivilegedFuseSidecar = "unprivileged" + injectSidecar // unprivileged.sidecar.fluid.io/inject InjectCacheDir = "cachedir" + injectSidecar // cachedir.sidecar.fluid.io/inject InjectWorkerSidecar = "worker" + injectSidecar // worker.sidecar.fluid.io/inject InjectSidecarDone = "done" + injectSidecar // done.sidecar.fluid.io/inject InjectAppPostStart = "app.poststart" + inject // app.poststart.fluid.io/inject InjectSidecarPostStart = "fuse.sidecar.poststart" + inject // fuse.sidecar.poststart.fluid.io/inject InjectServerfulFuse = "fuse" + injectServerful InjectFuseSidecar = "fuse" + injectSidecar // [Deprecated] fuse.sidecar.fluid.io/inject )
const ( EnvServerlessPlatformKey = "KEY_SERVERLESS_PLATFORM" EnvServerlessPlatformVal = "VALUE_SERVERLESS_PLATFORM" EnvDisableApplicationController = "KEY_DISABLE_APP_CONTROLLER" EnvImagePullSecretsKey = "IMAGE_PULL_SECRETS" )
const ( K8sNodeNameLabelKey = "kubernetes.io/hostname" K8sZoneLabelKey = "topology.kubernetes.io/zone" K8sRegionLabelKey = "topology.kubernetes.io/region" )
const ( EFCRuntime = "efc" EFCChart = EFCRuntime EFCMountType = "alifuse.aliyun-alinas-efc" EFCRuntimeResourceFinalizerName = "efc-runtime-controller-finalizer" EFCRuntimeControllerName = "EFCRuntimeController" EFCEngineImpl = EFCRuntime )
Runtime for EFC
const ( EFCMasterImageEnv = "EFC_MASTER_IMAGE_ENV" EFCFuseImageEnv = "EFC_FUSE_IMAGE_ENV" EFCWorkerImageEnv = "EFC_WORKER_IMAGE_ENV" EFCInitFuseImageEnv = "EFC_INIT_FUSE_IMAGE_ENV" DefaultEFCMasterImage = "registry.cn-zhangjiakou.aliyuncs.com/nascache/efc-master:latest" DefaultEFCFuseImage = "registry.cn-zhangjiakou.aliyuncs.com/nascache/efc-fuse:latest" DefaultEFCWorkerImage = "registry.cn-zhangjiakou.aliyuncs.com/nascache/efc-worker:latest" DefaultEFCInitFuseImage = "registry.cn-zhangjiakou.aliyuncs.com/nascache/init-alifuse:latest" )
Constants for EFC Images
const ( SessMgrNamespace = "efc-system" SessMgrDaemonSetName = "efc-sessmgr" SessMgrNodeSelectorKey = "fluid.io/efc-sessmgr" EFCSessMgrImageEnv = "EFC_SESSMGR_IMAGE_ENV" EFCSessMgrUpdateStrategyEnv = "EFC_SESSMGR_UPDATE_STRATEGY_ENV" DefaultEFCSessMgrImage = "registry.cn-zhangjiakou.aliyuncs.com/nascache/efc-fuse:latest" SessMgrSockFile = "sessmgrd.sock" VolumeAttrEFCSessMgrWorkDir = "efc_sessmgr_workdir" )
Constants for EFC SessMgr
const ( EnvTimeTrack = "TIME_TRACK" EnvTimeTrackDebug = "TIME_TRACK_DEBUG" EnvDisableInjection = "DISABLE_INJECTION" EnvRuntimeInfoCacheSize = "RUNTIMEINFO_CACHE_SIZE" EnvEnableRuntimeInfoCache = "ENABLE_RUNTIMEINFO_CACHE" EnvRuntimeInfoCacheTTL = "RUNTIMEINFO_CACHE_TTL" )
const ( GooseFSRuntime = "goosefs" GooseFSMountType = "fuse.goosefs-fuse" GooseFSNamespace = "goosefs-system" GooseFSChart = GooseFSRuntime GooseFSEngineImpl = GooseFSRuntime )
Runtime for GooseFS
const ( GooseFSRuntimeImageEnv = "GOOSEFS_RUNTIME_IMAGE_ENV" GooseFSFuseImageEnv = "GOOSEFS_FUSE_IMAGE_ENV" DefaultGooseFSRuntimeImage = "ccr.ccs.tencentyun.com/qcloud/goosefs:v1.2.0" DefaultGooseFSFuseImage = "ccr.ccs.tencentyun.com/qcloud/goosefs-fuse:v1.2.0" )
Constants for GooseFS images
const ( JindoRuntime = "jindo" JindoChartName = "jindofs" JindoMountType = "fuse.jindofs-fuse" JindoDnsServer = "JINDO_DNS_SERVER_ENV" JindoFuseMountVolumeName = "jindofs-fuse-mount" JindoFSEngineImpl = "jindo" JindoFSxEngineImpl = "jindofsx" JindoCacheEngineImpl = "jindocache" )
Runtime for Jindo
const ( JindoSmartDataImageEnv = "JINDO_SMARTDATA_IMAGE_ENV" JindoFuseImageEnv = "JINDO_FUSE_IMAGE_ENV" )
Constants for Jindo Images
const ( JuiceFSRuntime = "juicefs" JuiceFSMountType = "JuiceFS" JuiceFSNamespace = "juicefs-system" JuiceFSChart = JuiceFSRuntime JuiceFSFuseContainer = "juicefs-fuse" JuiceFSWorkerContainer = "juicefs-worker" JuiceFSEngineImpl = JuiceFSRuntime )
Runtime for Juice
const ( JuiceFSCEImageEnv = "JUICEFS_CE_IMAGE_ENV" JuiceFSEEImageEnv = "JUICEFS_EE_IMAGE_ENV" DefaultCEImage = "juicedata/juicefs-fuse:ce-v1.1.0-beta2" DefaultEEImage = "juicedata/juicefs-fuse:ee-4.9.14" NightlyTag = "nightly" )
Constants for JuiceFS images
const ( JuiceFSCeMountPath = "/bin/mount.juicefs" JuiceFSMountPath = "/sbin/mount.juicefs" JuiceCeCliPath = "/usr/local/bin/juicefs" JuiceCliPath = "/usr/bin/juicefs" JuiceFSDefaultCacheDir = "/var/jfsCache" )
Constants for JuiceFS path conventions
const ( // LabelAnnotationPrefix is the prefix of every label and annotations added by the controller. LabelAnnotationPrefix = "fluid.io/" // LabelAnnotationStorageCapacityPrefix is the prefix for the storage annotaion. // i.e. fluid.io/s-{runtime_type}-{data_set_name}, in which s means storage LabelAnnotationStorageCapacityPrefix = LabelAnnotationPrefix + "s-" // LabelAnnotationFusePrefix is the prefix for the fuse annotation. The annotation follows // i.e. fluid.io/f-{runtime type}-{dataset name}, in which f means fuse LabelAnnotationFusePrefix = LabelAnnotationPrefix + "f-" // The dataset annotation // i.e. fluid.io/dataset LabelAnnotationDataset = LabelAnnotationPrefix + "dataset" // LabelAnnotationDatasetNum indicates the number of the dataset in specific node // i.e. fluid.io/dataset-num LabelAnnotationDatasetNum = LabelAnnotationPrefix + "dataset-num" // LabelAnnotationManagedByDeprecated is a deprecated label key for LabelAnnotationManagedBy // i.e. fluid.io/wrapped-by LabelAnnotationManagedByDeprecated = LabelAnnotationPrefix + "wrapped-by" // LabelAnnotationManagedBy indicates a resource(like pvc) that is managed by Fluid // i.e. fluid.io/managed-by LabelAnnotationManagedBy = LabelAnnotationPrefix + "managed-by" // fluid adminssion webhook inject flag // i.e. fluid.io/enable-injection EnableFluidInjectionFlag = LabelAnnotationPrefix + "enable-injection" // use two lables for name and namespace // i.e. fluid.io/dataset.referring-name LabelAnnotationDatasetReferringName = LabelAnnotationDataset + ".referring-name" // i.e. fluid.io/dataset.referring-namespace LabelAnnotationDatasetReferringNameSpace = LabelAnnotationDataset + ".referring-namespace" // LabelNodePublishMethod is a pv label that indicates the method nodePuhlishVolume use // i.e. fluid.io/node-publish-method LabelNodePublishMethod = LabelAnnotationPrefix + "node-publish-method" // AnnotationSkipCheckMountReadyTarget is a runtime annotation that indicates if the fuse mount related with this runtime is ready should be checked in nodePuhlishVolume // i.e. key: fluid.io/skip-check-mount-ready-target // value: // "": Skip none, // "All": Skill all mount mode to check mount ready, // "MountPod": for only mountPod to skip check mount ready, // "Sidecar": for only sidecar to skip check mount ready, AnnotationSkipCheckMountReadyTarget = LabelAnnotationPrefix + "skip-check-mount-ready-target" // LabelAnnotationMountingDatasets is a label/annotation key indicating which datasets are currently being used by a pod. // i.e. fluid.io/datasets-in-use LabelAnnotationDatasetsInUse = LabelAnnotationPrefix + "datasets-in-use" )
const ( // i.e. controller.runtime.fluid.io/replicas RuntimeControllerReplicas = "controller.runtime." + LabelAnnotationPrefix + "replicas" // i.e. prometheus.fuse.fluid.io/scrape AnnotationPrometheusFuseMetricsScrapeKey = "prometheus.fuse." + LabelAnnotationPrefix + "scrape" // i.e. container-dataset-mapping.sidecar.fluid.io/ LabelContainerDatasetMappingKeyPrefix = "container-dataset-mapping.sidecar." + LabelAnnotationPrefix // AnnotationDataFlowAffinityScopePrefix is an annotation prefix representing dataflow affinity related functions. // i.e. affinity.dataflow.fluid.io/ AnnotationDataFlowAffinityScopePrefix = "affinity.dataflow." + LabelAnnotationPrefix // AnnotationDataFlowAffinityInject is an annotation representing enabled the dataflow affinity injection, for internal use. // i.e. affinity.dataflow.fluid.io/inject AnnotationDataFlowAffinityInject = AnnotationDataFlowAffinityScopePrefix + "inject" // AnnotationDataFlowAffinityLabelsName is an annotation key name for exposed affinity labels for an operation in a dataflow. // i.e. affinity.dataflow.fluid.io/labels AnnotationDataFlowAffinityLabelsName = AnnotationDataFlowAffinityScopePrefix + "labels" // AnnotationDataFlowCustomizedAffinityPrefix is a prefix used to // i.e. affinity.dataflow.fluid.io. AnnotationDataFlowCustomizedAffinityPrefix = "affinity.dataflow.fluid.io." )
const ( ThinRuntime = "thin" ThinChart = ThinRuntime ThinFuseContainer = "thin-fuse" ThinWorkerContainer = "thin-worker" ThinFuseOptionEnvKey = "MOUNT_OPTIONS" ThinFusePointEnvKey = "MOUNT_POINT" ThinMountType = "thin-fuse-mount" ThinEngineImpl = ThinRuntime )
const ( FluidFuseBalloonKey = "fluid_fuse_balloon" FluidBalloonValue = "true" )
const ( // alluxio ufs root path RootDirPath = "/" UFSMountPathFormat = RootDirPath + "%s" // same for Alluxio, GooseFS and JindoFS LocalStorageRootPath = "/underFSStorage" LocalStoragePathFormat = LocalStorageRootPath + "/%s" )
const ( VineyardRuntime = "vineyard" VineyardMountType = "vineyard-fuse" VineyardChart = VineyardRuntime VineyardMasterImageEnv = "VINEYARD_MASTER_IMAGE_ENV" VineyardWorkerImageEnv = "VINEYARD_WORKER_IMAGE_ENV" VineyardFuseImageEnv = "VINEYARD_FUSE_IMAGE_ENV" VineyardFuseIsGlobal = true DefaultVineyardMasterImage = "registry.aliyuncs.com/vineyard/vineyardd:v0.22.2" DefaultVineyardWorkerImage = "registry.aliyuncs.com/vineyard/vineyardd:v0.22.2" DefultVineyardFuseImage = "registry.aliyuncs.com/vineyard/vineyard-fluid-fuse:v0.22.2" VineyardEngineImpl = VineyardRuntime )
Runtime for Vineyard
const ( VolumeAttrFluidPath = "fluid_path" VolumeAttrFluidSubPath = "fluid_sub_path" VolumeAttrMountType = "mount_type" VolumeAttrNamespace = "runtime_namespace" VolumeAttrName = "runtime_name" CSIDriver = "fuse.csi.fluid.io" Fluid = "fluid" NodePublishMethod = "node_publish_method" NodePublishMethodSymlink = "symlink" )
const ( WebhookName = "fluid-pod-admission-webhook" WebhookServiceName = "fluid-pod-admission-webhook" WebhookSchedulePodPath = "mutate-fluid-io-v1alpha1-schedulepod" CertSecretName = "fluid-webhook-certs" WebhookPluginFilePath = "/etc/fluid/plugins.profile" )
const (
DefaultInitImage = "registry.cn-hangzhou.aliyuncs.com/fluid/init-users:v0.3.0-1467caa"
)
const FileUtilsExecTimeout = 1500 * time.Second // 25min
const (
FluidExclusiveKey string = "fluid_exclusive"
)
const RecommendedKubeConfigPathEnv = "KUBECONFIG"
const (
RuntimeFuseHostPIDKey = "runtime.fluid.io/fuse.hostpid"
)
Variables ¶
var ( // goosefs ufs root path GooseFSMountPathFormat = RootDirPath + "%s" GooseFSLocalStorageRootPath = "/underFSStorage" GooseFSLocalStoragePathFormat = GooseFSLocalStorageRootPath + "/%s" )
var ( FluidStorageClass = Fluid FuseContainerName = "fluid-fuse" InitFuseContainerName = "init-fluid-fuse" FuseMountEnv = "FLUID_FUSE_MOUNTPOINT" )
var (
ExpectedFluidAnnotations = map[string]string{
"CreatedBy": "fluid",
}
)
var ( // LabelAnnotationPodSchedRegex is the fluid cache label for scheduling pod, format: 'fluid.io/dataset.{dataset name}.sched]' // use string literal to meet security check. LabelAnnotationPodSchedRegex = regexp.MustCompile(`^fluid\.io/dataset\.([A-Za-z0-9.-]*)\.sched$`) )
var (
VineyardFuseNodeSelector = map[string]string{}
)
Functions ¶
func CheckExpectValue ¶ added in v0.6.0
Check if the key has the expected value
func CriticalFusePodEnabled ¶ added in v0.7.0
func CriticalFusePodEnabled() bool
func GetDatasetNumLabelName ¶ added in v0.6.0
func GetDatasetNumLabelName() string
func GetDefaultTieredStoreOrder ¶
func GetDefaultTieredStoreOrder(MediumType MediumType) (order int)
GetDefaultTieredStoreOrder get the TieredStoreOrder from the default Map because the crd has validated the value, It's not possible to meet unknown MediumType
func GetManagerDatasetFromLabels ¶ added in v0.9.0
func HostPIDEnabled ¶ added in v1.0.0
HostPIDEnabled check if HostPID is true for runtime fuse pod.
func IsFluidNativeScheme ¶ added in v0.6.0
func IsFluidRefSchema ¶ added in v0.9.0
func IsFluidWebScheme ¶ added in v0.6.0
func PortCheckEnabled ¶ added in v0.7.0
func PortCheckEnabled() bool
Types ¶
type AdmissionHandler ¶ added in v0.6.0
type AdmissionHandler interface { admission.Handler Setup(client client.Client, decoder *admission.Decoder) }
AdmissionHandler wrappers admission.Handler, but adding client-go capablities
type CacheStateList ¶
type CacheStateList map[CacheStateName]string
ResourceList is a set of (resource name, quantity) pairs.
type CacheStateName ¶
type CacheStateName string
CacheStateName is the name identifying various cacheStateName in a CacheStateNameList.
const ( // Cached in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024) Cached CacheStateName = "cached" // Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024) // Cacheable CacheStateName = "cacheable" LowWaterMark CacheStateName = "lowWaterMark" // Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024) HighWaterMark CacheStateName = "highWaterMark" // NonCacheable size, in bytes (e,g. 5Gi = 5GiB = 5 * 1024 * 1024 * 1024) NonCacheable CacheStateName = "nonCacheable" // Percentage represents the cache percentage over the total data in the underlayer filesystem. // 1.5 = 1500m CachedPercentage CacheStateName = "cachedPercentage" CacheCapacity CacheStateName = "cacheCapacity" // CacheHitRatio defines total cache hit ratio(both local hit and remote hit), it is a metric to learn // how much profit a distributed cache brings. CacheHitRatio CacheStateName = "cacheHitRatio" // LocalHitRatio defines local hit ratio. It represents how many data is requested from local cache worker LocalHitRatio CacheStateName = "localHitRatio" // RemoteHitRatio defines remote hit ratio. It represents how many data is requested from remote cache worker(s). RemoteHitRatio CacheStateName = "remoteHitRatio" // CacheThroughputRatio defines total cache hit throughput ratio, both local hit and remote hit are included. CacheThroughputRatio CacheStateName = "cacheThroughputRatio" // LocalThroughputRatio defines local cache hit throughput ratio. LocalThroughputRatio CacheStateName = "localThroughputRatio" // RemoteThroughputRatio defines remote cache hit throughput ratio. RemoteThroughputRatio CacheStateName = "remoteThroughputRatio" )
CacheStateName names must be not more than 63 characters, consisting of upper- or lower-case alphanumeric characters, with the -, _, and . characters allowed anywhere, except the first or last character. The default convention, matching that for annotations, is to use lower-case names, with dashes, rather than camel case, separating compound words. Fully-qualified resource typenames are constructed from a DNS-style subdomain, followed by a slash `/` and a name.
type CacheStoreType ¶
type CacheStoreType string
const ( DiskCacheStore CacheStoreType = "Disk" MemoryCacheStore CacheStoreType = "Memory" )
type ConditionType ¶ added in v0.6.0
type ConditionType string
ConditionType is a valid value for Condition.Type
const ( // Complete means the task has completed its execution. Complete ConditionType = "Complete" // Failed means the task has failed its execution. Failed ConditionType = "Failed" )
These are valid conditions of a Task
type FluidApplication ¶ added in v0.7.0
type FluidApplication interface { GetPodSpecs() (specs []FluidObject, err error) SetPodSpecs(specs []FluidObject) (err error) // GetObject gets K8s object which can be consumed by K8s API GetObject() runtime.Object }
The Application which is using Fluid, and it has serveral PodSpecs.
type FluidObject ¶ added in v0.7.0
type FluidObject interface { GetRoot() runtime.Object GetVolumes() (volumes []corev1.Volume, err error) SetVolumes(volumes []corev1.Volume) (err error) GetInitContainers() (containers []corev1.Container, err error) GetContainers() (containers []corev1.Container, err error) SetContainers(containers []corev1.Container) (err error) SetInitContainers(containers []corev1.Container) (err error) GetVolumeMounts() (volumeMounts []corev1.VolumeMount, err error) SetMetaObject(metaObject metav1.ObjectMeta) (err error) GetMetaObject() (metaObject metav1.ObjectMeta, err error) }
FluidObject simulates the V1 Pod Spec, it has v1.volumes, v1.containers inside
type FluidUFSScheme ¶ added in v0.6.0
type FluidUFSScheme string
const ( // native PathScheme FluidUFSScheme = "local://" VolumeScheme FluidUFSScheme = "pvc://" // web HttpScheme FluidUFSScheme = "http://" HttpsScheme FluidUFSScheme = "https://" // ref RefSchema FluidUFSScheme = "dataset://" )
func (FluidUFSScheme) String ¶ added in v0.6.0
func (fns FluidUFSScheme) String() string
type FuseInjectionTemplate ¶ added in v0.7.0
type FuseInjectionTemplate struct { PVCName string SubPath string FuseContainer corev1.Container VolumeMountsToUpdate []corev1.VolumeMount VolumeMountsToAdd []corev1.VolumeMount VolumesToUpdate []corev1.Volume VolumesToAdd []corev1.Volume FuseMountInfo FuseMountInfo }
FuseInjectionTemplate for injecting fuse container into the pod
type FuseMountInfo ¶ added in v1.0.0
type FuseSidecarInjectOption ¶ added in v0.8.0
type FuseSidecarInjectOption struct { EnableCacheDir bool EnableUnprivilegedSidecar bool SkipSidecarPostStartInject bool }
FuseSidecarInjectOption are options for webhook to inject fuse sidecar containers
func (FuseSidecarInjectOption) String ¶ added in v0.8.0
func (f FuseSidecarInjectOption) String() string
type ImageInfo ¶ added in v0.6.0
type ImageInfo struct { // Image of a Container Image string `json:"image" yaml:"image"` // ImageTag of a Container ImageTag string `json:"imageTag" yaml:"imageTag"` // ImagePullPolicy is one of the three policies: `Always`, `IfNotPresent`, `Never` ImagePullPolicy string `json:"imagePullPolicy" yaml:"imagePullPolicy"` // ImagePullSecrets ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets" yaml:"imagePullSecrets"` }
ImageInfo to run a Container
type InitPortCheck ¶ added in v0.7.0
type InitPortCheck struct { ImageInfo `yaml:",inline"` Enabled bool `yaml:"enabled,omitempty"` PortsToCheck string `yaml:"portsToCheck,omitempty"` }
InitPortCheck defines a init container reports port status usage
type InitUsers ¶ added in v0.6.0
type InitUsers struct { ImageInfo `yaml:",inline"` EnvUsers string `yaml:"envUsers"` Dir string `yaml:"dir"` Enabled bool `yaml:"enabled,omitempty"` EnvTieredPaths string `yaml:"envTieredPaths"` }
The InitContainer to init the users for other Containers
type LabelToModify ¶ added in v0.6.0
type LabelToModify struct {
// contains filtered or unexported fields
}
LabelToModify modifies the labelKey in operationType.
func (*LabelToModify) GetLabelKey ¶ added in v0.6.0
func (labelToModify *LabelToModify) GetLabelKey() string
func (*LabelToModify) GetLabelValue ¶ added in v0.6.0
func (labelToModify *LabelToModify) GetLabelValue() string
func (*LabelToModify) GetOperationType ¶ added in v0.6.0
func (labelToModify *LabelToModify) GetOperationType() OperationType
type LabelsToModify ¶ added in v0.6.0
type LabelsToModify struct {
// contains filtered or unexported fields
}
func (*LabelsToModify) Add ¶ added in v0.6.0
func (labels *LabelsToModify) Add(labelKey string, labelValue string)
func (*LabelsToModify) Delete ¶ added in v0.6.0
func (labels *LabelsToModify) Delete(labelKey string)
func (*LabelsToModify) GetLabels ¶ added in v0.6.0
func (labels *LabelsToModify) GetLabels() []LabelToModify
func (*LabelsToModify) Update ¶ added in v0.6.0
func (labels *LabelsToModify) Update(labelKey string, labelValue string)
type MediumType ¶
type MediumType string
const ( Memory MediumType = "MEM" SSD MediumType = "SSD" HDD MediumType = "HDD" )
type OperationType ¶ added in v0.6.0
type OperationType string
const ( // AddLabel means adding a new label on the specific node. AddLabel OperationType = "Add" // DeleteLabel means deleting the label of the specific node. DeleteLabel OperationType = "Delete" // UpdateLabel means updating the label value of the specific node. UpdateLabel OperationType = "UpdateValue" )
type OwnerReference ¶ added in v0.7.0
type OwnerReference struct { Enabled bool `json:"enabled" yaml:"enabled"` // API version of the referent. APIVersion string `json:"apiVersion" yaml:"apiVersion"` // Kind of the referent. Kind string `json:"kind" yaml:"kind"` // Name of the referent. Name string `json:"name" yaml:"name"` // UID of the referent. UID string `json:"uid" yaml:"uid"` // If true, this reference points to the managing controller. // +optional Controller bool `json:"controller" yaml:"controller"` // If true, AND if the owner has the "foregroundDeletion" finalizer, then // +optional BlockOwnerDeletion bool `json:"blockOwnerDeletion" yaml:"blockOwnerDeletion"` }
type ResourceList ¶
type ResourceList map[corev1.ResourceName]string
type Resources ¶
type Resources struct { Requests ResourceList `json:"requests,omitempty" yaml:"requests,omitempty"` Limits ResourceList `json:"limits,omitempty" yaml:"limits,omitempty"` }
type RuntimeIdentity ¶ added in v0.8.0
type RuntimeRole ¶
type RuntimeRole string
type StorageType ¶ added in v0.5.0
type StorageType string
const ( MemoryStorageType StorageType = "m-" DiskStorageType StorageType = "d-" TotalStorageType StorageType = "t-" )
type UserInfo ¶ added in v0.6.0
type UserInfo struct { User int `json:"user" yaml:"user"` Group int `json:"group" yaml:"group"` FSGroup int `json:"fsGroup" yaml:"fsGroup"` }
UserInfo to run a Container
type VolumeType ¶ added in v0.8.0
type VolumeType string
const ( VolumeTypeDefault VolumeType = "" VolumeTypeHostPath VolumeType = "hostPath" VolumeTypeEmptyDir VolumeType = "emptyDir" VolumeTypeVolumeTemplate VolumeType = "volumeTemplate" )