From ea64b6e8b6548fd6cb9db10d3b9f1a37da450f5e Mon Sep 17 00:00:00 2001 From: nizifan Date: Fri, 25 Mar 2022 02:01:56 +0800 Subject: [PATCH 1/4] fix issue 1551, change mounttime to *v1.Time Signed-off-by: nizifan --- api/v1alpha1/status.go | 4 ++-- pkg/ddc/alluxio/ufs_test.go | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/api/v1alpha1/status.go b/api/v1alpha1/status.go index 08421e61d32..1e66106c1a5 100644 --- a/api/v1alpha1/status.go +++ b/api/v1alpha1/status.go @@ -122,8 +122,8 @@ type RuntimeStatus struct { APIGatewayStatus *APIGatewayStatus `json:"apiGateway,omitempty"` // MountTime represents time last mount happened - // if Mounttime is early than master starting time, remount will be required - MountTime metav1.Time `json:"mountTime,omitempty"` + // if Mounttime is earlier than master starting time, remount will be required + MountTime *metav1.Time `json:"mountTime,omitempty"` } type RuntimePhase string diff --git a/pkg/ddc/alluxio/ufs_test.go b/pkg/ddc/alluxio/ufs_test.go index e06fa711c51..4318f1c55d5 100644 --- a/pkg/ddc/alluxio/ufs_test.go +++ b/pkg/ddc/alluxio/ufs_test.go @@ -431,7 +431,7 @@ func TestUpdateMountTime(t *testing.T) { Namespace: "default", }, Status: datav1alpha1.RuntimeStatus{ - MountTime: v1.Time{ + MountTime: &v1.Time{ Time: yesterday, }, }, @@ -482,7 +482,7 @@ func TestCheckIfRemountRequired(t *testing.T) { Namespace: "default", }, Status: datav1alpha1.RuntimeStatus{ - MountTime: v1.Time{ + MountTime: &v1.Time{ Time: yesterday, }, }, @@ -518,7 +518,7 @@ func TestCheckIfRemountRequired(t *testing.T) { Namespace: "default", }, Status: datav1alpha1.RuntimeStatus{ - MountTime: v1.Time{ + MountTime: &v1.Time{ Time: yesterday, }, }, From fb079992424fa47f514f6894255590b0b435b91e Mon Sep 17 00:00:00 2001 From: nizifan Date: Wed, 30 Mar 2022 12:07:28 +0800 Subject: [PATCH 2/4] Address comments && update crd Signed-off-by: nizifan --- .../bases/data.fluid.io_alluxioruntimes.yaml | 1544 ++++++------- .../crd/bases/data.fluid.io_databackups.yaml | 252 +-- config/crd/bases/data.fluid.io_dataloads.yaml | 234 +- config/crd/bases/data.fluid.io_datasets.yaml | 814 ++++--- .../bases/data.fluid.io_goosefsruntimes.yaml | 1580 ++++++------- .../bases/data.fluid.io_jindoruntimes.yaml | 1216 +++++----- .../bases/data.fluid.io_juicefsruntimes.yaml | 1954 ++++++++--------- pkg/ddc/alluxio/ufs_internal.go | 3 +- 8 files changed, 3413 insertions(+), 4184 deletions(-) diff --git a/config/crd/bases/data.fluid.io_alluxioruntimes.yaml b/config/crd/bases/data.fluid.io_alluxioruntimes.yaml index dbb5999605b..7e6c5c42e61 100644 --- a/config/crd/bases/data.fluid.io_alluxioruntimes.yaml +++ b/config/crd/bases/data.fluid.io_alluxioruntimes.yaml @@ -1,13 +1,54 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: alluxioruntimes.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - JSONPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - JSONPath: .status.masterPhase + name: Master Phase + type: string + - JSONPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - JSONPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - JSONPath: .status.workerPhase + name: Worker Phase + type: string + - JSONPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - JSONPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - JSONPath: .status.fusePhase + name: Fuse Phase + type: string + - JSONPath: .status.apiGateway.endpoint + name: API Gateway + priority: 10 + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,883 +60,686 @@ spec: - alluxio singular: alluxioruntime scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - jsonPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - jsonPath: .status.masterPhase - name: Master Phase - type: string - - jsonPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - jsonPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - jsonPath: .status.workerPhase - name: Worker Phase - type: string - - jsonPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - jsonPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - jsonPath: .status.fusePhase - name: Fuse Phase - type: string - - jsonPath: .status.apiGateway.endpoint - name: API Gateway - priority: 10 - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: AlluxioRuntime is the Schema for the alluxioruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: AlluxioRuntimeSpec defines the desired state of AlluxioRuntime - properties: - alluxioVersion: - description: The version information that instructs fluid to orchestrate - a particular version of Alluxio. + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} + validation: + openAPIV3Schema: + description: AlluxioRuntime is the Schema for the alluxioruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: AlluxioRuntimeSpec defines the desired state of AlluxioRuntime + properties: + alluxioVersion: + description: The version information that instructs fluid to orchestrate a particular version of Alluxio. + properties: + image: + description: Image (e.g. alluxio/alluxio) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: string + type: object + apiGateway: + description: The component spec of Alluxio API Gateway + properties: + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - image: - description: Image (e.g. alluxio/alluxio) + additionalProperties: type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' + description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + data: + description: Management strategies for the dataset to which the runtime is bound + properties: + pin: + description: Pin the dataset or not. Refer to Alluxio User-CLI pin + type: boolean + replicas: + description: The copies of the dataset + format: int32 + type: integer + type: object + disablePrometheus: + description: Disable monitoring for Alluxio Runtime Prometheus is enabled by default + type: boolean + fuse: + description: The component spec of Alluxio Fuse + properties: + args: + description: Arguments that will be passed to Alluxio Fuse + items: type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean Alluxio Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' + type: string + env: + additionalProperties: type: string - type: object - apiGateway: - description: The component spec of Alluxio API Gateway + description: Environment variables that will be used by Alluxio Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered + type: boolean + image: + description: Image for Alluxio Fuse(e.g. alluxio/alluxio-fuse) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for Alluxio Fuse(e.g. 2.3.0-SNAPSHOT) + type: string + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + additionalProperties: + type: string + description: Configurable properties for Alluxio System.
Refer to Alluxio Configuration Properties for more info + type: object + resources: + description: Resources that will be requested by Alluxio Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component. -
Refer to Alluxio - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations when using HDFS as Alluxio's UFS. The configMap must be in the same namespace with the AlluxioRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. + type: string + initUsers: + description: The spec of init users + properties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by initialize the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobMaster: + description: The component spec of Alluxio job master + properties: + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - resources: - description: Resources that will be requested by the Alluxio component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - data: - description: Management strategies for the dataset to which the runtime - is bound + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - pin: - description: Pin the dataset or not. Refer to Alluxio - User-CLI pin - type: boolean - replicas: - description: The copies of the dataset - format: int32 + additionalProperties: + type: string + description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobWorker: + description: The component spec of Alluxio job Worker + properties: + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - type: object - disablePrometheus: - description: Disable monitoring for Alluxio Runtime Prometheus is - enabled by default - type: boolean - fuse: - description: The component spec of Alluxio Fuse + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - args: - description: Arguments that will be passed to Alluxio Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean Alluxio Fuse pods. - Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted - OnDemand cleans fuse pod once th fuse pod on some node is not - needed OnRuntimeDeleted cleans fuse pod only when the cache - runtime is deleted Defaults to OnRuntimeDeleted' - type: string - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, - otherwise the affinity should be considered - type: boolean - image: - description: Image for Alluxio Fuse(e.g. alluxio/alluxio-fuse) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image Tag for Alluxio Fuse(e.g. 2.3.0-SNAPSHOT) - type: string - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the fuse client to fit on a node, this option only effect when - global is enabled - type: object + additionalProperties: + type: string + description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for Alluxio System.
- Refer to Alluxio - Configuration Properties for more info - type: object - resources: - description: Resources that will be requested by Alluxio Fuse. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations - when using HDFS as Alluxio's UFS. The configMap must be in the same - namespace with the AlluxioRuntime. The configMap should contain - user-specific HDFS conf files in it. For now, only "hdfs-site.xml" - and "core-site.xml" are supported. It must take the filename of - the conf file as the key and content of the file as the value. + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jvmOptions: + description: Options for JVM + items: type: string - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by initialize - the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User - init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. - 2.3.0-SNAPSHOT) - type: string - resources: - description: Resources that will be requested by initialize the - users for runtime.

Resources are not allowed for ephemeral - containers. Ephemeral containers use spare resources already - allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobMaster: - description: The component spec of Alluxio job master - properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component. -
Refer to Alluxio - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 + type: array + master: + description: The component spec of Alluxio master + properties: + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - resources: - description: Resources that will be requested by the Alluxio component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of Alluxio job Worker + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + additionalProperties: + type: string + description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component. -
Refer to Alluxio - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jvmOptions: - description: Options for JVM - items: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for Alluxio system.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Alluxio Runtime + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - type: array - master: - description: The component spec of Alluxio master - properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component. -
Refer to Alluxio - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + tieredstore: + description: Tiered storage used by Alluxio + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype type: object - type: object + type: array + type: object + worker: + description: The component spec of Alluxio worker properties: - additionalProperties: - type: string - description: Configurable properties for Alluxio system.
Refer - to Alluxio - Configuration Properties for more info - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Alluxio Runtime - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime + description: Environment variables that will be used by Alluxio component.
+ type: object + jvmOptions: + description: Options for JVM + items: type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by Alluxio - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
- Refer to Configuring - Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three - types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple - paths are supported. Multiple paths should be separated - with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please - note that if there're multiple paths used for this tierstore, - the quota will be equally divided into these paths. If - you'd like to set quota for each, path, see QuotaList - for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple - paths. Quotas should be separated with comma. Quotas in - this list will be set to paths with the same order in - Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" - and QuotaList set to "100Gi, 50Gi", then we get 100GiB - cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". - Also note that num of quotas must be consistent with the - num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype - type: object - type: array - type: object - worker: - description: The component spec of Alluxio worker - properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component. -
Refer to Alluxio - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - resources: - description: Resources that will be requested by the Alluxio component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - endpoint: - description: Endpoint for accessing + additionalProperties: type: string - type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc - runtime's current state. - items: - description: Condition describes the state of the cache at a certain - point. + description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime - Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime - worker pod (including nodes correctly running the runtime worker - pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the - runtime Fuse pod (including nodes correctly running the runtime - Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the - runtime worker pod (including nodes correctly running the runtime - worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime - fuse pod and have none of the runtime fuse pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have zero or more of the runtime master pod running - and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the - runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime - worker pod and have none of the runtime worker pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing + type: string + type: object + cacheStates: + additionalProperties: type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc runtime's current state. + items: + description: Condition describes the state of the cache at a certain point. + properties: + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_databackups.yaml b/config/crd/bases/data.fluid.io_databackups.yaml index a6df249afbd..fd519c5e44d 100644 --- a/config/crd/bases/data.fluid.io_databackups.yaml +++ b/config/crd/bases/data.fluid.io_databackups.yaml @@ -1,13 +1,32 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: databackups.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .spec.dataset + name: Dataset + type: string + - JSONPath: .status.phase + name: Phase + type: string + - JSONPath: .status.backupLocation.path + name: Path + type: string + - JSONPath: .status.backupLocation.nodeName + name: NodeName + type: string + - JSONPath: .status.duration + name: Duration + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,144 +38,113 @@ spec: - backup singular: databackup scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.dataset - name: Dataset - type: string - - jsonPath: .status.phase - name: Phase - type: string - - jsonPath: .status.backupLocation.path - name: Path - type: string - - jsonPath: .status.backupLocation.nodeName - name: NodeName - type: string - - jsonPath: .status.duration - name: Duration - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: DataBackup is the Schema for the backup API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DataBackupSpec defines the desired state of DataBackup - properties: - backupPath: - description: BackupPath defines the target path to save data of the - DataBackup - type: string - dataset: - description: Dataset defines the target dataset of the DataBackup - type: string - runAs: - description: Manage the user to run Alluxio DataBackup + subresources: + status: {} + validation: + openAPIV3Schema: + description: DataBackup is the Schema for the backup API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DataBackupSpec defines the desired state of DataBackup + properties: + backupPath: + description: BackupPath defines the target path to save data of the DataBackup + type: string + dataset: + description: Dataset defines the target dataset of the DataBackup + type: string + runAs: + description: Manage the user to run Alluxio DataBackup + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime + type: string + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + type: object + status: + description: DataBackupStatus defines the observed state of DataBackup + properties: + backupLocation: + description: BackupLocation tell user the location to save data of the DataBackup + properties: + nodeName: + description: NodeName describes the nodeName of backup if Path is in the form of local://subpath + type: string + path: + description: Path describes the path of backup, in the form of local:///absolutePath or pvc:///subpath + type: string + type: object + conditions: + description: Conditions consists of transition information on DataBackup's Phase + items: + description: Condition explains the transitions on phase properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + lastProbeTime: + description: LastProbeTime describes last time this condition was updated. + format: date-time type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime + lastTransitionTime: + description: LastTransitionTime describes last time the condition transitioned from one status to another. + format: date-time type: string - required: - - gid - - group - - uid - - user - type: object - type: object - status: - description: DataBackupStatus defines the observed state of DataBackup - properties: - backupLocation: - description: BackupLocation tell user the location to save data of - the DataBackup - properties: - nodeName: - description: NodeName describes the nodeName of backup if Path - is in the form of local://subpath + message: + description: Message is a human-readable message indicating details about the transition type: string - path: - description: Path describes the path of backup, in the form of - local:///absolutePath or pvc:///subpath + reason: + description: Reason for the condition's last transition type: string + status: + description: Status of the condition, one of `True`, `False` or `Unknown` + type: string + type: + description: Type of condition, either `Complete` or `Failed` + type: string + required: + - status + - type type: object - conditions: - description: Conditions consists of transition information on DataBackup's - Phase - items: - description: Condition explains the transitions on phase - properties: - lastProbeTime: - description: LastProbeTime describes last time this condition - was updated. - format: date-time - type: string - lastTransitionTime: - description: LastTransitionTime describes last time the condition - transitioned from one status to another. - format: date-time - type: string - message: - description: Message is a human-readable message indicating - details about the transition - type: string - reason: - description: Reason for the condition's last transition - type: string - status: - description: Status of the condition, one of `True`, `False` - or `Unknown` - type: string - type: - description: Type of condition, either `Complete` or `Failed` - type: string - required: - - status - - type - type: object - type: array - duration: - description: Duration tell user how much time was spent to backup - type: string - phase: - description: Phase describes current phase of DataBackup - type: string - required: - - conditions - - duration - - phase - type: object - type: object + type: array + duration: + description: Duration tell user how much time was spent to backup + type: string + phase: + description: Phase describes current phase of DataBackup + type: string + required: + - conditions + - duration + - phase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_dataloads.yaml b/config/crd/bases/data.fluid.io_dataloads.yaml index 29e20e0e8df..524a9d48e58 100644 --- a/config/crd/bases/data.fluid.io_dataloads.yaml +++ b/config/crd/bases/data.fluid.io_dataloads.yaml @@ -1,13 +1,26 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: dataloads.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .spec.dataset.name + name: Dataset + type: string + - JSONPath: .status.phase + name: Phase + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date + - JSONPath: .status.duration + name: Duration + type: string group: data.fluid.io names: categories: @@ -19,133 +32,110 @@ spec: - load singular: dataload scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.dataset.name - name: Dataset - type: string - - jsonPath: .status.phase - name: Phase - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.duration - name: Duration - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: DataLoad is the Schema for the dataloads API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DataLoadSpec defines the desired state of DataLoad - properties: - dataset: - description: Dataset defines the target dataset of the DataLoad + subresources: + status: {} + validation: + openAPIV3Schema: + description: DataLoad is the Schema for the dataloads API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DataLoadSpec defines the desired state of DataLoad + properties: + dataset: + description: Dataset defines the target dataset of the DataLoad + properties: + name: + description: Name defines name of the target dataset + type: string + namespace: + description: Namespace defines namespace of the target dataset + type: string + required: + - name + type: object + loadMetadata: + description: LoadMetadata specifies if the dataload job should load metadata + type: boolean + options: + additionalProperties: + type: string + description: Options specifies the extra dataload properties for runtime + type: object + target: + description: Target defines target paths that needs to be loaded + items: + description: TargetPath defines the target path of the DataLoad properties: - name: - description: Name defines name of the target dataset - type: string - namespace: - description: Namespace defines namespace of the target dataset + path: + description: Path defines path to be load type: string + replicas: + description: Replicas defines how many replicas will be loaded + format: int32 + type: integer required: - - name + - path type: object - loadMetadata: - description: LoadMetadata specifies if the dataload job should load - metadata - type: boolean - options: - additionalProperties: - type: string - description: Options specifies the extra dataload properties for runtime + type: array + type: object + status: + description: DataLoadStatus defines the observed state of DataLoad + properties: + conditions: + description: Conditions consists of transition information on DataLoad's Phase + items: + description: Condition explains the transitions on phase + properties: + lastProbeTime: + description: LastProbeTime describes last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: LastTransitionTime describes last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: Message is a human-readable message indicating details about the transition + type: string + reason: + description: Reason for the condition's last transition + type: string + status: + description: Status of the condition, one of `True`, `False` or `Unknown` + type: string + type: + description: Type of condition, either `Complete` or `Failed` + type: string + required: + - status + - type type: object - target: - description: Target defines target paths that needs to be loaded - items: - description: TargetPath defines the target path of the DataLoad - properties: - path: - description: Path defines path to be load - type: string - replicas: - description: Replicas defines how many replicas will be loaded - format: int32 - type: integer - required: - - path - type: object - type: array - type: object - status: - description: DataLoadStatus defines the observed state of DataLoad - properties: - conditions: - description: Conditions consists of transition information on DataLoad's - Phase - items: - description: Condition explains the transitions on phase - properties: - lastProbeTime: - description: LastProbeTime describes last time this condition - was updated. - format: date-time - type: string - lastTransitionTime: - description: LastTransitionTime describes last time the condition - transitioned from one status to another. - format: date-time - type: string - message: - description: Message is a human-readable message indicating - details about the transition - type: string - reason: - description: Reason for the condition's last transition - type: string - status: - description: Status of the condition, one of `True`, `False` - or `Unknown` - type: string - type: - description: Type of condition, either `Complete` or `Failed` - type: string - required: - - status - - type - type: object - type: array - duration: - description: Duration tell user how much time was spent to load the - data - type: string - phase: - description: Phase describes current phase of DataLoad - type: string - required: - - conditions - - duration - - phase - type: object - type: object + type: array + duration: + description: Duration tell user how much time was spent to load the data + type: string + phase: + description: Phase describes current phase of DataLoad + type: string + required: + - conditions + - duration + - phase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_datasets.yaml b/config/crd/bases/data.fluid.io_datasets.yaml index e2d40e6fd40..cf26fb9fc53 100644 --- a/config/crd/bases/data.fluid.io_datasets.yaml +++ b/config/crd/bases/data.fluid.io_datasets.yaml @@ -1,13 +1,44 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: datasets.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .status.ufsTotal + name: Ufs Total Size + type: string + - JSONPath: .status.cacheStates.cached + name: Cached + type: string + - JSONPath: .status.cacheStates.cacheCapacity + name: Cache Capacity + type: string + - JSONPath: .status.cacheStates.cachedPercentage + name: Cached Percentage + type: string + - JSONPath: .status.phase + name: Phase + type: string + - JSONPath: .status.hcfs.endpoint + name: HCFS URL + priority: 10 + type: string + - JSONPath: .status.fileNum + name: TOTAL FILES + priority: 11 + type: string + - JSONPath: .status.cacheStates.cacheHitRatio + name: CACHE HIT RATIO + priority: 10 + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,479 +50,374 @@ spec: - dataset singular: dataset scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.ufsTotal - name: Ufs Total Size - type: string - - jsonPath: .status.cacheStates.cached - name: Cached - type: string - - jsonPath: .status.cacheStates.cacheCapacity - name: Cache Capacity - type: string - - jsonPath: .status.cacheStates.cachedPercentage - name: Cached Percentage - type: string - - jsonPath: .status.phase - name: Phase - type: string - - jsonPath: .status.hcfs.endpoint - name: HCFS URL - priority: 10 - type: string - - jsonPath: .status.fileNum - name: TOTAL FILES - priority: 11 - type: string - - jsonPath: .status.cacheStates.cacheHitRatio - name: CACHE HIT RATIO - priority: 10 - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: Dataset is the Schema for the datasets API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DatasetSpec defines the desired state of Dataset - properties: - accessModes: - description: AccessModes contains all ways the volume backing the - PVC can be mounted - items: + subresources: + status: {} + validation: + openAPIV3Schema: + description: Dataset is the Schema for the datasets API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DatasetSpec defines the desired state of Dataset + properties: + accessModes: + description: AccessModes contains all ways the volume backing the PVC can be mounted + items: + type: string + type: array + dataRestoreLocation: + description: DataRestoreLocation is the location to load data of dataset been backuped + properties: + nodeName: + description: NodeName describes the nodeName of restore if Path is in the form of local://subpath type: string - type: array - dataRestoreLocation: - description: DataRestoreLocation is the location to load data of dataset been - backuped + path: + description: Path describes the path of restore, in the form of local://subpath or pvc:///subpath + type: string + type: object + mounts: + description: Mount Points to be mounted on Alluxio. + items: + description: Mount describes a mounting.
Refer to Alluxio Storage Integrations for more info properties: - nodeName: - description: NodeName describes the nodeName of restore if Path - is in the form of local://subpath + encryptOptions: + description: The secret information + items: + properties: + name: + description: The name of encryptOption + type: string + valueFrom: + description: The valueFrom of encryptOption + properties: + secretKeyRef: + description: The encryptInfo obtained from secret + properties: + key: + description: The required key in the secret + type: string + name: + description: The name of required secret + type: string + type: object + type: object + type: object + type: array + mountPoint: + description: MountPoint is the mount point of source. + minLength: 10 + type: string + name: + description: The name of mount + minLength: 0 type: string + options: + additionalProperties: + type: string + description: The Mount Options.
Refer to Mount Options.
The option has Prefix 'fs.' And you can Learn more from The Storage Integrations + type: object path: - description: Path describes the path of restore, in the form of local://subpath - or pvc:///subpath + description: The path of mount, if not set will be /{Name} type: string + readOnly: + description: 'Optional: Defaults to false (read-write).' + type: boolean + shared: + description: 'Optional: Defaults to false (shared).' + type: boolean type: object - mounts: - description: Mount Points to be mounted on Alluxio. - items: - description: Mount describes a mounting.
Refer to Alluxio - Storage Integrations for more info + minItems: 1 + type: array + nodeAffinity: + description: NodeAffinity defines constraints that limit what nodes this dataset can be cached to. This field influences the scheduling of pods that use the cached dataset. + properties: + required: + description: Required specifies hard node constraints that must be met. properties: - encryptOptions: - description: The secret information + nodeSelectorTerms: + description: Required. A list of node selector terms. The terms are ORed. items: + description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: - name: - description: The name of encryptOption - type: string - valueFrom: - description: The valueFrom of encryptOption - properties: - secretKeyRef: - description: The encryptInfo obtained from secret - properties: - key: - description: The required key in the secret + matchExpressions: + description: A list of node selector requirements by node's labels. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: type: string - name: - description: The name of required secret + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by node's fields. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: type: string - type: object - type: object + type: array + required: + - key + - operator + type: object + type: array type: object type: array - mountPoint: - description: MountPoint is the mount point of source. - minLength: 10 - type: string - name: - description: The name of mount - minLength: 0 - type: string - options: - additionalProperties: - type: string - description: The Mount Options.
Refer to Mount - Options.
The option has Prefix 'fs.' And you can - Learn more from The - Storage Integrations - type: object - path: - description: The path of mount, if not set will be /{Name} - type: string - readOnly: - description: 'Optional: Defaults to false (read-write).' - type: boolean - shared: - description: 'Optional: Defaults to false (shared).' - type: boolean + required: + - nodeSelectorTerms type: object - minItems: 1 - type: array - nodeAffinity: - description: NodeAffinity defines constraints that limit what nodes - this dataset can be cached to. This field influences the scheduling - of pods that use the cached dataset. + type: object + owner: + description: The owner of the dataset + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime + type: string + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + placement: + description: Manage switch for opening Multiple datasets single node deployment or not TODO(xieydd) In future, evaluate node resources and runtime resources to decide whether to turn them on + enum: + - Exclusive + - "" + - Shared + type: string + runtimes: + description: Runtimes for supporting dataset (e.g. AlluxioRuntime) + items: + description: Runtime describes a runtime to be used to support dataset properties: - required: - description: Required specifies hard node constraints that must - be met. - properties: - nodeSelectorTerms: - description: Required. A list of node selector terms. The - terms are ORed. - items: - description: A null or empty node selector term matches - no objects. The requirements of them are ANDed. The TopologySelectorTerm - type implements a subset of the NodeSelectorTerm. - properties: - matchExpressions: - description: A list of node selector requirements by - node's labels. - items: - description: A node selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: The label key that the selector applies - to. - type: string - operator: - description: Represents a key's relationship to - a set of values. Valid operators are In, NotIn, - Exists, DoesNotExist. Gt, and Lt. - type: string - values: - description: An array of string values. If the - operator is In or NotIn, the values array must - be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. If the operator - is Gt or Lt, the values array must have a single - element, which will be interpreted as an integer. - This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - description: A list of node selector requirements by - node's fields. - items: - description: A node selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: The label key that the selector applies - to. - type: string - operator: - description: Represents a key's relationship to - a set of values. Valid operators are In, NotIn, - Exists, DoesNotExist. Gt, and Lt. - type: string - values: - description: An array of string values. If the - operator is In or NotIn, the values array must - be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. If the operator - is Gt or Lt, the values array must have a single - element, which will be interpreted as an integer. - This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - type: object - type: array - required: - - nodeSelectorTerms - type: object + category: + description: Category the runtime object belongs to (e.g. Accelerate) + type: string + masterReplicas: + description: Runtime master replicas + format: int32 + type: integer + name: + description: Name of the runtime object + type: string + namespace: + description: Namespace of the runtime object + type: string + type: + description: Runtime object's type (e.g. Alluxio) + type: string type: object - owner: - description: The owner of the dataset + type: array + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + effect: + description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. type: string - uid: - description: The uid to run the alluxio runtime + operator: + description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. format: int64 type: integer - user: - description: The user name to run the alluxio runtime + value: + description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. type: string - required: - - gid - - group - - uid - - user type: object - placement: - description: Manage switch for opening Multiple datasets single node - deployment or not TODO(xieydd) In future, evaluate node resources - and runtime resources to decide whether to turn them on - enum: - - Exclusive - - "" - - Shared + type: array + type: object + status: + description: DatasetStatus defines the observed state of Dataset + properties: + cacheStates: + additionalProperties: type: string - runtimes: - description: Runtimes for supporting dataset (e.g. AlluxioRuntime) - items: - description: Runtime describes a runtime to be used to support dataset - properties: - category: - description: Category the runtime object belongs to (e.g. Accelerate) - type: string - masterReplicas: - description: Runtime master replicas - format: int32 - type: integer - name: - description: Name of the runtime object - type: string - namespace: - description: Namespace of the runtime object - type: string - type: - description: Runtime object's type (e.g. Alluxio) - type: string - type: object - type: array - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates any - taint that matches the triple using the matching - operator . - properties: - effect: - description: Effect indicates the taint effect to match. Empty - means match all taint effects. When specified, allowed values - are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match all - values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the - value. Valid operators are Exists and Equal. Defaults to Equal. - Exists is equivalent to wildcard for value, so that a pod - can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time - the toleration (which must be of effect NoExecute, otherwise - this field is ignored) tolerates the taint. By default, it - is not set, which means tolerate the taint forever (do not - evict). Zero and negative values will be treated as 0 (evict - immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. - type: string - type: object - type: array - type: object - status: - description: DatasetStatus defines the observed state of Dataset - properties: - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Conditions is an array of current observed conditions. - items: - description: Condition describes the state of the cache at a certain - point. - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - lastUpdateTime: - description: The last time this condition was updated. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type - type: object - type: array - dataBackupRef: - description: DataBackupRef specifies the running Backup job that targets - this Dataset. This is mainly used as a lock to prevent concurrent - DataBackup jobs. - type: string - dataLoadRef: - description: DataLoadRef specifies the running DataLoad job that targets - this Dataset. This is mainly used as a lock to prevent concurrent - DataLoad jobs. - type: string - fileNum: - description: FileNum represents the file numbers of the dataset - type: string - hcfs: - description: HCFSStatus represents hcfs info + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Conditions is an array of current observed conditions. + items: + description: Condition describes the state of the cache at a certain point. properties: - endpoint: - description: Endpoint for accessing + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + lastUpdateTime: + description: The last time this condition was updated. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. type: string - underlayerFileSystemVersion: - description: Underlayer HCFS Compatible Version + type: + description: Type of cache condition. type: string + required: + - status + - type type: object - mounts: - description: the info of mount points have been mounted - items: - description: Mount describes a mounting.
Refer to Alluxio - Storage Integrations for more info - properties: - encryptOptions: - description: The secret information - items: - properties: - name: - description: The name of encryptOption - type: string - valueFrom: - description: The valueFrom of encryptOption - properties: - secretKeyRef: - description: The encryptInfo obtained from secret - properties: - key: - description: The required key in the secret - type: string - name: - description: The name of required secret - type: string - type: object - type: object - type: object - type: array - mountPoint: - description: MountPoint is the mount point of source. - minLength: 10 - type: string - name: - description: The name of mount - minLength: 0 - type: string - options: - additionalProperties: - type: string - description: The Mount Options.
Refer to Mount - Options.
The option has Prefix 'fs.' And you can - Learn more from The - Storage Integrations + type: array + dataBackupRef: + description: DataBackupRef specifies the running Backup job that targets this Dataset. This is mainly used as a lock to prevent concurrent DataBackup jobs. + type: string + dataLoadRef: + description: DataLoadRef specifies the running DataLoad job that targets this Dataset. This is mainly used as a lock to prevent concurrent DataLoad jobs. + type: string + fileNum: + description: FileNum represents the file numbers of the dataset + type: string + hcfs: + description: HCFSStatus represents hcfs info + properties: + endpoint: + description: Endpoint for accessing + type: string + underlayerFileSystemVersion: + description: Underlayer HCFS Compatible Version + type: string + type: object + mounts: + description: the info of mount points have been mounted + items: + description: Mount describes a mounting.
Refer to Alluxio Storage Integrations for more info + properties: + encryptOptions: + description: The secret information + items: + properties: + name: + description: The name of encryptOption + type: string + valueFrom: + description: The valueFrom of encryptOption + properties: + secretKeyRef: + description: The encryptInfo obtained from secret + properties: + key: + description: The required key in the secret + type: string + name: + description: The name of required secret + type: string + type: object + type: object type: object - path: - description: The path of mount, if not set will be /{Name} - type: string - readOnly: - description: 'Optional: Defaults to false (read-write).' - type: boolean - shared: - description: 'Optional: Defaults to false (shared).' - type: boolean - type: object - type: array - phase: - description: 'Dataset Phase. One of the four phases: `Pending`, `Bound`, - `NotBound` and `Failed`' - type: string - runtimes: - description: Runtimes for supporting dataset - items: - description: Runtime describes a runtime to be used to support dataset - properties: - category: - description: Category the runtime object belongs to (e.g. Accelerate) - type: string - masterReplicas: - description: Runtime master replicas - format: int32 - type: integer - name: - description: Name of the runtime object - type: string - namespace: - description: Namespace of the runtime object - type: string - type: - description: Runtime object's type (e.g. Alluxio) + type: array + mountPoint: + description: MountPoint is the mount point of source. + minLength: 10 + type: string + name: + description: The name of mount + minLength: 0 + type: string + options: + additionalProperties: type: string - type: object - type: array - ufsTotal: - description: Total in GB of dataset in the cluster - type: string - required: - - conditions - type: object - type: object + description: The Mount Options.
Refer to Mount Options.
The option has Prefix 'fs.' And you can Learn more from The Storage Integrations + type: object + path: + description: The path of mount, if not set will be /{Name} + type: string + readOnly: + description: 'Optional: Defaults to false (read-write).' + type: boolean + shared: + description: 'Optional: Defaults to false (shared).' + type: boolean + type: object + type: array + phase: + description: 'Dataset Phase. One of the four phases: `Pending`, `Bound`, `NotBound` and `Failed`' + type: string + runtimes: + description: Runtimes for supporting dataset + items: + description: Runtime describes a runtime to be used to support dataset + properties: + category: + description: Category the runtime object belongs to (e.g. Accelerate) + type: string + masterReplicas: + description: Runtime master replicas + format: int32 + type: integer + name: + description: Name of the runtime object + type: string + namespace: + description: Namespace of the runtime object + type: string + type: + description: Runtime object's type (e.g. Alluxio) + type: string + type: object + type: array + ufsTotal: + description: Total in GB of dataset in the cluster + type: string + required: + - conditions + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_goosefsruntimes.yaml b/config/crd/bases/data.fluid.io_goosefsruntimes.yaml index 54a430ff5c7..e21ef423020 100644 --- a/config/crd/bases/data.fluid.io_goosefsruntimes.yaml +++ b/config/crd/bases/data.fluid.io_goosefsruntimes.yaml @@ -1,13 +1,54 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: goosefsruntimes.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - JSONPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - JSONPath: .status.masterPhase + name: Master Phase + type: string + - JSONPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - JSONPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - JSONPath: .status.workerPhase + name: Worker Phase + type: string + - JSONPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - JSONPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - JSONPath: .status.fusePhase + name: Fuse Phase + type: string + - JSONPath: .status.apiGateway.endpoint + name: API Gateway + priority: 10 + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,885 +60,716 @@ spec: - goose singular: goosefsruntime scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - jsonPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - jsonPath: .status.masterPhase - name: Master Phase - type: string - - jsonPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - jsonPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - jsonPath: .status.workerPhase - name: Worker Phase - type: string - - jsonPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - jsonPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - jsonPath: .status.fusePhase - name: Fuse Phase - type: string - - jsonPath: .status.apiGateway.endpoint - name: API Gateway - priority: 10 - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: GooseFSRuntime is the Schema for the goosefsruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: GooseFSRuntimeSpec defines the desired state of GooseFSRuntime - properties: - apiGateway: - description: The component spec of GooseFS API Gateway - properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - data: - description: Management strategies for the dataset to which the runtime - is bound - properties: - pin: - description: Pin the dataset or not. Refer to Alluxio - User-CLI pin - type: boolean - replicas: - description: The copies of the dataset - format: int32 + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} + validation: + openAPIV3Schema: + description: GooseFSRuntime is the Schema for the goosefsruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: GooseFSRuntimeSpec defines the desired state of GooseFSRuntime + properties: + apiGateway: + description: The component spec of GooseFS API Gateway + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - type: object - disablePrometheus: - description: Disable monitoring for GooseFS Runtime Prometheus is - enabled by default - type: boolean - fuse: - description: The component spec of GooseFS Fuse + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - args: - description: Arguments that will be passed to GooseFS Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean GooseFS Fuse pods. - Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted - OnDemand cleans fuse pod once th fuse pod on some node is not - needed OnRuntimeDeleted cleans fuse pod only when the cache - runtime is deleted Defaults to OnRuntimeDeleted' - type: string - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, - otherwise the affinity should be considered - type: boolean - image: - description: Image for GooseFS Fuse(e.g. goosefs/goosefs-fuse) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image Tag for GooseFS Fuse(e.g. v1.0.1) - type: string - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the fuse client to fit on a node, this option only effect when - global is enabled - type: object + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - resources: - description: Resources that will be requested by GooseFS Fuse. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - goosefsVersion: - description: The version information that instructs fluid to orchestrate - a particular version of GooseFS. - properties: - image: - description: Image (e.g. alluxio/alluxio) + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + data: + description: Management strategies for the dataset to which the runtime is bound + properties: + pin: + description: Pin the dataset or not. Refer to Alluxio User-CLI pin + type: boolean + replicas: + description: The copies of the dataset + format: int32 + type: integer + type: object + disablePrometheus: + description: Disable monitoring for GooseFS Runtime Prometheus is enabled by default + type: boolean + fuse: + description: The component spec of GooseFS Fuse + properties: + annotations: + additionalProperties: type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + args: + description: Arguments that will be passed to GooseFS Fuse + items: type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean GooseFS Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' + type: string + env: + additionalProperties: type: string - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations - when using HDFS as GooseFS's UFS. The configMap must be in the same - namespace with the GooseFSRuntime. The configMap should contain - user-specific HDFS conf files in it. For now, only "hdfs-site.xml" - and "core-site.xml" are supported. It must take the filename of - the conf file as the key and content of the file as the value. - type: string - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by initialize - the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User - init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. - 2.3.0-SNAPSHOT) - type: string - resources: - description: Resources that will be requested by initialize the - users for runtime.

Resources are not allowed for ephemeral - containers. Ephemeral containers use spare resources already - allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobMaster: - description: The component spec of GooseFS job master + description: Environment variables that will be used by GooseFS Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered + type: boolean + image: + description: Image for GooseFS Fuse(e.g. goosefs/goosefs-fuse) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for GooseFS Fuse(e.g. v1.0.1) + type: string + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + resources: + description: Resources that will be requested by GooseFS Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of GooseFS job Worker - properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + goosefsVersion: + description: The version information that instructs fluid to orchestrate a particular version of GooseFS. + properties: + image: + description: Image (e.g. alluxio/alluxio) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: string + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations when using HDFS as GooseFS's UFS. The configMap must be in the same namespace with the GooseFSRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. + type: string + initUsers: + description: The spec of init users + properties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by initialize the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobMaster: + description: The component spec of GooseFS job master + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - resources: - description: Resources that will be requested by the GooseFS component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - master: - description: The component spec of GooseFS master + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobWorker: + description: The component spec of GooseFS job Worker properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
- Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run GooseFS Runtime GooseFS support - POSIX-ACL and Apache Ranger to manager authorization TODO(chrisydxie@tencent.com) - Support Apache Ranger. - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + annotations: + additionalProperties: type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by GooseFS + description: Environment variables that will be used by GooseFS component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
- Refer to Configuring - Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three - types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple - paths are supported. Multiple paths should be separated - with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please - note that if there're multiple paths used for this tierstore, - the quota will be equally divided into these paths. If - you'd like to set quota for each, path, see QuotaList - for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple - paths. Quotas should be separated with comma. Quotas in - this list will be set to paths with the same order in - Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" - and QuotaList set to "100Gi, 50Gi", then we get 100GiB - cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". - Also note that num of quotas must be consistent with the - num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - type: object - worker: - description: The component spec of GooseFS worker + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + master: + description: The component spec of GooseFS master + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run GooseFS Runtime GooseFS support POSIX-ACL and Apache Ranger to manager authorization TODO(chrisydxie@tencent.com) Support Apache Ranger. + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime + type: string + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + tieredstore: + description: Tiered storage used by GooseFS + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status + type: array + type: object + worker: + description: The component spec of GooseFS worker + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - endpoint: - description: Endpoint for accessing + additionalProperties: type: string - type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc - runtime's current state. - items: - description: Condition describes the state of the cache at a certain - point. + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type - type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime - Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime - worker pod (including nodes correctly running the runtime worker - pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the - runtime Fuse pod (including nodes correctly running the runtime - Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the - runtime worker pod (including nodes correctly running the runtime - worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime - fuse pod and have none of the runtime fuse pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have zero or more of the runtime master pod running - and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the - runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime - worker pod and have none of the runtime worker pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing + type: string + type: object + cacheStates: + additionalProperties: type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc runtime's current state. + items: + description: Condition describes the state of the cache at a certain point. + properties: + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_jindoruntimes.yaml b/config/crd/bases/data.fluid.io_jindoruntimes.yaml index dcf2ef2c7e7..9b4cea2b59a 100644 --- a/config/crd/bases/data.fluid.io_jindoruntimes.yaml +++ b/config/crd/bases/data.fluid.io_jindoruntimes.yaml @@ -1,13 +1,50 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: jindoruntimes.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - JSONPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - JSONPath: .status.masterPhase + name: Master Phase + type: string + - JSONPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - JSONPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - JSONPath: .status.workerPhase + name: Worker Phase + type: string + - JSONPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - JSONPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - JSONPath: .status.fusePhase + name: Fuse Phase + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,715 +56,530 @@ spec: - jindo singular: jindoruntime scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - jsonPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - jsonPath: .status.masterPhase - name: Master Phase - type: string - - jsonPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - jsonPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - jsonPath: .status.workerPhase - name: Worker Phase - type: string - - jsonPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - jsonPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - jsonPath: .status.fusePhase - name: Fuse Phase - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: JindoRuntime is the Schema for the jindoruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: JindoRuntimeSpec defines the desired state of JindoRuntime - properties: - fuse: - description: The component spec of Jindo Fuse - properties: - args: - description: Arguments that will be passed to Jindo Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean JindoFS Fuse pods. - Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted - OnDemand cleans fuse pod once th fuse pod on some node is not - needed OnRuntimeDeleted cleans fuse pod only when the cache - runtime is deleted Defaults to OnRuntimeDeleted' + subresources: + scale: + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} + validation: + openAPIV3Schema: + description: JindoRuntime is the Schema for the jindoruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: JindoRuntimeSpec defines the desired state of JindoRuntime + properties: + fuse: + description: The component spec of Jindo Fuse + properties: + args: + description: Arguments that will be passed to Jindo Fuse + items: type: string - env: - additionalProperties: - type: string - description: Environment variables that will be used by Jindo - Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, - otherwise the affinity should be considered - type: boolean - image: - description: Image for Jindo Fuse(e.g. jindo/jindo-fuse) + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean JindoFS Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' + type: string + env: + additionalProperties: type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' + description: Environment variables that will be used by Jindo Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered + type: boolean + image: + description: Image for Jindo Fuse(e.g. jindo/jindo-fuse) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for Jindo Fuse(e.g. 2.3.0-SNAPSHOT) + type: string + labels: + additionalProperties: type: string - imageTag: - description: Image Tag for Jindo Fuse(e.g. 2.3.0-SNAPSHOT) + description: Labels will be added on all the JindoFS Fuse pods. Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: type: string - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS Fuse pods. - Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the fuse client to fit on a node, this option only effect when - global is enabled - type: object + description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for Jindo System.
+ type: object + resources: + description: Resources that will be requested by Jindo Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for Jindo System.
- type: object - resources: - description: Resources that will be requested by Jindo Fuse.
-
Resources are not allowed for ephemeral containers. Ephemeral - containers use spare resources already allocated to the pod. + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + effect: + description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. + type: string type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using - the matching operator . - properties: - effect: - description: Effect indicates the taint effect to match. - Empty means match all taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match - all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to - the value. Valid operators are Exists and Equal. Defaults - to Equal. Exists is equivalent to wildcard for value, - so that a pod can tolerate all taints of a particular - category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of - time the toleration (which must be of effect NoExecute, - otherwise this field is ignored) tolerates the taint. - By default, it is not set, which means tolerate the taint - forever (do not evict). Zero and negative values will - be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. - type: string - type: object - type: array - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations - when using HDFS as Jindo's UFS. The configMap must be in the same - namespace with the JindoRuntime. The configMap should contain user-specific - HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" - are supported. It must take the filename of the conf file as the - key and content of the file as the value. + type: array + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations when using HDFS as Jindo's UFS. The configMap must be in the same namespace with the JindoRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. + type: string + jindoVersion: + description: The version information that instructs fluid to orchestrate a particular version of Jindo. + properties: + image: + description: Image (e.g. alluxio/alluxio) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: string + type: object + labels: + additionalProperties: type: string - jindoVersion: - description: The version information that instructs fluid to orchestrate - a particular version of Jindo. - properties: - image: - description: Image (e.g. alluxio/alluxio) + description: Labels will be added on all the JindoFS pods. + type: object + logConfig: + additionalProperties: + type: string + type: object + master: + description: The component spec of Jindo master + properties: + env: + additionalProperties: type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' + description: Environment variables that will be used by Jindo component.
+ type: object + labels: + additionalProperties: type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) + description: Labels will be added on all the JindoFS Master or Worker pods. Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: type: string - type: object - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS pods. - type: object - logConfig: - additionalProperties: - type: string - type: object - master: - description: The component spec of Jindo master + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + type: object properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by Jindo - component.
- type: object - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS Master or - Worker pods. Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - type: object + additionalProperties: + type: string + description: Configurable properties for the Jindo component.
+ type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the Jindo component. -
- type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Jindo component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + effect: + description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. + type: string type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using - the matching operator . - properties: - effect: - description: Effect indicates the taint effect to match. - Empty means match all taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match - all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to - the value. Valid operators are Exists and Equal. Defaults - to Equal. Exists is equivalent to wildcard for value, - so that a pod can tolerate all taints of a particular - category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of - time the toleration (which must be of effect NoExecute, - otherwise this field is ignored) tolerates the taint. - By default, it is not set, which means tolerate the taint - forever (do not evict). Zero and negative values will - be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. - type: string - type: object - type: array - type: object - networkmode: - description: Whether to use hostnetwork or not - enum: - - HostNetwork - - "" - - ContainerNetwork + type: array + type: object + networkmode: + description: Whether to use hostnetwork or not + enum: + - HostNetwork + - "" + - ContainerNetwork + type: string + properties: + additionalProperties: type: string + description: Configurable properties for Jindo system.
+ type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Jindo Runtime properties: - additionalProperties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - description: Configurable properties for Jindo system.
- type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Jindo Runtime - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + secret: + type: string + tieredstore: + description: Tiered storage used by Jindo + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype + type: object + type: array + type: object + user: + type: string + worker: + description: The component spec of Jindo worker + properties: + env: + additionalProperties: type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime + description: Environment variables that will be used by Jindo component.
+ type: object + labels: + additionalProperties: type: string - required: - - gid - - group - - uid - - user - type: object - secret: - type: string - tieredstore: - description: Tiered storage used by Jindo - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
- Refer to Configuring - Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three - types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple - paths are supported. Multiple paths should be separated - with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please - note that if there're multiple paths used for this tierstore, - the quota will be equally divided into these paths. If - you'd like to set quota for each, path, see QuotaList - for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple - paths. Quotas should be separated with comma. Quotas in - this list will be set to paths with the same order in - Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" - and QuotaList set to "100Gi, 50Gi", then we get 100GiB - cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". - Also note that num of quotas must be consistent with the - num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype - type: object - type: array - type: object - user: - type: string - worker: - description: The component spec of Jindo worker + description: Labels will be added on all the JindoFS Master or Worker pods. Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + type: object properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by Jindo - component.
- type: object - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS Master or - Worker pods. Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - type: object + additionalProperties: + type: string + description: Configurable properties for the Jindo component.
+ type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the Jindo component. -
- type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Jindo component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + effect: + description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. + type: string type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using - the matching operator . - properties: - effect: - description: Effect indicates the taint effect to match. - Empty means match all taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match - all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to - the value. Valid operators are Exists and Equal. Defaults - to Equal. Exists is equivalent to wildcard for value, - so that a pod can tolerate all taints of a particular - category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of - time the toleration (which must be of effect NoExecute, - otherwise this field is ignored) tolerates the taint. - By default, it is not set, which means tolerate the taint - forever (do not evict). Zero and negative values will - be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. - type: string - type: object - type: array - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status + type: array + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing + type: string + type: object + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc runtime's current state. + items: + description: Condition describes the state of the cache at a certain point. properties: - endpoint: - description: Endpoint for accessing + lastProbeTime: + description: The last time this condition was updated. + format: date-time type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc - runtime's current state. - items: - description: Condition describes the state of the cache at a certain - point. - properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type - type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime - Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime - worker pod (including nodes correctly running the runtime worker - pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the - runtime Fuse pod (including nodes correctly running the runtime - Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the - runtime worker pod (including nodes correctly running the runtime - worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime - fuse pod and have none of the runtime fuse pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have zero or more of the runtime master pod running - and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the - runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime - worker pod and have none of the runtime worker pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition - type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - scale: - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_juicefsruntimes.yaml b/config/crd/bases/data.fluid.io_juicefsruntimes.yaml index 15a0199994f..f62c1c7a267 100644 --- a/config/crd/bases/data.fluid.io_juicefsruntimes.yaml +++ b/config/crd/bases/data.fluid.io_juicefsruntimes.yaml @@ -1,13 +1,39 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: juicefsruntimes.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - JSONPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - JSONPath: .status.workerPhase + name: Worker Phase + type: string + - JSONPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - JSONPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - JSONPath: .status.fusePhase + name: Fuse Phase + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,1132 +45,862 @@ spec: - juicefs singular: juicefsruntime scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - jsonPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - jsonPath: .status.workerPhase - name: Worker Phase - type: string - - jsonPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - jsonPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - jsonPath: .status.fusePhase - name: Fuse Phase - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: JuiceFSRuntime is the Schema for the juicefsruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: JuiceFSRuntimeSpec defines the desired state of JuiceFSRuntime - properties: - disablePrometheus: - description: Disable monitoring for JuiceFS Runtime Prometheus is - enabled by default - type: boolean - fuse: - description: Desired state for JuiceFS Fuse - properties: - cleanPolicy: - description: 'CleanPolicy decides when to clean Juicefs Fuse pods. - Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted - OnDemand cleans fuse pod once th fuse pod on some node is not - needed OnRuntimeDeleted cleans fuse pod only when the cache - runtime is deleted Defaults to OnDemand' - type: string - env: - description: Environment variables that will be used by JuiceFS - Fuse - items: - description: EnvVar represents an environment variable present - in a Container. - properties: - name: - description: Name of the environment variable. Must be a - C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded - using the previous defined environment variables in the - container and any service environment variables. If a - variable cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax can be - escaped with a double $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only - resources limits and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, requests.memory - and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - global: - description: If the fuse client should be deployed in global mode, - otherwise the affinity should be considered - type: boolean - image: - description: Image for JuiceFS fuse - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image for JuiceFS fuse - type: string - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the fuse client to fit on a node, this option only effect when - global is enabled - type: object - resources: - description: Resources that will be requested by JuiceFS Fuse. + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} + validation: + openAPIV3Schema: + description: JuiceFSRuntime is the Schema for the juicefsruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: JuiceFSRuntimeSpec defines the desired state of JuiceFSRuntime + properties: + disablePrometheus: + description: Disable monitoring for JuiceFS Runtime Prometheus is enabled by default + type: boolean + fuse: + description: Desired state for JuiceFS Fuse + properties: + cleanPolicy: + description: 'CleanPolicy decides when to clean Juicefs Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnDemand' + type: string + env: + description: Environment variables that will be used by JuiceFS Fuse + items: + description: EnvVar represents an environment variable present in a Container. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object type: object + required: + - name type: object - type: object - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by initialize - the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User - init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' + type: array + global: + description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered + type: boolean + image: + description: Image for JuiceFS fuse + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image for JuiceFS fuse + type: string + nodeSelector: + additionalProperties: type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. - 2.3.0-SNAPSHOT) + description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled + type: object + resources: + description: Resources that will be requested by JuiceFS Fuse. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + initUsers: + description: The spec of init users + properties: + env: + additionalProperties: type: string - resources: - description: Resources that will be requested by initialize the - users for runtime.

Resources are not allowed for ephemeral - containers. Ephemeral containers use spare resources already - allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of JuiceFS job Worker - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS - component. - items: - description: EnvVar represents an environment variable present - in a Container. - properties: - name: - description: Name of the environment variable. Must be a - C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded - using the previous defined environment variables in the - container and any service environment variables. If a - variable cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax can be - escaped with a double $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only - resources limits and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, requests.memory - and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name + description: Environment variables that will be used by initialize the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector - type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single - container. - properties: - containerPort: - description: Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, - this must be a valid port number, 0 < x < 65536. If HostNetwork - is specified, this must match ContainerPort. Most containers - do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME - and unique within the pod. Each named port in a pod must - have a unique name. Name for the port that can be referred - to by services. - type: string - protocol: - default: TCP - description: Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. + type: object + type: object + jobWorker: + description: The component spec of JuiceFS job Worker + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS component. + items: + description: EnvVar represents an environment variable present in a Container. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object type: object + required: + - name type: object - type: object - juicefsVersion: - description: The version information that instructs fluid to orchestrate - a particular version of JuiceFS. - properties: - image: - description: Image (e.g. alluxio/alluxio) + type: array + nodeSelector: + additionalProperties: type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) - type: string - type: object - master: - description: The component spec of JuiceFS master - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS - component. - items: - description: EnvVar represents an environment variable present - in a Container. - properties: - name: - description: Name of the environment variable. Must be a - C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded - using the previous defined environment variables in the - container and any service environment variables. If a - variable cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax can be - escaped with a double $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only - resources limits and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, requests.memory - and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector + description: NodeSelector is a selector + type: object + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. + type: string + protocol: + description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". + type: string + required: + - containerPort type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single - container. - properties: - containerPort: - description: Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, - this must be a valid port number, 0 < x < 65536. If HostNetwork - is specified, this must match ContainerPort. Most containers - do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME - and unique within the pod. Each named port in a pod must - have a unique name. Name for the port that can be referred - to by services. - type: string - protocol: - default: TCP - description: Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort + type: array + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. + type: object + type: object + juicefsVersion: + description: The version information that instructs fluid to orchestrate a particular version of JuiceFS. + properties: + image: + description: Image (e.g. alluxio/alluxio) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: string + type: object + master: + description: The component spec of JuiceFS master + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS component. + items: + description: EnvVar represents an environment variable present in a Container. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object type: object + required: + - name type: object - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Juicefs Runtime - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + type: array + nodeSelector: + additionalProperties: type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by JuiceFS - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
- Refer to Configuring - Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three - types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple - paths are supported. Multiple paths should be separated - with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please - note that if there're multiple paths used for this tierstore, - the quota will be equally divided into these paths. If - you'd like to set quota for each, path, see QuotaList - for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple - paths. Quotas should be separated with comma. Quotas in - this list will be set to paths with the same order in - Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" - and QuotaList set to "100Gi, 50Gi", then we get 100GiB - cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". - Also note that num of quotas must be consistent with the - num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype + description: NodeSelector is a selector + type: object + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. + type: string + protocol: + description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - type: object - worker: - description: The component spec of JuiceFS worker - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS - component. - items: - description: EnvVar represents an environment variable present - in a Container. - properties: - name: - description: Name of the environment variable. Must be a - C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded - using the previous defined environment variables in the - container and any service environment variables. If a - variable cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax can be - escaped with a double $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only - resources limits and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, requests.memory - and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector + type: object + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Juicefs Runtime + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime + type: string + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + tieredstore: + description: Tiered storage used by JuiceFS + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single - container. - properties: - containerPort: - description: Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, - this must be a valid port number, 0 < x < 65536. If HostNetwork - is specified, this must match ContainerPort. Most containers - do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME - and unique within the pod. Each named port in a pod must - have a unique name. Name for the port that can be referred - to by services. - type: string - protocol: - default: TCP - description: Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort - type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. + type: array + type: object + worker: + description: The component spec of JuiceFS worker + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS component. + items: + description: EnvVar represents an environment variable present in a Container. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object type: object + required: + - name type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status - properties: - endpoint: - description: Endpoint for accessing + type: array + nodeSelector: + additionalProperties: type: string - type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc - runtime's current state. - items: - description: Condition describes the state of the cache at a certain - point. + description: NodeSelector is a selector + type: object + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. + type: string + protocol: + description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime - Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime - worker pod (including nodes correctly running the runtime worker - pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the - runtime Fuse pod (including nodes correctly running the runtime - Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the - runtime worker pod (including nodes correctly running the runtime - worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime - fuse pod and have none of the runtime fuse pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have zero or more of the runtime master pod running - and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - mountTime: - description: MountTime represents time last mount happened if Mounttime - is early than master starting time, remount will be required - format: date-time - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the - runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime - worker pod and have none of the runtime worker pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing + type: string + type: object + cacheStates: + additionalProperties: type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc runtime's current state. + items: + description: Condition describes the state of the cache at a certain point. + properties: + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} status: acceptedNames: kind: "" diff --git a/pkg/ddc/alluxio/ufs_internal.go b/pkg/ddc/alluxio/ufs_internal.go index 517a35edd5f..3f1b1ec8552 100644 --- a/pkg/ddc/alluxio/ufs_internal.go +++ b/pkg/ddc/alluxio/ufs_internal.go @@ -27,6 +27,7 @@ import ( "github.com/fluid-cloudnative/fluid/pkg/utils" "github.com/fluid-cloudnative/fluid/pkg/utils/kubeclient" "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/util/retry" ) @@ -323,7 +324,7 @@ func (e *AlluxioEngine) updateMountTime() { } runtimeToUpdate := runtime.DeepCopy() - runtimeToUpdate.Status.MountTime.Time = time.Now() + runtimeToUpdate.Status.MountTime = &metav1.Time{Time: time.Now()} if !reflect.DeepEqual(runtime.Status, runtimeToUpdate.Status) { err = e.Client.Status().Update(context.TODO(), runtimeToUpdate) From 9a010cba6f6541fbac66d75b0d57176822f5aa45 Mon Sep 17 00:00:00 2001 From: nizifan Date: Wed, 30 Mar 2022 12:08:09 +0800 Subject: [PATCH 3/4] update crd Signed-off-by: nizifan --- .../crds/data.fluid.io_alluxioruntimes.yaml | 1544 ++++++------- .../fluid/crds/data.fluid.io_databackups.yaml | 252 +-- .../fluid/crds/data.fluid.io_dataloads.yaml | 234 +- .../fluid/crds/data.fluid.io_datasets.yaml | 814 ++++--- .../crds/data.fluid.io_goosefsruntimes.yaml | 1580 ++++++------- .../crds/data.fluid.io_jindoruntimes.yaml | 1216 +++++----- .../crds/data.fluid.io_juicefsruntimes.yaml | 1954 ++++++++--------- 7 files changed, 3411 insertions(+), 4183 deletions(-) diff --git a/charts/fluid/fluid/crds/data.fluid.io_alluxioruntimes.yaml b/charts/fluid/fluid/crds/data.fluid.io_alluxioruntimes.yaml index dbb5999605b..7e6c5c42e61 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_alluxioruntimes.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_alluxioruntimes.yaml @@ -1,13 +1,54 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: alluxioruntimes.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - JSONPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - JSONPath: .status.masterPhase + name: Master Phase + type: string + - JSONPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - JSONPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - JSONPath: .status.workerPhase + name: Worker Phase + type: string + - JSONPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - JSONPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - JSONPath: .status.fusePhase + name: Fuse Phase + type: string + - JSONPath: .status.apiGateway.endpoint + name: API Gateway + priority: 10 + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,883 +60,686 @@ spec: - alluxio singular: alluxioruntime scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - jsonPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - jsonPath: .status.masterPhase - name: Master Phase - type: string - - jsonPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - jsonPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - jsonPath: .status.workerPhase - name: Worker Phase - type: string - - jsonPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - jsonPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - jsonPath: .status.fusePhase - name: Fuse Phase - type: string - - jsonPath: .status.apiGateway.endpoint - name: API Gateway - priority: 10 - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: AlluxioRuntime is the Schema for the alluxioruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: AlluxioRuntimeSpec defines the desired state of AlluxioRuntime - properties: - alluxioVersion: - description: The version information that instructs fluid to orchestrate - a particular version of Alluxio. + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} + validation: + openAPIV3Schema: + description: AlluxioRuntime is the Schema for the alluxioruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: AlluxioRuntimeSpec defines the desired state of AlluxioRuntime + properties: + alluxioVersion: + description: The version information that instructs fluid to orchestrate a particular version of Alluxio. + properties: + image: + description: Image (e.g. alluxio/alluxio) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: string + type: object + apiGateway: + description: The component spec of Alluxio API Gateway + properties: + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - image: - description: Image (e.g. alluxio/alluxio) + additionalProperties: type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' + description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + data: + description: Management strategies for the dataset to which the runtime is bound + properties: + pin: + description: Pin the dataset or not. Refer to Alluxio User-CLI pin + type: boolean + replicas: + description: The copies of the dataset + format: int32 + type: integer + type: object + disablePrometheus: + description: Disable monitoring for Alluxio Runtime Prometheus is enabled by default + type: boolean + fuse: + description: The component spec of Alluxio Fuse + properties: + args: + description: Arguments that will be passed to Alluxio Fuse + items: type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean Alluxio Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' + type: string + env: + additionalProperties: type: string - type: object - apiGateway: - description: The component spec of Alluxio API Gateway + description: Environment variables that will be used by Alluxio Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered + type: boolean + image: + description: Image for Alluxio Fuse(e.g. alluxio/alluxio-fuse) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for Alluxio Fuse(e.g. 2.3.0-SNAPSHOT) + type: string + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + additionalProperties: + type: string + description: Configurable properties for Alluxio System.
Refer to Alluxio Configuration Properties for more info + type: object + resources: + description: Resources that will be requested by Alluxio Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component. -
Refer to Alluxio - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations when using HDFS as Alluxio's UFS. The configMap must be in the same namespace with the AlluxioRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. + type: string + initUsers: + description: The spec of init users + properties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by initialize the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobMaster: + description: The component spec of Alluxio job master + properties: + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - resources: - description: Resources that will be requested by the Alluxio component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - data: - description: Management strategies for the dataset to which the runtime - is bound + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - pin: - description: Pin the dataset or not. Refer to Alluxio - User-CLI pin - type: boolean - replicas: - description: The copies of the dataset - format: int32 + additionalProperties: + type: string + description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobWorker: + description: The component spec of Alluxio job Worker + properties: + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - type: object - disablePrometheus: - description: Disable monitoring for Alluxio Runtime Prometheus is - enabled by default - type: boolean - fuse: - description: The component spec of Alluxio Fuse + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - args: - description: Arguments that will be passed to Alluxio Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean Alluxio Fuse pods. - Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted - OnDemand cleans fuse pod once th fuse pod on some node is not - needed OnRuntimeDeleted cleans fuse pod only when the cache - runtime is deleted Defaults to OnRuntimeDeleted' - type: string - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, - otherwise the affinity should be considered - type: boolean - image: - description: Image for Alluxio Fuse(e.g. alluxio/alluxio-fuse) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image Tag for Alluxio Fuse(e.g. 2.3.0-SNAPSHOT) - type: string - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the fuse client to fit on a node, this option only effect when - global is enabled - type: object + additionalProperties: + type: string + description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for Alluxio System.
- Refer to Alluxio - Configuration Properties for more info - type: object - resources: - description: Resources that will be requested by Alluxio Fuse. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations - when using HDFS as Alluxio's UFS. The configMap must be in the same - namespace with the AlluxioRuntime. The configMap should contain - user-specific HDFS conf files in it. For now, only "hdfs-site.xml" - and "core-site.xml" are supported. It must take the filename of - the conf file as the key and content of the file as the value. + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jvmOptions: + description: Options for JVM + items: type: string - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by initialize - the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User - init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. - 2.3.0-SNAPSHOT) - type: string - resources: - description: Resources that will be requested by initialize the - users for runtime.

Resources are not allowed for ephemeral - containers. Ephemeral containers use spare resources already - allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobMaster: - description: The component spec of Alluxio job master - properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component. -
Refer to Alluxio - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 + type: array + master: + description: The component spec of Alluxio master + properties: + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - resources: - description: Resources that will be requested by the Alluxio component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of Alluxio job Worker + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + additionalProperties: + type: string + description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component. -
Refer to Alluxio - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jvmOptions: - description: Options for JVM - items: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for Alluxio system.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Alluxio Runtime + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - type: array - master: - description: The component spec of Alluxio master - properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component. -
Refer to Alluxio - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + tieredstore: + description: Tiered storage used by Alluxio + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype type: object - type: object + type: array + type: object + worker: + description: The component spec of Alluxio worker properties: - additionalProperties: - type: string - description: Configurable properties for Alluxio system.
Refer - to Alluxio - Configuration Properties for more info - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Alluxio Runtime - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime + description: Environment variables that will be used by Alluxio component.
+ type: object + jvmOptions: + description: Options for JVM + items: type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by Alluxio - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
- Refer to Configuring - Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three - types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple - paths are supported. Multiple paths should be separated - with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please - note that if there're multiple paths used for this tierstore, - the quota will be equally divided into these paths. If - you'd like to set quota for each, path, see QuotaList - for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple - paths. Quotas should be separated with comma. Quotas in - this list will be set to paths with the same order in - Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" - and QuotaList set to "100Gi, 50Gi", then we get 100GiB - cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". - Also note that num of quotas must be consistent with the - num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype - type: object - type: array - type: object - worker: - description: The component spec of Alluxio worker - properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component. -
Refer to Alluxio - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - resources: - description: Resources that will be requested by the Alluxio component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - endpoint: - description: Endpoint for accessing + additionalProperties: type: string - type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc - runtime's current state. - items: - description: Condition describes the state of the cache at a certain - point. + description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime - Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime - worker pod (including nodes correctly running the runtime worker - pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the - runtime Fuse pod (including nodes correctly running the runtime - Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the - runtime worker pod (including nodes correctly running the runtime - worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime - fuse pod and have none of the runtime fuse pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have zero or more of the runtime master pod running - and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the - runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime - worker pod and have none of the runtime worker pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing + type: string + type: object + cacheStates: + additionalProperties: type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc runtime's current state. + items: + description: Condition describes the state of the cache at a certain point. + properties: + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_databackups.yaml b/charts/fluid/fluid/crds/data.fluid.io_databackups.yaml index a6df249afbd..fd519c5e44d 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_databackups.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_databackups.yaml @@ -1,13 +1,32 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: databackups.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .spec.dataset + name: Dataset + type: string + - JSONPath: .status.phase + name: Phase + type: string + - JSONPath: .status.backupLocation.path + name: Path + type: string + - JSONPath: .status.backupLocation.nodeName + name: NodeName + type: string + - JSONPath: .status.duration + name: Duration + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,144 +38,113 @@ spec: - backup singular: databackup scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.dataset - name: Dataset - type: string - - jsonPath: .status.phase - name: Phase - type: string - - jsonPath: .status.backupLocation.path - name: Path - type: string - - jsonPath: .status.backupLocation.nodeName - name: NodeName - type: string - - jsonPath: .status.duration - name: Duration - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: DataBackup is the Schema for the backup API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DataBackupSpec defines the desired state of DataBackup - properties: - backupPath: - description: BackupPath defines the target path to save data of the - DataBackup - type: string - dataset: - description: Dataset defines the target dataset of the DataBackup - type: string - runAs: - description: Manage the user to run Alluxio DataBackup + subresources: + status: {} + validation: + openAPIV3Schema: + description: DataBackup is the Schema for the backup API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DataBackupSpec defines the desired state of DataBackup + properties: + backupPath: + description: BackupPath defines the target path to save data of the DataBackup + type: string + dataset: + description: Dataset defines the target dataset of the DataBackup + type: string + runAs: + description: Manage the user to run Alluxio DataBackup + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime + type: string + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + type: object + status: + description: DataBackupStatus defines the observed state of DataBackup + properties: + backupLocation: + description: BackupLocation tell user the location to save data of the DataBackup + properties: + nodeName: + description: NodeName describes the nodeName of backup if Path is in the form of local://subpath + type: string + path: + description: Path describes the path of backup, in the form of local:///absolutePath or pvc:///subpath + type: string + type: object + conditions: + description: Conditions consists of transition information on DataBackup's Phase + items: + description: Condition explains the transitions on phase properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + lastProbeTime: + description: LastProbeTime describes last time this condition was updated. + format: date-time type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime + lastTransitionTime: + description: LastTransitionTime describes last time the condition transitioned from one status to another. + format: date-time type: string - required: - - gid - - group - - uid - - user - type: object - type: object - status: - description: DataBackupStatus defines the observed state of DataBackup - properties: - backupLocation: - description: BackupLocation tell user the location to save data of - the DataBackup - properties: - nodeName: - description: NodeName describes the nodeName of backup if Path - is in the form of local://subpath + message: + description: Message is a human-readable message indicating details about the transition type: string - path: - description: Path describes the path of backup, in the form of - local:///absolutePath or pvc:///subpath + reason: + description: Reason for the condition's last transition type: string + status: + description: Status of the condition, one of `True`, `False` or `Unknown` + type: string + type: + description: Type of condition, either `Complete` or `Failed` + type: string + required: + - status + - type type: object - conditions: - description: Conditions consists of transition information on DataBackup's - Phase - items: - description: Condition explains the transitions on phase - properties: - lastProbeTime: - description: LastProbeTime describes last time this condition - was updated. - format: date-time - type: string - lastTransitionTime: - description: LastTransitionTime describes last time the condition - transitioned from one status to another. - format: date-time - type: string - message: - description: Message is a human-readable message indicating - details about the transition - type: string - reason: - description: Reason for the condition's last transition - type: string - status: - description: Status of the condition, one of `True`, `False` - or `Unknown` - type: string - type: - description: Type of condition, either `Complete` or `Failed` - type: string - required: - - status - - type - type: object - type: array - duration: - description: Duration tell user how much time was spent to backup - type: string - phase: - description: Phase describes current phase of DataBackup - type: string - required: - - conditions - - duration - - phase - type: object - type: object + type: array + duration: + description: Duration tell user how much time was spent to backup + type: string + phase: + description: Phase describes current phase of DataBackup + type: string + required: + - conditions + - duration + - phase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_dataloads.yaml b/charts/fluid/fluid/crds/data.fluid.io_dataloads.yaml index 29e20e0e8df..524a9d48e58 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_dataloads.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_dataloads.yaml @@ -1,13 +1,26 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: dataloads.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .spec.dataset.name + name: Dataset + type: string + - JSONPath: .status.phase + name: Phase + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date + - JSONPath: .status.duration + name: Duration + type: string group: data.fluid.io names: categories: @@ -19,133 +32,110 @@ spec: - load singular: dataload scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.dataset.name - name: Dataset - type: string - - jsonPath: .status.phase - name: Phase - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.duration - name: Duration - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: DataLoad is the Schema for the dataloads API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DataLoadSpec defines the desired state of DataLoad - properties: - dataset: - description: Dataset defines the target dataset of the DataLoad + subresources: + status: {} + validation: + openAPIV3Schema: + description: DataLoad is the Schema for the dataloads API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DataLoadSpec defines the desired state of DataLoad + properties: + dataset: + description: Dataset defines the target dataset of the DataLoad + properties: + name: + description: Name defines name of the target dataset + type: string + namespace: + description: Namespace defines namespace of the target dataset + type: string + required: + - name + type: object + loadMetadata: + description: LoadMetadata specifies if the dataload job should load metadata + type: boolean + options: + additionalProperties: + type: string + description: Options specifies the extra dataload properties for runtime + type: object + target: + description: Target defines target paths that needs to be loaded + items: + description: TargetPath defines the target path of the DataLoad properties: - name: - description: Name defines name of the target dataset - type: string - namespace: - description: Namespace defines namespace of the target dataset + path: + description: Path defines path to be load type: string + replicas: + description: Replicas defines how many replicas will be loaded + format: int32 + type: integer required: - - name + - path type: object - loadMetadata: - description: LoadMetadata specifies if the dataload job should load - metadata - type: boolean - options: - additionalProperties: - type: string - description: Options specifies the extra dataload properties for runtime + type: array + type: object + status: + description: DataLoadStatus defines the observed state of DataLoad + properties: + conditions: + description: Conditions consists of transition information on DataLoad's Phase + items: + description: Condition explains the transitions on phase + properties: + lastProbeTime: + description: LastProbeTime describes last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: LastTransitionTime describes last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: Message is a human-readable message indicating details about the transition + type: string + reason: + description: Reason for the condition's last transition + type: string + status: + description: Status of the condition, one of `True`, `False` or `Unknown` + type: string + type: + description: Type of condition, either `Complete` or `Failed` + type: string + required: + - status + - type type: object - target: - description: Target defines target paths that needs to be loaded - items: - description: TargetPath defines the target path of the DataLoad - properties: - path: - description: Path defines path to be load - type: string - replicas: - description: Replicas defines how many replicas will be loaded - format: int32 - type: integer - required: - - path - type: object - type: array - type: object - status: - description: DataLoadStatus defines the observed state of DataLoad - properties: - conditions: - description: Conditions consists of transition information on DataLoad's - Phase - items: - description: Condition explains the transitions on phase - properties: - lastProbeTime: - description: LastProbeTime describes last time this condition - was updated. - format: date-time - type: string - lastTransitionTime: - description: LastTransitionTime describes last time the condition - transitioned from one status to another. - format: date-time - type: string - message: - description: Message is a human-readable message indicating - details about the transition - type: string - reason: - description: Reason for the condition's last transition - type: string - status: - description: Status of the condition, one of `True`, `False` - or `Unknown` - type: string - type: - description: Type of condition, either `Complete` or `Failed` - type: string - required: - - status - - type - type: object - type: array - duration: - description: Duration tell user how much time was spent to load the - data - type: string - phase: - description: Phase describes current phase of DataLoad - type: string - required: - - conditions - - duration - - phase - type: object - type: object + type: array + duration: + description: Duration tell user how much time was spent to load the data + type: string + phase: + description: Phase describes current phase of DataLoad + type: string + required: + - conditions + - duration + - phase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_datasets.yaml b/charts/fluid/fluid/crds/data.fluid.io_datasets.yaml index e2d40e6fd40..cf26fb9fc53 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_datasets.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_datasets.yaml @@ -1,13 +1,44 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: datasets.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .status.ufsTotal + name: Ufs Total Size + type: string + - JSONPath: .status.cacheStates.cached + name: Cached + type: string + - JSONPath: .status.cacheStates.cacheCapacity + name: Cache Capacity + type: string + - JSONPath: .status.cacheStates.cachedPercentage + name: Cached Percentage + type: string + - JSONPath: .status.phase + name: Phase + type: string + - JSONPath: .status.hcfs.endpoint + name: HCFS URL + priority: 10 + type: string + - JSONPath: .status.fileNum + name: TOTAL FILES + priority: 11 + type: string + - JSONPath: .status.cacheStates.cacheHitRatio + name: CACHE HIT RATIO + priority: 10 + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,479 +50,374 @@ spec: - dataset singular: dataset scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.ufsTotal - name: Ufs Total Size - type: string - - jsonPath: .status.cacheStates.cached - name: Cached - type: string - - jsonPath: .status.cacheStates.cacheCapacity - name: Cache Capacity - type: string - - jsonPath: .status.cacheStates.cachedPercentage - name: Cached Percentage - type: string - - jsonPath: .status.phase - name: Phase - type: string - - jsonPath: .status.hcfs.endpoint - name: HCFS URL - priority: 10 - type: string - - jsonPath: .status.fileNum - name: TOTAL FILES - priority: 11 - type: string - - jsonPath: .status.cacheStates.cacheHitRatio - name: CACHE HIT RATIO - priority: 10 - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: Dataset is the Schema for the datasets API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DatasetSpec defines the desired state of Dataset - properties: - accessModes: - description: AccessModes contains all ways the volume backing the - PVC can be mounted - items: + subresources: + status: {} + validation: + openAPIV3Schema: + description: Dataset is the Schema for the datasets API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DatasetSpec defines the desired state of Dataset + properties: + accessModes: + description: AccessModes contains all ways the volume backing the PVC can be mounted + items: + type: string + type: array + dataRestoreLocation: + description: DataRestoreLocation is the location to load data of dataset been backuped + properties: + nodeName: + description: NodeName describes the nodeName of restore if Path is in the form of local://subpath type: string - type: array - dataRestoreLocation: - description: DataRestoreLocation is the location to load data of dataset been - backuped + path: + description: Path describes the path of restore, in the form of local://subpath or pvc:///subpath + type: string + type: object + mounts: + description: Mount Points to be mounted on Alluxio. + items: + description: Mount describes a mounting.
Refer to Alluxio Storage Integrations for more info properties: - nodeName: - description: NodeName describes the nodeName of restore if Path - is in the form of local://subpath + encryptOptions: + description: The secret information + items: + properties: + name: + description: The name of encryptOption + type: string + valueFrom: + description: The valueFrom of encryptOption + properties: + secretKeyRef: + description: The encryptInfo obtained from secret + properties: + key: + description: The required key in the secret + type: string + name: + description: The name of required secret + type: string + type: object + type: object + type: object + type: array + mountPoint: + description: MountPoint is the mount point of source. + minLength: 10 + type: string + name: + description: The name of mount + minLength: 0 type: string + options: + additionalProperties: + type: string + description: The Mount Options.
Refer to Mount Options.
The option has Prefix 'fs.' And you can Learn more from The Storage Integrations + type: object path: - description: Path describes the path of restore, in the form of local://subpath - or pvc:///subpath + description: The path of mount, if not set will be /{Name} type: string + readOnly: + description: 'Optional: Defaults to false (read-write).' + type: boolean + shared: + description: 'Optional: Defaults to false (shared).' + type: boolean type: object - mounts: - description: Mount Points to be mounted on Alluxio. - items: - description: Mount describes a mounting.
Refer to Alluxio - Storage Integrations for more info + minItems: 1 + type: array + nodeAffinity: + description: NodeAffinity defines constraints that limit what nodes this dataset can be cached to. This field influences the scheduling of pods that use the cached dataset. + properties: + required: + description: Required specifies hard node constraints that must be met. properties: - encryptOptions: - description: The secret information + nodeSelectorTerms: + description: Required. A list of node selector terms. The terms are ORed. items: + description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: - name: - description: The name of encryptOption - type: string - valueFrom: - description: The valueFrom of encryptOption - properties: - secretKeyRef: - description: The encryptInfo obtained from secret - properties: - key: - description: The required key in the secret + matchExpressions: + description: A list of node selector requirements by node's labels. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: type: string - name: - description: The name of required secret + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by node's fields. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: type: string - type: object - type: object + type: array + required: + - key + - operator + type: object + type: array type: object type: array - mountPoint: - description: MountPoint is the mount point of source. - minLength: 10 - type: string - name: - description: The name of mount - minLength: 0 - type: string - options: - additionalProperties: - type: string - description: The Mount Options.
Refer to Mount - Options.
The option has Prefix 'fs.' And you can - Learn more from The - Storage Integrations - type: object - path: - description: The path of mount, if not set will be /{Name} - type: string - readOnly: - description: 'Optional: Defaults to false (read-write).' - type: boolean - shared: - description: 'Optional: Defaults to false (shared).' - type: boolean + required: + - nodeSelectorTerms type: object - minItems: 1 - type: array - nodeAffinity: - description: NodeAffinity defines constraints that limit what nodes - this dataset can be cached to. This field influences the scheduling - of pods that use the cached dataset. + type: object + owner: + description: The owner of the dataset + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime + type: string + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + placement: + description: Manage switch for opening Multiple datasets single node deployment or not TODO(xieydd) In future, evaluate node resources and runtime resources to decide whether to turn them on + enum: + - Exclusive + - "" + - Shared + type: string + runtimes: + description: Runtimes for supporting dataset (e.g. AlluxioRuntime) + items: + description: Runtime describes a runtime to be used to support dataset properties: - required: - description: Required specifies hard node constraints that must - be met. - properties: - nodeSelectorTerms: - description: Required. A list of node selector terms. The - terms are ORed. - items: - description: A null or empty node selector term matches - no objects. The requirements of them are ANDed. The TopologySelectorTerm - type implements a subset of the NodeSelectorTerm. - properties: - matchExpressions: - description: A list of node selector requirements by - node's labels. - items: - description: A node selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: The label key that the selector applies - to. - type: string - operator: - description: Represents a key's relationship to - a set of values. Valid operators are In, NotIn, - Exists, DoesNotExist. Gt, and Lt. - type: string - values: - description: An array of string values. If the - operator is In or NotIn, the values array must - be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. If the operator - is Gt or Lt, the values array must have a single - element, which will be interpreted as an integer. - This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - description: A list of node selector requirements by - node's fields. - items: - description: A node selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: The label key that the selector applies - to. - type: string - operator: - description: Represents a key's relationship to - a set of values. Valid operators are In, NotIn, - Exists, DoesNotExist. Gt, and Lt. - type: string - values: - description: An array of string values. If the - operator is In or NotIn, the values array must - be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. If the operator - is Gt or Lt, the values array must have a single - element, which will be interpreted as an integer. - This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - type: object - type: array - required: - - nodeSelectorTerms - type: object + category: + description: Category the runtime object belongs to (e.g. Accelerate) + type: string + masterReplicas: + description: Runtime master replicas + format: int32 + type: integer + name: + description: Name of the runtime object + type: string + namespace: + description: Namespace of the runtime object + type: string + type: + description: Runtime object's type (e.g. Alluxio) + type: string type: object - owner: - description: The owner of the dataset + type: array + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + effect: + description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. type: string - uid: - description: The uid to run the alluxio runtime + operator: + description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. format: int64 type: integer - user: - description: The user name to run the alluxio runtime + value: + description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. type: string - required: - - gid - - group - - uid - - user type: object - placement: - description: Manage switch for opening Multiple datasets single node - deployment or not TODO(xieydd) In future, evaluate node resources - and runtime resources to decide whether to turn them on - enum: - - Exclusive - - "" - - Shared + type: array + type: object + status: + description: DatasetStatus defines the observed state of Dataset + properties: + cacheStates: + additionalProperties: type: string - runtimes: - description: Runtimes for supporting dataset (e.g. AlluxioRuntime) - items: - description: Runtime describes a runtime to be used to support dataset - properties: - category: - description: Category the runtime object belongs to (e.g. Accelerate) - type: string - masterReplicas: - description: Runtime master replicas - format: int32 - type: integer - name: - description: Name of the runtime object - type: string - namespace: - description: Namespace of the runtime object - type: string - type: - description: Runtime object's type (e.g. Alluxio) - type: string - type: object - type: array - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates any - taint that matches the triple using the matching - operator . - properties: - effect: - description: Effect indicates the taint effect to match. Empty - means match all taint effects. When specified, allowed values - are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match all - values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the - value. Valid operators are Exists and Equal. Defaults to Equal. - Exists is equivalent to wildcard for value, so that a pod - can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time - the toleration (which must be of effect NoExecute, otherwise - this field is ignored) tolerates the taint. By default, it - is not set, which means tolerate the taint forever (do not - evict). Zero and negative values will be treated as 0 (evict - immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. - type: string - type: object - type: array - type: object - status: - description: DatasetStatus defines the observed state of Dataset - properties: - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Conditions is an array of current observed conditions. - items: - description: Condition describes the state of the cache at a certain - point. - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - lastUpdateTime: - description: The last time this condition was updated. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type - type: object - type: array - dataBackupRef: - description: DataBackupRef specifies the running Backup job that targets - this Dataset. This is mainly used as a lock to prevent concurrent - DataBackup jobs. - type: string - dataLoadRef: - description: DataLoadRef specifies the running DataLoad job that targets - this Dataset. This is mainly used as a lock to prevent concurrent - DataLoad jobs. - type: string - fileNum: - description: FileNum represents the file numbers of the dataset - type: string - hcfs: - description: HCFSStatus represents hcfs info + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Conditions is an array of current observed conditions. + items: + description: Condition describes the state of the cache at a certain point. properties: - endpoint: - description: Endpoint for accessing + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + lastUpdateTime: + description: The last time this condition was updated. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. type: string - underlayerFileSystemVersion: - description: Underlayer HCFS Compatible Version + type: + description: Type of cache condition. type: string + required: + - status + - type type: object - mounts: - description: the info of mount points have been mounted - items: - description: Mount describes a mounting.
Refer to Alluxio - Storage Integrations for more info - properties: - encryptOptions: - description: The secret information - items: - properties: - name: - description: The name of encryptOption - type: string - valueFrom: - description: The valueFrom of encryptOption - properties: - secretKeyRef: - description: The encryptInfo obtained from secret - properties: - key: - description: The required key in the secret - type: string - name: - description: The name of required secret - type: string - type: object - type: object - type: object - type: array - mountPoint: - description: MountPoint is the mount point of source. - minLength: 10 - type: string - name: - description: The name of mount - minLength: 0 - type: string - options: - additionalProperties: - type: string - description: The Mount Options.
Refer to Mount - Options.
The option has Prefix 'fs.' And you can - Learn more from The - Storage Integrations + type: array + dataBackupRef: + description: DataBackupRef specifies the running Backup job that targets this Dataset. This is mainly used as a lock to prevent concurrent DataBackup jobs. + type: string + dataLoadRef: + description: DataLoadRef specifies the running DataLoad job that targets this Dataset. This is mainly used as a lock to prevent concurrent DataLoad jobs. + type: string + fileNum: + description: FileNum represents the file numbers of the dataset + type: string + hcfs: + description: HCFSStatus represents hcfs info + properties: + endpoint: + description: Endpoint for accessing + type: string + underlayerFileSystemVersion: + description: Underlayer HCFS Compatible Version + type: string + type: object + mounts: + description: the info of mount points have been mounted + items: + description: Mount describes a mounting.
Refer to Alluxio Storage Integrations for more info + properties: + encryptOptions: + description: The secret information + items: + properties: + name: + description: The name of encryptOption + type: string + valueFrom: + description: The valueFrom of encryptOption + properties: + secretKeyRef: + description: The encryptInfo obtained from secret + properties: + key: + description: The required key in the secret + type: string + name: + description: The name of required secret + type: string + type: object + type: object type: object - path: - description: The path of mount, if not set will be /{Name} - type: string - readOnly: - description: 'Optional: Defaults to false (read-write).' - type: boolean - shared: - description: 'Optional: Defaults to false (shared).' - type: boolean - type: object - type: array - phase: - description: 'Dataset Phase. One of the four phases: `Pending`, `Bound`, - `NotBound` and `Failed`' - type: string - runtimes: - description: Runtimes for supporting dataset - items: - description: Runtime describes a runtime to be used to support dataset - properties: - category: - description: Category the runtime object belongs to (e.g. Accelerate) - type: string - masterReplicas: - description: Runtime master replicas - format: int32 - type: integer - name: - description: Name of the runtime object - type: string - namespace: - description: Namespace of the runtime object - type: string - type: - description: Runtime object's type (e.g. Alluxio) + type: array + mountPoint: + description: MountPoint is the mount point of source. + minLength: 10 + type: string + name: + description: The name of mount + minLength: 0 + type: string + options: + additionalProperties: type: string - type: object - type: array - ufsTotal: - description: Total in GB of dataset in the cluster - type: string - required: - - conditions - type: object - type: object + description: The Mount Options.
Refer to Mount Options.
The option has Prefix 'fs.' And you can Learn more from The Storage Integrations + type: object + path: + description: The path of mount, if not set will be /{Name} + type: string + readOnly: + description: 'Optional: Defaults to false (read-write).' + type: boolean + shared: + description: 'Optional: Defaults to false (shared).' + type: boolean + type: object + type: array + phase: + description: 'Dataset Phase. One of the four phases: `Pending`, `Bound`, `NotBound` and `Failed`' + type: string + runtimes: + description: Runtimes for supporting dataset + items: + description: Runtime describes a runtime to be used to support dataset + properties: + category: + description: Category the runtime object belongs to (e.g. Accelerate) + type: string + masterReplicas: + description: Runtime master replicas + format: int32 + type: integer + name: + description: Name of the runtime object + type: string + namespace: + description: Namespace of the runtime object + type: string + type: + description: Runtime object's type (e.g. Alluxio) + type: string + type: object + type: array + ufsTotal: + description: Total in GB of dataset in the cluster + type: string + required: + - conditions + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_goosefsruntimes.yaml b/charts/fluid/fluid/crds/data.fluid.io_goosefsruntimes.yaml index 54a430ff5c7..e21ef423020 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_goosefsruntimes.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_goosefsruntimes.yaml @@ -1,13 +1,54 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: goosefsruntimes.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - JSONPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - JSONPath: .status.masterPhase + name: Master Phase + type: string + - JSONPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - JSONPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - JSONPath: .status.workerPhase + name: Worker Phase + type: string + - JSONPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - JSONPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - JSONPath: .status.fusePhase + name: Fuse Phase + type: string + - JSONPath: .status.apiGateway.endpoint + name: API Gateway + priority: 10 + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,885 +60,716 @@ spec: - goose singular: goosefsruntime scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - jsonPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - jsonPath: .status.masterPhase - name: Master Phase - type: string - - jsonPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - jsonPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - jsonPath: .status.workerPhase - name: Worker Phase - type: string - - jsonPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - jsonPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - jsonPath: .status.fusePhase - name: Fuse Phase - type: string - - jsonPath: .status.apiGateway.endpoint - name: API Gateway - priority: 10 - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: GooseFSRuntime is the Schema for the goosefsruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: GooseFSRuntimeSpec defines the desired state of GooseFSRuntime - properties: - apiGateway: - description: The component spec of GooseFS API Gateway - properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - data: - description: Management strategies for the dataset to which the runtime - is bound - properties: - pin: - description: Pin the dataset or not. Refer to Alluxio - User-CLI pin - type: boolean - replicas: - description: The copies of the dataset - format: int32 + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} + validation: + openAPIV3Schema: + description: GooseFSRuntime is the Schema for the goosefsruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: GooseFSRuntimeSpec defines the desired state of GooseFSRuntime + properties: + apiGateway: + description: The component spec of GooseFS API Gateway + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - type: object - disablePrometheus: - description: Disable monitoring for GooseFS Runtime Prometheus is - enabled by default - type: boolean - fuse: - description: The component spec of GooseFS Fuse + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - args: - description: Arguments that will be passed to GooseFS Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean GooseFS Fuse pods. - Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted - OnDemand cleans fuse pod once th fuse pod on some node is not - needed OnRuntimeDeleted cleans fuse pod only when the cache - runtime is deleted Defaults to OnRuntimeDeleted' - type: string - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, - otherwise the affinity should be considered - type: boolean - image: - description: Image for GooseFS Fuse(e.g. goosefs/goosefs-fuse) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image Tag for GooseFS Fuse(e.g. v1.0.1) - type: string - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the fuse client to fit on a node, this option only effect when - global is enabled - type: object + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - resources: - description: Resources that will be requested by GooseFS Fuse. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - goosefsVersion: - description: The version information that instructs fluid to orchestrate - a particular version of GooseFS. - properties: - image: - description: Image (e.g. alluxio/alluxio) + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + data: + description: Management strategies for the dataset to which the runtime is bound + properties: + pin: + description: Pin the dataset or not. Refer to Alluxio User-CLI pin + type: boolean + replicas: + description: The copies of the dataset + format: int32 + type: integer + type: object + disablePrometheus: + description: Disable monitoring for GooseFS Runtime Prometheus is enabled by default + type: boolean + fuse: + description: The component spec of GooseFS Fuse + properties: + annotations: + additionalProperties: type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + args: + description: Arguments that will be passed to GooseFS Fuse + items: type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean GooseFS Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' + type: string + env: + additionalProperties: type: string - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations - when using HDFS as GooseFS's UFS. The configMap must be in the same - namespace with the GooseFSRuntime. The configMap should contain - user-specific HDFS conf files in it. For now, only "hdfs-site.xml" - and "core-site.xml" are supported. It must take the filename of - the conf file as the key and content of the file as the value. - type: string - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by initialize - the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User - init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. - 2.3.0-SNAPSHOT) - type: string - resources: - description: Resources that will be requested by initialize the - users for runtime.

Resources are not allowed for ephemeral - containers. Ephemeral containers use spare resources already - allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobMaster: - description: The component spec of GooseFS job master + description: Environment variables that will be used by GooseFS Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered + type: boolean + image: + description: Image for GooseFS Fuse(e.g. goosefs/goosefs-fuse) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for GooseFS Fuse(e.g. v1.0.1) + type: string + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + resources: + description: Resources that will be requested by GooseFS Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of GooseFS job Worker - properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + goosefsVersion: + description: The version information that instructs fluid to orchestrate a particular version of GooseFS. + properties: + image: + description: Image (e.g. alluxio/alluxio) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: string + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations when using HDFS as GooseFS's UFS. The configMap must be in the same namespace with the GooseFSRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. + type: string + initUsers: + description: The spec of init users + properties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by initialize the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobMaster: + description: The component spec of GooseFS job master + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: type: integer - resources: - description: Resources that will be requested by the GooseFS component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - master: - description: The component spec of GooseFS master + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobWorker: + description: The component spec of GooseFS job Worker properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
- Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run GooseFS Runtime GooseFS support - POSIX-ACL and Apache Ranger to manager authorization TODO(chrisydxie@tencent.com) - Support Apache Ranger. - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + annotations: + additionalProperties: type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by GooseFS + description: Environment variables that will be used by GooseFS component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
- Refer to Configuring - Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three - types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple - paths are supported. Multiple paths should be separated - with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please - note that if there're multiple paths used for this tierstore, - the quota will be equally divided into these paths. If - you'd like to set quota for each, path, see QuotaList - for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple - paths. Quotas should be separated with comma. Quotas in - this list will be set to paths with the same order in - Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" - and QuotaList set to "100Gi, 50Gi", then we get 100GiB - cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". - Also note that num of quotas must be consistent with the - num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - type: object - worker: - description: The component spec of GooseFS worker + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + master: + description: The component spec of GooseFS master + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, - only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS - component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component. -
Refer to GOOSEFS - Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run GooseFS Runtime GooseFS support POSIX-ACL and Apache Ranger to manager authorization TODO(chrisydxie@tencent.com) Support Apache Ranger. + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime + type: string + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + tieredstore: + description: Tiered storage used by GooseFS + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status + type: array + type: object + worker: + description: The component spec of GooseFS worker + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - endpoint: - description: Endpoint for accessing + additionalProperties: type: string - type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc - runtime's current state. - items: - description: Condition describes the state of the cache at a certain - point. + description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type - type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime - Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime - worker pod (including nodes correctly running the runtime worker - pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the - runtime Fuse pod (including nodes correctly running the runtime - Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the - runtime worker pod (including nodes correctly running the runtime - worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime - fuse pod and have none of the runtime fuse pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have zero or more of the runtime master pod running - and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the - runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime - worker pod and have none of the runtime worker pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing + type: string + type: object + cacheStates: + additionalProperties: type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc runtime's current state. + items: + description: Condition describes the state of the cache at a certain point. + properties: + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_jindoruntimes.yaml b/charts/fluid/fluid/crds/data.fluid.io_jindoruntimes.yaml index dcf2ef2c7e7..9b4cea2b59a 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_jindoruntimes.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_jindoruntimes.yaml @@ -1,13 +1,50 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: jindoruntimes.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - JSONPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - JSONPath: .status.masterPhase + name: Master Phase + type: string + - JSONPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - JSONPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - JSONPath: .status.workerPhase + name: Worker Phase + type: string + - JSONPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - JSONPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - JSONPath: .status.fusePhase + name: Fuse Phase + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,715 +56,530 @@ spec: - jindo singular: jindoruntime scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - jsonPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - jsonPath: .status.masterPhase - name: Master Phase - type: string - - jsonPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - jsonPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - jsonPath: .status.workerPhase - name: Worker Phase - type: string - - jsonPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - jsonPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - jsonPath: .status.fusePhase - name: Fuse Phase - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: JindoRuntime is the Schema for the jindoruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: JindoRuntimeSpec defines the desired state of JindoRuntime - properties: - fuse: - description: The component spec of Jindo Fuse - properties: - args: - description: Arguments that will be passed to Jindo Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean JindoFS Fuse pods. - Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted - OnDemand cleans fuse pod once th fuse pod on some node is not - needed OnRuntimeDeleted cleans fuse pod only when the cache - runtime is deleted Defaults to OnRuntimeDeleted' + subresources: + scale: + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} + validation: + openAPIV3Schema: + description: JindoRuntime is the Schema for the jindoruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: JindoRuntimeSpec defines the desired state of JindoRuntime + properties: + fuse: + description: The component spec of Jindo Fuse + properties: + args: + description: Arguments that will be passed to Jindo Fuse + items: type: string - env: - additionalProperties: - type: string - description: Environment variables that will be used by Jindo - Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, - otherwise the affinity should be considered - type: boolean - image: - description: Image for Jindo Fuse(e.g. jindo/jindo-fuse) + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean JindoFS Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' + type: string + env: + additionalProperties: type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' + description: Environment variables that will be used by Jindo Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered + type: boolean + image: + description: Image for Jindo Fuse(e.g. jindo/jindo-fuse) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for Jindo Fuse(e.g. 2.3.0-SNAPSHOT) + type: string + labels: + additionalProperties: type: string - imageTag: - description: Image Tag for Jindo Fuse(e.g. 2.3.0-SNAPSHOT) + description: Labels will be added on all the JindoFS Fuse pods. Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: type: string - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS Fuse pods. - Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the fuse client to fit on a node, this option only effect when - global is enabled - type: object + description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for Jindo System.
+ type: object + resources: + description: Resources that will be requested by Jindo Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for Jindo System.
- type: object - resources: - description: Resources that will be requested by Jindo Fuse.
-
Resources are not allowed for ephemeral containers. Ephemeral - containers use spare resources already allocated to the pod. + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + effect: + description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. + type: string type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using - the matching operator . - properties: - effect: - description: Effect indicates the taint effect to match. - Empty means match all taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match - all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to - the value. Valid operators are Exists and Equal. Defaults - to Equal. Exists is equivalent to wildcard for value, - so that a pod can tolerate all taints of a particular - category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of - time the toleration (which must be of effect NoExecute, - otherwise this field is ignored) tolerates the taint. - By default, it is not set, which means tolerate the taint - forever (do not evict). Zero and negative values will - be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. - type: string - type: object - type: array - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations - when using HDFS as Jindo's UFS. The configMap must be in the same - namespace with the JindoRuntime. The configMap should contain user-specific - HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" - are supported. It must take the filename of the conf file as the - key and content of the file as the value. + type: array + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations when using HDFS as Jindo's UFS. The configMap must be in the same namespace with the JindoRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. + type: string + jindoVersion: + description: The version information that instructs fluid to orchestrate a particular version of Jindo. + properties: + image: + description: Image (e.g. alluxio/alluxio) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: string + type: object + labels: + additionalProperties: type: string - jindoVersion: - description: The version information that instructs fluid to orchestrate - a particular version of Jindo. - properties: - image: - description: Image (e.g. alluxio/alluxio) + description: Labels will be added on all the JindoFS pods. + type: object + logConfig: + additionalProperties: + type: string + type: object + master: + description: The component spec of Jindo master + properties: + env: + additionalProperties: type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' + description: Environment variables that will be used by Jindo component.
+ type: object + labels: + additionalProperties: type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) + description: Labels will be added on all the JindoFS Master or Worker pods. Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: type: string - type: object - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS pods. - type: object - logConfig: - additionalProperties: - type: string - type: object - master: - description: The component spec of Jindo master + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + type: object properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by Jindo - component.
- type: object - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS Master or - Worker pods. Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - type: object + additionalProperties: + type: string + description: Configurable properties for the Jindo component.
+ type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the Jindo component. -
- type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Jindo component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + effect: + description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. + type: string type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using - the matching operator . - properties: - effect: - description: Effect indicates the taint effect to match. - Empty means match all taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match - all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to - the value. Valid operators are Exists and Equal. Defaults - to Equal. Exists is equivalent to wildcard for value, - so that a pod can tolerate all taints of a particular - category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of - time the toleration (which must be of effect NoExecute, - otherwise this field is ignored) tolerates the taint. - By default, it is not set, which means tolerate the taint - forever (do not evict). Zero and negative values will - be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. - type: string - type: object - type: array - type: object - networkmode: - description: Whether to use hostnetwork or not - enum: - - HostNetwork - - "" - - ContainerNetwork + type: array + type: object + networkmode: + description: Whether to use hostnetwork or not + enum: + - HostNetwork + - "" + - ContainerNetwork + type: string + properties: + additionalProperties: type: string + description: Configurable properties for Jindo system.
+ type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Jindo Runtime properties: - additionalProperties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - description: Configurable properties for Jindo system.
- type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Jindo Runtime - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + secret: + type: string + tieredstore: + description: Tiered storage used by Jindo + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype + type: object + type: array + type: object + user: + type: string + worker: + description: The component spec of Jindo worker + properties: + env: + additionalProperties: type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime + description: Environment variables that will be used by Jindo component.
+ type: object + labels: + additionalProperties: type: string - required: - - gid - - group - - uid - - user - type: object - secret: - type: string - tieredstore: - description: Tiered storage used by Jindo - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
- Refer to Configuring - Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three - types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple - paths are supported. Multiple paths should be separated - with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please - note that if there're multiple paths used for this tierstore, - the quota will be equally divided into these paths. If - you'd like to set quota for each, path, see QuotaList - for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple - paths. Quotas should be separated with comma. Quotas in - this list will be set to paths with the same order in - Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" - and QuotaList set to "100Gi, 50Gi", then we get 100GiB - cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". - Also note that num of quotas must be consistent with the - num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype - type: object - type: array - type: object - user: - type: string - worker: - description: The component spec of Jindo worker + description: Labels will be added on all the JindoFS Master or Worker pods. Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + type: object properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by Jindo - component.
- type: object - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS Master or - Worker pods. Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - type: object + additionalProperties: + type: string + description: Configurable properties for the Jindo component.
+ type: object + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. properties: - additionalProperties: - type: string - description: Configurable properties for the Jindo component. -
- type: object - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Jindo component. -

Resources are not allowed for ephemeral containers. - Ephemeral containers use spare resources already allocated to - the pod. + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + effect: + description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. + type: string type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using - the matching operator . - properties: - effect: - description: Effect indicates the taint effect to match. - Empty means match all taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match - all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to - the value. Valid operators are Exists and Equal. Defaults - to Equal. Exists is equivalent to wildcard for value, - so that a pod can tolerate all taints of a particular - category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of - time the toleration (which must be of effect NoExecute, - otherwise this field is ignored) tolerates the taint. - By default, it is not set, which means tolerate the taint - forever (do not evict). Zero and negative values will - be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. - type: string - type: object - type: array - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status + type: array + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing + type: string + type: object + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc runtime's current state. + items: + description: Condition describes the state of the cache at a certain point. properties: - endpoint: - description: Endpoint for accessing + lastProbeTime: + description: The last time this condition was updated. + format: date-time type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc - runtime's current state. - items: - description: Condition describes the state of the cache at a certain - point. - properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type - type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime - Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime - worker pod (including nodes correctly running the runtime worker - pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the - runtime Fuse pod (including nodes correctly running the runtime - Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the - runtime worker pod (including nodes correctly running the runtime - worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime - fuse pod and have none of the runtime fuse pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have zero or more of the runtime master pod running - and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the - runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime - worker pod and have none of the runtime worker pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition - type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - scale: - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_juicefsruntimes.yaml b/charts/fluid/fluid/crds/data.fluid.io_juicefsruntimes.yaml index 15a0199994f..f62c1c7a267 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_juicefsruntimes.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_juicefsruntimes.yaml @@ -1,13 +1,39 @@ --- -apiVersion: apiextensions.k8s.io/v1 +apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.7.0 + controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: juicefsruntimes.data.fluid.io spec: + additionalPrinterColumns: + - JSONPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - JSONPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - JSONPath: .status.workerPhase + name: Worker Phase + type: string + - JSONPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - JSONPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - JSONPath: .status.fusePhase + name: Fuse Phase + type: string + - JSONPath: .metadata.creationTimestamp + name: Age + type: date group: data.fluid.io names: categories: @@ -19,1132 +45,862 @@ spec: - juicefs singular: juicefsruntime scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - jsonPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - jsonPath: .status.workerPhase - name: Worker Phase - type: string - - jsonPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - jsonPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - jsonPath: .status.fusePhase - name: Fuse Phase - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: JuiceFSRuntime is the Schema for the juicefsruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: JuiceFSRuntimeSpec defines the desired state of JuiceFSRuntime - properties: - disablePrometheus: - description: Disable monitoring for JuiceFS Runtime Prometheus is - enabled by default - type: boolean - fuse: - description: Desired state for JuiceFS Fuse - properties: - cleanPolicy: - description: 'CleanPolicy decides when to clean Juicefs Fuse pods. - Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted - OnDemand cleans fuse pod once th fuse pod on some node is not - needed OnRuntimeDeleted cleans fuse pod only when the cache - runtime is deleted Defaults to OnDemand' - type: string - env: - description: Environment variables that will be used by JuiceFS - Fuse - items: - description: EnvVar represents an environment variable present - in a Container. - properties: - name: - description: Name of the environment variable. Must be a - C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded - using the previous defined environment variables in the - container and any service environment variables. If a - variable cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax can be - escaped with a double $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only - resources limits and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, requests.memory - and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - global: - description: If the fuse client should be deployed in global mode, - otherwise the affinity should be considered - type: boolean - image: - description: Image for JuiceFS fuse - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image for JuiceFS fuse - type: string - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for - the fuse client to fit on a node, this option only effect when - global is enabled - type: object - resources: - description: Resources that will be requested by JuiceFS Fuse. + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} + validation: + openAPIV3Schema: + description: JuiceFSRuntime is the Schema for the juicefsruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: JuiceFSRuntimeSpec defines the desired state of JuiceFSRuntime + properties: + disablePrometheus: + description: Disable monitoring for JuiceFS Runtime Prometheus is enabled by default + type: boolean + fuse: + description: Desired state for JuiceFS Fuse + properties: + cleanPolicy: + description: 'CleanPolicy decides when to clean Juicefs Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnDemand' + type: string + env: + description: Environment variables that will be used by JuiceFS Fuse + items: + description: EnvVar represents an environment variable present in a Container. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object type: object + required: + - name type: object - type: object - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by initialize - the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User - init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' + type: array + global: + description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered + type: boolean + image: + description: Image for JuiceFS fuse + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image for JuiceFS fuse + type: string + nodeSelector: + additionalProperties: type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. - 2.3.0-SNAPSHOT) + description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled + type: object + resources: + description: Resources that will be requested by JuiceFS Fuse. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + initUsers: + description: The spec of init users + properties: + env: + additionalProperties: type: string - resources: - description: Resources that will be requested by initialize the - users for runtime.

Resources are not allowed for ephemeral - containers. Ephemeral containers use spare resources already - allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of JuiceFS job Worker - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS - component. - items: - description: EnvVar represents an environment variable present - in a Container. - properties: - name: - description: Name of the environment variable. Must be a - C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded - using the previous defined environment variables in the - container and any service environment variables. If a - variable cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax can be - escaped with a double $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only - resources limits and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, requests.memory - and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name + description: Environment variables that will be used by initialize the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector - type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single - container. - properties: - containerPort: - description: Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, - this must be a valid port number, 0 < x < 65536. If HostNetwork - is specified, this must match ContainerPort. Most containers - do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME - and unique within the pod. Each named port in a pod must - have a unique name. Name for the port that can be referred - to by services. - type: string - protocol: - default: TCP - description: Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. + type: object + type: object + jobWorker: + description: The component spec of JuiceFS job Worker + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS component. + items: + description: EnvVar represents an environment variable present in a Container. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object type: object + required: + - name type: object - type: object - juicefsVersion: - description: The version information that instructs fluid to orchestrate - a particular version of JuiceFS. - properties: - image: - description: Image (e.g. alluxio/alluxio) + type: array + nodeSelector: + additionalProperties: type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, - `Never`' - type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) - type: string - type: object - master: - description: The component spec of JuiceFS master - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS - component. - items: - description: EnvVar represents an environment variable present - in a Container. - properties: - name: - description: Name of the environment variable. Must be a - C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded - using the previous defined environment variables in the - container and any service environment variables. If a - variable cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax can be - escaped with a double $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only - resources limits and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, requests.memory - and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector + description: NodeSelector is a selector + type: object + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. + type: string + protocol: + description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". + type: string + required: + - containerPort type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single - container. - properties: - containerPort: - description: Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, - this must be a valid port number, 0 < x < 65536. If HostNetwork - is specified, this must match ContainerPort. Most containers - do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME - and unique within the pod. Each named port in a pod must - have a unique name. Name for the port that can be referred - to by services. - type: string - protocol: - default: TCP - description: Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort + type: array + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. + type: object + type: object + juicefsVersion: + description: The version information that instructs fluid to orchestrate a particular version of JuiceFS. + properties: + image: + description: Image (e.g. alluxio/alluxio) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' + type: string + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: string + type: object + master: + description: The component spec of JuiceFS master + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS component. + items: + description: EnvVar represents an environment variable present in a Container. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object type: object + required: + - name type: object - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Juicefs Runtime - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + type: array + nodeSelector: + additionalProperties: type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by JuiceFS - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
- Refer to Configuring - Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three - types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple - paths are supported. Multiple paths should be separated - with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please - note that if there're multiple paths used for this tierstore, - the quota will be equally divided into these paths. If - you'd like to set quota for each, path, see QuotaList - for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple - paths. Quotas should be separated with comma. Quotas in - this list will be set to paths with the same order in - Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" - and QuotaList set to "100Gi, 50Gi", then we get 100GiB - cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". - Also note that num of quotas must be consistent with the - num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype + description: NodeSelector is a selector + type: object + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. + type: string + protocol: + description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - type: object - worker: - description: The component spec of JuiceFS worker - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS - component. - items: - description: EnvVar represents an environment variable present - in a Container. - properties: - name: - description: Name of the environment variable. Must be a - C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded - using the previous defined environment variables in the - container and any service environment variables. If a - variable cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax can be - escaped with a double $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only - resources limits and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, requests.memory - and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector + type: object + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Juicefs Runtime + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime + type: string + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + tieredstore: + description: Tiered storage used by JuiceFS + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single - container. - properties: - containerPort: - description: Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, - this must be a valid port number, 0 < x < 65536. If HostNetwork - is specified, this must match ContainerPort. Most containers - do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME - and unique within the pod. Each named port in a pod must - have a unique name. Name for the port that can be referred - to by services. - type: string - protocol: - default: TCP - description: Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort - type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the - given template. If unspecified, defaults to 1. replicas is the - min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. + type: array + type: object + worker: + description: The component spec of JuiceFS worker + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS component. + items: + description: EnvVar represents an environment variable present in a Container. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object type: object + required: + - name type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status - properties: - endpoint: - description: Endpoint for accessing + type: array + nodeSelector: + additionalProperties: type: string - type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc - runtime's current state. - items: - description: Condition describes the state of the cache at a certain - point. + description: NodeSelector is a selector + type: object + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. + type: string + protocol: + description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + replicas: + description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime - Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime - worker pod (including nodes correctly running the runtime worker - pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the - runtime Fuse pod (including nodes correctly running the runtime - Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the - runtime pod (including nodes correctly running the runtime master - pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the - runtime worker pod (including nodes correctly running the runtime - worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime - Fuse pod and have one or more of the runtime Fuse pod running and - ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime - fuse pod and have none of the runtime fuse pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have zero or more of the runtime master pod running - and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - mountTime: - description: MountTime represents time last mount happened if Mounttime - is early than master starting time, remount will be required - format: date-time - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the - runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime - worker pod and have one or more of the runtime worker pod running - and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime - worker pod and have none of the runtime worker pod running and available - (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing + type: string + type: object + cacheStates: + additionalProperties: type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc runtime's current state. + items: + description: Condition describes the state of the cache at a certain point. + properties: + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 served: true storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} status: acceptedNames: kind: "" From 67f43c10796a0c280b6422fca568a95bad768850 Mon Sep 17 00:00:00 2001 From: nizifan Date: Thu, 7 Apr 2022 11:46:24 +0800 Subject: [PATCH 4/4] Rebuild&generate crd using controller-gen v0.7.0, and add a nil check Signed-off-by: nizifan --- .../crds/data.fluid.io_alluxioruntimes.yaml | 1549 +++++++------ .../fluid/crds/data.fluid.io_databackups.yaml | 252 ++- .../fluid/crds/data.fluid.io_dataloads.yaml | 234 +- .../fluid/crds/data.fluid.io_datasets.yaml | 814 +++---- .../crds/data.fluid.io_goosefsruntimes.yaml | 1635 ++++++++------ .../crds/data.fluid.io_jindoruntimes.yaml | 1221 +++++----- .../crds/data.fluid.io_juicefsruntimes.yaml | 1954 +++++++++-------- .../bases/data.fluid.io_alluxioruntimes.yaml | 1549 +++++++------ .../crd/bases/data.fluid.io_databackups.yaml | 252 ++- config/crd/bases/data.fluid.io_dataloads.yaml | 234 +- config/crd/bases/data.fluid.io_datasets.yaml | 814 +++---- .../bases/data.fluid.io_goosefsruntimes.yaml | 1635 ++++++++------ .../bases/data.fluid.io_jindoruntimes.yaml | 1221 +++++----- .../bases/data.fluid.io_juicefsruntimes.yaml | 1954 +++++++++-------- pkg/ddc/alluxio/ufs.go | 2 +- 15 files changed, 8495 insertions(+), 6825 deletions(-) diff --git a/charts/fluid/fluid/crds/data.fluid.io_alluxioruntimes.yaml b/charts/fluid/fluid/crds/data.fluid.io_alluxioruntimes.yaml index 7e6c5c42e61..d36776efd0e 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_alluxioruntimes.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_alluxioruntimes.yaml @@ -1,54 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: alluxioruntimes.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - JSONPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - JSONPath: .status.masterPhase - name: Master Phase - type: string - - JSONPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - JSONPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - JSONPath: .status.workerPhase - name: Worker Phase - type: string - - JSONPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - JSONPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - JSONPath: .status.fusePhase - name: Fuse Phase - type: string - - JSONPath: .status.apiGateway.endpoint - name: API Gateway - priority: 10 - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -60,686 +19,888 @@ spec: - alluxio singular: alluxioruntime scope: Namespaced - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} - validation: - openAPIV3Schema: - description: AlluxioRuntime is the Schema for the alluxioruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: AlluxioRuntimeSpec defines the desired state of AlluxioRuntime - properties: - alluxioVersion: - description: The version information that instructs fluid to orchestrate a particular version of Alluxio. - properties: - image: - description: Image (e.g. alluxio/alluxio) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) - type: string - type: object - apiGateway: - description: The component spec of Alluxio API Gateway - properties: - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + versions: + - additionalPrinterColumns: + - jsonPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - jsonPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - jsonPath: .status.masterPhase + name: Master Phase + type: string + - jsonPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - jsonPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - jsonPath: .status.workerPhase + name: Worker Phase + type: string + - jsonPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - jsonPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - jsonPath: .status.fusePhase + name: Fuse Phase + type: string + - jsonPath: .status.apiGateway.endpoint + name: API Gateway + priority: 10 + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: AlluxioRuntime is the Schema for the alluxioruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: AlluxioRuntimeSpec defines the desired state of AlluxioRuntime + properties: + alluxioVersion: + description: The version information that instructs fluid to orchestrate + a particular version of Alluxio. properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - data: - description: Management strategies for the dataset to which the runtime is bound - properties: - pin: - description: Pin the dataset or not. Refer to Alluxio User-CLI pin - type: boolean - replicas: - description: The copies of the dataset - format: int32 - type: integer - type: object - disablePrometheus: - description: Disable monitoring for Alluxio Runtime Prometheus is enabled by default - type: boolean - fuse: - description: The component spec of Alluxio Fuse - properties: - args: - description: Arguments that will be passed to Alluxio Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean Alluxio Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' - type: string - env: - additionalProperties: + image: + description: Image (e.g. alluxio/alluxio) type: string - description: Environment variables that will be used by Alluxio Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered - type: boolean - image: - description: Image for Alluxio Fuse(e.g. alluxio/alluxio-fuse) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for Alluxio Fuse(e.g. 2.3.0-SNAPSHOT) - type: string - jvmOptions: - description: Options for JVM - items: + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' type: string - type: array - nodeSelector: - additionalProperties: + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) type: string - description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled - type: object + type: object + apiGateway: + description: The component spec of Alluxio API Gateway properties: - additionalProperties: - type: string - description: Configurable properties for Alluxio System.
Refer to Alluxio Configuration Properties for more info - type: object - resources: - description: Resources that will be requested by Alluxio Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations when using HDFS as Alluxio's UFS. The configMap must be in the same namespace with the AlluxioRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. - type: string - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by initialize the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) - type: string - resources: - description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobMaster: - description: The component spec of Alluxio job master - properties: - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + additionalProperties: + type: string + description: Configurable properties for the Alluxio component. +
Refer to Alluxio + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + resources: + description: Resources that will be requested by the Alluxio component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + data: + description: Management strategies for the dataset to which the runtime + is bound properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of Alluxio job Worker - properties: - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + pin: + description: Pin the dataset or not. Refer to Alluxio + User-CLI pin + type: boolean + replicas: + description: The copies of the dataset + format: int32 type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + type: object + disablePrometheus: + description: Disable monitoring for Alluxio Runtime Prometheus is + enabled by default + type: boolean + fuse: + description: The component spec of Alluxio Fuse properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + args: + description: Arguments that will be passed to Alluxio Fuse + items: + type: string + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean Alluxio Fuse pods. + Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted + OnDemand cleans fuse pod once th fuse pod on some node is not + needed OnRuntimeDeleted cleans fuse pod only when the cache + runtime is deleted Defaults to OnRuntimeDeleted' + type: string + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, + otherwise the affinity should be considered + type: boolean + image: + description: Image for Alluxio Fuse(e.g. alluxio/alluxio-fuse) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image Tag for Alluxio Fuse(e.g. 2.3.0-SNAPSHOT) + type: string + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the fuse client to fit on a node, this option only effect when + global is enabled + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jvmOptions: - description: Options for JVM - items: + additionalProperties: + type: string + description: Configurable properties for Alluxio System.
+ Refer to Alluxio + Configuration Properties for more info + type: object + resources: + description: Resources that will be requested by Alluxio Fuse. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations + when using HDFS as Alluxio's UFS. The configMap must be in the same + namespace with the AlluxioRuntime. The configMap should contain + user-specific HDFS conf files in it. For now, only "hdfs-site.xml" + and "core-site.xml" are supported. It must take the filename of + the conf file as the key and content of the file as the value. type: string - type: array - master: - description: The component spec of Alluxio master - properties: - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + initUsers: + description: The spec of init users + properties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by initialize + the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User + init) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. + 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the + users for runtime.

Resources are not allowed for ephemeral + containers. Ephemeral containers use spare resources already + allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobMaster: + description: The component spec of Alluxio job master + properties: + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the Alluxio component. +
Refer to Alluxio + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + resources: + description: Resources that will be requested by the Alluxio component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobWorker: + description: The component spec of Alluxio job Worker properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for Alluxio system.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Alluxio Runtime - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime - type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime + additionalProperties: + type: string + description: Configurable properties for the Alluxio component. +
Refer to Alluxio + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jvmOptions: + description: Options for JVM + items: type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by Alluxio - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info + type: array + master: + description: The component spec of Alluxio master + properties: + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the Alluxio component. +
Refer to Alluxio + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - type: object - worker: - description: The component spec of Alluxio worker + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio component.
- type: object - jvmOptions: - description: Options for JVM - items: + additionalProperties: + type: string + description: Configurable properties for Alluxio system.
Refer + to Alluxio + Configuration Properties for more info + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Alluxio Runtime + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - type: array - nodeSelector: - additionalProperties: + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + required: + - gid + - group + - uid + - user + type: object + tieredstore: + description: Tiered storage used by Alluxio + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
+ Refer to Configuring + Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three + types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple + paths are supported. Multiple paths should be separated + with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please + note that if there're multiple paths used for this tierstore, + the quota will be equally divided into these paths. If + you'd like to set quota for each, path, see QuotaList + for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple + paths. Quotas should be separated with comma. Quotas in + this list will be set to paths with the same order in + Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" + and QuotaList set to "100Gi, 50Gi", then we get 100GiB + cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". + Also note that num of quotas must be consistent with the + num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype + type: object + type: array + type: object + worker: + description: The component spec of Alluxio worker + properties: + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the Alluxio component. +
Refer to Alluxio + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + resources: + description: Resources that will be requested by the Alluxio component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status properties: - additionalProperties: + endpoint: + description: Endpoint for accessing type: string - description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + type: object + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc + runtime's current state. + items: + description: Condition describes the state of the cache at a certain + point. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status - properties: - endpoint: - description: Endpoint for accessing - type: string - type: object - cacheStates: - additionalProperties: + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime + Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime + worker pod (including nodes correctly running the runtime worker + pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the + runtime Fuse pod (including nodes correctly running the runtime + Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the + runtime worker pod (including nodes correctly running the runtime + worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime + fuse pod and have none of the runtime fuse pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc runtime's current state. - items: - description: Condition describes the state of the cache at a certain point. - properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type - type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - mountTime: - description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required - format: date-time - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition - type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have zero or more of the runtime master pod running + and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime + is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the + runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime + worker pod and have none of the runtime worker pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object served: true storage: true + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_databackups.yaml b/charts/fluid/fluid/crds/data.fluid.io_databackups.yaml index fd519c5e44d..a6df249afbd 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_databackups.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_databackups.yaml @@ -1,32 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: databackups.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .spec.dataset - name: Dataset - type: string - - JSONPath: .status.phase - name: Phase - type: string - - JSONPath: .status.backupLocation.path - name: Path - type: string - - JSONPath: .status.backupLocation.nodeName - name: NodeName - type: string - - JSONPath: .status.duration - name: Duration - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -38,113 +19,144 @@ spec: - backup singular: databackup scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: DataBackup is the Schema for the backup API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DataBackupSpec defines the desired state of DataBackup - properties: - backupPath: - description: BackupPath defines the target path to save data of the DataBackup - type: string - dataset: - description: Dataset defines the target dataset of the DataBackup - type: string - runAs: - description: Manage the user to run Alluxio DataBackup - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime - type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - type: object - status: - description: DataBackupStatus defines the observed state of DataBackup - properties: - backupLocation: - description: BackupLocation tell user the location to save data of the DataBackup - properties: - nodeName: - description: NodeName describes the nodeName of backup if Path is in the form of local://subpath - type: string - path: - description: Path describes the path of backup, in the form of local:///absolutePath or pvc:///subpath - type: string - type: object - conditions: - description: Conditions consists of transition information on DataBackup's Phase - items: - description: Condition explains the transitions on phase + versions: + - additionalPrinterColumns: + - jsonPath: .spec.dataset + name: Dataset + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .status.backupLocation.path + name: Path + type: string + - jsonPath: .status.backupLocation.nodeName + name: NodeName + type: string + - jsonPath: .status.duration + name: Duration + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: DataBackup is the Schema for the backup API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DataBackupSpec defines the desired state of DataBackup + properties: + backupPath: + description: BackupPath defines the target path to save data of the + DataBackup + type: string + dataset: + description: Dataset defines the target dataset of the DataBackup + type: string + runAs: + description: Manage the user to run Alluxio DataBackup properties: - lastProbeTime: - description: LastProbeTime describes last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: LastTransitionTime describes last time the condition transitioned from one status to another. - format: date-time + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - message: - description: Message is a human-readable message indicating details about the transition + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime type: string - reason: - description: Reason for the condition's last transition - type: string - status: - description: Status of the condition, one of `True`, `False` or `Unknown` + required: + - gid + - group + - uid + - user + type: object + type: object + status: + description: DataBackupStatus defines the observed state of DataBackup + properties: + backupLocation: + description: BackupLocation tell user the location to save data of + the DataBackup + properties: + nodeName: + description: NodeName describes the nodeName of backup if Path + is in the form of local://subpath type: string - type: - description: Type of condition, either `Complete` or `Failed` + path: + description: Path describes the path of backup, in the form of + local:///absolutePath or pvc:///subpath type: string - required: - - status - - type type: object - type: array - duration: - description: Duration tell user how much time was spent to backup - type: string - phase: - description: Phase describes current phase of DataBackup - type: string - required: - - conditions - - duration - - phase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + conditions: + description: Conditions consists of transition information on DataBackup's + Phase + items: + description: Condition explains the transitions on phase + properties: + lastProbeTime: + description: LastProbeTime describes last time this condition + was updated. + format: date-time + type: string + lastTransitionTime: + description: LastTransitionTime describes last time the condition + transitioned from one status to another. + format: date-time + type: string + message: + description: Message is a human-readable message indicating + details about the transition + type: string + reason: + description: Reason for the condition's last transition + type: string + status: + description: Status of the condition, one of `True`, `False` + or `Unknown` + type: string + type: + description: Type of condition, either `Complete` or `Failed` + type: string + required: + - status + - type + type: object + type: array + duration: + description: Duration tell user how much time was spent to backup + type: string + phase: + description: Phase describes current phase of DataBackup + type: string + required: + - conditions + - duration + - phase + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_dataloads.yaml b/charts/fluid/fluid/crds/data.fluid.io_dataloads.yaml index 524a9d48e58..29e20e0e8df 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_dataloads.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_dataloads.yaml @@ -1,26 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: dataloads.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .spec.dataset.name - name: Dataset - type: string - - JSONPath: .status.phase - name: Phase - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - - JSONPath: .status.duration - name: Duration - type: string group: data.fluid.io names: categories: @@ -32,110 +19,133 @@ spec: - load singular: dataload scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: DataLoad is the Schema for the dataloads API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DataLoadSpec defines the desired state of DataLoad - properties: - dataset: - description: Dataset defines the target dataset of the DataLoad - properties: - name: - description: Name defines name of the target dataset - type: string - namespace: - description: Namespace defines namespace of the target dataset - type: string - required: - - name - type: object - loadMetadata: - description: LoadMetadata specifies if the dataload job should load metadata - type: boolean - options: - additionalProperties: - type: string - description: Options specifies the extra dataload properties for runtime - type: object - target: - description: Target defines target paths that needs to be loaded - items: - description: TargetPath defines the target path of the DataLoad - properties: - path: - description: Path defines path to be load - type: string - replicas: - description: Replicas defines how many replicas will be loaded - format: int32 - type: integer - required: - - path - type: object - type: array - type: object - status: - description: DataLoadStatus defines the observed state of DataLoad - properties: - conditions: - description: Conditions consists of transition information on DataLoad's Phase - items: - description: Condition explains the transitions on phase + versions: + - additionalPrinterColumns: + - jsonPath: .spec.dataset.name + name: Dataset + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.duration + name: Duration + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: DataLoad is the Schema for the dataloads API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DataLoadSpec defines the desired state of DataLoad + properties: + dataset: + description: Dataset defines the target dataset of the DataLoad properties: - lastProbeTime: - description: LastProbeTime describes last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: LastTransitionTime describes last time the condition transitioned from one status to another. - format: date-time + name: + description: Name defines name of the target dataset type: string - message: - description: Message is a human-readable message indicating details about the transition - type: string - reason: - description: Reason for the condition's last transition - type: string - status: - description: Status of the condition, one of `True`, `False` or `Unknown` - type: string - type: - description: Type of condition, either `Complete` or `Failed` + namespace: + description: Namespace defines namespace of the target dataset type: string required: - - status - - type + - name type: object - type: array - duration: - description: Duration tell user how much time was spent to load the data - type: string - phase: - description: Phase describes current phase of DataLoad - type: string - required: - - conditions - - duration - - phase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + loadMetadata: + description: LoadMetadata specifies if the dataload job should load + metadata + type: boolean + options: + additionalProperties: + type: string + description: Options specifies the extra dataload properties for runtime + type: object + target: + description: Target defines target paths that needs to be loaded + items: + description: TargetPath defines the target path of the DataLoad + properties: + path: + description: Path defines path to be load + type: string + replicas: + description: Replicas defines how many replicas will be loaded + format: int32 + type: integer + required: + - path + type: object + type: array + type: object + status: + description: DataLoadStatus defines the observed state of DataLoad + properties: + conditions: + description: Conditions consists of transition information on DataLoad's + Phase + items: + description: Condition explains the transitions on phase + properties: + lastProbeTime: + description: LastProbeTime describes last time this condition + was updated. + format: date-time + type: string + lastTransitionTime: + description: LastTransitionTime describes last time the condition + transitioned from one status to another. + format: date-time + type: string + message: + description: Message is a human-readable message indicating + details about the transition + type: string + reason: + description: Reason for the condition's last transition + type: string + status: + description: Status of the condition, one of `True`, `False` + or `Unknown` + type: string + type: + description: Type of condition, either `Complete` or `Failed` + type: string + required: + - status + - type + type: object + type: array + duration: + description: Duration tell user how much time was spent to load the + data + type: string + phase: + description: Phase describes current phase of DataLoad + type: string + required: + - conditions + - duration + - phase + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_datasets.yaml b/charts/fluid/fluid/crds/data.fluid.io_datasets.yaml index cf26fb9fc53..e2d40e6fd40 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_datasets.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_datasets.yaml @@ -1,44 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: datasets.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .status.ufsTotal - name: Ufs Total Size - type: string - - JSONPath: .status.cacheStates.cached - name: Cached - type: string - - JSONPath: .status.cacheStates.cacheCapacity - name: Cache Capacity - type: string - - JSONPath: .status.cacheStates.cachedPercentage - name: Cached Percentage - type: string - - JSONPath: .status.phase - name: Phase - type: string - - JSONPath: .status.hcfs.endpoint - name: HCFS URL - priority: 10 - type: string - - JSONPath: .status.fileNum - name: TOTAL FILES - priority: 11 - type: string - - JSONPath: .status.cacheStates.cacheHitRatio - name: CACHE HIT RATIO - priority: 10 - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -50,374 +19,479 @@ spec: - dataset singular: dataset scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: Dataset is the Schema for the datasets API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DatasetSpec defines the desired state of Dataset - properties: - accessModes: - description: AccessModes contains all ways the volume backing the PVC can be mounted - items: - type: string - type: array - dataRestoreLocation: - description: DataRestoreLocation is the location to load data of dataset been backuped - properties: - nodeName: - description: NodeName describes the nodeName of restore if Path is in the form of local://subpath - type: string - path: - description: Path describes the path of restore, in the form of local://subpath or pvc:///subpath + versions: + - additionalPrinterColumns: + - jsonPath: .status.ufsTotal + name: Ufs Total Size + type: string + - jsonPath: .status.cacheStates.cached + name: Cached + type: string + - jsonPath: .status.cacheStates.cacheCapacity + name: Cache Capacity + type: string + - jsonPath: .status.cacheStates.cachedPercentage + name: Cached Percentage + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .status.hcfs.endpoint + name: HCFS URL + priority: 10 + type: string + - jsonPath: .status.fileNum + name: TOTAL FILES + priority: 11 + type: string + - jsonPath: .status.cacheStates.cacheHitRatio + name: CACHE HIT RATIO + priority: 10 + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Dataset is the Schema for the datasets API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DatasetSpec defines the desired state of Dataset + properties: + accessModes: + description: AccessModes contains all ways the volume backing the + PVC can be mounted + items: type: string - type: object - mounts: - description: Mount Points to be mounted on Alluxio. - items: - description: Mount describes a mounting.
Refer to Alluxio Storage Integrations for more info + type: array + dataRestoreLocation: + description: DataRestoreLocation is the location to load data of dataset been + backuped properties: - encryptOptions: - description: The secret information - items: - properties: - name: - description: The name of encryptOption - type: string - valueFrom: - description: The valueFrom of encryptOption - properties: - secretKeyRef: - description: The encryptInfo obtained from secret - properties: - key: - description: The required key in the secret - type: string - name: - description: The name of required secret - type: string - type: object - type: object - type: object - type: array - mountPoint: - description: MountPoint is the mount point of source. - minLength: 10 - type: string - name: - description: The name of mount - minLength: 0 + nodeName: + description: NodeName describes the nodeName of restore if Path + is in the form of local://subpath type: string - options: - additionalProperties: - type: string - description: The Mount Options.
Refer to Mount Options.
The option has Prefix 'fs.' And you can Learn more from The Storage Integrations - type: object path: - description: The path of mount, if not set will be /{Name} + description: Path describes the path of restore, in the form of local://subpath + or pvc:///subpath type: string - readOnly: - description: 'Optional: Defaults to false (read-write).' - type: boolean - shared: - description: 'Optional: Defaults to false (shared).' - type: boolean type: object - minItems: 1 - type: array - nodeAffinity: - description: NodeAffinity defines constraints that limit what nodes this dataset can be cached to. This field influences the scheduling of pods that use the cached dataset. - properties: - required: - description: Required specifies hard node constraints that must be met. + mounts: + description: Mount Points to be mounted on Alluxio. + items: + description: Mount describes a mounting.
Refer to Alluxio + Storage Integrations for more info properties: - nodeSelectorTerms: - description: Required. A list of node selector terms. The terms are ORed. + encryptOptions: + description: The secret information items: - description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: - matchExpressions: - description: A list of node selector requirements by node's labels. - items: - description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. - properties: - key: - description: The label key that the selector applies to. - type: string - operator: - description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. - type: string - values: - description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. - items: + name: + description: The name of encryptOption + type: string + valueFrom: + description: The valueFrom of encryptOption + properties: + secretKeyRef: + description: The encryptInfo obtained from secret + properties: + key: + description: The required key in the secret type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - description: A list of node selector requirements by node's fields. - items: - description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. - properties: - key: - description: The label key that the selector applies to. - type: string - operator: - description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. - type: string - values: - description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. - items: + name: + description: The name of required secret type: string - type: array - required: - - key - - operator - type: object - type: array + type: object + type: object type: object type: array - required: - - nodeSelectorTerms + mountPoint: + description: MountPoint is the mount point of source. + minLength: 10 + type: string + name: + description: The name of mount + minLength: 0 + type: string + options: + additionalProperties: + type: string + description: The Mount Options.
Refer to Mount + Options.
The option has Prefix 'fs.' And you can + Learn more from The + Storage Integrations + type: object + path: + description: The path of mount, if not set will be /{Name} + type: string + readOnly: + description: 'Optional: Defaults to false (read-write).' + type: boolean + shared: + description: 'Optional: Defaults to false (shared).' + type: boolean type: object - type: object - owner: - description: The owner of the dataset - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime - type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - placement: - description: Manage switch for opening Multiple datasets single node deployment or not TODO(xieydd) In future, evaluate node resources and runtime resources to decide whether to turn them on - enum: - - Exclusive - - "" - - Shared - type: string - runtimes: - description: Runtimes for supporting dataset (e.g. AlluxioRuntime) - items: - description: Runtime describes a runtime to be used to support dataset + minItems: 1 + type: array + nodeAffinity: + description: NodeAffinity defines constraints that limit what nodes + this dataset can be cached to. This field influences the scheduling + of pods that use the cached dataset. properties: - category: - description: Category the runtime object belongs to (e.g. Accelerate) - type: string - masterReplicas: - description: Runtime master replicas - format: int32 - type: integer - name: - description: Name of the runtime object - type: string - namespace: - description: Namespace of the runtime object - type: string - type: - description: Runtime object's type (e.g. Alluxio) - type: string + required: + description: Required specifies hard node constraints that must + be met. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. The + terms are ORed. + items: + description: A null or empty node selector term matches + no objects. The requirements of them are ANDed. The TopologySelectorTerm + type implements a subset of the NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements by + node's labels. + items: + description: A node selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: Represents a key's relationship to + a set of values. Valid operators are In, NotIn, + Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the + operator is In or NotIn, the values array must + be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator + is Gt or Lt, the values array must have a single + element, which will be interpreted as an integer. + This array is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by + node's fields. + items: + description: A node selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: Represents a key's relationship to + a set of values. Valid operators are In, NotIn, + Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the + operator is In or NotIn, the values array must + be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator + is Gt or Lt, the values array must have a single + element, which will be interpreted as an integer. + This array is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object type: object - type: array - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . + owner: + description: The owner of the dataset properties: - effect: - description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. + gid: + description: The gid to run the alluxio runtime format: int64 type: integer - value: - description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. - type: string - type: object - type: array - type: object - status: - description: DatasetStatus defines the observed state of Dataset - properties: - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Conditions is an array of current observed conditions. - items: - description: Condition describes the state of the cache at a certain point. - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - lastUpdateTime: - description: The last time this condition was updated. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. + group: + description: The group name to run the alluxio runtime type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime type: string required: - - status - - type + - gid + - group + - uid + - user type: object - type: array - dataBackupRef: - description: DataBackupRef specifies the running Backup job that targets this Dataset. This is mainly used as a lock to prevent concurrent DataBackup jobs. - type: string - dataLoadRef: - description: DataLoadRef specifies the running DataLoad job that targets this Dataset. This is mainly used as a lock to prevent concurrent DataLoad jobs. - type: string - fileNum: - description: FileNum represents the file numbers of the dataset - type: string - hcfs: - description: HCFSStatus represents hcfs info - properties: - endpoint: - description: Endpoint for accessing - type: string - underlayerFileSystemVersion: - description: Underlayer HCFS Compatible Version - type: string - type: object - mounts: - description: the info of mount points have been mounted - items: - description: Mount describes a mounting.
Refer to Alluxio Storage Integrations for more info - properties: - encryptOptions: - description: The secret information - items: - properties: - name: - description: The name of encryptOption - type: string - valueFrom: - description: The valueFrom of encryptOption - properties: - secretKeyRef: - description: The encryptInfo obtained from secret - properties: - key: - description: The required key in the secret - type: string - name: - description: The name of required secret - type: string - type: object - type: object - type: object - type: array - mountPoint: - description: MountPoint is the mount point of source. - minLength: 10 - type: string - name: - description: The name of mount - minLength: 0 - type: string - options: - additionalProperties: + placement: + description: Manage switch for opening Multiple datasets single node + deployment or not TODO(xieydd) In future, evaluate node resources + and runtime resources to decide whether to turn them on + enum: + - Exclusive + - "" + - Shared + type: string + runtimes: + description: Runtimes for supporting dataset (e.g. AlluxioRuntime) + items: + description: Runtime describes a runtime to be used to support dataset + properties: + category: + description: Category the runtime object belongs to (e.g. Accelerate) type: string - description: The Mount Options.
Refer to Mount Options.
The option has Prefix 'fs.' And you can Learn more from The Storage Integrations - type: object - path: - description: The path of mount, if not set will be /{Name} - type: string - readOnly: - description: 'Optional: Defaults to false (read-write).' - type: boolean - shared: - description: 'Optional: Defaults to false (shared).' - type: boolean + masterReplicas: + description: Runtime master replicas + format: int32 + type: integer + name: + description: Name of the runtime object + type: string + namespace: + description: Namespace of the runtime object + type: string + type: + description: Runtime object's type (e.g. Alluxio) + type: string + type: object + type: array + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates any + taint that matches the triple using the matching + operator . + properties: + effect: + description: Effect indicates the taint effect to match. Empty + means match all taint effects. When specified, allowed values + are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies + to. Empty means match all taint keys. If the key is empty, + operator must be Exists; this combination means to match all + values and all keys. + type: string + operator: + description: Operator represents a key's relationship to the + value. Valid operators are Exists and Equal. Defaults to Equal. + Exists is equivalent to wildcard for value, so that a pod + can tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time + the toleration (which must be of effect NoExecute, otherwise + this field is ignored) tolerates the taint. By default, it + is not set, which means tolerate the taint forever (do not + evict). Zero and negative values will be treated as 0 (evict + immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches + to. If the operator is Exists, the value should be empty, + otherwise just a regular string. + type: string + type: object + type: array + type: object + status: + description: DatasetStatus defines the observed state of Dataset + properties: + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. type: object - type: array - phase: - description: 'Dataset Phase. One of the four phases: `Pending`, `Bound`, `NotBound` and `Failed`' - type: string - runtimes: - description: Runtimes for supporting dataset - items: - description: Runtime describes a runtime to be used to support dataset + conditions: + description: Conditions is an array of current observed conditions. + items: + description: Condition describes the state of the cache at a certain + point. + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + lastUpdateTime: + description: The last time this condition was updated. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + dataBackupRef: + description: DataBackupRef specifies the running Backup job that targets + this Dataset. This is mainly used as a lock to prevent concurrent + DataBackup jobs. + type: string + dataLoadRef: + description: DataLoadRef specifies the running DataLoad job that targets + this Dataset. This is mainly used as a lock to prevent concurrent + DataLoad jobs. + type: string + fileNum: + description: FileNum represents the file numbers of the dataset + type: string + hcfs: + description: HCFSStatus represents hcfs info properties: - category: - description: Category the runtime object belongs to (e.g. Accelerate) - type: string - masterReplicas: - description: Runtime master replicas - format: int32 - type: integer - name: - description: Name of the runtime object - type: string - namespace: - description: Namespace of the runtime object + endpoint: + description: Endpoint for accessing type: string - type: - description: Runtime object's type (e.g. Alluxio) + underlayerFileSystemVersion: + description: Underlayer HCFS Compatible Version type: string type: object - type: array - ufsTotal: - description: Total in GB of dataset in the cluster - type: string - required: - - conditions - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + mounts: + description: the info of mount points have been mounted + items: + description: Mount describes a mounting.
Refer to Alluxio + Storage Integrations for more info + properties: + encryptOptions: + description: The secret information + items: + properties: + name: + description: The name of encryptOption + type: string + valueFrom: + description: The valueFrom of encryptOption + properties: + secretKeyRef: + description: The encryptInfo obtained from secret + properties: + key: + description: The required key in the secret + type: string + name: + description: The name of required secret + type: string + type: object + type: object + type: object + type: array + mountPoint: + description: MountPoint is the mount point of source. + minLength: 10 + type: string + name: + description: The name of mount + minLength: 0 + type: string + options: + additionalProperties: + type: string + description: The Mount Options.
Refer to Mount + Options.
The option has Prefix 'fs.' And you can + Learn more from The + Storage Integrations + type: object + path: + description: The path of mount, if not set will be /{Name} + type: string + readOnly: + description: 'Optional: Defaults to false (read-write).' + type: boolean + shared: + description: 'Optional: Defaults to false (shared).' + type: boolean + type: object + type: array + phase: + description: 'Dataset Phase. One of the four phases: `Pending`, `Bound`, + `NotBound` and `Failed`' + type: string + runtimes: + description: Runtimes for supporting dataset + items: + description: Runtime describes a runtime to be used to support dataset + properties: + category: + description: Category the runtime object belongs to (e.g. Accelerate) + type: string + masterReplicas: + description: Runtime master replicas + format: int32 + type: integer + name: + description: Name of the runtime object + type: string + namespace: + description: Namespace of the runtime object + type: string + type: + description: Runtime object's type (e.g. Alluxio) + type: string + type: object + type: array + ufsTotal: + description: Total in GB of dataset in the cluster + type: string + required: + - conditions + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_goosefsruntimes.yaml b/charts/fluid/fluid/crds/data.fluid.io_goosefsruntimes.yaml index e21ef423020..4bd907f636b 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_goosefsruntimes.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_goosefsruntimes.yaml @@ -1,54 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: goosefsruntimes.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - JSONPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - JSONPath: .status.masterPhase - name: Master Phase - type: string - - JSONPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - JSONPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - JSONPath: .status.workerPhase - name: Worker Phase - type: string - - JSONPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - JSONPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - JSONPath: .status.fusePhase - name: Fuse Phase - type: string - - JSONPath: .status.apiGateway.endpoint - name: API Gateway - priority: 10 - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -60,716 +19,938 @@ spec: - goose singular: goosefsruntime scope: Namespaced - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} - validation: - openAPIV3Schema: - description: GooseFSRuntime is the Schema for the goosefsruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: GooseFSRuntimeSpec defines the desired state of GooseFSRuntime - properties: - apiGateway: - description: The component spec of GooseFS API Gateway - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + versions: + - additionalPrinterColumns: + - jsonPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - jsonPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - jsonPath: .status.masterPhase + name: Master Phase + type: string + - jsonPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - jsonPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - jsonPath: .status.workerPhase + name: Worker Phase + type: string + - jsonPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - jsonPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - jsonPath: .status.fusePhase + name: Fuse Phase + type: string + - jsonPath: .status.apiGateway.endpoint + name: API Gateway + priority: 10 + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: GooseFSRuntime is the Schema for the goosefsruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: GooseFSRuntimeSpec defines the desired state of GooseFSRuntime + properties: + apiGateway: + description: The component spec of GooseFS API Gateway properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - data: - description: Management strategies for the dataset to which the runtime is bound - properties: - pin: - description: Pin the dataset or not. Refer to Alluxio User-CLI pin - type: boolean - replicas: - description: The copies of the dataset - format: int32 - type: integer - type: object - disablePrometheus: - description: Disable monitoring for GooseFS Runtime Prometheus is enabled by default - type: boolean - fuse: - description: The component spec of GooseFS Fuse - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - args: - description: Arguments that will be passed to GooseFS Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean GooseFS Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' - type: string - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered - type: boolean - image: - description: Image for GooseFS Fuse(e.g. goosefs/goosefs-fuse) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for GooseFS Fuse(e.g. v1.0.1) - type: string - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled - type: object + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + data: + description: Management strategies for the dataset to which the runtime + is bound properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - resources: - description: Resources that will be requested by GooseFS Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - goosefsVersion: - description: The version information that instructs fluid to orchestrate a particular version of GooseFS. - properties: - image: - description: Image (e.g. alluxio/alluxio) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) - type: string - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations when using HDFS as GooseFS's UFS. The configMap must be in the same namespace with the GooseFSRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. - type: string - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by initialize the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) - type: string - resources: - description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobMaster: - description: The component spec of GooseFS job master - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + pin: + description: Pin the dataset or not. Refer to Alluxio + User-CLI pin + type: boolean + replicas: + description: The copies of the dataset + format: int32 type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + type: object + disablePrometheus: + description: Disable monitoring for GooseFS Runtime Prometheus is + enabled by default + type: boolean + fuse: + description: The component spec of GooseFS Fuse properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + args: + description: Arguments that will be passed to GooseFS Fuse + items: + type: string + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean GooseFS Fuse pods. + Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted + OnDemand cleans fuse pod once th fuse pod on some node is not + needed OnRuntimeDeleted cleans fuse pod only when the cache + runtime is deleted Defaults to OnRuntimeDeleted' + type: string + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, + otherwise the affinity should be considered + type: boolean + image: + description: Image for GooseFS Fuse(e.g. goosefs/goosefs-fuse) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image Tag for GooseFS Fuse(e.g. v1.0.1) + type: string + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the fuse client to fit on a node, this option only effect when + global is enabled + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of GooseFS job Worker - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + resources: + description: Resources that will be requested by GooseFS Fuse. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + goosefsVersion: + description: The version information that instructs fluid to orchestrate + a particular version of GooseFS. + properties: + image: + description: Image (e.g. alluxio/alluxio) type: string - description: Environment variables that will be used by GooseFS component.
- type: object - jvmOptions: - description: Options for JVM - items: + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' type: string - type: array - nodeSelector: - additionalProperties: + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations + when using HDFS as GooseFS's UFS. The configMap must be in the same + namespace with the GooseFSRuntime. The configMap should contain + user-specific HDFS conf files in it. For now, only "hdfs-site.xml" + and "core-site.xml" are supported. It must take the filename of + the conf file as the key and content of the file as the value. + type: string + initUsers: + description: The spec of init users properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + env: + additionalProperties: + type: string + description: Environment variables that will be used by initialize + the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User + init) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. + 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the + users for runtime.

Resources are not allowed for ephemeral + containers. Ephemeral containers use spare resources already + allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobMaster: + description: The component spec of GooseFS job master + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - master: - description: The component spec of GooseFS master - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + resources: + description: Resources that will be requested by the GooseFS component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobWorker: + description: The component spec of GooseFS job Worker properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run GooseFS Runtime GooseFS support POSIX-ACL and Apache Ranger to manager authorization TODO(chrisydxie@tencent.com) Support Apache Ranger. - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime - type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by GooseFS - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype - type: object - type: array - type: object - worker: - description: The component spec of GooseFS worker - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + resources: + description: Resources that will be requested by the GooseFS component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + master: + description: The component spec of GooseFS master properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object properties: - endpoint: - description: Endpoint for accessing + additionalProperties: type: string - type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc runtime's current state. - items: - description: Condition describes the state of the cache at a certain point. + description: Configurable properties for the GOOSEFS component.
+ Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run GooseFS Runtime GooseFS support + POSIX-ACL and Apache Ranger to manager authorization TODO(chrisydxie@tencent.com) + Support Apache Ranger. properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - type: - description: Type of cache condition. + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime type: string required: - - status - - type + - gid + - group + - uid + - user type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - mountTime: - description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required - format: date-time - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition - type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + tieredstore: + description: Tiered storage used by GooseFS + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
+ Refer to Configuring + Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three + types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple + paths are supported. Multiple paths should be separated + with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please + note that if there're multiple paths used for this tierstore, + the quota will be equally divided into these paths. If + you'd like to set quota for each, path, see QuotaList + for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple + paths. Quotas should be separated with comma. Quotas in + this list will be set to paths with the same order in + Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" + and QuotaList set to "100Gi, 50Gi", then we get 100GiB + cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". + Also note that num of quotas must be consistent with the + num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype + type: object + type: array + type: object + worker: + description: The component spec of GooseFS worker + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing + type: string + type: object + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc + runtime's current state. + items: + description: Condition describes the state of the cache at a certain + point. + properties: + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime + Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime + worker pod (including nodes correctly running the runtime worker + pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the + runtime Fuse pod (including nodes correctly running the runtime + Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the + runtime worker pod (including nodes correctly running the runtime + worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime + fuse pod and have none of the runtime fuse pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have zero or more of the runtime master pod running + and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime + is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the + runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime + worker pod and have none of the runtime worker pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object served: true storage: true + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_jindoruntimes.yaml b/charts/fluid/fluid/crds/data.fluid.io_jindoruntimes.yaml index 9b4cea2b59a..6e40518a1e5 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_jindoruntimes.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_jindoruntimes.yaml @@ -1,50 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: jindoruntimes.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - JSONPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - JSONPath: .status.masterPhase - name: Master Phase - type: string - - JSONPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - JSONPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - JSONPath: .status.workerPhase - name: Worker Phase - type: string - - JSONPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - JSONPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - JSONPath: .status.fusePhase - name: Fuse Phase - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -56,530 +19,720 @@ spec: - jindo singular: jindoruntime scope: Namespaced - subresources: - scale: - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} - validation: - openAPIV3Schema: - description: JindoRuntime is the Schema for the jindoruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: JindoRuntimeSpec defines the desired state of JindoRuntime - properties: - fuse: - description: The component spec of Jindo Fuse - properties: - args: - description: Arguments that will be passed to Jindo Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean JindoFS Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' - type: string - env: - additionalProperties: + versions: + - additionalPrinterColumns: + - jsonPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - jsonPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - jsonPath: .status.masterPhase + name: Master Phase + type: string + - jsonPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - jsonPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - jsonPath: .status.workerPhase + name: Worker Phase + type: string + - jsonPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - jsonPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - jsonPath: .status.fusePhase + name: Fuse Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: JindoRuntime is the Schema for the jindoruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: JindoRuntimeSpec defines the desired state of JindoRuntime + properties: + fuse: + description: The component spec of Jindo Fuse + properties: + args: + description: Arguments that will be passed to Jindo Fuse + items: + type: string + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean JindoFS Fuse pods. + Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted + OnDemand cleans fuse pod once th fuse pod on some node is not + needed OnRuntimeDeleted cleans fuse pod only when the cache + runtime is deleted Defaults to OnRuntimeDeleted' type: string - description: Environment variables that will be used by Jindo Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered - type: boolean - image: - description: Image for Jindo Fuse(e.g. jindo/jindo-fuse) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for Jindo Fuse(e.g. 2.3.0-SNAPSHOT) - type: string - labels: - additionalProperties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by Jindo + Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, + otherwise the affinity should be considered + type: boolean + image: + description: Image for Jindo Fuse(e.g. jindo/jindo-fuse) type: string - description: Labels will be added on all the JindoFS Fuse pods. Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' type: string - description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled - type: object - properties: - additionalProperties: + imageTag: + description: Image Tag for Jindo Fuse(e.g. 2.3.0-SNAPSHOT) type: string - description: Configurable properties for Jindo System.
- type: object - resources: - description: Resources that will be requested by Jindo Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + labels: + additionalProperties: + type: string + description: Labels will be added on all the JindoFS Fuse pods. + Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the fuse client to fit on a node, this option only effect when + global is enabled + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . + additionalProperties: + type: string + description: Configurable properties for Jindo System.
+ type: object + resources: + description: Resources that will be requested by Jindo Fuse.
+
Resources are not allowed for ephemeral containers. Ephemeral + containers use spare resources already allocated to the pod. properties: - effect: - description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. - type: string + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations when using HDFS as Jindo's UFS. The configMap must be in the same namespace with the JindoRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. - type: string - jindoVersion: - description: The version information that instructs fluid to orchestrate a particular version of Jindo. - properties: - image: - description: Image (e.g. alluxio/alluxio) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) - type: string - type: object - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS pods. - type: object - logConfig: - additionalProperties: + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple using + the matching operator . + properties: + effect: + description: Effect indicates the taint effect to match. + Empty means match all taint effects. When specified, allowed + values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies + to. Empty means match all taint keys. If the key is empty, + operator must be Exists; this combination means to match + all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to + the value. Valid operators are Exists and Equal. Defaults + to Equal. Exists is equivalent to wildcard for value, + so that a pod can tolerate all taints of a particular + category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of + time the toleration (which must be of effect NoExecute, + otherwise this field is ignored) tolerates the taint. + By default, it is not set, which means tolerate the taint + forever (do not evict). Zero and negative values will + be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches + to. If the operator is Exists, the value should be empty, + otherwise just a regular string. + type: string + type: object + type: array + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations + when using HDFS as Jindo's UFS. The configMap must be in the same + namespace with the JindoRuntime. The configMap should contain user-specific + HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" + are supported. It must take the filename of the conf file as the + key and content of the file as the value. type: string - type: object - master: - description: The component spec of Jindo master - properties: - env: - additionalProperties: + jindoVersion: + description: The version information that instructs fluid to orchestrate + a particular version of Jindo. + properties: + image: + description: Image (e.g. alluxio/alluxio) type: string - description: Environment variables that will be used by Jindo component.
- type: object - labels: - additionalProperties: + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' type: string - description: Labels will be added on all the JindoFS Master or Worker pods. Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - type: object + type: object + labels: + additionalProperties: + type: string + description: Labels will be added on all the JindoFS pods. + type: object + logConfig: + additionalProperties: + type: string + type: object + master: + description: The component spec of Jindo master properties: - additionalProperties: - type: string - description: Configurable properties for the Jindo component.
- type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + env: + additionalProperties: + type: string + description: Environment variables that will be used by Jindo + component.
+ type: object + labels: + additionalProperties: + type: string + description: Labels will be added on all the JindoFS Master or + Worker pods. Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . + additionalProperties: + type: string + description: Configurable properties for the Jindo component. +
+ type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Jindo component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. properties: - effect: - description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. - type: string + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - type: object - networkmode: - description: Whether to use hostnetwork or not - enum: - - HostNetwork - - "" - - ContainerNetwork - type: string - properties: - additionalProperties: + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple using + the matching operator . + properties: + effect: + description: Effect indicates the taint effect to match. + Empty means match all taint effects. When specified, allowed + values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies + to. Empty means match all taint keys. If the key is empty, + operator must be Exists; this combination means to match + all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to + the value. Valid operators are Exists and Equal. Defaults + to Equal. Exists is equivalent to wildcard for value, + so that a pod can tolerate all taints of a particular + category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of + time the toleration (which must be of effect NoExecute, + otherwise this field is ignored) tolerates the taint. + By default, it is not set, which means tolerate the taint + forever (do not evict). Zero and negative values will + be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches + to. If the operator is Exists, the value should be empty, + otherwise just a regular string. + type: string + type: object + type: array + type: object + networkmode: + description: Whether to use hostnetwork or not + enum: + - HostNetwork + - "" + - ContainerNetwork type: string - description: Configurable properties for Jindo system.
- type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Jindo Runtime properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + additionalProperties: type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - secret: - type: string - tieredstore: - description: Tiered storage used by Jindo - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype - type: object - type: array - type: object - user: - type: string - worker: - description: The component spec of Jindo worker - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by Jindo component.
- type: object - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS Master or Worker pods. Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: + description: Configurable properties for Jindo system.
+ type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Jindo Runtime + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + uid: + description: The uid to run the alluxio runtime + format: int64 type: integer - type: object - properties: - additionalProperties: + user: + description: The user name to run the alluxio runtime type: string - description: Configurable properties for the Jindo component.
- type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + required: + - gid + - group + - uid + - user + type: object + secret: + type: string + tieredstore: + description: Tiered storage used by Jindo + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
+ Refer to Configuring + Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three + types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple + paths are supported. Multiple paths should be separated + with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please + note that if there're multiple paths used for this tierstore, + the quota will be equally divided into these paths. If + you'd like to set quota for each, path, see QuotaList + for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple + paths. Quotas should be separated with comma. Quotas in + this list will be set to paths with the same order in + Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" + and QuotaList set to "100Gi, 50Gi", then we get 100GiB + cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". + Also note that num of quotas must be consistent with the + num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype type: object - type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . + type: array + type: object + user: + type: string + worker: + description: The component spec of Jindo worker + properties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by Jindo + component.
+ type: object + labels: + additionalProperties: + type: string + description: Labels will be added on all the JindoFS Master or + Worker pods. Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the Jindo component. +
+ type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Jindo component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. properties: - effect: - description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. - type: string + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status - properties: - endpoint: - description: Endpoint for accessing - type: string - type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc runtime's current state. - items: - description: Condition describes the state of the cache at a certain point. + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple using + the matching operator . + properties: + effect: + description: Effect indicates the taint effect to match. + Empty means match all taint effects. When specified, allowed + values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies + to. Empty means match all taint keys. If the key is empty, + operator must be Exists; this combination means to match + all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to + the value. Valid operators are Exists and Equal. Defaults + to Equal. Exists is equivalent to wildcard for value, + so that a pod can tolerate all taints of a particular + category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of + time the toleration (which must be of effect NoExecute, + otherwise this field is ignored) tolerates the taint. + By default, it is not set, which means tolerate the taint + forever (do not evict). Zero and negative values will + be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches + to. If the operator is Exists, the value should be empty, + otherwise just a regular string. + type: string + type: object + type: array + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time + endpoint: + description: Endpoint for accessing type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - mountTime: - description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required - format: date-time - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition - type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc + runtime's current state. + items: + description: Condition describes the state of the cache at a certain + point. + properties: + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime + Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime + worker pod (including nodes correctly running the runtime worker + pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the + runtime Fuse pod (including nodes correctly running the runtime + Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the + runtime worker pod (including nodes correctly running the runtime + worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime + fuse pod and have none of the runtime fuse pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have zero or more of the runtime master pod running + and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime + is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the + runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime + worker pod and have none of the runtime worker pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object served: true storage: true + subresources: + scale: + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} status: acceptedNames: kind: "" diff --git a/charts/fluid/fluid/crds/data.fluid.io_juicefsruntimes.yaml b/charts/fluid/fluid/crds/data.fluid.io_juicefsruntimes.yaml index f62c1c7a267..6e0c99c86f3 100644 --- a/charts/fluid/fluid/crds/data.fluid.io_juicefsruntimes.yaml +++ b/charts/fluid/fluid/crds/data.fluid.io_juicefsruntimes.yaml @@ -1,39 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: juicefsruntimes.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - JSONPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - JSONPath: .status.workerPhase - name: Worker Phase - type: string - - JSONPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - JSONPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - JSONPath: .status.fusePhase - name: Fuse Phase - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -45,862 +19,1132 @@ spec: - juicefs singular: juicefsruntime scope: Namespaced - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} - validation: - openAPIV3Schema: - description: JuiceFSRuntime is the Schema for the juicefsruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: JuiceFSRuntimeSpec defines the desired state of JuiceFSRuntime - properties: - disablePrometheus: - description: Disable monitoring for JuiceFS Runtime Prometheus is enabled by default - type: boolean - fuse: - description: Desired state for JuiceFS Fuse - properties: - cleanPolicy: - description: 'CleanPolicy decides when to clean Juicefs Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnDemand' - type: string - env: - description: Environment variables that will be used by JuiceFS Fuse - items: - description: EnvVar represents an environment variable present in a Container. - properties: - name: - description: Name of the environment variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - global: - description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered - type: boolean - image: - description: Image for JuiceFS fuse - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image for JuiceFS fuse - type: string - nodeSelector: - additionalProperties: + versions: + - additionalPrinterColumns: + - jsonPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - jsonPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - jsonPath: .status.workerPhase + name: Worker Phase + type: string + - jsonPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - jsonPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - jsonPath: .status.fusePhase + name: Fuse Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: JuiceFSRuntime is the Schema for the juicefsruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: JuiceFSRuntimeSpec defines the desired state of JuiceFSRuntime + properties: + disablePrometheus: + description: Disable monitoring for JuiceFS Runtime Prometheus is + enabled by default + type: boolean + fuse: + description: Desired state for JuiceFS Fuse + properties: + cleanPolicy: + description: 'CleanPolicy decides when to clean Juicefs Fuse pods. + Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted + OnDemand cleans fuse pod once th fuse pod on some node is not + needed OnRuntimeDeleted cleans fuse pod only when the cache + runtime is deleted Defaults to OnDemand' type: string - description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled - type: object - resources: - description: Resources that will be requested by JuiceFS Fuse. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + env: + description: Environment variables that will be used by JuiceFS + Fuse + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must be a + C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previous defined environment variables in the + container and any service environment variables. If a + variable cannot be resolved, the reference in the input + string will be unchanged. The $(VAR_NAME) syntax can be + escaped with a double $$, ie: $$(VAR_NAME). Escaped references + will never be expanded, regardless of whether the variable + exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, + metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the + specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only + resources limits and requests (limits.cpu, limits.memory, + limits.ephemeral-storage, requests.cpu, requests.memory + and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the + exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name type: object - type: object - type: object - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: + type: array + global: + description: If the fuse client should be deployed in global mode, + otherwise the affinity should be considered + type: boolean + image: + description: Image for JuiceFS fuse type: string - description: Environment variables that will be used by initialize the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) - type: string - resources: - description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of JuiceFS job Worker - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS component. - items: - description: EnvVar represents an environment variable present in a Container. + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image for JuiceFS fuse + type: string + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the fuse client to fit on a node, this option only effect when + global is enabled + type: object + resources: + description: Resources that will be requested by JuiceFS Fuse. properties: - name: - description: Name of the environment variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - required: - - name type: object - type: array - nodeSelector: - additionalProperties: + type: object + initUsers: + description: The spec of init users + properties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by initialize + the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User + init) type: string - description: NodeSelector is a selector - type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single container. + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. + 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the + users for runtime.

Resources are not allowed for ephemeral + containers. Ephemeral containers use spare resources already + allocated to the pod. properties: - containerPort: - description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. - type: string - protocol: - description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". - type: string - required: - - containerPort + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + jobWorker: + description: The component spec of JuiceFS job Worker + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS + component. + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must be a + C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previous defined environment variables in the + container and any service environment variables. If a + variable cannot be resolved, the reference in the input + string will be unchanged. The $(VAR_NAME) syntax can be + escaped with a double $$, ie: $$(VAR_NAME). Escaped references + will never be expanded, regardless of whether the variable + exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, + metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the + specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only + resources limits and requests (limits.cpu, limits.memory, + limits.ephemeral-storage, requests.cpu, requests.memory + and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the + exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector + type: object + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single + container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, + this must be a valid port number, 0 < x < 65536. If HostNetwork + is specified, this must match ContainerPort. Most containers + do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME + and unique within the pod. Each named port in a pod must + have a unique name. Name for the port that can be referred + to by services. + type: string + protocol: + default: TCP + description: Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort type: object - type: object - type: object - juicefsVersion: - description: The version information that instructs fluid to orchestrate a particular version of JuiceFS. - properties: - image: - description: Image (e.g. alluxio/alluxio) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) - type: string - type: object - master: - description: The component spec of JuiceFS master - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS component. - items: - description: EnvVar represents an environment variable present in a Container. + type: array + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. properties: - name: - description: Name of the environment variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - required: - - name type: object - type: array - nodeSelector: - additionalProperties: + type: object + juicefsVersion: + description: The version information that instructs fluid to orchestrate + a particular version of JuiceFS. + properties: + image: + description: Image (e.g. alluxio/alluxio) type: string - description: NodeSelector is a selector - type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single container. + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: string + type: object + master: + description: The component spec of JuiceFS master + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS + component. + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must be a + C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previous defined environment variables in the + container and any service environment variables. If a + variable cannot be resolved, the reference in the input + string will be unchanged. The $(VAR_NAME) syntax can be + escaped with a double $$, ie: $$(VAR_NAME). Escaped references + will never be expanded, regardless of whether the variable + exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, + metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the + specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only + resources limits and requests (limits.cpu, limits.memory, + limits.ephemeral-storage, requests.cpu, requests.memory + and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the + exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector + type: object + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single + container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, + this must be a valid port number, 0 < x < 65536. If HostNetwork + is specified, this must match ContainerPort. Most containers + do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME + and unique within the pod. Each named port in a pod must + have a unique name. Name for the port that can be referred + to by services. + type: string + protocol: + default: TCP + description: Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. properties: - containerPort: - description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. - type: string - protocol: - description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". - type: string - required: - - containerPort + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Juicefs Runtime + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime + type: string + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + tieredstore: + description: Tiered storage used by JuiceFS + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
+ Refer to Configuring + Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three + types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple + paths are supported. Multiple paths should be separated + with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please + note that if there're multiple paths used for this tierstore, + the quota will be equally divided into these paths. If + you'd like to set quota for each, path, see QuotaList + for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple + paths. Quotas should be separated with comma. Quotas in + this list will be set to paths with the same order in + Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" + and QuotaList set to "100Gi, 50Gi", then we get 100GiB + cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". + Also note that num of quotas must be consistent with the + num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: array + type: object + worker: + description: The component spec of JuiceFS worker + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS + component. + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must be a + C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previous defined environment variables in the + container and any service environment variables. If a + variable cannot be resolved, the reference in the input + string will be unchanged. The $(VAR_NAME) syntax can be + escaped with a double $$, ie: $$(VAR_NAME). Escaped references + will never be expanded, regardless of whether the variable + exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, + metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the + specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only + resources limits and requests (limits.cpu, limits.memory, + limits.ephemeral-storage, requests.cpu, requests.memory + and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the + exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name type: object - type: object - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Juicefs Runtime - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime - type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by JuiceFS - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector type: object - type: array - type: object - worker: - description: The component spec of JuiceFS worker - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS component. - items: - description: EnvVar represents an environment variable present in a Container. + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single + container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, + this must be a valid port number, 0 < x < 65536. If HostNetwork + is specified, this must match ContainerPort. Most containers + do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME + and unique within the pod. Each named port in a pod must + have a unique name. Name for the port that can be referred + to by services. + type: string + protocol: + default: TCP + description: Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. properties: - name: - description: Name of the environment variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - required: - - name type: object - type: array - nodeSelector: - additionalProperties: + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing type: string - description: NodeSelector is a selector - type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single container. - properties: - containerPort: - description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. - type: string - protocol: - description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". - type: string - required: - - containerPort - type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. + type: object + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc + runtime's current state. + items: + description: Condition describes the state of the cache at a certain + point. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status - properties: - endpoint: - description: Endpoint for accessing - type: string - type: object - cacheStates: - additionalProperties: + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime + Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime + worker pod (including nodes correctly running the runtime worker + pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the + runtime Fuse pod (including nodes correctly running the runtime + Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the + runtime worker pod (including nodes correctly running the runtime + worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime + fuse pod and have none of the runtime fuse pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc runtime's current state. - items: - description: Condition describes the state of the cache at a certain point. - properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type - type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - mountTime: - description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required - format: date-time - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition - type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have zero or more of the runtime master pod running + and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime + is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the + runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime + worker pod and have none of the runtime worker pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object served: true storage: true + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_alluxioruntimes.yaml b/config/crd/bases/data.fluid.io_alluxioruntimes.yaml index 7e6c5c42e61..d36776efd0e 100644 --- a/config/crd/bases/data.fluid.io_alluxioruntimes.yaml +++ b/config/crd/bases/data.fluid.io_alluxioruntimes.yaml @@ -1,54 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: alluxioruntimes.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - JSONPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - JSONPath: .status.masterPhase - name: Master Phase - type: string - - JSONPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - JSONPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - JSONPath: .status.workerPhase - name: Worker Phase - type: string - - JSONPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - JSONPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - JSONPath: .status.fusePhase - name: Fuse Phase - type: string - - JSONPath: .status.apiGateway.endpoint - name: API Gateway - priority: 10 - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -60,686 +19,888 @@ spec: - alluxio singular: alluxioruntime scope: Namespaced - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} - validation: - openAPIV3Schema: - description: AlluxioRuntime is the Schema for the alluxioruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: AlluxioRuntimeSpec defines the desired state of AlluxioRuntime - properties: - alluxioVersion: - description: The version information that instructs fluid to orchestrate a particular version of Alluxio. - properties: - image: - description: Image (e.g. alluxio/alluxio) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) - type: string - type: object - apiGateway: - description: The component spec of Alluxio API Gateway - properties: - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + versions: + - additionalPrinterColumns: + - jsonPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - jsonPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - jsonPath: .status.masterPhase + name: Master Phase + type: string + - jsonPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - jsonPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - jsonPath: .status.workerPhase + name: Worker Phase + type: string + - jsonPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - jsonPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - jsonPath: .status.fusePhase + name: Fuse Phase + type: string + - jsonPath: .status.apiGateway.endpoint + name: API Gateway + priority: 10 + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: AlluxioRuntime is the Schema for the alluxioruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: AlluxioRuntimeSpec defines the desired state of AlluxioRuntime + properties: + alluxioVersion: + description: The version information that instructs fluid to orchestrate + a particular version of Alluxio. properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - data: - description: Management strategies for the dataset to which the runtime is bound - properties: - pin: - description: Pin the dataset or not. Refer to Alluxio User-CLI pin - type: boolean - replicas: - description: The copies of the dataset - format: int32 - type: integer - type: object - disablePrometheus: - description: Disable monitoring for Alluxio Runtime Prometheus is enabled by default - type: boolean - fuse: - description: The component spec of Alluxio Fuse - properties: - args: - description: Arguments that will be passed to Alluxio Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean Alluxio Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' - type: string - env: - additionalProperties: + image: + description: Image (e.g. alluxio/alluxio) type: string - description: Environment variables that will be used by Alluxio Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered - type: boolean - image: - description: Image for Alluxio Fuse(e.g. alluxio/alluxio-fuse) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for Alluxio Fuse(e.g. 2.3.0-SNAPSHOT) - type: string - jvmOptions: - description: Options for JVM - items: + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' type: string - type: array - nodeSelector: - additionalProperties: + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) type: string - description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled - type: object + type: object + apiGateway: + description: The component spec of Alluxio API Gateway properties: - additionalProperties: - type: string - description: Configurable properties for Alluxio System.
Refer to Alluxio Configuration Properties for more info - type: object - resources: - description: Resources that will be requested by Alluxio Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations when using HDFS as Alluxio's UFS. The configMap must be in the same namespace with the AlluxioRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. - type: string - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by initialize the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) - type: string - resources: - description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobMaster: - description: The component spec of Alluxio job master - properties: - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + additionalProperties: + type: string + description: Configurable properties for the Alluxio component. +
Refer to Alluxio + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + resources: + description: Resources that will be requested by the Alluxio component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + data: + description: Management strategies for the dataset to which the runtime + is bound properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of Alluxio job Worker - properties: - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + pin: + description: Pin the dataset or not. Refer to Alluxio + User-CLI pin + type: boolean + replicas: + description: The copies of the dataset + format: int32 type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + type: object + disablePrometheus: + description: Disable monitoring for Alluxio Runtime Prometheus is + enabled by default + type: boolean + fuse: + description: The component spec of Alluxio Fuse properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + args: + description: Arguments that will be passed to Alluxio Fuse + items: + type: string + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean Alluxio Fuse pods. + Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted + OnDemand cleans fuse pod once th fuse pod on some node is not + needed OnRuntimeDeleted cleans fuse pod only when the cache + runtime is deleted Defaults to OnRuntimeDeleted' + type: string + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, + otherwise the affinity should be considered + type: boolean + image: + description: Image for Alluxio Fuse(e.g. alluxio/alluxio-fuse) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image Tag for Alluxio Fuse(e.g. 2.3.0-SNAPSHOT) + type: string + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the fuse client to fit on a node, this option only effect when + global is enabled + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jvmOptions: - description: Options for JVM - items: + additionalProperties: + type: string + description: Configurable properties for Alluxio System.
+ Refer to Alluxio + Configuration Properties for more info + type: object + resources: + description: Resources that will be requested by Alluxio Fuse. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations + when using HDFS as Alluxio's UFS. The configMap must be in the same + namespace with the AlluxioRuntime. The configMap should contain + user-specific HDFS conf files in it. For now, only "hdfs-site.xml" + and "core-site.xml" are supported. It must take the filename of + the conf file as the key and content of the file as the value. type: string - type: array - master: - description: The component spec of Alluxio master - properties: - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + initUsers: + description: The spec of init users + properties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by initialize + the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User + init) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. + 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the + users for runtime.

Resources are not allowed for ephemeral + containers. Ephemeral containers use spare resources already + allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobMaster: + description: The component spec of Alluxio job master + properties: + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the Alluxio component. +
Refer to Alluxio + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + resources: + description: Resources that will be requested by the Alluxio component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobWorker: + description: The component spec of Alluxio job Worker properties: - additionalProperties: - type: string - description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for Alluxio system.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Alluxio Runtime - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime - type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime + additionalProperties: + type: string + description: Configurable properties for the Alluxio component. +
Refer to Alluxio + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jvmOptions: + description: Options for JVM + items: type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by Alluxio - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info + type: array + master: + description: The component spec of Alluxio master + properties: + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the Alluxio component. +
Refer to Alluxio + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Alluxio component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - type: object - worker: - description: The component spec of Alluxio worker + type: object properties: - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by Alluxio component.
- type: object - jvmOptions: - description: Options for JVM - items: + additionalProperties: + type: string + description: Configurable properties for Alluxio system.
Refer + to Alluxio + Configuration Properties for more info + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Alluxio Runtime + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - type: array - nodeSelector: - additionalProperties: + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + required: + - gid + - group + - uid + - user + type: object + tieredstore: + description: Tiered storage used by Alluxio + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
+ Refer to Configuring + Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three + types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple + paths are supported. Multiple paths should be separated + with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please + note that if there're multiple paths used for this tierstore, + the quota will be equally divided into these paths. If + you'd like to set quota for each, path, see QuotaList + for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple + paths. Quotas should be separated with comma. Quotas in + this list will be set to paths with the same order in + Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" + and QuotaList set to "100Gi, 50Gi", then we get 100GiB + cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". + Also note that num of quotas must be consistent with the + num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype + type: object + type: array + type: object + worker: + description: The component spec of Alluxio worker + properties: + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by Alluxio + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the Alluxio component. +
Refer to Alluxio + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 type: integer - description: 'Ports used by Alluxio(e.g. rpc: 19998 for master)' - type: object + resources: + description: Resources that will be requested by the Alluxio component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status properties: - additionalProperties: + endpoint: + description: Endpoint for accessing type: string - description: Configurable properties for the Alluxio component.
Refer to Alluxio Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + type: object + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc + runtime's current state. + items: + description: Condition describes the state of the cache at a certain + point. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status - properties: - endpoint: - description: Endpoint for accessing - type: string - type: object - cacheStates: - additionalProperties: + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime + Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime + worker pod (including nodes correctly running the runtime worker + pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the + runtime Fuse pod (including nodes correctly running the runtime + Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the + runtime worker pod (including nodes correctly running the runtime + worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime + fuse pod and have none of the runtime fuse pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc runtime's current state. - items: - description: Condition describes the state of the cache at a certain point. - properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type - type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - mountTime: - description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required - format: date-time - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition - type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have zero or more of the runtime master pod running + and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime + is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the + runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime + worker pod and have none of the runtime worker pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object served: true storage: true + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_databackups.yaml b/config/crd/bases/data.fluid.io_databackups.yaml index fd519c5e44d..a6df249afbd 100644 --- a/config/crd/bases/data.fluid.io_databackups.yaml +++ b/config/crd/bases/data.fluid.io_databackups.yaml @@ -1,32 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: databackups.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .spec.dataset - name: Dataset - type: string - - JSONPath: .status.phase - name: Phase - type: string - - JSONPath: .status.backupLocation.path - name: Path - type: string - - JSONPath: .status.backupLocation.nodeName - name: NodeName - type: string - - JSONPath: .status.duration - name: Duration - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -38,113 +19,144 @@ spec: - backup singular: databackup scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: DataBackup is the Schema for the backup API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DataBackupSpec defines the desired state of DataBackup - properties: - backupPath: - description: BackupPath defines the target path to save data of the DataBackup - type: string - dataset: - description: Dataset defines the target dataset of the DataBackup - type: string - runAs: - description: Manage the user to run Alluxio DataBackup - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime - type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - type: object - status: - description: DataBackupStatus defines the observed state of DataBackup - properties: - backupLocation: - description: BackupLocation tell user the location to save data of the DataBackup - properties: - nodeName: - description: NodeName describes the nodeName of backup if Path is in the form of local://subpath - type: string - path: - description: Path describes the path of backup, in the form of local:///absolutePath or pvc:///subpath - type: string - type: object - conditions: - description: Conditions consists of transition information on DataBackup's Phase - items: - description: Condition explains the transitions on phase + versions: + - additionalPrinterColumns: + - jsonPath: .spec.dataset + name: Dataset + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .status.backupLocation.path + name: Path + type: string + - jsonPath: .status.backupLocation.nodeName + name: NodeName + type: string + - jsonPath: .status.duration + name: Duration + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: DataBackup is the Schema for the backup API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DataBackupSpec defines the desired state of DataBackup + properties: + backupPath: + description: BackupPath defines the target path to save data of the + DataBackup + type: string + dataset: + description: Dataset defines the target dataset of the DataBackup + type: string + runAs: + description: Manage the user to run Alluxio DataBackup properties: - lastProbeTime: - description: LastProbeTime describes last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: LastTransitionTime describes last time the condition transitioned from one status to another. - format: date-time + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - message: - description: Message is a human-readable message indicating details about the transition + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime type: string - reason: - description: Reason for the condition's last transition - type: string - status: - description: Status of the condition, one of `True`, `False` or `Unknown` + required: + - gid + - group + - uid + - user + type: object + type: object + status: + description: DataBackupStatus defines the observed state of DataBackup + properties: + backupLocation: + description: BackupLocation tell user the location to save data of + the DataBackup + properties: + nodeName: + description: NodeName describes the nodeName of backup if Path + is in the form of local://subpath type: string - type: - description: Type of condition, either `Complete` or `Failed` + path: + description: Path describes the path of backup, in the form of + local:///absolutePath or pvc:///subpath type: string - required: - - status - - type type: object - type: array - duration: - description: Duration tell user how much time was spent to backup - type: string - phase: - description: Phase describes current phase of DataBackup - type: string - required: - - conditions - - duration - - phase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + conditions: + description: Conditions consists of transition information on DataBackup's + Phase + items: + description: Condition explains the transitions on phase + properties: + lastProbeTime: + description: LastProbeTime describes last time this condition + was updated. + format: date-time + type: string + lastTransitionTime: + description: LastTransitionTime describes last time the condition + transitioned from one status to another. + format: date-time + type: string + message: + description: Message is a human-readable message indicating + details about the transition + type: string + reason: + description: Reason for the condition's last transition + type: string + status: + description: Status of the condition, one of `True`, `False` + or `Unknown` + type: string + type: + description: Type of condition, either `Complete` or `Failed` + type: string + required: + - status + - type + type: object + type: array + duration: + description: Duration tell user how much time was spent to backup + type: string + phase: + description: Phase describes current phase of DataBackup + type: string + required: + - conditions + - duration + - phase + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_dataloads.yaml b/config/crd/bases/data.fluid.io_dataloads.yaml index 524a9d48e58..29e20e0e8df 100644 --- a/config/crd/bases/data.fluid.io_dataloads.yaml +++ b/config/crd/bases/data.fluid.io_dataloads.yaml @@ -1,26 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: dataloads.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .spec.dataset.name - name: Dataset - type: string - - JSONPath: .status.phase - name: Phase - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - - JSONPath: .status.duration - name: Duration - type: string group: data.fluid.io names: categories: @@ -32,110 +19,133 @@ spec: - load singular: dataload scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: DataLoad is the Schema for the dataloads API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DataLoadSpec defines the desired state of DataLoad - properties: - dataset: - description: Dataset defines the target dataset of the DataLoad - properties: - name: - description: Name defines name of the target dataset - type: string - namespace: - description: Namespace defines namespace of the target dataset - type: string - required: - - name - type: object - loadMetadata: - description: LoadMetadata specifies if the dataload job should load metadata - type: boolean - options: - additionalProperties: - type: string - description: Options specifies the extra dataload properties for runtime - type: object - target: - description: Target defines target paths that needs to be loaded - items: - description: TargetPath defines the target path of the DataLoad - properties: - path: - description: Path defines path to be load - type: string - replicas: - description: Replicas defines how many replicas will be loaded - format: int32 - type: integer - required: - - path - type: object - type: array - type: object - status: - description: DataLoadStatus defines the observed state of DataLoad - properties: - conditions: - description: Conditions consists of transition information on DataLoad's Phase - items: - description: Condition explains the transitions on phase + versions: + - additionalPrinterColumns: + - jsonPath: .spec.dataset.name + name: Dataset + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.duration + name: Duration + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: DataLoad is the Schema for the dataloads API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DataLoadSpec defines the desired state of DataLoad + properties: + dataset: + description: Dataset defines the target dataset of the DataLoad properties: - lastProbeTime: - description: LastProbeTime describes last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: LastTransitionTime describes last time the condition transitioned from one status to another. - format: date-time + name: + description: Name defines name of the target dataset type: string - message: - description: Message is a human-readable message indicating details about the transition - type: string - reason: - description: Reason for the condition's last transition - type: string - status: - description: Status of the condition, one of `True`, `False` or `Unknown` - type: string - type: - description: Type of condition, either `Complete` or `Failed` + namespace: + description: Namespace defines namespace of the target dataset type: string required: - - status - - type + - name type: object - type: array - duration: - description: Duration tell user how much time was spent to load the data - type: string - phase: - description: Phase describes current phase of DataLoad - type: string - required: - - conditions - - duration - - phase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + loadMetadata: + description: LoadMetadata specifies if the dataload job should load + metadata + type: boolean + options: + additionalProperties: + type: string + description: Options specifies the extra dataload properties for runtime + type: object + target: + description: Target defines target paths that needs to be loaded + items: + description: TargetPath defines the target path of the DataLoad + properties: + path: + description: Path defines path to be load + type: string + replicas: + description: Replicas defines how many replicas will be loaded + format: int32 + type: integer + required: + - path + type: object + type: array + type: object + status: + description: DataLoadStatus defines the observed state of DataLoad + properties: + conditions: + description: Conditions consists of transition information on DataLoad's + Phase + items: + description: Condition explains the transitions on phase + properties: + lastProbeTime: + description: LastProbeTime describes last time this condition + was updated. + format: date-time + type: string + lastTransitionTime: + description: LastTransitionTime describes last time the condition + transitioned from one status to another. + format: date-time + type: string + message: + description: Message is a human-readable message indicating + details about the transition + type: string + reason: + description: Reason for the condition's last transition + type: string + status: + description: Status of the condition, one of `True`, `False` + or `Unknown` + type: string + type: + description: Type of condition, either `Complete` or `Failed` + type: string + required: + - status + - type + type: object + type: array + duration: + description: Duration tell user how much time was spent to load the + data + type: string + phase: + description: Phase describes current phase of DataLoad + type: string + required: + - conditions + - duration + - phase + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_datasets.yaml b/config/crd/bases/data.fluid.io_datasets.yaml index cf26fb9fc53..e2d40e6fd40 100644 --- a/config/crd/bases/data.fluid.io_datasets.yaml +++ b/config/crd/bases/data.fluid.io_datasets.yaml @@ -1,44 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: datasets.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .status.ufsTotal - name: Ufs Total Size - type: string - - JSONPath: .status.cacheStates.cached - name: Cached - type: string - - JSONPath: .status.cacheStates.cacheCapacity - name: Cache Capacity - type: string - - JSONPath: .status.cacheStates.cachedPercentage - name: Cached Percentage - type: string - - JSONPath: .status.phase - name: Phase - type: string - - JSONPath: .status.hcfs.endpoint - name: HCFS URL - priority: 10 - type: string - - JSONPath: .status.fileNum - name: TOTAL FILES - priority: 11 - type: string - - JSONPath: .status.cacheStates.cacheHitRatio - name: CACHE HIT RATIO - priority: 10 - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -50,374 +19,479 @@ spec: - dataset singular: dataset scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: Dataset is the Schema for the datasets API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DatasetSpec defines the desired state of Dataset - properties: - accessModes: - description: AccessModes contains all ways the volume backing the PVC can be mounted - items: - type: string - type: array - dataRestoreLocation: - description: DataRestoreLocation is the location to load data of dataset been backuped - properties: - nodeName: - description: NodeName describes the nodeName of restore if Path is in the form of local://subpath - type: string - path: - description: Path describes the path of restore, in the form of local://subpath or pvc:///subpath + versions: + - additionalPrinterColumns: + - jsonPath: .status.ufsTotal + name: Ufs Total Size + type: string + - jsonPath: .status.cacheStates.cached + name: Cached + type: string + - jsonPath: .status.cacheStates.cacheCapacity + name: Cache Capacity + type: string + - jsonPath: .status.cacheStates.cachedPercentage + name: Cached Percentage + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .status.hcfs.endpoint + name: HCFS URL + priority: 10 + type: string + - jsonPath: .status.fileNum + name: TOTAL FILES + priority: 11 + type: string + - jsonPath: .status.cacheStates.cacheHitRatio + name: CACHE HIT RATIO + priority: 10 + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Dataset is the Schema for the datasets API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DatasetSpec defines the desired state of Dataset + properties: + accessModes: + description: AccessModes contains all ways the volume backing the + PVC can be mounted + items: type: string - type: object - mounts: - description: Mount Points to be mounted on Alluxio. - items: - description: Mount describes a mounting.
Refer to Alluxio Storage Integrations for more info + type: array + dataRestoreLocation: + description: DataRestoreLocation is the location to load data of dataset been + backuped properties: - encryptOptions: - description: The secret information - items: - properties: - name: - description: The name of encryptOption - type: string - valueFrom: - description: The valueFrom of encryptOption - properties: - secretKeyRef: - description: The encryptInfo obtained from secret - properties: - key: - description: The required key in the secret - type: string - name: - description: The name of required secret - type: string - type: object - type: object - type: object - type: array - mountPoint: - description: MountPoint is the mount point of source. - minLength: 10 - type: string - name: - description: The name of mount - minLength: 0 + nodeName: + description: NodeName describes the nodeName of restore if Path + is in the form of local://subpath type: string - options: - additionalProperties: - type: string - description: The Mount Options.
Refer to Mount Options.
The option has Prefix 'fs.' And you can Learn more from The Storage Integrations - type: object path: - description: The path of mount, if not set will be /{Name} + description: Path describes the path of restore, in the form of local://subpath + or pvc:///subpath type: string - readOnly: - description: 'Optional: Defaults to false (read-write).' - type: boolean - shared: - description: 'Optional: Defaults to false (shared).' - type: boolean type: object - minItems: 1 - type: array - nodeAffinity: - description: NodeAffinity defines constraints that limit what nodes this dataset can be cached to. This field influences the scheduling of pods that use the cached dataset. - properties: - required: - description: Required specifies hard node constraints that must be met. + mounts: + description: Mount Points to be mounted on Alluxio. + items: + description: Mount describes a mounting.
Refer to Alluxio + Storage Integrations for more info properties: - nodeSelectorTerms: - description: Required. A list of node selector terms. The terms are ORed. + encryptOptions: + description: The secret information items: - description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: - matchExpressions: - description: A list of node selector requirements by node's labels. - items: - description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. - properties: - key: - description: The label key that the selector applies to. - type: string - operator: - description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. - type: string - values: - description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. - items: + name: + description: The name of encryptOption + type: string + valueFrom: + description: The valueFrom of encryptOption + properties: + secretKeyRef: + description: The encryptInfo obtained from secret + properties: + key: + description: The required key in the secret type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - description: A list of node selector requirements by node's fields. - items: - description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. - properties: - key: - description: The label key that the selector applies to. - type: string - operator: - description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. - type: string - values: - description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. - items: + name: + description: The name of required secret type: string - type: array - required: - - key - - operator - type: object - type: array + type: object + type: object type: object type: array - required: - - nodeSelectorTerms + mountPoint: + description: MountPoint is the mount point of source. + minLength: 10 + type: string + name: + description: The name of mount + minLength: 0 + type: string + options: + additionalProperties: + type: string + description: The Mount Options.
Refer to Mount + Options.
The option has Prefix 'fs.' And you can + Learn more from The + Storage Integrations + type: object + path: + description: The path of mount, if not set will be /{Name} + type: string + readOnly: + description: 'Optional: Defaults to false (read-write).' + type: boolean + shared: + description: 'Optional: Defaults to false (shared).' + type: boolean type: object - type: object - owner: - description: The owner of the dataset - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime - type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - placement: - description: Manage switch for opening Multiple datasets single node deployment or not TODO(xieydd) In future, evaluate node resources and runtime resources to decide whether to turn them on - enum: - - Exclusive - - "" - - Shared - type: string - runtimes: - description: Runtimes for supporting dataset (e.g. AlluxioRuntime) - items: - description: Runtime describes a runtime to be used to support dataset + minItems: 1 + type: array + nodeAffinity: + description: NodeAffinity defines constraints that limit what nodes + this dataset can be cached to. This field influences the scheduling + of pods that use the cached dataset. properties: - category: - description: Category the runtime object belongs to (e.g. Accelerate) - type: string - masterReplicas: - description: Runtime master replicas - format: int32 - type: integer - name: - description: Name of the runtime object - type: string - namespace: - description: Namespace of the runtime object - type: string - type: - description: Runtime object's type (e.g. Alluxio) - type: string + required: + description: Required specifies hard node constraints that must + be met. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. The + terms are ORed. + items: + description: A null or empty node selector term matches + no objects. The requirements of them are ANDed. The TopologySelectorTerm + type implements a subset of the NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements by + node's labels. + items: + description: A node selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: Represents a key's relationship to + a set of values. Valid operators are In, NotIn, + Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the + operator is In or NotIn, the values array must + be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator + is Gt or Lt, the values array must have a single + element, which will be interpreted as an integer. + This array is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by + node's fields. + items: + description: A node selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: Represents a key's relationship to + a set of values. Valid operators are In, NotIn, + Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the + operator is In or NotIn, the values array must + be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator + is Gt or Lt, the values array must have a single + element, which will be interpreted as an integer. + This array is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object type: object - type: array - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . + owner: + description: The owner of the dataset properties: - effect: - description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. + gid: + description: The gid to run the alluxio runtime format: int64 type: integer - value: - description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. - type: string - type: object - type: array - type: object - status: - description: DatasetStatus defines the observed state of Dataset - properties: - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Conditions is an array of current observed conditions. - items: - description: Condition describes the state of the cache at a certain point. - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - lastUpdateTime: - description: The last time this condition was updated. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. + group: + description: The group name to run the alluxio runtime type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime type: string required: - - status - - type + - gid + - group + - uid + - user type: object - type: array - dataBackupRef: - description: DataBackupRef specifies the running Backup job that targets this Dataset. This is mainly used as a lock to prevent concurrent DataBackup jobs. - type: string - dataLoadRef: - description: DataLoadRef specifies the running DataLoad job that targets this Dataset. This is mainly used as a lock to prevent concurrent DataLoad jobs. - type: string - fileNum: - description: FileNum represents the file numbers of the dataset - type: string - hcfs: - description: HCFSStatus represents hcfs info - properties: - endpoint: - description: Endpoint for accessing - type: string - underlayerFileSystemVersion: - description: Underlayer HCFS Compatible Version - type: string - type: object - mounts: - description: the info of mount points have been mounted - items: - description: Mount describes a mounting.
Refer to Alluxio Storage Integrations for more info - properties: - encryptOptions: - description: The secret information - items: - properties: - name: - description: The name of encryptOption - type: string - valueFrom: - description: The valueFrom of encryptOption - properties: - secretKeyRef: - description: The encryptInfo obtained from secret - properties: - key: - description: The required key in the secret - type: string - name: - description: The name of required secret - type: string - type: object - type: object - type: object - type: array - mountPoint: - description: MountPoint is the mount point of source. - minLength: 10 - type: string - name: - description: The name of mount - minLength: 0 - type: string - options: - additionalProperties: + placement: + description: Manage switch for opening Multiple datasets single node + deployment or not TODO(xieydd) In future, evaluate node resources + and runtime resources to decide whether to turn them on + enum: + - Exclusive + - "" + - Shared + type: string + runtimes: + description: Runtimes for supporting dataset (e.g. AlluxioRuntime) + items: + description: Runtime describes a runtime to be used to support dataset + properties: + category: + description: Category the runtime object belongs to (e.g. Accelerate) type: string - description: The Mount Options.
Refer to Mount Options.
The option has Prefix 'fs.' And you can Learn more from The Storage Integrations - type: object - path: - description: The path of mount, if not set will be /{Name} - type: string - readOnly: - description: 'Optional: Defaults to false (read-write).' - type: boolean - shared: - description: 'Optional: Defaults to false (shared).' - type: boolean + masterReplicas: + description: Runtime master replicas + format: int32 + type: integer + name: + description: Name of the runtime object + type: string + namespace: + description: Namespace of the runtime object + type: string + type: + description: Runtime object's type (e.g. Alluxio) + type: string + type: object + type: array + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates any + taint that matches the triple using the matching + operator . + properties: + effect: + description: Effect indicates the taint effect to match. Empty + means match all taint effects. When specified, allowed values + are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies + to. Empty means match all taint keys. If the key is empty, + operator must be Exists; this combination means to match all + values and all keys. + type: string + operator: + description: Operator represents a key's relationship to the + value. Valid operators are Exists and Equal. Defaults to Equal. + Exists is equivalent to wildcard for value, so that a pod + can tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time + the toleration (which must be of effect NoExecute, otherwise + this field is ignored) tolerates the taint. By default, it + is not set, which means tolerate the taint forever (do not + evict). Zero and negative values will be treated as 0 (evict + immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches + to. If the operator is Exists, the value should be empty, + otherwise just a regular string. + type: string + type: object + type: array + type: object + status: + description: DatasetStatus defines the observed state of Dataset + properties: + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. type: object - type: array - phase: - description: 'Dataset Phase. One of the four phases: `Pending`, `Bound`, `NotBound` and `Failed`' - type: string - runtimes: - description: Runtimes for supporting dataset - items: - description: Runtime describes a runtime to be used to support dataset + conditions: + description: Conditions is an array of current observed conditions. + items: + description: Condition describes the state of the cache at a certain + point. + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + lastUpdateTime: + description: The last time this condition was updated. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + dataBackupRef: + description: DataBackupRef specifies the running Backup job that targets + this Dataset. This is mainly used as a lock to prevent concurrent + DataBackup jobs. + type: string + dataLoadRef: + description: DataLoadRef specifies the running DataLoad job that targets + this Dataset. This is mainly used as a lock to prevent concurrent + DataLoad jobs. + type: string + fileNum: + description: FileNum represents the file numbers of the dataset + type: string + hcfs: + description: HCFSStatus represents hcfs info properties: - category: - description: Category the runtime object belongs to (e.g. Accelerate) - type: string - masterReplicas: - description: Runtime master replicas - format: int32 - type: integer - name: - description: Name of the runtime object - type: string - namespace: - description: Namespace of the runtime object + endpoint: + description: Endpoint for accessing type: string - type: - description: Runtime object's type (e.g. Alluxio) + underlayerFileSystemVersion: + description: Underlayer HCFS Compatible Version type: string type: object - type: array - ufsTotal: - description: Total in GB of dataset in the cluster - type: string - required: - - conditions - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + mounts: + description: the info of mount points have been mounted + items: + description: Mount describes a mounting.
Refer to Alluxio + Storage Integrations for more info + properties: + encryptOptions: + description: The secret information + items: + properties: + name: + description: The name of encryptOption + type: string + valueFrom: + description: The valueFrom of encryptOption + properties: + secretKeyRef: + description: The encryptInfo obtained from secret + properties: + key: + description: The required key in the secret + type: string + name: + description: The name of required secret + type: string + type: object + type: object + type: object + type: array + mountPoint: + description: MountPoint is the mount point of source. + minLength: 10 + type: string + name: + description: The name of mount + minLength: 0 + type: string + options: + additionalProperties: + type: string + description: The Mount Options.
Refer to Mount + Options.
The option has Prefix 'fs.' And you can + Learn more from The + Storage Integrations + type: object + path: + description: The path of mount, if not set will be /{Name} + type: string + readOnly: + description: 'Optional: Defaults to false (read-write).' + type: boolean + shared: + description: 'Optional: Defaults to false (shared).' + type: boolean + type: object + type: array + phase: + description: 'Dataset Phase. One of the four phases: `Pending`, `Bound`, + `NotBound` and `Failed`' + type: string + runtimes: + description: Runtimes for supporting dataset + items: + description: Runtime describes a runtime to be used to support dataset + properties: + category: + description: Category the runtime object belongs to (e.g. Accelerate) + type: string + masterReplicas: + description: Runtime master replicas + format: int32 + type: integer + name: + description: Name of the runtime object + type: string + namespace: + description: Namespace of the runtime object + type: string + type: + description: Runtime object's type (e.g. Alluxio) + type: string + type: object + type: array + ufsTotal: + description: Total in GB of dataset in the cluster + type: string + required: + - conditions + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_goosefsruntimes.yaml b/config/crd/bases/data.fluid.io_goosefsruntimes.yaml index e21ef423020..4bd907f636b 100644 --- a/config/crd/bases/data.fluid.io_goosefsruntimes.yaml +++ b/config/crd/bases/data.fluid.io_goosefsruntimes.yaml @@ -1,54 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: goosefsruntimes.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - JSONPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - JSONPath: .status.masterPhase - name: Master Phase - type: string - - JSONPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - JSONPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - JSONPath: .status.workerPhase - name: Worker Phase - type: string - - JSONPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - JSONPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - JSONPath: .status.fusePhase - name: Fuse Phase - type: string - - JSONPath: .status.apiGateway.endpoint - name: API Gateway - priority: 10 - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -60,716 +19,938 @@ spec: - goose singular: goosefsruntime scope: Namespaced - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} - validation: - openAPIV3Schema: - description: GooseFSRuntime is the Schema for the goosefsruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: GooseFSRuntimeSpec defines the desired state of GooseFSRuntime - properties: - apiGateway: - description: The component spec of GooseFS API Gateway - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + versions: + - additionalPrinterColumns: + - jsonPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - jsonPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - jsonPath: .status.masterPhase + name: Master Phase + type: string + - jsonPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - jsonPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - jsonPath: .status.workerPhase + name: Worker Phase + type: string + - jsonPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - jsonPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - jsonPath: .status.fusePhase + name: Fuse Phase + type: string + - jsonPath: .status.apiGateway.endpoint + name: API Gateway + priority: 10 + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: GooseFSRuntime is the Schema for the goosefsruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: GooseFSRuntimeSpec defines the desired state of GooseFSRuntime + properties: + apiGateway: + description: The component spec of GooseFS API Gateway properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - data: - description: Management strategies for the dataset to which the runtime is bound - properties: - pin: - description: Pin the dataset or not. Refer to Alluxio User-CLI pin - type: boolean - replicas: - description: The copies of the dataset - format: int32 - type: integer - type: object - disablePrometheus: - description: Disable monitoring for GooseFS Runtime Prometheus is enabled by default - type: boolean - fuse: - description: The component spec of GooseFS Fuse - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - args: - description: Arguments that will be passed to GooseFS Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean GooseFS Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' - type: string - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered - type: boolean - image: - description: Image for GooseFS Fuse(e.g. goosefs/goosefs-fuse) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for GooseFS Fuse(e.g. v1.0.1) - type: string - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled - type: object + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + data: + description: Management strategies for the dataset to which the runtime + is bound properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - resources: - description: Resources that will be requested by GooseFS Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - goosefsVersion: - description: The version information that instructs fluid to orchestrate a particular version of GooseFS. - properties: - image: - description: Image (e.g. alluxio/alluxio) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) - type: string - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations when using HDFS as GooseFS's UFS. The configMap must be in the same namespace with the GooseFSRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. - type: string - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by initialize the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) - type: string - resources: - description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobMaster: - description: The component spec of GooseFS job master - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + pin: + description: Pin the dataset or not. Refer to Alluxio + User-CLI pin + type: boolean + replicas: + description: The copies of the dataset + format: int32 type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + type: object + disablePrometheus: + description: Disable monitoring for GooseFS Runtime Prometheus is + enabled by default + type: boolean + fuse: + description: The component spec of GooseFS Fuse properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + args: + description: Arguments that will be passed to GooseFS Fuse + items: + type: string + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean GooseFS Fuse pods. + Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted + OnDemand cleans fuse pod once th fuse pod on some node is not + needed OnRuntimeDeleted cleans fuse pod only when the cache + runtime is deleted Defaults to OnRuntimeDeleted' + type: string + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, + otherwise the affinity should be considered + type: boolean + image: + description: Image for GooseFS Fuse(e.g. goosefs/goosefs-fuse) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image Tag for GooseFS Fuse(e.g. v1.0.1) + type: string + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the fuse client to fit on a node, this option only effect when + global is enabled + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of GooseFS job Worker - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + resources: + description: Resources that will be requested by GooseFS Fuse. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + goosefsVersion: + description: The version information that instructs fluid to orchestrate + a particular version of GooseFS. + properties: + image: + description: Image (e.g. alluxio/alluxio) type: string - description: Environment variables that will be used by GooseFS component.
- type: object - jvmOptions: - description: Options for JVM - items: + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' type: string - type: array - nodeSelector: - additionalProperties: + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations + when using HDFS as GooseFS's UFS. The configMap must be in the same + namespace with the GooseFSRuntime. The configMap should contain + user-specific HDFS conf files in it. For now, only "hdfs-site.xml" + and "core-site.xml" are supported. It must take the filename of + the conf file as the key and content of the file as the value. + type: string + initUsers: + description: The spec of init users properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + env: + additionalProperties: + type: string + description: Environment variables that will be used by initialize + the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User + init) + type: string + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. + 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the + users for runtime.

Resources are not allowed for ephemeral + containers. Ephemeral containers use spare resources already + allocated to the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobMaster: + description: The component spec of GooseFS job master + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - master: - description: The component spec of GooseFS master - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + resources: + description: Resources that will be requested by the GooseFS component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jobWorker: + description: The component spec of GooseFS job Worker properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run GooseFS Runtime GooseFS support POSIX-ACL and Apache Ranger to manager authorization TODO(chrisydxie@tencent.com) Support Apache Ranger. - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime - type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by GooseFS - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype - type: object - type: array - type: object - worker: - description: The component spec of GooseFS worker - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - enabled: - description: Enabled or Disabled for the components. For now, only API Gateway is enabled or disabled. - type: boolean - env: - additionalProperties: - type: string - description: Environment variables that will be used by GooseFS component.
- type: object - jvmOptions: - description: Options for JVM - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 type: integer - description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' - type: object + resources: + description: Resources that will be requested by the GooseFS component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + master: + description: The component spec of GooseFS master properties: - additionalProperties: - type: string - description: Configurable properties for the GOOSEFS component.
Refer to GOOSEFS Configuration Properties for more info - type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object properties: - endpoint: - description: Endpoint for accessing + additionalProperties: type: string - type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc runtime's current state. - items: - description: Condition describes the state of the cache at a certain point. + description: Configurable properties for the GOOSEFS component.
+ Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run GooseFS Runtime GooseFS support + POSIX-ACL and Apache Ranger to manager authorization TODO(chrisydxie@tencent.com) + Support Apache Ranger. properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - type: - description: Type of cache condition. + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime type: string required: - - status - - type + - gid + - group + - uid + - user type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - mountTime: - description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required - format: date-time - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition - type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + tieredstore: + description: Tiered storage used by GooseFS + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
+ Refer to Configuring + Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three + types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple + paths are supported. Multiple paths should be separated + with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please + note that if there're multiple paths used for this tierstore, + the quota will be equally divided into these paths. If + you'd like to set quota for each, path, see QuotaList + for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple + paths. Quotas should be separated with comma. Quotas in + this list will be set to paths with the same order in + Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" + and QuotaList set to "100Gi, 50Gi", then we get 100GiB + cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". + Also note that num of quotas must be consistent with the + num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype + type: object + type: array + type: object + worker: + description: The component spec of GooseFS worker + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored + with a resource that may be set by external tools to store and + retrieve arbitrary metadata. They are not queryable and should + be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + enabled: + description: Enabled or Disabled for the components. For now, + only API Gateway is enabled or disabled. + type: boolean + env: + additionalProperties: + type: string + description: Environment variables that will be used by GooseFS + component.
+ type: object + jvmOptions: + description: Options for JVM + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + description: 'Ports used by GooseFS(e.g. rpc: 19998 for master)' + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the GOOSEFS component. +
Refer to GOOSEFS + Configuration Properties for more info + type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the GooseFS component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing + type: string + type: object + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc + runtime's current state. + items: + description: Condition describes the state of the cache at a certain + point. + properties: + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime + Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime + worker pod (including nodes correctly running the runtime worker + pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the + runtime Fuse pod (including nodes correctly running the runtime + Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the + runtime worker pod (including nodes correctly running the runtime + worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime + fuse pod and have none of the runtime fuse pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have zero or more of the runtime master pod running + and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime + is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the + runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime + worker pod and have none of the runtime worker pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object served: true storage: true + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_jindoruntimes.yaml b/config/crd/bases/data.fluid.io_jindoruntimes.yaml index 9b4cea2b59a..6e40518a1e5 100644 --- a/config/crd/bases/data.fluid.io_jindoruntimes.yaml +++ b/config/crd/bases/data.fluid.io_jindoruntimes.yaml @@ -1,50 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: jindoruntimes.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .status.masterNumberReady - name: Ready Masters - priority: 10 - type: integer - - JSONPath: .status.desiredMasterNumberScheduled - name: Desired Masters - priority: 10 - type: integer - - JSONPath: .status.masterPhase - name: Master Phase - type: string - - JSONPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - JSONPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - JSONPath: .status.workerPhase - name: Worker Phase - type: string - - JSONPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - JSONPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - JSONPath: .status.fusePhase - name: Fuse Phase - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -56,530 +19,720 @@ spec: - jindo singular: jindoruntime scope: Namespaced - subresources: - scale: - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} - validation: - openAPIV3Schema: - description: JindoRuntime is the Schema for the jindoruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: JindoRuntimeSpec defines the desired state of JindoRuntime - properties: - fuse: - description: The component spec of Jindo Fuse - properties: - args: - description: Arguments that will be passed to Jindo Fuse - items: - type: string - type: array - cleanPolicy: - description: 'CleanPolicy decides when to clean JindoFS Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnRuntimeDeleted' - type: string - env: - additionalProperties: + versions: + - additionalPrinterColumns: + - jsonPath: .status.masterNumberReady + name: Ready Masters + priority: 10 + type: integer + - jsonPath: .status.desiredMasterNumberScheduled + name: Desired Masters + priority: 10 + type: integer + - jsonPath: .status.masterPhase + name: Master Phase + type: string + - jsonPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - jsonPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - jsonPath: .status.workerPhase + name: Worker Phase + type: string + - jsonPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - jsonPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - jsonPath: .status.fusePhase + name: Fuse Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: JindoRuntime is the Schema for the jindoruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: JindoRuntimeSpec defines the desired state of JindoRuntime + properties: + fuse: + description: The component spec of Jindo Fuse + properties: + args: + description: Arguments that will be passed to Jindo Fuse + items: + type: string + type: array + cleanPolicy: + description: 'CleanPolicy decides when to clean JindoFS Fuse pods. + Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted + OnDemand cleans fuse pod once th fuse pod on some node is not + needed OnRuntimeDeleted cleans fuse pod only when the cache + runtime is deleted Defaults to OnRuntimeDeleted' type: string - description: Environment variables that will be used by Jindo Fuse - type: object - global: - description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered - type: boolean - image: - description: Image for Jindo Fuse(e.g. jindo/jindo-fuse) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for Jindo Fuse(e.g. 2.3.0-SNAPSHOT) - type: string - labels: - additionalProperties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by Jindo + Fuse + type: object + global: + description: If the fuse client should be deployed in global mode, + otherwise the affinity should be considered + type: boolean + image: + description: Image for Jindo Fuse(e.g. jindo/jindo-fuse) type: string - description: Labels will be added on all the JindoFS Fuse pods. Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' type: string - description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled - type: object - properties: - additionalProperties: + imageTag: + description: Image Tag for Jindo Fuse(e.g. 2.3.0-SNAPSHOT) type: string - description: Configurable properties for Jindo System.
- type: object - resources: - description: Resources that will be requested by Jindo Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + labels: + additionalProperties: + type: string + description: Labels will be added on all the JindoFS Fuse pods. + Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the fuse client to fit on a node, this option only effect when + global is enabled + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . + additionalProperties: + type: string + description: Configurable properties for Jindo System.
+ type: object + resources: + description: Resources that will be requested by Jindo Fuse.
+
Resources are not allowed for ephemeral containers. Ephemeral + containers use spare resources already allocated to the pod. properties: - effect: - description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. - type: string + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - type: object - hadoopConfig: - description: Name of the configMap used to support HDFS configurations when using HDFS as Jindo's UFS. The configMap must be in the same namespace with the JindoRuntime. The configMap should contain user-specific HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" are supported. It must take the filename of the conf file as the key and content of the file as the value. - type: string - jindoVersion: - description: The version information that instructs fluid to orchestrate a particular version of Jindo. - properties: - image: - description: Image (e.g. alluxio/alluxio) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) - type: string - type: object - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS pods. - type: object - logConfig: - additionalProperties: + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple using + the matching operator . + properties: + effect: + description: Effect indicates the taint effect to match. + Empty means match all taint effects. When specified, allowed + values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies + to. Empty means match all taint keys. If the key is empty, + operator must be Exists; this combination means to match + all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to + the value. Valid operators are Exists and Equal. Defaults + to Equal. Exists is equivalent to wildcard for value, + so that a pod can tolerate all taints of a particular + category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of + time the toleration (which must be of effect NoExecute, + otherwise this field is ignored) tolerates the taint. + By default, it is not set, which means tolerate the taint + forever (do not evict). Zero and negative values will + be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches + to. If the operator is Exists, the value should be empty, + otherwise just a regular string. + type: string + type: object + type: array + type: object + hadoopConfig: + description: Name of the configMap used to support HDFS configurations + when using HDFS as Jindo's UFS. The configMap must be in the same + namespace with the JindoRuntime. The configMap should contain user-specific + HDFS conf files in it. For now, only "hdfs-site.xml" and "core-site.xml" + are supported. It must take the filename of the conf file as the + key and content of the file as the value. type: string - type: object - master: - description: The component spec of Jindo master - properties: - env: - additionalProperties: + jindoVersion: + description: The version information that instructs fluid to orchestrate + a particular version of Jindo. + properties: + image: + description: Image (e.g. alluxio/alluxio) type: string - description: Environment variables that will be used by Jindo component.
- type: object - labels: - additionalProperties: + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' type: string - description: Labels will be added on all the JindoFS Master or Worker pods. Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: - type: integer - type: object + type: object + labels: + additionalProperties: + type: string + description: Labels will be added on all the JindoFS pods. + type: object + logConfig: + additionalProperties: + type: string + type: object + master: + description: The component spec of Jindo master properties: - additionalProperties: - type: string - description: Configurable properties for the Jindo component.
- type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. + env: + additionalProperties: + type: string + description: Environment variables that will be used by Jindo + component.
+ type: object + labels: + additionalProperties: + type: string + description: Labels will be added on all the JindoFS Master or + Worker pods. Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + type: object properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . + additionalProperties: + type: string + description: Configurable properties for the Jindo component. +
+ type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Jindo component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. properties: - effect: - description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. - type: string + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - type: object - networkmode: - description: Whether to use hostnetwork or not - enum: - - HostNetwork - - "" - - ContainerNetwork - type: string - properties: - additionalProperties: + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple using + the matching operator . + properties: + effect: + description: Effect indicates the taint effect to match. + Empty means match all taint effects. When specified, allowed + values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies + to. Empty means match all taint keys. If the key is empty, + operator must be Exists; this combination means to match + all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to + the value. Valid operators are Exists and Equal. Defaults + to Equal. Exists is equivalent to wildcard for value, + so that a pod can tolerate all taints of a particular + category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of + time the toleration (which must be of effect NoExecute, + otherwise this field is ignored) tolerates the taint. + By default, it is not set, which means tolerate the taint + forever (do not evict). Zero and negative values will + be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches + to. If the operator is Exists, the value should be empty, + otherwise just a regular string. + type: string + type: object + type: array + type: object + networkmode: + description: Whether to use hostnetwork or not + enum: + - HostNetwork + - "" + - ContainerNetwork type: string - description: Configurable properties for Jindo system.
- type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Jindo Runtime properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime + additionalProperties: type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - secret: - type: string - tieredstore: - description: Tiered storage used by Jindo - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype - type: object - type: array - type: object - user: - type: string - worker: - description: The component spec of Jindo worker - properties: - env: - additionalProperties: - type: string - description: Environment variables that will be used by Jindo component.
- type: object - labels: - additionalProperties: - type: string - description: Labels will be added on all the JindoFS Master or Worker pods. Any label already existed will be overriden - type: object - nodeSelector: - additionalProperties: + description: Configurable properties for Jindo system.
+ type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Jindo Runtime + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime type: string - description: NodeSelector is a selector which must be true for the master to fit on a node - type: object - ports: - additionalProperties: + uid: + description: The uid to run the alluxio runtime + format: int64 type: integer - type: object - properties: - additionalProperties: + user: + description: The user name to run the alluxio runtime type: string - description: Configurable properties for the Jindo component.
- type: object - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + required: + - gid + - group + - uid + - user + type: object + secret: + type: string + tieredstore: + description: Tiered storage used by Jindo + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
+ Refer to Configuring + Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three + types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple + paths are supported. Multiple paths should be separated + with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please + note that if there're multiple paths used for this tierstore, + the quota will be equally divided into these paths. If + you'd like to set quota for each, path, see QuotaList + for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple + paths. Quotas should be separated with comma. Quotas in + this list will be set to paths with the same order in + Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" + and QuotaList set to "100Gi, 50Gi", then we get 100GiB + cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". + Also note that num of quotas must be consistent with the + num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype type: object - type: object - tolerations: - description: If specified, the pod's tolerations. - items: - description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . + type: array + type: object + user: + type: string + worker: + description: The component spec of Jindo worker + properties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by Jindo + component.
+ type: object + labels: + additionalProperties: + type: string + description: Labels will be added on all the JindoFS Master or + Worker pods. Any label already existed will be overriden + type: object + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the master to fit on a node + type: object + ports: + additionalProperties: + type: integer + type: object + properties: + additionalProperties: + type: string + description: Configurable properties for the Jindo component. +
+ type: object + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the Jindo component. +

Resources are not allowed for ephemeral containers. + Ephemeral containers use spare resources already allocated to + the pod. properties: - effect: - description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. - format: int64 - type: integer - value: - description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. - type: string + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status - properties: - endpoint: - description: Endpoint for accessing - type: string - type: object - cacheStates: - additionalProperties: - type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc runtime's current state. - items: - description: Condition describes the state of the cache at a certain point. + tolerations: + description: If specified, the pod's tolerations. + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple using + the matching operator . + properties: + effect: + description: Effect indicates the taint effect to match. + Empty means match all taint effects. When specified, allowed + values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies + to. Empty means match all taint keys. If the key is empty, + operator must be Exists; this combination means to match + all values and all keys. + type: string + operator: + description: Operator represents a key's relationship to + the value. Valid operators are Exists and Equal. Defaults + to Equal. Exists is equivalent to wildcard for value, + so that a pod can tolerate all taints of a particular + category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of + time the toleration (which must be of effect NoExecute, + otherwise this field is ignored) tolerates the taint. + By default, it is not set, which means tolerate the taint + forever (do not evict). Zero and negative values will + be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches + to. If the operator is Exists, the value should be empty, + otherwise just a regular string. + type: string + type: object + type: array + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time + endpoint: + description: Endpoint for accessing type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - mountTime: - description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required - format: date-time - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition - type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc + runtime's current state. + items: + description: Condition describes the state of the cache at a certain + point. + properties: + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type + type: object + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime + Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime + worker pod (including nodes correctly running the runtime worker + pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the + runtime Fuse pod (including nodes correctly running the runtime + Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the + runtime worker pod (including nodes correctly running the runtime + worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime + fuse pod and have none of the runtime fuse pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase + type: string + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have zero or more of the runtime master pod running + and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime + is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the + runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime + worker pod and have none of the runtime worker pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object served: true storage: true + subresources: + scale: + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} status: acceptedNames: kind: "" diff --git a/config/crd/bases/data.fluid.io_juicefsruntimes.yaml b/config/crd/bases/data.fluid.io_juicefsruntimes.yaml index f62c1c7a267..6e0c99c86f3 100644 --- a/config/crd/bases/data.fluid.io_juicefsruntimes.yaml +++ b/config/crd/bases/data.fluid.io_juicefsruntimes.yaml @@ -1,39 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: juicefsruntimes.data.fluid.io spec: - additionalPrinterColumns: - - JSONPath: .status.workerNumberReady - name: Ready Workers - priority: 10 - type: integer - - JSONPath: .status.desiredWorkerNumberScheduled - name: Desired Workers - priority: 10 - type: integer - - JSONPath: .status.workerPhase - name: Worker Phase - type: string - - JSONPath: .status.fuseNumberReady - name: Ready Fuses - priority: 10 - type: integer - - JSONPath: .status.desiredFuseNumberScheduled - name: Desired Fuses - priority: 10 - type: integer - - JSONPath: .status.fusePhase - name: Fuse Phase - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: data.fluid.io names: categories: @@ -45,862 +19,1132 @@ spec: - juicefs singular: juicefsruntime scope: Namespaced - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.currentWorkerNumberScheduled - status: {} - validation: - openAPIV3Schema: - description: JuiceFSRuntime is the Schema for the juicefsruntimes API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: JuiceFSRuntimeSpec defines the desired state of JuiceFSRuntime - properties: - disablePrometheus: - description: Disable monitoring for JuiceFS Runtime Prometheus is enabled by default - type: boolean - fuse: - description: Desired state for JuiceFS Fuse - properties: - cleanPolicy: - description: 'CleanPolicy decides when to clean Juicefs Fuse pods. Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted OnDemand cleans fuse pod once th fuse pod on some node is not needed OnRuntimeDeleted cleans fuse pod only when the cache runtime is deleted Defaults to OnDemand' - type: string - env: - description: Environment variables that will be used by JuiceFS Fuse - items: - description: EnvVar represents an environment variable present in a Container. - properties: - name: - description: Name of the environment variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - global: - description: If the fuse client should be deployed in global mode, otherwise the affinity should be considered - type: boolean - image: - description: Image for JuiceFS fuse - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image for JuiceFS fuse - type: string - nodeSelector: - additionalProperties: + versions: + - additionalPrinterColumns: + - jsonPath: .status.workerNumberReady + name: Ready Workers + priority: 10 + type: integer + - jsonPath: .status.desiredWorkerNumberScheduled + name: Desired Workers + priority: 10 + type: integer + - jsonPath: .status.workerPhase + name: Worker Phase + type: string + - jsonPath: .status.fuseNumberReady + name: Ready Fuses + priority: 10 + type: integer + - jsonPath: .status.desiredFuseNumberScheduled + name: Desired Fuses + priority: 10 + type: integer + - jsonPath: .status.fusePhase + name: Fuse Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: JuiceFSRuntime is the Schema for the juicefsruntimes API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: JuiceFSRuntimeSpec defines the desired state of JuiceFSRuntime + properties: + disablePrometheus: + description: Disable monitoring for JuiceFS Runtime Prometheus is + enabled by default + type: boolean + fuse: + description: Desired state for JuiceFS Fuse + properties: + cleanPolicy: + description: 'CleanPolicy decides when to clean Juicefs Fuse pods. + Currently Fluid supports two policies: OnDemand and OnRuntimeDeleted + OnDemand cleans fuse pod once th fuse pod on some node is not + needed OnRuntimeDeleted cleans fuse pod only when the cache + runtime is deleted Defaults to OnDemand' type: string - description: NodeSelector is a selector which must be true for the fuse client to fit on a node, this option only effect when global is enabled - type: object - resources: - description: Resources that will be requested by JuiceFS Fuse. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + env: + description: Environment variables that will be used by JuiceFS + Fuse + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must be a + C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previous defined environment variables in the + container and any service environment variables. If a + variable cannot be resolved, the reference in the input + string will be unchanged. The $(VAR_NAME) syntax can be + escaped with a double $$, ie: $$(VAR_NAME). Escaped references + will never be expanded, regardless of whether the variable + exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, + metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the + specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only + resources limits and requests (limits.cpu, limits.memory, + limits.ephemeral-storage, requests.cpu, requests.memory + and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the + exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name type: object - type: object - type: object - initUsers: - description: The spec of init users - properties: - env: - additionalProperties: + type: array + global: + description: If the fuse client should be deployed in global mode, + otherwise the affinity should be considered + type: boolean + image: + description: Image for JuiceFS fuse type: string - description: Environment variables that will be used by initialize the users for runtime - type: object - image: - description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User init) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image Tag for initialize the users for runtime(e.g. 2.3.0-SNAPSHOT) - type: string - resources: - description: Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - type: object - type: object - jobWorker: - description: The component spec of JuiceFS job Worker - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS component. - items: - description: EnvVar represents an environment variable present in a Container. + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image for JuiceFS fuse + type: string + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true for + the fuse client to fit on a node, this option only effect when + global is enabled + type: object + resources: + description: Resources that will be requested by JuiceFS Fuse. properties: - name: - description: Name of the environment variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - required: - - name type: object - type: array - nodeSelector: - additionalProperties: + type: object + initUsers: + description: The spec of init users + properties: + env: + additionalProperties: + type: string + description: Environment variables that will be used by initialize + the users for runtime + type: object + image: + description: Image for initialize the users for runtime(e.g. alluxio/alluxio-User + init) type: string - description: NodeSelector is a selector - type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single container. + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image Tag for initialize the users for runtime(e.g. + 2.3.0-SNAPSHOT) + type: string + resources: + description: Resources that will be requested by initialize the + users for runtime.

Resources are not allowed for ephemeral + containers. Ephemeral containers use spare resources already + allocated to the pod. properties: - containerPort: - description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. - type: string - protocol: - description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". - type: string - required: - - containerPort + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + jobWorker: + description: The component spec of JuiceFS job Worker + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS + component. + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must be a + C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previous defined environment variables in the + container and any service environment variables. If a + variable cannot be resolved, the reference in the input + string will be unchanged. The $(VAR_NAME) syntax can be + escaped with a double $$, ie: $$(VAR_NAME). Escaped references + will never be expanded, regardless of whether the variable + exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, + metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the + specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only + resources limits and requests (limits.cpu, limits.memory, + limits.ephemeral-storage, requests.cpu, requests.memory + and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the + exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector + type: object + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single + container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, + this must be a valid port number, 0 < x < 65536. If HostNetwork + is specified, this must match ContainerPort. Most containers + do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME + and unique within the pod. Each named port in a pod must + have a unique name. Name for the port that can be referred + to by services. + type: string + protocol: + default: TCP + description: Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort type: object - type: object - type: object - juicefsVersion: - description: The version information that instructs fluid to orchestrate a particular version of JuiceFS. - properties: - image: - description: Image (e.g. alluxio/alluxio) - type: string - imagePullPolicy: - description: 'One of the three policies: `Always`, `IfNotPresent`, `Never`' - type: string - imageTag: - description: Image tag (e.g. 2.3.0-SNAPSHOT) - type: string - type: object - master: - description: The component spec of JuiceFS master - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS component. - items: - description: EnvVar represents an environment variable present in a Container. + type: array + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. properties: - name: - description: Name of the environment variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - required: - - name type: object - type: array - nodeSelector: - additionalProperties: + type: object + juicefsVersion: + description: The version information that instructs fluid to orchestrate + a particular version of JuiceFS. + properties: + image: + description: Image (e.g. alluxio/alluxio) type: string - description: NodeSelector is a selector - type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single container. + imagePullPolicy: + description: 'One of the three policies: `Always`, `IfNotPresent`, + `Never`' + type: string + imageTag: + description: Image tag (e.g. 2.3.0-SNAPSHOT) + type: string + type: object + master: + description: The component spec of JuiceFS master + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS + component. + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must be a + C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previous defined environment variables in the + container and any service environment variables. If a + variable cannot be resolved, the reference in the input + string will be unchanged. The $(VAR_NAME) syntax can be + escaped with a double $$, ie: $$(VAR_NAME). Escaped references + will never be expanded, regardless of whether the variable + exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, + metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the + specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only + resources limits and requests (limits.cpu, limits.memory, + limits.ephemeral-storage, requests.cpu, requests.memory + and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the + exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector + type: object + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single + container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, + this must be a valid port number, 0 < x < 65536. If HostNetwork + is specified, this must match ContainerPort. Most containers + do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME + and unique within the pod. Each named port in a pod must + have a unique name. Name for the port that can be referred + to by services. + type: string + protocol: + default: TCP + description: Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. properties: - containerPort: - description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. - type: string - protocol: - description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". - type: string - required: - - containerPort + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + replicas: + description: The replicas of the worker, need to be specified + format: int32 + type: integer + runAs: + description: Manage the user to run Juicefs Runtime + properties: + gid: + description: The gid to run the alluxio runtime + format: int64 + type: integer + group: + description: The group name to run the alluxio runtime + type: string + uid: + description: The uid to run the alluxio runtime + format: int64 + type: integer + user: + description: The user name to run the alluxio runtime + type: string + required: + - gid + - group + - uid + - user + type: object + tieredstore: + description: Tiered storage used by JuiceFS + properties: + levels: + description: configurations for multiple tiers + items: + description: Level describes configurations a tier needs.
+ Refer to Configuring + Tiered Storage for more info + properties: + high: + description: Ratio of high watermark of the tier (e.g. 0.9) + type: string + low: + description: Ratio of low watermark of the tier (e.g. 0.7) + type: string + mediumtype: + description: 'Medium Type of the tier. One of the three + types: `MEM`, `SSD`, `HDD`' + enum: + - MEM + - SSD + - HDD + type: string + path: + description: 'File paths to be used for the tier. Multiple + paths are supported. Multiple paths should be separated + with comma. For example: "/mnt/cache1,/mnt/cache2".' + minLength: 1 + type: string + quota: + anyOf: + - type: integer + - type: string + description: Quota for the whole tier. (e.g. 100Gi) Please + note that if there're multiple paths used for this tierstore, + the quota will be equally divided into these paths. If + you'd like to set quota for each, path, see QuotaList + for more information. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + quotaList: + description: QuotaList are quotas used to set quota on multiple + paths. Quotas should be separated with comma. Quotas in + this list will be set to paths with the same order in + Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" + and QuotaList set to "100Gi, 50Gi", then we get 100GiB + cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". + Also note that num of quotas must be consistent with the + num of paths defined in Path. + pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ + type: string + required: + - mediumtype type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: array + type: object + worker: + description: The component spec of JuiceFS worker + properties: + enabled: + description: Enabled or Disabled for the components. + type: boolean + env: + description: Environment variables that will be used by JuiceFS + component. + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must be a + C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previous defined environment variables in the + container and any service environment variables. If a + variable cannot be resolved, the reference in the input + string will be unchanged. The $(VAR_NAME) syntax can be + escaped with a double $$, ie: $$(VAR_NAME). Escaped references + will never be expanded, regardless of whether the variable + exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, + metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the + specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only + resources limits and requests (limits.cpu, limits.memory, + limits.ephemeral-storage, requests.cpu, requests.memory + and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the + exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name type: object - type: object - type: object - replicas: - description: The replicas of the worker, need to be specified - format: int32 - type: integer - runAs: - description: Manage the user to run Juicefs Runtime - properties: - gid: - description: The gid to run the alluxio runtime - format: int64 - type: integer - group: - description: The group name to run the alluxio runtime - type: string - uid: - description: The uid to run the alluxio runtime - format: int64 - type: integer - user: - description: The user name to run the alluxio runtime - type: string - required: - - gid - - group - - uid - - user - type: object - tieredstore: - description: Tiered storage used by JuiceFS - properties: - levels: - description: configurations for multiple tiers - items: - description: Level describes configurations a tier needs.
Refer to Configuring Tiered Storage for more info - properties: - high: - description: Ratio of high watermark of the tier (e.g. 0.9) - type: string - low: - description: Ratio of low watermark of the tier (e.g. 0.7) - type: string - mediumtype: - description: 'Medium Type of the tier. One of the three types: `MEM`, `SSD`, `HDD`' - enum: - - MEM - - SSD - - HDD - type: string - path: - description: 'File paths to be used for the tier. Multiple paths are supported. Multiple paths should be separated with comma. For example: "/mnt/cache1,/mnt/cache2".' - minLength: 1 - type: string - quota: - anyOf: - - type: integer - - type: string - description: Quota for the whole tier. (e.g. 100Gi) Please note that if there're multiple paths used for this tierstore, the quota will be equally divided into these paths. If you'd like to set quota for each, path, see QuotaList for more information. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - quotaList: - description: QuotaList are quotas used to set quota on multiple paths. Quotas should be separated with comma. Quotas in this list will be set to paths with the same order in Path. For example, with Path defined with "/mnt/cache1,/mnt/cache2" and QuotaList set to "100Gi, 50Gi", then we get 100GiB cache storage under "/mnt/cache1" and 50GiB under "/mnt/cache2". Also note that num of quotas must be consistent with the num of paths defined in Path. - pattern: ^((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+)))),)+((\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?)$ - type: string - required: - - mediumtype + type: array + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector type: object - type: array - type: object - worker: - description: The component spec of JuiceFS worker - properties: - enabled: - description: Enabled or Disabled for the components. - type: boolean - env: - description: Environment variables that will be used by JuiceFS component. - items: - description: EnvVar represents an environment variable present in a Container. + ports: + description: Ports used by JuiceFS + items: + description: ContainerPort represents a network port in a single + container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, + this must be a valid port number, 0 < x < 65536. If HostNetwork + is specified, this must match ContainerPort. Most containers + do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME + and unique within the pod. Each named port in a pod must + have a unique name. Name for the port that can be referred + to by services. + type: string + protocol: + default: TCP + description: Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + replicas: + description: Replicas is the desired number of replicas of the + given template. If unspecified, defaults to 1. replicas is the + min replicas of dataset in the cluster + format: int32 + minimum: 1 + type: integer + resources: + description: Resources that will be requested by the JuiceFS component. properties: - name: - description: Name of the environment variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' - properties: - apiVersion: - description: Version of the schema the FieldPath is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object - required: - - name type: object - type: array - nodeSelector: - additionalProperties: + type: object + type: object + status: + description: RuntimeStatus defines the observed state of Runtime + properties: + apiGateway: + description: APIGatewayStatus represents rest api gateway status + properties: + endpoint: + description: Endpoint for accessing type: string - description: NodeSelector is a selector - type: object - ports: - description: Ports used by JuiceFS - items: - description: ContainerPort represents a network port in a single container. - properties: - containerPort: - description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external port to. - type: string - hostPort: - description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. - format: int32 - type: integer - name: - description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. - type: string - protocol: - description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". - type: string - required: - - containerPort - type: object - type: array - replicas: - description: Replicas is the desired number of replicas of the given template. If unspecified, defaults to 1. replicas is the min replicas of dataset in the cluster - format: int32 - minimum: 1 - type: integer - resources: - description: Resources that will be requested by the JuiceFS component. + type: object + cacheStates: + additionalProperties: + type: string + description: CacheStatus represents the total resources of the dataset. + type: object + conditions: + description: Represents the latest available observations of a ddc + runtime's current state. + items: + description: Condition describes the state of the cache at a certain + point. properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object + lastProbeTime: + description: The last time this condition was updated. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of cache condition. + type: string + required: + - status + - type type: object - type: object - type: object - status: - description: RuntimeStatus defines the observed state of Runtime - properties: - apiGateway: - description: APIGatewayStatus represents rest api gateway status - properties: - endpoint: - description: Endpoint for accessing - type: string - type: object - cacheStates: - additionalProperties: + type: array + currentFuseNumberScheduled: + description: The total number of nodes that can be running the runtime + Fuse pod (including nodes correctly running the runtime Fuse pod). + format: int32 + type: integer + currentMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + currentWorkerNumberScheduled: + description: The total number of nodes that can be running the runtime + worker pod (including nodes correctly running the runtime worker + pod). + format: int32 + type: integer + desiredFuseNumberScheduled: + description: The total number of nodes that should be running the + runtime Fuse pod (including nodes correctly running the runtime + Fuse pod). + format: int32 + type: integer + desiredMasterNumberScheduled: + description: The total number of nodes that should be running the + runtime pod (including nodes correctly running the runtime master + pod). + format: int32 + type: integer + desiredWorkerNumberScheduled: + description: The total number of nodes that should be running the + runtime worker pod (including nodes correctly running the runtime + worker pod). + format: int32 + type: integer + fuseNumberAvailable: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fuseNumberReady: + description: The number of nodes that should be running the runtime + Fuse pod and have one or more of the runtime Fuse pod running and + ready. + format: int32 + type: integer + fuseNumberUnavailable: + description: The number of nodes that should be running the runtime + fuse pod and have none of the runtime fuse pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + fusePhase: + description: FusePhase is the Fuse running phase type: string - description: CacheStatus represents the total resources of the dataset. - type: object - conditions: - description: Represents the latest available observations of a ddc runtime's current state. - items: - description: Condition describes the state of the cache at a certain point. - properties: - lastProbeTime: - description: The last time this condition was updated. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of cache condition. - type: string - required: - - status - - type - type: object - type: array - currentFuseNumberScheduled: - description: The total number of nodes that can be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - currentMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - currentWorkerNumberScheduled: - description: The total number of nodes that can be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - desiredFuseNumberScheduled: - description: The total number of nodes that should be running the runtime Fuse pod (including nodes correctly running the runtime Fuse pod). - format: int32 - type: integer - desiredMasterNumberScheduled: - description: The total number of nodes that should be running the runtime pod (including nodes correctly running the runtime master pod). - format: int32 - type: integer - desiredWorkerNumberScheduled: - description: The total number of nodes that should be running the runtime worker pod (including nodes correctly running the runtime worker pod). - format: int32 - type: integer - fuseNumberAvailable: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fuseNumberReady: - description: The number of nodes that should be running the runtime Fuse pod and have one or more of the runtime Fuse pod running and ready. - format: int32 - type: integer - fuseNumberUnavailable: - description: The number of nodes that should be running the runtime fuse pod and have none of the runtime fuse pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - fusePhase: - description: FusePhase is the Fuse running phase - type: string - fuseReason: - description: Reason for the condition's last transition. - type: string - masterNumberReady: - description: The number of nodes that should be running the runtime worker pod and have zero or more of the runtime master pod running and ready. - format: int32 - type: integer - masterPhase: - description: MasterPhase is the master running phase - type: string - masterReason: - description: Reason for Master's condition transition - type: string - mountTime: - description: MountTime represents time last mount happened if Mounttime is earlier than master starting time, remount will be required - format: date-time - type: string - selector: - description: Selector is used for auto-scaling - type: string - setupDuration: - description: Duration tell user how much time was spent to setup the runtime - type: string - valueFile: - description: config map used to set configurations - type: string - workerNumberAvailable: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerNumberReady: - description: The number of nodes that should be running the runtime worker pod and have one or more of the runtime worker pod running and ready. - format: int32 - type: integer - workerNumberUnavailable: - description: The number of nodes that should be running the runtime worker pod and have none of the runtime worker pod running and available (ready for at least spec.minReadySeconds) - format: int32 - type: integer - workerPhase: - description: WorkerPhase is the worker running phase - type: string - workerReason: - description: Reason for Worker's condition transition - type: string - required: - - currentFuseNumberScheduled - - currentMasterNumberScheduled - - currentWorkerNumberScheduled - - desiredFuseNumberScheduled - - desiredMasterNumberScheduled - - desiredWorkerNumberScheduled - - fuseNumberReady - - fusePhase - - masterNumberReady - - masterPhase - - valueFile - - workerNumberReady - - workerPhase - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + fuseReason: + description: Reason for the condition's last transition. + type: string + masterNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have zero or more of the runtime master pod running + and ready. + format: int32 + type: integer + masterPhase: + description: MasterPhase is the master running phase + type: string + masterReason: + description: Reason for Master's condition transition + type: string + mountTime: + description: MountTime represents time last mount happened if Mounttime + is earlier than master starting time, remount will be required + format: date-time + type: string + selector: + description: Selector is used for auto-scaling + type: string + setupDuration: + description: Duration tell user how much time was spent to setup the + runtime + type: string + valueFile: + description: config map used to set configurations + type: string + workerNumberAvailable: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and available (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerNumberReady: + description: The number of nodes that should be running the runtime + worker pod and have one or more of the runtime worker pod running + and ready. + format: int32 + type: integer + workerNumberUnavailable: + description: The number of nodes that should be running the runtime + worker pod and have none of the runtime worker pod running and available + (ready for at least spec.minReadySeconds) + format: int32 + type: integer + workerPhase: + description: WorkerPhase is the worker running phase + type: string + workerReason: + description: Reason for Worker's condition transition + type: string + required: + - currentFuseNumberScheduled + - currentMasterNumberScheduled + - currentWorkerNumberScheduled + - desiredFuseNumberScheduled + - desiredMasterNumberScheduled + - desiredWorkerNumberScheduled + - fuseNumberReady + - fusePhase + - masterNumberReady + - masterPhase + - valueFile + - workerNumberReady + - workerPhase + type: object + type: object served: true storage: true + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.currentWorkerNumberScheduled + status: {} status: acceptedNames: kind: "" diff --git a/pkg/ddc/alluxio/ufs.go b/pkg/ddc/alluxio/ufs.go index 22a63d9f6d5..716352f11bf 100644 --- a/pkg/ddc/alluxio/ufs.go +++ b/pkg/ddc/alluxio/ufs.go @@ -153,7 +153,7 @@ func (e *AlluxioEngine) checkIfRemountRequired(ufsToUpdate *utils.UFSToUpdate) { } // If mounttime is earlier than master container starttime, remount is necessary - if startedAt != nil && runtime.Status.MountTime.Before(startedAt) { + if startedAt != nil && runtime.Status.MountTime != nil && runtime.Status.MountTime.Before(startedAt) { e.Log.Info("remount on master restart", "alluxioruntime", e.name) unmountedPaths, err := e.FindUnmountedUFS()