--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 creationTimestamp: "2026-02-17T13:04:32Z" generation: 1 managedFields: - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:controller-gen.kubebuilder.io/version: {} f:spec: f:group: {} f:names: f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} f:singular: {} f:scope: {} f:versions: {} manager: kubectl operation: Apply time: "2026-02-17T13:04:32Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:acceptedNames: f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} f:singular: {} f:conditions: k:{"type":"Established"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"NamesAccepted"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} manager: kube-apiserver operation: Update subresource: status time: "2026-02-17T13:04:32Z" name: featurestores.feast.dev resourceVersion: "16663" uid: 90c671a9-2848-46e1-b675-c455df72a99e spec: conversion: strategy: None group: feast.dev names: kind: FeatureStore listKind: FeatureStoreList plural: featurestores shortNames: - feast singular: featurestore scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.phase name: Status type: string - jsonPath: .metadata.creationTimestamp name: Age type: date name: v1 schema: openAPIV3Schema: description: FeatureStore is the Schema for the featurestores API properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: type: object spec: description: FeatureStoreSpec defines the desired state of FeatureStore properties: authz: description: AuthzConfig defines the authorization settings for the deployed Feast services. properties: kubernetes: description: |- KubernetesAuthz provides a way to define the authorization settings using Kubernetes RBAC resources. https://kubernetes. properties: roles: description: The Kubernetes RBAC roles to be deployed in the same namespace of the FeatureStore. items: type: string type: array type: object oidc: description: |- OidcAuthz defines the authorization settings for deployments using an Open ID Connect identity provider. https://auth0. properties: secretRef: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - secretRef type: object type: object x-kubernetes-validations: - message: One selection required between kubernetes or oidc. rule: '[has(self.kubernetes), has(self.oidc)].exists_one(c, c)' cronJob: description: FeastCronJob defines a CronJob to execute against a Feature Store deployment. properties: annotations: additionalProperties: type: string description: Annotations to be added to the CronJob metadata. type: object concurrencyPolicy: description: Specifies how to treat concurrent executions of a Job. type: string containerConfigs: description: CronJobContainerConfigs k8s container settings for the CronJob properties: commands: description: Array of commands to be executed (in order) against a Feature Store deployment. items: type: string type: array env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object type: object failedJobsHistoryLimit: description: The number of failed finished jobs to retain. Value must be non-negative integer. format: int32 type: integer jobSpec: description: Specification of the desired behavior of a job. properties: activeDeadlineSeconds: description: |- Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tr format: int64 type: integer backoffLimit: description: Specifies the number of retries before marking this job failed. format: int32 type: integer backoffLimitPerIndex: description: |- Specifies the limit for the number of retries within an index before marking this index as failed. format: int32 type: integer completionMode: description: |- completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. type: string completions: description: |- Specifies the desired number of successfully finished pods the job should be run with. format: int32 type: integer maxFailedIndexes: description: |- Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. format: int32 type: integer parallelism: description: |- Specifies the maximum desired number of pods the job should run at any given time. format: int32 type: integer podFailurePolicy: description: Specifies the policy of handling failed pods. properties: rules: description: A list of pod failure policy rules. The rules are evaluated in order. items: description: PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. properties: action: description: Specifies the action taken on a pod failure when the requirements are satisfied. type: string onExitCodes: description: Represents the requirement on the container exit codes. properties: containerName: description: |- Restricts the check for exit codes to the container with the specified name. type: string operator: description: |- Represents the relationship between the container exit code(s) and the specified values. type: string values: description: Specifies the set of values. items: format: int32 type: integer type: array x-kubernetes-list-type: set required: - operator - values type: object onPodConditions: description: |- Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. items: description: |- PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type. properties: status: description: Specifies the required Pod condition status. type: string type: description: Specifies the required Pod condition type. type: string required: - status - type type: object type: array x-kubernetes-list-type: atomic required: - action type: object type: array x-kubernetes-list-type: atomic required: - rules type: object podReplacementPolicy: description: podReplacementPolicy specifies when to create replacement Pods. type: string podTemplateAnnotations: additionalProperties: type: string description: |- PodTemplateAnnotations are annotations to be applied to the CronJob's PodTemplate metadata. type: object suspend: description: suspend specifies whether the Job controller should create Pods or not. type: boolean ttlSecondsAfterFinished: description: |- ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). format: int32 type: integer type: object schedule: description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. type: string startingDeadlineSeconds: description: |- Optional deadline in seconds for starting the job if it misses scheduled time for any reason. format: int64 type: integer successfulJobsHistoryLimit: description: The number of successful finished jobs to retain. Value must be non-negative integer. format: int32 type: integer suspend: description: |- This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. type: boolean timeZone: description: The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. type: string type: object feastProject: description: FeastProject is the Feast project id. pattern: ^[A-Za-z0-9][A-Za-z0-9_-]*$ type: string feastProjectDir: description: FeastProjectDir defines how to create the feast project directory. properties: git: description: GitCloneOptions describes how a clone should be performed. properties: configs: additionalProperties: type: string description: |- Configs passed to git via `-c` e.g. http.sslVerify: 'false' OR 'url."https://api:\${TOKEN}@github.com/". type: object env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array featureRepoPath: description: FeatureRepoPath is the relative path to the feature repo subdirectory. Default is 'feature_repo'. type: string ref: description: Reference to a branch / tag / commit type: string url: description: The repository URL to clone from. type: string required: - url type: object x-kubernetes-validations: - message: RepoPath must be a file name only, with no slashes. rule: 'has(self.featureRepoPath) ? !self.featureRepoPath.startsWith(''/'') : true' init: description: FeastInitOptions defines how to run a `feast init`. properties: minimal: type: boolean template: description: Template for the created project enum: - local - gcp - aws - snowflake - spark - postgres - hbase - cassandra - hazelcast - ikv - couchbase - clickhouse type: string type: object type: object x-kubernetes-validations: - message: One selection required between init or git. rule: '[has(self.git), has(self.init)].exists_one(c, c)' services: description: FeatureStoreServices defines the desired feast services. An ephemeral onlineStore feature server is deployed by default. properties: deploymentStrategy: description: DeploymentStrategy describes how to replace existing pods with new ones. properties: rollingUpdate: description: |- Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. properties: maxSurge: anyOf: - type: integer - type: string description: |- The maximum number of pods that can be scheduled above the desired number of pods. x-kubernetes-int-or-string: true maxUnavailable: anyOf: - type: integer - type: string description: The maximum number of pods that can be unavailable during the update. x-kubernetes-int-or-string: true type: object type: description: Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. type: string type: object disableInitContainers: description: Disable the 'feast repo initialization' initContainer type: boolean offlineStore: description: OfflineStore configures the offline store service properties: persistence: description: OfflineStorePersistence configures the persistence settings for the offline store service properties: file: description: OfflineStoreFilePersistence configures the file-based persistence for the offline store service properties: pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') type: enum: - file - dask - duckdb type: string type: object store: description: OfflineStoreDBStorePersistence configures the DB store persistence for the offline store service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - snowflake.offline - bigquery - redshift - spark - postgres - trino - athena - mssql - couchbase.offline - clickhouse - ray type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a remote offline server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object type: object onlineStore: description: OnlineStore configures the online store service properties: persistence: description: OnlineStorePersistence configures the persistence settings for the online store service properties: file: description: OnlineStoreFilePersistence configures the file-based persistence for the online store service properties: path: type: string pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') type: object x-kubernetes-validations: - message: Ephemeral stores must have absolute paths. rule: '(!has(self.pvc) && has(self.path)) ? self.path.startsWith(''/'') : true' - message: PVC path must be a file name only, with no slashes. rule: '(has(self.pvc) && has(self.path)) ? !self.path.startsWith(''/'') : true' - message: Online store does not support S3 or GS buckets. rule: 'has(self.path) ? !(self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' store: description: OnlineStoreDBStorePersistence configures the DB store persistence for the online store service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - snowflake.online - redis - ikv - datastore - dynamodb - bigtable - postgres - cassandra - mysql - hazelcast - singlestore - hbase - elasticsearch - qdrant - couchbase.online - milvus - hybrid type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a feature server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object type: object registry: description: Registry configures the registry service. One selection is required. Local is the default setting. properties: local: description: LocalRegistryConfig configures the registry service properties: persistence: description: RegistryPersistence configures the persistence settings for the registry service properties: file: description: RegistryFilePersistence configures the file-based persistence for the registry service properties: cache_mode: description: |- CacheMode defines the registry cache update strategy. Allowed values are "sync" and "thread". enum: - none - sync - thread type: string cache_ttl_seconds: description: CacheTTLSeconds defines the TTL (in seconds) for the registry cache. format: int32 minimum: 0 type: integer path: type: string pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') s3_additional_kwargs: additionalProperties: type: string type: object type: object x-kubernetes-validations: - message: Registry files must use absolute paths or be S3 ('s3://') or GS ('gs://') object store URIs. rule: '(!has(self.pvc) && has(self.path)) ? (self.path.startsWith(''/'') || self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' - message: PVC path must be a file name only, with no slashes. rule: '(has(self.pvc) && has(self.path)) ? !self.path.startsWith(''/'') : true' - message: PVC persistence does not support S3 or GS object store URIs. rule: '(has(self.pvc) && has(self.path)) ? !(self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' - message: Additional S3 settings are available only for S3 object store URIs. rule: '(has(self.s3_additional_kwargs) && has(self.path)) ? self.path.startsWith(''s3://'') : true' store: description: RegistryDBStorePersistence configures the DB store persistence for the registry service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - sql - snowflake.registry type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a registry server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array grpc: description: Enable gRPC registry server. Defaults to true if unset. type: boolean image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object restAPI: description: Enable REST API registry server. type: boolean tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object x-kubernetes-validations: - message: At least one of restAPI or grpc must be true rule: self.restAPI == true || self.grpc == true || !has(self.grpc) type: object remote: description: RemoteRegistryConfig points to a remote feast registry server. properties: feastRef: description: Reference to an existing `FeatureStore` CR in the same k8s cluster. properties: name: description: Name of the FeatureStore type: string namespace: description: Namespace of the FeatureStore type: string required: - name type: object hostname: description: Host address of the remote registry service - :, e.g. `registry..svc.cluster.local:80` type: string tls: description: TlsRemoteRegistryConfigs configures client TLS for a remote feast registry. properties: certName: description: defines the configmap key name for the client TLS cert. type: string configMapRef: description: references the local k8s configmap where the TLS cert resides properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - certName - configMapRef type: object type: object x-kubernetes-validations: - message: One selection required. rule: '[has(self.hostname), has(self.feastRef)].exists_one(c, c)' type: object x-kubernetes-validations: - message: One selection required. rule: '[has(self.local), has(self.remote)].exists_one(c, c)' securityContext: description: PodSecurityContext holds pod-level security attributes and common container settings. properties: appArmorProfile: description: appArmorProfile is the AppArmor options to use by the containers in this pod. properties: localhostProfile: description: localhostProfile indicates a profile loaded on the node that should be used. type: string type: description: type indicates which kind of AppArmor profile will be applied. type: string required: - type type: object fsGroup: description: A special supplemental group that applies to all containers in a pod. format: int64 type: integer fsGroupChangePolicy: description: |- fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. type: string runAsGroup: description: |- The GID to run the entrypoint of the container process. Uses runtime default if unset. format: int64 type: integer runAsNonRoot: description: Indicates that the container must run as a non-root user. type: boolean runAsUser: description: |- The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. format: int64 type: integer seLinuxOptions: description: The SELinux context to be applied to all containers. properties: level: description: Level is SELinux level label that applies to the container. type: string role: description: Role is a SELinux role label that applies to the container. type: string type: description: Type is a SELinux type label that applies to the container. type: string user: description: User is a SELinux user label that applies to the container. type: string type: object seccompProfile: description: |- The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os. properties: localhostProfile: description: localhostProfile indicates a profile defined in a file on the node should be used. type: string type: description: type indicates which kind of seccomp profile will be applied. type: string required: - type type: object supplementalGroups: description: |- A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsG items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: description: Sysctls hold a list of namespaced sysctls used for the pod. items: description: Sysctl defines a kernel parameter to be set properties: name: description: Name of a property to set type: string value: description: Value of a property to set type: string required: - name - value type: object type: array x-kubernetes-list-type: atomic windowsOptions: description: The Windows specific settings applied to all containers. properties: gmsaCredentialSpec: description: |- GMSACredentialSpec is where the GMSA admission webhook (https://github. type: string gmsaCredentialSpecName: description: GMSACredentialSpecName is the name of the GMSA credential spec to use. type: string hostProcess: description: HostProcess determines if a container should be run as a 'Host Process' container. type: boolean runAsUserName: description: The UserName in Windows to run the entrypoint of the container process. type: string type: object type: object ui: description: Creates a UI server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object volumes: description: Volumes specifies the volumes to mount in the FeatureStore deployment. items: description: Volume represents a named volume in a pod that may be accessed by any container in the pod. properties: awsElasticBlockStore: description: |- awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to th properties: fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string partition: description: |- partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. format: int32 type: integer readOnly: description: |- readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes. type: boolean volumeID: description: |- volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes. type: string required: - volumeID type: object azureDisk: description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. properties: cachingMode: description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.' type: string diskName: description: diskName is the Name of the data disk in the blob storage type: string diskURI: description: diskURI is the URI of data disk in the blob storage type: string fsType: description: |- fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string kind: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage accoun' type: string readOnly: description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: description: azureFile represents an Azure File Service mount on the host and bind mount to the pod. properties: readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretName: description: secretName is the name of secret that contains Azure Storage Account Name and Key type: string shareName: description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime properties: monitors: description: |- monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s. items: type: string type: array x-kubernetes-list-type: atomic path: description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /' type: string readOnly: description: |- readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretFile: description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.' type: string secretRef: description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.' properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic user: description: |- user is optional: User is the rados user name, default is admin More info: https://examples.k8s. type: string required: - monitors type: object cinder: description: |- cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic volumeID: description: |- volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md type: string required: - volumeID type: object configMap: description: configMap represents a configMap that should populate this volume properties: defaultMode: description: 'defaultMode is optional: mode bits used to set permissions on created files by default.' format: int32 type: integer items: description: |- items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volum items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta fea properties: driver: description: driver is the name of the CSI driver that handles this volume. type: string fsType: description: fsType to mount. Ex. "ext4", "xfs", "ntfs". type: string nodePublishSecretRef: description: |- nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to c properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic readOnly: description: |- readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string description: |- volumeAttributes stores driver-specific properties that are passed to the CSI driver. type: object required: - driver type: object downwardAPI: description: downwardAPI represents downward API about the pod that should populate this volume properties: defaultMode: description: 'Optional: mode bits to use on created files by default.' format: int32 type: integer items: description: Items is a list of downward API volume file items: description: DownwardAPIVolumeFile represents information to create the file containing the pod field properties: fieldRef: description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.' 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 x-kubernetes-map-type: atomic mode: description: |- Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal valu format: int32 type: integer path: description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path.' type: string resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests. 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 x-kubernetes-map-type: atomic required: - path type: object type: array x-kubernetes-list-type: atomic type: object emptyDir: description: |- emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes. properties: medium: description: medium represents what type of storage medium should back this directory. type: string sizeLimit: anyOf: - type: integer - type: string description: sizeLimit is the total amount of local storage required for this EmptyDir volume. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: description: ephemeral represents a volume that is handled by a cluster storage driver. properties: volumeClaimTemplate: description: Will be used to create a stand-alone PVC to provision the volume. properties: metadata: description: |- May contain labels and annotations that will be copied into the PVC when creating it. type: object spec: description: The specification for the PersistentVolumeClaim. properties: accessModes: description: |- accessModes contains the desired access modes the volume should have. More info: https://kubernetes. items: type: string type: array x-kubernetes-list-type: atomic dataSource: description: |- dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s. properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - kind - name type: object x-kubernetes-map-type: atomic dataSourceRef: description: |- dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string namespace: description: |- Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking. type: string required: - kind - name type: object resources: description: resources represents the minimum resources the volume should have. 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. 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. type: object type: object selector: description: selector is a label query over volumes to consider for binding. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: |- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: |- operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: |- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic storageClassName: description: |- storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes. type: string volumeAttributesClassName: description: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. type: string volumeName: description: volumeName is the binding reference to the PersistentVolume backing this claim. type: string type: object required: - spec type: object type: object fc: description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string lun: description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: description: |- readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean targetWWNs: description: 'targetWWNs is Optional: FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: description: "wwids Optional: FC volume world wide identifiers (wwids)\nEither wwids or combination of targetWWNs and lun must be set, " items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: description: |- flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. properties: driver: description: driver is the name of the driver to use for this volume. type: string fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string options: additionalProperties: type: string description: 'options is Optional: this field holds extra command options if any.' type: object readOnly: description: |- readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugi properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - driver type: object flocker: description: flocker represents a Flocker volume attached to a kubelet's host machine. properties: datasetName: description: |- datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as depreca type: string datasetUUID: description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: description: |- gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the po properties: fsType: description: fsType is filesystem type of the volume that you want to mount. type: string partition: description: |- partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. format: int32 type: integer pdName: description: |- pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes. type: string readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes. type: boolean required: - pdName type: object gitRepo: description: |- gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. properties: directory: description: |- directory is the target directory name. Must not contain or start with '..'. If '. type: string repository: description: repository is the URL type: string revision: description: revision is the commit hash for the specified revision. type: string required: - repository type: object glusterfs: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s. properties: endpoints: description: |- endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s. type: string path: description: |- path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod type: string readOnly: description: |- readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. type: boolean required: - endpoints - path type: object hostPath: description: |- hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. properties: path: description: |- path of the directory on the host. If the path is a symlink, it will follow the link to the real path. type: string type: description: |- type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath type: string required: - path type: object iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: description: chapAuthSession defines whether support iSCSI Session CHAP authentication type: boolean fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string initiatorName: description: initiatorName is the custom iSCSI Initiator Name. type: string iqn: description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: description: |- iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). type: string lun: description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: description: portals is the iSCSI Target Portal List. items: type: string type: array x-kubernetes-list-type: atomic readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. type: boolean secretRef: description: secretRef is the CHAP Secret for iSCSI target and initiator authentication properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic targetPortal: description: targetPortal is iSCSI Target Portal. type: string required: - iqn - lun - targetPortal type: object name: description: |- name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes. type: string nfs: description: |- nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes. properties: path: description: |- path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs type: string readOnly: description: |- readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. type: boolean server: description: |- server is the hostname or IP address of the NFS server. More info: https://kubernetes. type: string required: - path - server type: object persistentVolumeClaim: description: |- persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. properties: claimName: description: claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. type: string readOnly: description: |- readOnly Will force the ReadOnly setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string pdID: description: pdID is the ID that identifies Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine properties: fsType: description: |- fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean volumeID: description: volumeID uniquely identifies a Portworx volume type: string required: - volumeID type: object projected: description: projected items for all in one resources secrets, configmaps, and downward API properties: defaultMode: description: defaultMode are the mode bits used to set permissions on created files by default. format: int32 type: integer sources: description: sources is the list of volume projections items: description: Projection that may be projected along with other supported volume types properties: clusterTrustBundle: description: ClusterTrustBundle allows a pod to access the `.spec. properties: labelSelector: description: |- Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: |- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: |- operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: |- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic name: description: |- Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector. type: string optional: description: |- If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. type: boolean path: description: Relative path from the volume root to write the bundle. type: string signerName: description: |- Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. type: string required: - path type: object configMap: description: configMap information about the configMap data to project properties: items: description: |- items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volum items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: description: downwardAPI information about the downwardAPI data to project properties: items: description: Items is a list of DownwardAPIVolume file items: description: DownwardAPIVolumeFile represents information to create the file containing the pod field properties: fieldRef: description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.' 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 x-kubernetes-map-type: atomic mode: description: |- Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal valu format: int32 type: integer path: description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path.' type: string resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests. 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 x-kubernetes-map-type: atomic required: - path type: object type: array x-kubernetes-list-type: atomic type: object secret: description: secret information about the secret data to project properties: items: description: |- items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume a items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional field specify whether the Secret or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: description: serviceAccountToken is information about the serviceAccountToken data to project properties: audience: description: audience is the intended audience of the token. type: string expirationSeconds: description: |- expirationSeconds is the requested duration of validity of the service account token. format: int64 type: integer path: description: |- path is the path relative to the mount point of the file to project the token into. type: string required: - path type: object type: object type: array x-kubernetes-list-type: atomic type: object quobyte: description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime properties: group: description: |- group to map volume access to Default is no group type: string readOnly: description: |- readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. type: boolean registry: description: |- registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple ent type: string tenant: description: |- tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by type: string user: description: |- user to map volume access to Defaults to serivceaccount user type: string volume: description: volume is a string that references an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s. properties: fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string image: description: |- image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string keyring: description: |- keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s. type: string monitors: description: |- monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it items: type: string type: array x-kubernetes-list-type: atomic pool: description: |- pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s. type: boolean secretRef: description: |- secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic user: description: |- user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string required: - image - monitors type: object scaleIO: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string gateway: description: gateway is the host address of the ScaleIO API Gateway. type: string protectionDomain: description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. type: string readOnly: description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef references to the secret for ScaleIO user and other sensitive information. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic sslEnabled: description: sslEnabled Flag enable/disable SSL communication with Gateway, default false type: boolean storageMode: description: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. type: string storagePool: description: storagePool is the ScaleIO Storage Pool associated with the protection domain. type: string system: description: system is the name of the storage system as configured in ScaleIO. type: string volumeName: description: |- volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. type: string required: - gateway - secretRef - system type: object secret: description: |- secret represents a secret that should populate this volume. More info: https://kubernetes. properties: defaultMode: description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.' format: int32 type: integer items: description: |- items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume a items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic optional: description: optional field specify whether the Secret or its keys must be defined type: boolean secretName: description: |- secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes. type: string type: object storageos: description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef specifies the secret to use for obtaining the StorageOS API credentials. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic volumeName: description: |- volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. type: string volumeNamespace: description: volumeNamespace specifies the scope of the volume within StorageOS. type: string type: object vsphereVolume: description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine properties: fsType: description: |- fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string storagePolicyID: description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. type: string storagePolicyName: description: storagePolicyName is the storage Policy Based Management (SPBM) profile name. type: string volumePath: description: volumePath is the path that identifies vSphere volume vmdk type: string required: - volumePath type: object required: - name type: object type: array type: object required: - feastProject type: object status: description: FeatureStoreStatus defines the observed state of FeatureStore properties: applied: description: Shows the currently applied feast configuration, including any pertinent defaults properties: authz: description: AuthzConfig defines the authorization settings for the deployed Feast services. properties: kubernetes: description: |- KubernetesAuthz provides a way to define the authorization settings using Kubernetes RBAC resources. https://kubernetes. properties: roles: description: The Kubernetes RBAC roles to be deployed in the same namespace of the FeatureStore. items: type: string type: array type: object oidc: description: |- OidcAuthz defines the authorization settings for deployments using an Open ID Connect identity provider. https://auth0. properties: secretRef: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - secretRef type: object type: object x-kubernetes-validations: - message: One selection required between kubernetes or oidc. rule: '[has(self.kubernetes), has(self.oidc)].exists_one(c, c)' cronJob: description: FeastCronJob defines a CronJob to execute against a Feature Store deployment. properties: annotations: additionalProperties: type: string description: Annotations to be added to the CronJob metadata. type: object concurrencyPolicy: description: Specifies how to treat concurrent executions of a Job. type: string containerConfigs: description: CronJobContainerConfigs k8s container settings for the CronJob properties: commands: description: Array of commands to be executed (in order) against a Feature Store deployment. items: type: string type: array env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object type: object failedJobsHistoryLimit: description: The number of failed finished jobs to retain. Value must be non-negative integer. format: int32 type: integer jobSpec: description: Specification of the desired behavior of a job. properties: activeDeadlineSeconds: description: |- Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tr format: int64 type: integer backoffLimit: description: Specifies the number of retries before marking this job failed. format: int32 type: integer backoffLimitPerIndex: description: |- Specifies the limit for the number of retries within an index before marking this index as failed. format: int32 type: integer completionMode: description: |- completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. type: string completions: description: |- Specifies the desired number of successfully finished pods the job should be run with. format: int32 type: integer maxFailedIndexes: description: |- Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. format: int32 type: integer parallelism: description: |- Specifies the maximum desired number of pods the job should run at any given time. format: int32 type: integer podFailurePolicy: description: Specifies the policy of handling failed pods. properties: rules: description: A list of pod failure policy rules. The rules are evaluated in order. items: description: PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. properties: action: description: Specifies the action taken on a pod failure when the requirements are satisfied. type: string onExitCodes: description: Represents the requirement on the container exit codes. properties: containerName: description: |- Restricts the check for exit codes to the container with the specified name. type: string operator: description: |- Represents the relationship between the container exit code(s) and the specified values. type: string values: description: Specifies the set of values. items: format: int32 type: integer type: array x-kubernetes-list-type: set required: - operator - values type: object onPodConditions: description: |- Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. items: description: |- PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type. properties: status: description: Specifies the required Pod condition status. type: string type: description: Specifies the required Pod condition type. type: string required: - status - type type: object type: array x-kubernetes-list-type: atomic required: - action type: object type: array x-kubernetes-list-type: atomic required: - rules type: object podReplacementPolicy: description: podReplacementPolicy specifies when to create replacement Pods. type: string podTemplateAnnotations: additionalProperties: type: string description: |- PodTemplateAnnotations are annotations to be applied to the CronJob's PodTemplate metadata. type: object suspend: description: suspend specifies whether the Job controller should create Pods or not. type: boolean ttlSecondsAfterFinished: description: |- ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). format: int32 type: integer type: object schedule: description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. type: string startingDeadlineSeconds: description: |- Optional deadline in seconds for starting the job if it misses scheduled time for any reason. format: int64 type: integer successfulJobsHistoryLimit: description: The number of successful finished jobs to retain. Value must be non-negative integer. format: int32 type: integer suspend: description: |- This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. type: boolean timeZone: description: The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. type: string type: object feastProject: description: FeastProject is the Feast project id. pattern: ^[A-Za-z0-9][A-Za-z0-9_-]*$ type: string feastProjectDir: description: FeastProjectDir defines how to create the feast project directory. properties: git: description: GitCloneOptions describes how a clone should be performed. properties: configs: additionalProperties: type: string description: |- Configs passed to git via `-c` e.g. http.sslVerify: 'false' OR 'url."https://api:\${TOKEN}@github.com/". type: object env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array featureRepoPath: description: FeatureRepoPath is the relative path to the feature repo subdirectory. Default is 'feature_repo'. type: string ref: description: Reference to a branch / tag / commit type: string url: description: The repository URL to clone from. type: string required: - url type: object x-kubernetes-validations: - message: RepoPath must be a file name only, with no slashes. rule: 'has(self.featureRepoPath) ? !self.featureRepoPath.startsWith(''/'') : true' init: description: FeastInitOptions defines how to run a `feast init`. properties: minimal: type: boolean template: description: Template for the created project enum: - local - gcp - aws - snowflake - spark - postgres - hbase - cassandra - hazelcast - ikv - couchbase - clickhouse type: string type: object type: object x-kubernetes-validations: - message: One selection required between init or git. rule: '[has(self.git), has(self.init)].exists_one(c, c)' services: description: FeatureStoreServices defines the desired feast services. An ephemeral onlineStore feature server is deployed by default. properties: deploymentStrategy: description: DeploymentStrategy describes how to replace existing pods with new ones. properties: rollingUpdate: description: |- Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. properties: maxSurge: anyOf: - type: integer - type: string description: |- The maximum number of pods that can be scheduled above the desired number of pods. x-kubernetes-int-or-string: true maxUnavailable: anyOf: - type: integer - type: string description: The maximum number of pods that can be unavailable during the update. x-kubernetes-int-or-string: true type: object type: description: Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. type: string type: object disableInitContainers: description: Disable the 'feast repo initialization' initContainer type: boolean offlineStore: description: OfflineStore configures the offline store service properties: persistence: description: OfflineStorePersistence configures the persistence settings for the offline store service properties: file: description: OfflineStoreFilePersistence configures the file-based persistence for the offline store service properties: pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') type: enum: - file - dask - duckdb type: string type: object store: description: OfflineStoreDBStorePersistence configures the DB store persistence for the offline store service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - snowflake.offline - bigquery - redshift - spark - postgres - trino - athena - mssql - couchbase.offline - clickhouse - ray type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a remote offline server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object type: object onlineStore: description: OnlineStore configures the online store service properties: persistence: description: OnlineStorePersistence configures the persistence settings for the online store service properties: file: description: OnlineStoreFilePersistence configures the file-based persistence for the online store service properties: path: type: string pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') type: object x-kubernetes-validations: - message: Ephemeral stores must have absolute paths. rule: '(!has(self.pvc) && has(self.path)) ? self.path.startsWith(''/'') : true' - message: PVC path must be a file name only, with no slashes. rule: '(has(self.pvc) && has(self.path)) ? !self.path.startsWith(''/'') : true' - message: Online store does not support S3 or GS buckets. rule: 'has(self.path) ? !(self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' store: description: OnlineStoreDBStorePersistence configures the DB store persistence for the online store service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - snowflake.online - redis - ikv - datastore - dynamodb - bigtable - postgres - cassandra - mysql - hazelcast - singlestore - hbase - elasticsearch - qdrant - couchbase.online - milvus - hybrid type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a feature server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object type: object registry: description: Registry configures the registry service. One selection is required. Local is the default setting. properties: local: description: LocalRegistryConfig configures the registry service properties: persistence: description: RegistryPersistence configures the persistence settings for the registry service properties: file: description: RegistryFilePersistence configures the file-based persistence for the registry service properties: cache_mode: description: |- CacheMode defines the registry cache update strategy. Allowed values are "sync" and "thread". enum: - none - sync - thread type: string cache_ttl_seconds: description: CacheTTLSeconds defines the TTL (in seconds) for the registry cache. format: int32 minimum: 0 type: integer path: type: string pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') s3_additional_kwargs: additionalProperties: type: string type: object type: object x-kubernetes-validations: - message: Registry files must use absolute paths or be S3 ('s3://') or GS ('gs://') object store URIs. rule: '(!has(self.pvc) && has(self.path)) ? (self.path.startsWith(''/'') || self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' - message: PVC path must be a file name only, with no slashes. rule: '(has(self.pvc) && has(self.path)) ? !self.path.startsWith(''/'') : true' - message: PVC persistence does not support S3 or GS object store URIs. rule: '(has(self.pvc) && has(self.path)) ? !(self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' - message: Additional S3 settings are available only for S3 object store URIs. rule: '(has(self.s3_additional_kwargs) && has(self.path)) ? self.path.startsWith(''s3://'') : true' store: description: RegistryDBStorePersistence configures the DB store persistence for the registry service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - sql - snowflake.registry type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a registry server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array grpc: description: Enable gRPC registry server. Defaults to true if unset. type: boolean image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object restAPI: description: Enable REST API registry server. type: boolean tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object x-kubernetes-validations: - message: At least one of restAPI or grpc must be true rule: self.restAPI == true || self.grpc == true || !has(self.grpc) type: object remote: description: RemoteRegistryConfig points to a remote feast registry server. properties: feastRef: description: Reference to an existing `FeatureStore` CR in the same k8s cluster. properties: name: description: Name of the FeatureStore type: string namespace: description: Namespace of the FeatureStore type: string required: - name type: object hostname: description: Host address of the remote registry service - :, e.g. `registry..svc.cluster.local:80` type: string tls: description: TlsRemoteRegistryConfigs configures client TLS for a remote feast registry. properties: certName: description: defines the configmap key name for the client TLS cert. type: string configMapRef: description: references the local k8s configmap where the TLS cert resides properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - certName - configMapRef type: object type: object x-kubernetes-validations: - message: One selection required. rule: '[has(self.hostname), has(self.feastRef)].exists_one(c, c)' type: object x-kubernetes-validations: - message: One selection required. rule: '[has(self.local), has(self.remote)].exists_one(c, c)' securityContext: description: PodSecurityContext holds pod-level security attributes and common container settings. properties: appArmorProfile: description: appArmorProfile is the AppArmor options to use by the containers in this pod. properties: localhostProfile: description: localhostProfile indicates a profile loaded on the node that should be used. type: string type: description: type indicates which kind of AppArmor profile will be applied. type: string required: - type type: object fsGroup: description: A special supplemental group that applies to all containers in a pod. format: int64 type: integer fsGroupChangePolicy: description: |- fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. type: string runAsGroup: description: |- The GID to run the entrypoint of the container process. Uses runtime default if unset. format: int64 type: integer runAsNonRoot: description: Indicates that the container must run as a non-root user. type: boolean runAsUser: description: |- The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. format: int64 type: integer seLinuxOptions: description: The SELinux context to be applied to all containers. properties: level: description: Level is SELinux level label that applies to the container. type: string role: description: Role is a SELinux role label that applies to the container. type: string type: description: Type is a SELinux type label that applies to the container. type: string user: description: User is a SELinux user label that applies to the container. type: string type: object seccompProfile: description: |- The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os. properties: localhostProfile: description: localhostProfile indicates a profile defined in a file on the node should be used. type: string type: description: type indicates which kind of seccomp profile will be applied. type: string required: - type type: object supplementalGroups: description: |- A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsG items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: description: Sysctls hold a list of namespaced sysctls used for the pod. items: description: Sysctl defines a kernel parameter to be set properties: name: description: Name of a property to set type: string value: description: Value of a property to set type: string required: - name - value type: object type: array x-kubernetes-list-type: atomic windowsOptions: description: The Windows specific settings applied to all containers. properties: gmsaCredentialSpec: description: |- GMSACredentialSpec is where the GMSA admission webhook (https://github. type: string gmsaCredentialSpecName: description: GMSACredentialSpecName is the name of the GMSA credential spec to use. type: string hostProcess: description: HostProcess determines if a container should be run as a 'Host Process' container. type: boolean runAsUserName: description: The UserName in Windows to run the entrypoint of the container process. type: string type: object type: object ui: description: Creates a UI server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object volumes: description: Volumes specifies the volumes to mount in the FeatureStore deployment. items: description: Volume represents a named volume in a pod that may be accessed by any container in the pod. properties: awsElasticBlockStore: description: |- awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to th properties: fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string partition: description: |- partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. format: int32 type: integer readOnly: description: |- readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes. type: boolean volumeID: description: |- volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes. type: string required: - volumeID type: object azureDisk: description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. properties: cachingMode: description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.' type: string diskName: description: diskName is the Name of the data disk in the blob storage type: string diskURI: description: diskURI is the URI of data disk in the blob storage type: string fsType: description: |- fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string kind: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage accoun' type: string readOnly: description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: description: azureFile represents an Azure File Service mount on the host and bind mount to the pod. properties: readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretName: description: secretName is the name of secret that contains Azure Storage Account Name and Key type: string shareName: description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime properties: monitors: description: |- monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s. items: type: string type: array x-kubernetes-list-type: atomic path: description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /' type: string readOnly: description: |- readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretFile: description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.' type: string secretRef: description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.' properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic user: description: |- user is optional: User is the rados user name, default is admin More info: https://examples.k8s. type: string required: - monitors type: object cinder: description: |- cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic volumeID: description: |- volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md type: string required: - volumeID type: object configMap: description: configMap represents a configMap that should populate this volume properties: defaultMode: description: 'defaultMode is optional: mode bits used to set permissions on created files by default.' format: int32 type: integer items: description: |- items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volum items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta fea properties: driver: description: driver is the name of the CSI driver that handles this volume. type: string fsType: description: fsType to mount. Ex. "ext4", "xfs", "ntfs". type: string nodePublishSecretRef: description: |- nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to c properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic readOnly: description: |- readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string description: |- volumeAttributes stores driver-specific properties that are passed to the CSI driver. type: object required: - driver type: object downwardAPI: description: downwardAPI represents downward API about the pod that should populate this volume properties: defaultMode: description: 'Optional: mode bits to use on created files by default.' format: int32 type: integer items: description: Items is a list of downward API volume file items: description: DownwardAPIVolumeFile represents information to create the file containing the pod field properties: fieldRef: description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.' 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 x-kubernetes-map-type: atomic mode: description: |- Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal valu format: int32 type: integer path: description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path.' type: string resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests. 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 x-kubernetes-map-type: atomic required: - path type: object type: array x-kubernetes-list-type: atomic type: object emptyDir: description: |- emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes. properties: medium: description: medium represents what type of storage medium should back this directory. type: string sizeLimit: anyOf: - type: integer - type: string description: sizeLimit is the total amount of local storage required for this EmptyDir volume. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: description: ephemeral represents a volume that is handled by a cluster storage driver. properties: volumeClaimTemplate: description: Will be used to create a stand-alone PVC to provision the volume. properties: metadata: description: |- May contain labels and annotations that will be copied into the PVC when creating it. type: object spec: description: The specification for the PersistentVolumeClaim. properties: accessModes: description: |- accessModes contains the desired access modes the volume should have. More info: https://kubernetes. items: type: string type: array x-kubernetes-list-type: atomic dataSource: description: |- dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s. properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - kind - name type: object x-kubernetes-map-type: atomic dataSourceRef: description: |- dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string namespace: description: |- Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking. type: string required: - kind - name type: object resources: description: resources represents the minimum resources the volume should have. 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. 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. type: object type: object selector: description: selector is a label query over volumes to consider for binding. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: |- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: |- operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: |- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic storageClassName: description: |- storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes. type: string volumeAttributesClassName: description: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. type: string volumeName: description: volumeName is the binding reference to the PersistentVolume backing this claim. type: string type: object required: - spec type: object type: object fc: description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string lun: description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: description: |- readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean targetWWNs: description: 'targetWWNs is Optional: FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: description: "wwids Optional: FC volume world wide identifiers (wwids)\nEither wwids or combination of targetWWNs and lun must be set, " items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: description: |- flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. properties: driver: description: driver is the name of the driver to use for this volume. type: string fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string options: additionalProperties: type: string description: 'options is Optional: this field holds extra command options if any.' type: object readOnly: description: |- readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugi properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - driver type: object flocker: description: flocker represents a Flocker volume attached to a kubelet's host machine. properties: datasetName: description: |- datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as depreca type: string datasetUUID: description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: description: |- gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the po properties: fsType: description: fsType is filesystem type of the volume that you want to mount. type: string partition: description: |- partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. format: int32 type: integer pdName: description: |- pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes. type: string readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes. type: boolean required: - pdName type: object gitRepo: description: |- gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. properties: directory: description: |- directory is the target directory name. Must not contain or start with '..'. If '. type: string repository: description: repository is the URL type: string revision: description: revision is the commit hash for the specified revision. type: string required: - repository type: object glusterfs: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s. properties: endpoints: description: |- endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s. type: string path: description: |- path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod type: string readOnly: description: |- readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. type: boolean required: - endpoints - path type: object hostPath: description: |- hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. properties: path: description: |- path of the directory on the host. If the path is a symlink, it will follow the link to the real path. type: string type: description: |- type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath type: string required: - path type: object iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: description: chapAuthSession defines whether support iSCSI Session CHAP authentication type: boolean fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string initiatorName: description: initiatorName is the custom iSCSI Initiator Name. type: string iqn: description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: description: |- iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). type: string lun: description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: description: portals is the iSCSI Target Portal List. items: type: string type: array x-kubernetes-list-type: atomic readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. type: boolean secretRef: description: secretRef is the CHAP Secret for iSCSI target and initiator authentication properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic targetPortal: description: targetPortal is iSCSI Target Portal. type: string required: - iqn - lun - targetPortal type: object name: description: |- name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes. type: string nfs: description: |- nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes. properties: path: description: |- path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs type: string readOnly: description: |- readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. type: boolean server: description: |- server is the hostname or IP address of the NFS server. More info: https://kubernetes. type: string required: - path - server type: object persistentVolumeClaim: description: |- persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. properties: claimName: description: claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. type: string readOnly: description: |- readOnly Will force the ReadOnly setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string pdID: description: pdID is the ID that identifies Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine properties: fsType: description: |- fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean volumeID: description: volumeID uniquely identifies a Portworx volume type: string required: - volumeID type: object projected: description: projected items for all in one resources secrets, configmaps, and downward API properties: defaultMode: description: defaultMode are the mode bits used to set permissions on created files by default. format: int32 type: integer sources: description: sources is the list of volume projections items: description: Projection that may be projected along with other supported volume types properties: clusterTrustBundle: description: ClusterTrustBundle allows a pod to access the `.spec. properties: labelSelector: description: |- Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: |- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: |- operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: |- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic name: description: |- Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector. type: string optional: description: |- If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. type: boolean path: description: Relative path from the volume root to write the bundle. type: string signerName: description: |- Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. type: string required: - path type: object configMap: description: configMap information about the configMap data to project properties: items: description: |- items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volum items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: description: downwardAPI information about the downwardAPI data to project properties: items: description: Items is a list of DownwardAPIVolume file items: description: DownwardAPIVolumeFile represents information to create the file containing the pod field properties: fieldRef: description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.' 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 x-kubernetes-map-type: atomic mode: description: |- Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal valu format: int32 type: integer path: description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path.' type: string resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests. 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 x-kubernetes-map-type: atomic required: - path type: object type: array x-kubernetes-list-type: atomic type: object secret: description: secret information about the secret data to project properties: items: description: |- items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume a items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional field specify whether the Secret or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: description: serviceAccountToken is information about the serviceAccountToken data to project properties: audience: description: audience is the intended audience of the token. type: string expirationSeconds: description: |- expirationSeconds is the requested duration of validity of the service account token. format: int64 type: integer path: description: |- path is the path relative to the mount point of the file to project the token into. type: string required: - path type: object type: object type: array x-kubernetes-list-type: atomic type: object quobyte: description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime properties: group: description: |- group to map volume access to Default is no group type: string readOnly: description: |- readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. type: boolean registry: description: |- registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple ent type: string tenant: description: |- tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by type: string user: description: |- user to map volume access to Defaults to serivceaccount user type: string volume: description: volume is a string that references an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s. properties: fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string image: description: |- image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string keyring: description: |- keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s. type: string monitors: description: |- monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it items: type: string type: array x-kubernetes-list-type: atomic pool: description: |- pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s. type: boolean secretRef: description: |- secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic user: description: |- user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string required: - image - monitors type: object scaleIO: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string gateway: description: gateway is the host address of the ScaleIO API Gateway. type: string protectionDomain: description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. type: string readOnly: description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef references to the secret for ScaleIO user and other sensitive information. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic sslEnabled: description: sslEnabled Flag enable/disable SSL communication with Gateway, default false type: boolean storageMode: description: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. type: string storagePool: description: storagePool is the ScaleIO Storage Pool associated with the protection domain. type: string system: description: system is the name of the storage system as configured in ScaleIO. type: string volumeName: description: |- volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. type: string required: - gateway - secretRef - system type: object secret: description: |- secret represents a secret that should populate this volume. More info: https://kubernetes. properties: defaultMode: description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.' format: int32 type: integer items: description: |- items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume a items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic optional: description: optional field specify whether the Secret or its keys must be defined type: boolean secretName: description: |- secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes. type: string type: object storageos: description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef specifies the secret to use for obtaining the StorageOS API credentials. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic volumeName: description: |- volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. type: string volumeNamespace: description: volumeNamespace specifies the scope of the volume within StorageOS. type: string type: object vsphereVolume: description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine properties: fsType: description: |- fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string storagePolicyID: description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. type: string storagePolicyName: description: storagePolicyName is the storage Policy Based Management (SPBM) profile name. type: string volumePath: description: volumePath is the path that identifies vSphere volume vmdk type: string required: - volumePath type: object required: - name type: object type: array type: object required: - feastProject type: object clientConfigMap: description: ConfigMap in this namespace containing a client `feature_store.yaml` for this feast deployment type: string conditions: items: description: Condition contains details for one aspect of the current state of this API Resource. properties: lastTransitionTime: description: lastTransitionTime is the 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. This may be an empty string. maxLength: 32768 type: string observedGeneration: description: |- observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if . format: int64 minimum: 0 type: integer reason: description: reason contains a programmatic identifier indicating the reason for the condition's last transition. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: |- type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array cronJob: description: CronJob in this namespace for this feast deployment type: string feastVersion: type: string phase: type: string serviceHostnames: description: ServiceHostnames defines the service hostnames in the format of :, e.g. example.svc.cluster.local:80 properties: offlineStore: type: string onlineStore: type: string registry: type: string registryRest: type: string ui: type: string type: object type: object type: object served: true storage: true subresources: status: {} - additionalPrinterColumns: - jsonPath: .status.phase name: Status type: string - jsonPath: .metadata.creationTimestamp name: Age type: date deprecated: true deprecationWarning: v1alpha1 is deprecated and will be removed in a future release. Please migrate to v1. name: v1alpha1 schema: openAPIV3Schema: description: FeatureStore is the Schema for the featurestores API properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: type: object spec: description: FeatureStoreSpec defines the desired state of FeatureStore properties: authz: description: AuthzConfig defines the authorization settings for the deployed Feast services. properties: kubernetes: description: |- KubernetesAuthz provides a way to define the authorization settings using Kubernetes RBAC resources. https://kubernetes. properties: roles: description: The Kubernetes RBAC roles to be deployed in the same namespace of the FeatureStore. items: type: string type: array type: object oidc: description: |- OidcAuthz defines the authorization settings for deployments using an Open ID Connect identity provider. https://auth0. properties: secretRef: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - secretRef type: object type: object x-kubernetes-validations: - message: One selection required between kubernetes or oidc. rule: '[has(self.kubernetes), has(self.oidc)].exists_one(c, c)' cronJob: description: FeastCronJob defines a CronJob to execute against a Feature Store deployment. properties: annotations: additionalProperties: type: string description: Annotations to be added to the CronJob metadata. type: object concurrencyPolicy: description: Specifies how to treat concurrent executions of a Job. type: string containerConfigs: description: CronJobContainerConfigs k8s container settings for the CronJob properties: commands: description: Array of commands to be executed (in order) against a Feature Store deployment. items: type: string type: array env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object type: object failedJobsHistoryLimit: description: The number of failed finished jobs to retain. Value must be non-negative integer. format: int32 type: integer jobSpec: description: Specification of the desired behavior of a job. properties: activeDeadlineSeconds: description: |- Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tr format: int64 type: integer backoffLimit: description: Specifies the number of retries before marking this job failed. format: int32 type: integer backoffLimitPerIndex: description: |- Specifies the limit for the number of retries within an index before marking this index as failed. format: int32 type: integer completionMode: description: |- completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. type: string completions: description: |- Specifies the desired number of successfully finished pods the job should be run with. format: int32 type: integer maxFailedIndexes: description: |- Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. format: int32 type: integer parallelism: description: |- Specifies the maximum desired number of pods the job should run at any given time. format: int32 type: integer podFailurePolicy: description: Specifies the policy of handling failed pods. properties: rules: description: A list of pod failure policy rules. The rules are evaluated in order. items: description: PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. properties: action: description: Specifies the action taken on a pod failure when the requirements are satisfied. type: string onExitCodes: description: Represents the requirement on the container exit codes. properties: containerName: description: |- Restricts the check for exit codes to the container with the specified name. type: string operator: description: |- Represents the relationship between the container exit code(s) and the specified values. type: string values: description: Specifies the set of values. items: format: int32 type: integer type: array x-kubernetes-list-type: set required: - operator - values type: object onPodConditions: description: |- Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. items: description: |- PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type. properties: status: description: Specifies the required Pod condition status. type: string type: description: Specifies the required Pod condition type. type: string required: - status - type type: object type: array x-kubernetes-list-type: atomic required: - action type: object type: array x-kubernetes-list-type: atomic required: - rules type: object podReplacementPolicy: description: podReplacementPolicy specifies when to create replacement Pods. type: string podTemplateAnnotations: additionalProperties: type: string description: |- PodTemplateAnnotations are annotations to be applied to the CronJob's PodTemplate metadata. type: object suspend: description: suspend specifies whether the Job controller should create Pods or not. type: boolean ttlSecondsAfterFinished: description: |- ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). format: int32 type: integer type: object schedule: description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. type: string startingDeadlineSeconds: description: |- Optional deadline in seconds for starting the job if it misses scheduled time for any reason. format: int64 type: integer successfulJobsHistoryLimit: description: The number of successful finished jobs to retain. Value must be non-negative integer. format: int32 type: integer suspend: description: |- This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. type: boolean timeZone: description: The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. type: string type: object feastProject: description: FeastProject is the Feast project id. pattern: ^[A-Za-z0-9][A-Za-z0-9_-]*$ type: string feastProjectDir: description: FeastProjectDir defines how to create the feast project directory. properties: git: description: GitCloneOptions describes how a clone should be performed. properties: configs: additionalProperties: type: string description: |- Configs passed to git via `-c` e.g. http.sslVerify: 'false' OR 'url."https://api:\${TOKEN}@github.com/". type: object env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array featureRepoPath: description: FeatureRepoPath is the relative path to the feature repo subdirectory. Default is 'feature_repo'. type: string ref: description: Reference to a branch / tag / commit type: string url: description: The repository URL to clone from. type: string required: - url type: object x-kubernetes-validations: - message: RepoPath must be a file name only, with no slashes. rule: 'has(self.featureRepoPath) ? !self.featureRepoPath.startsWith(''/'') : true' init: description: FeastInitOptions defines how to run a `feast init`. properties: minimal: type: boolean template: description: Template for the created project enum: - local - gcp - aws - snowflake - spark - postgres - hbase - cassandra - hazelcast - ikv - couchbase - clickhouse type: string type: object type: object x-kubernetes-validations: - message: One selection required between init or git. rule: '[has(self.git), has(self.init)].exists_one(c, c)' services: description: FeatureStoreServices defines the desired feast services. An ephemeral onlineStore feature server is deployed by default. properties: deploymentStrategy: description: DeploymentStrategy describes how to replace existing pods with new ones. properties: rollingUpdate: description: |- Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. properties: maxSurge: anyOf: - type: integer - type: string description: |- The maximum number of pods that can be scheduled above the desired number of pods. x-kubernetes-int-or-string: true maxUnavailable: anyOf: - type: integer - type: string description: The maximum number of pods that can be unavailable during the update. x-kubernetes-int-or-string: true type: object type: description: Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. type: string type: object disableInitContainers: description: Disable the 'feast repo initialization' initContainer type: boolean offlineStore: description: OfflineStore configures the offline store service properties: persistence: description: OfflineStorePersistence configures the persistence settings for the offline store service properties: file: description: OfflineStoreFilePersistence configures the file-based persistence for the offline store service properties: pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') type: enum: - file - dask - duckdb type: string type: object store: description: OfflineStoreDBStorePersistence configures the DB store persistence for the offline store service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - snowflake.offline - bigquery - redshift - spark - postgres - trino - athena - mssql - couchbase.offline - clickhouse - ray type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a remote offline server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object type: object onlineStore: description: OnlineStore configures the online store service properties: persistence: description: OnlineStorePersistence configures the persistence settings for the online store service properties: file: description: OnlineStoreFilePersistence configures the file-based persistence for the online store service properties: path: type: string pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') type: object x-kubernetes-validations: - message: Ephemeral stores must have absolute paths. rule: '(!has(self.pvc) && has(self.path)) ? self.path.startsWith(''/'') : true' - message: PVC path must be a file name only, with no slashes. rule: '(has(self.pvc) && has(self.path)) ? !self.path.startsWith(''/'') : true' - message: Online store does not support S3 or GS buckets. rule: 'has(self.path) ? !(self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' store: description: OnlineStoreDBStorePersistence configures the DB store persistence for the online store service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - snowflake.online - redis - ikv - datastore - dynamodb - bigtable - postgres - cassandra - mysql - hazelcast - singlestore - hbase - elasticsearch - qdrant - couchbase.online - milvus - hybrid type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a feature server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object type: object registry: description: Registry configures the registry service. One selection is required. Local is the default setting. properties: local: description: LocalRegistryConfig configures the registry service properties: persistence: description: RegistryPersistence configures the persistence settings for the registry service properties: file: description: RegistryFilePersistence configures the file-based persistence for the registry service properties: cache_mode: description: |- CacheMode defines the registry cache update strategy. Allowed values are "sync" and "thread". enum: - none - sync - thread type: string cache_ttl_seconds: description: CacheTTLSeconds defines the TTL (in seconds) for the registry cache. format: int32 minimum: 0 type: integer path: type: string pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') s3_additional_kwargs: additionalProperties: type: string type: object type: object x-kubernetes-validations: - message: Registry files must use absolute paths or be S3 ('s3://') or GS ('gs://') object store URIs. rule: '(!has(self.pvc) && has(self.path)) ? (self.path.startsWith(''/'') || self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' - message: PVC path must be a file name only, with no slashes. rule: '(has(self.pvc) && has(self.path)) ? !self.path.startsWith(''/'') : true' - message: PVC persistence does not support S3 or GS object store URIs. rule: '(has(self.pvc) && has(self.path)) ? !(self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' - message: Additional S3 settings are available only for S3 object store URIs. rule: '(has(self.s3_additional_kwargs) && has(self.path)) ? self.path.startsWith(''s3://'') : true' store: description: RegistryDBStorePersistence configures the DB store persistence for the registry service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - sql - snowflake.registry type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a registry server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array grpc: description: Enable gRPC registry server. Defaults to true if unset. type: boolean image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object restAPI: description: Enable REST API registry server. type: boolean tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object x-kubernetes-validations: - message: At least one of restAPI or grpc must be true rule: self.restAPI == true || self.grpc == true || !has(self.grpc) type: object remote: description: RemoteRegistryConfig points to a remote feast registry server. properties: feastRef: description: Reference to an existing `FeatureStore` CR in the same k8s cluster. properties: name: description: Name of the FeatureStore type: string namespace: description: Namespace of the FeatureStore type: string required: - name type: object hostname: description: Host address of the remote registry service - :, e.g. `registry..svc.cluster.local:80` type: string tls: description: TlsRemoteRegistryConfigs configures client TLS for a remote feast registry. properties: certName: description: defines the configmap key name for the client TLS cert. type: string configMapRef: description: references the local k8s configmap where the TLS cert resides properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - certName - configMapRef type: object type: object x-kubernetes-validations: - message: One selection required. rule: '[has(self.hostname), has(self.feastRef)].exists_one(c, c)' type: object x-kubernetes-validations: - message: One selection required. rule: '[has(self.local), has(self.remote)].exists_one(c, c)' securityContext: description: PodSecurityContext holds pod-level security attributes and common container settings. properties: appArmorProfile: description: appArmorProfile is the AppArmor options to use by the containers in this pod. properties: localhostProfile: description: localhostProfile indicates a profile loaded on the node that should be used. type: string type: description: type indicates which kind of AppArmor profile will be applied. type: string required: - type type: object fsGroup: description: A special supplemental group that applies to all containers in a pod. format: int64 type: integer fsGroupChangePolicy: description: |- fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. type: string runAsGroup: description: |- The GID to run the entrypoint of the container process. Uses runtime default if unset. format: int64 type: integer runAsNonRoot: description: Indicates that the container must run as a non-root user. type: boolean runAsUser: description: |- The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. format: int64 type: integer seLinuxOptions: description: The SELinux context to be applied to all containers. properties: level: description: Level is SELinux level label that applies to the container. type: string role: description: Role is a SELinux role label that applies to the container. type: string type: description: Type is a SELinux type label that applies to the container. type: string user: description: User is a SELinux user label that applies to the container. type: string type: object seccompProfile: description: |- The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os. properties: localhostProfile: description: localhostProfile indicates a profile defined in a file on the node should be used. type: string type: description: type indicates which kind of seccomp profile will be applied. type: string required: - type type: object supplementalGroups: description: |- A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsG items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: description: Sysctls hold a list of namespaced sysctls used for the pod. items: description: Sysctl defines a kernel parameter to be set properties: name: description: Name of a property to set type: string value: description: Value of a property to set type: string required: - name - value type: object type: array x-kubernetes-list-type: atomic windowsOptions: description: The Windows specific settings applied to all containers. properties: gmsaCredentialSpec: description: |- GMSACredentialSpec is where the GMSA admission webhook (https://github. type: string gmsaCredentialSpecName: description: GMSACredentialSpecName is the name of the GMSA credential spec to use. type: string hostProcess: description: HostProcess determines if a container should be run as a 'Host Process' container. type: boolean runAsUserName: description: The UserName in Windows to run the entrypoint of the container process. type: string type: object type: object ui: description: Creates a UI server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object volumes: description: Volumes specifies the volumes to mount in the FeatureStore deployment. items: description: Volume represents a named volume in a pod that may be accessed by any container in the pod. properties: awsElasticBlockStore: description: |- awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to th properties: fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string partition: description: |- partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. format: int32 type: integer readOnly: description: |- readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes. type: boolean volumeID: description: |- volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes. type: string required: - volumeID type: object azureDisk: description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. properties: cachingMode: description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.' type: string diskName: description: diskName is the Name of the data disk in the blob storage type: string diskURI: description: diskURI is the URI of data disk in the blob storage type: string fsType: description: |- fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string kind: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage accoun' type: string readOnly: description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: description: azureFile represents an Azure File Service mount on the host and bind mount to the pod. properties: readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretName: description: secretName is the name of secret that contains Azure Storage Account Name and Key type: string shareName: description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime properties: monitors: description: |- monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s. items: type: string type: array x-kubernetes-list-type: atomic path: description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /' type: string readOnly: description: |- readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretFile: description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.' type: string secretRef: description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.' properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic user: description: |- user is optional: User is the rados user name, default is admin More info: https://examples.k8s. type: string required: - monitors type: object cinder: description: |- cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic volumeID: description: |- volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md type: string required: - volumeID type: object configMap: description: configMap represents a configMap that should populate this volume properties: defaultMode: description: 'defaultMode is optional: mode bits used to set permissions on created files by default.' format: int32 type: integer items: description: |- items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volum items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta fea properties: driver: description: driver is the name of the CSI driver that handles this volume. type: string fsType: description: fsType to mount. Ex. "ext4", "xfs", "ntfs". type: string nodePublishSecretRef: description: |- nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to c properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic readOnly: description: |- readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string description: |- volumeAttributes stores driver-specific properties that are passed to the CSI driver. type: object required: - driver type: object downwardAPI: description: downwardAPI represents downward API about the pod that should populate this volume properties: defaultMode: description: 'Optional: mode bits to use on created files by default.' format: int32 type: integer items: description: Items is a list of downward API volume file items: description: DownwardAPIVolumeFile represents information to create the file containing the pod field properties: fieldRef: description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.' 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 x-kubernetes-map-type: atomic mode: description: |- Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal valu format: int32 type: integer path: description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path.' type: string resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests. 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 x-kubernetes-map-type: atomic required: - path type: object type: array x-kubernetes-list-type: atomic type: object emptyDir: description: |- emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes. properties: medium: description: medium represents what type of storage medium should back this directory. type: string sizeLimit: anyOf: - type: integer - type: string description: sizeLimit is the total amount of local storage required for this EmptyDir volume. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: description: ephemeral represents a volume that is handled by a cluster storage driver. properties: volumeClaimTemplate: description: Will be used to create a stand-alone PVC to provision the volume. properties: metadata: description: |- May contain labels and annotations that will be copied into the PVC when creating it. type: object spec: description: The specification for the PersistentVolumeClaim. properties: accessModes: description: |- accessModes contains the desired access modes the volume should have. More info: https://kubernetes. items: type: string type: array x-kubernetes-list-type: atomic dataSource: description: |- dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s. properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - kind - name type: object x-kubernetes-map-type: atomic dataSourceRef: description: |- dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string namespace: description: |- Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking. type: string required: - kind - name type: object resources: description: resources represents the minimum resources the volume should have. 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. 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. type: object type: object selector: description: selector is a label query over volumes to consider for binding. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: |- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: |- operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: |- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic storageClassName: description: |- storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes. type: string volumeAttributesClassName: description: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. type: string volumeName: description: volumeName is the binding reference to the PersistentVolume backing this claim. type: string type: object required: - spec type: object type: object fc: description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string lun: description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: description: |- readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean targetWWNs: description: 'targetWWNs is Optional: FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: description: "wwids Optional: FC volume world wide identifiers (wwids)\nEither wwids or combination of targetWWNs and lun must be set, " items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: description: |- flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. properties: driver: description: driver is the name of the driver to use for this volume. type: string fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string options: additionalProperties: type: string description: 'options is Optional: this field holds extra command options if any.' type: object readOnly: description: |- readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugi properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - driver type: object flocker: description: flocker represents a Flocker volume attached to a kubelet's host machine. properties: datasetName: description: |- datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as depreca type: string datasetUUID: description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: description: |- gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the po properties: fsType: description: fsType is filesystem type of the volume that you want to mount. type: string partition: description: |- partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. format: int32 type: integer pdName: description: |- pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes. type: string readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes. type: boolean required: - pdName type: object gitRepo: description: |- gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. properties: directory: description: |- directory is the target directory name. Must not contain or start with '..'. If '. type: string repository: description: repository is the URL type: string revision: description: revision is the commit hash for the specified revision. type: string required: - repository type: object glusterfs: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s. properties: endpoints: description: |- endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s. type: string path: description: |- path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod type: string readOnly: description: |- readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. type: boolean required: - endpoints - path type: object hostPath: description: |- hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. properties: path: description: |- path of the directory on the host. If the path is a symlink, it will follow the link to the real path. type: string type: description: |- type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath type: string required: - path type: object iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: description: chapAuthSession defines whether support iSCSI Session CHAP authentication type: boolean fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string initiatorName: description: initiatorName is the custom iSCSI Initiator Name. type: string iqn: description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: description: |- iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). type: string lun: description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: description: portals is the iSCSI Target Portal List. items: type: string type: array x-kubernetes-list-type: atomic readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. type: boolean secretRef: description: secretRef is the CHAP Secret for iSCSI target and initiator authentication properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic targetPortal: description: targetPortal is iSCSI Target Portal. type: string required: - iqn - lun - targetPortal type: object name: description: |- name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes. type: string nfs: description: |- nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes. properties: path: description: |- path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs type: string readOnly: description: |- readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. type: boolean server: description: |- server is the hostname or IP address of the NFS server. More info: https://kubernetes. type: string required: - path - server type: object persistentVolumeClaim: description: |- persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. properties: claimName: description: claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. type: string readOnly: description: |- readOnly Will force the ReadOnly setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string pdID: description: pdID is the ID that identifies Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine properties: fsType: description: |- fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean volumeID: description: volumeID uniquely identifies a Portworx volume type: string required: - volumeID type: object projected: description: projected items for all in one resources secrets, configmaps, and downward API properties: defaultMode: description: defaultMode are the mode bits used to set permissions on created files by default. format: int32 type: integer sources: description: sources is the list of volume projections items: description: Projection that may be projected along with other supported volume types properties: clusterTrustBundle: description: ClusterTrustBundle allows a pod to access the `.spec. properties: labelSelector: description: |- Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: |- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: |- operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: |- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic name: description: |- Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector. type: string optional: description: |- If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. type: boolean path: description: Relative path from the volume root to write the bundle. type: string signerName: description: |- Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. type: string required: - path type: object configMap: description: configMap information about the configMap data to project properties: items: description: |- items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volum items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: description: downwardAPI information about the downwardAPI data to project properties: items: description: Items is a list of DownwardAPIVolume file items: description: DownwardAPIVolumeFile represents information to create the file containing the pod field properties: fieldRef: description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.' 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 x-kubernetes-map-type: atomic mode: description: |- Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal valu format: int32 type: integer path: description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path.' type: string resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests. 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 x-kubernetes-map-type: atomic required: - path type: object type: array x-kubernetes-list-type: atomic type: object secret: description: secret information about the secret data to project properties: items: description: |- items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume a items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional field specify whether the Secret or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: description: serviceAccountToken is information about the serviceAccountToken data to project properties: audience: description: audience is the intended audience of the token. type: string expirationSeconds: description: |- expirationSeconds is the requested duration of validity of the service account token. format: int64 type: integer path: description: |- path is the path relative to the mount point of the file to project the token into. type: string required: - path type: object type: object type: array x-kubernetes-list-type: atomic type: object quobyte: description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime properties: group: description: |- group to map volume access to Default is no group type: string readOnly: description: |- readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. type: boolean registry: description: |- registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple ent type: string tenant: description: |- tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by type: string user: description: |- user to map volume access to Defaults to serivceaccount user type: string volume: description: volume is a string that references an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s. properties: fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string image: description: |- image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string keyring: description: |- keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s. type: string monitors: description: |- monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it items: type: string type: array x-kubernetes-list-type: atomic pool: description: |- pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s. type: boolean secretRef: description: |- secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic user: description: |- user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string required: - image - monitors type: object scaleIO: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string gateway: description: gateway is the host address of the ScaleIO API Gateway. type: string protectionDomain: description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. type: string readOnly: description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef references to the secret for ScaleIO user and other sensitive information. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic sslEnabled: description: sslEnabled Flag enable/disable SSL communication with Gateway, default false type: boolean storageMode: description: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. type: string storagePool: description: storagePool is the ScaleIO Storage Pool associated with the protection domain. type: string system: description: system is the name of the storage system as configured in ScaleIO. type: string volumeName: description: |- volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. type: string required: - gateway - secretRef - system type: object secret: description: |- secret represents a secret that should populate this volume. More info: https://kubernetes. properties: defaultMode: description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.' format: int32 type: integer items: description: |- items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume a items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic optional: description: optional field specify whether the Secret or its keys must be defined type: boolean secretName: description: |- secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes. type: string type: object storageos: description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef specifies the secret to use for obtaining the StorageOS API credentials. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic volumeName: description: |- volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. type: string volumeNamespace: description: volumeNamespace specifies the scope of the volume within StorageOS. type: string type: object vsphereVolume: description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine properties: fsType: description: |- fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string storagePolicyID: description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. type: string storagePolicyName: description: storagePolicyName is the storage Policy Based Management (SPBM) profile name. type: string volumePath: description: volumePath is the path that identifies vSphere volume vmdk type: string required: - volumePath type: object required: - name type: object type: array type: object required: - feastProject type: object status: description: FeatureStoreStatus defines the observed state of FeatureStore properties: applied: description: Shows the currently applied feast configuration, including any pertinent defaults properties: authz: description: AuthzConfig defines the authorization settings for the deployed Feast services. properties: kubernetes: description: |- KubernetesAuthz provides a way to define the authorization settings using Kubernetes RBAC resources. https://kubernetes. properties: roles: description: The Kubernetes RBAC roles to be deployed in the same namespace of the FeatureStore. items: type: string type: array type: object oidc: description: |- OidcAuthz defines the authorization settings for deployments using an Open ID Connect identity provider. https://auth0. properties: secretRef: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - secretRef type: object type: object x-kubernetes-validations: - message: One selection required between kubernetes or oidc. rule: '[has(self.kubernetes), has(self.oidc)].exists_one(c, c)' cronJob: description: FeastCronJob defines a CronJob to execute against a Feature Store deployment. properties: annotations: additionalProperties: type: string description: Annotations to be added to the CronJob metadata. type: object concurrencyPolicy: description: Specifies how to treat concurrent executions of a Job. type: string containerConfigs: description: CronJobContainerConfigs k8s container settings for the CronJob properties: commands: description: Array of commands to be executed (in order) against a Feature Store deployment. items: type: string type: array env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object type: object failedJobsHistoryLimit: description: The number of failed finished jobs to retain. Value must be non-negative integer. format: int32 type: integer jobSpec: description: Specification of the desired behavior of a job. properties: activeDeadlineSeconds: description: |- Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tr format: int64 type: integer backoffLimit: description: Specifies the number of retries before marking this job failed. format: int32 type: integer backoffLimitPerIndex: description: |- Specifies the limit for the number of retries within an index before marking this index as failed. format: int32 type: integer completionMode: description: |- completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. type: string completions: description: |- Specifies the desired number of successfully finished pods the job should be run with. format: int32 type: integer maxFailedIndexes: description: |- Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. format: int32 type: integer parallelism: description: |- Specifies the maximum desired number of pods the job should run at any given time. format: int32 type: integer podFailurePolicy: description: Specifies the policy of handling failed pods. properties: rules: description: A list of pod failure policy rules. The rules are evaluated in order. items: description: PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. properties: action: description: Specifies the action taken on a pod failure when the requirements are satisfied. type: string onExitCodes: description: Represents the requirement on the container exit codes. properties: containerName: description: |- Restricts the check for exit codes to the container with the specified name. type: string operator: description: |- Represents the relationship between the container exit code(s) and the specified values. type: string values: description: Specifies the set of values. items: format: int32 type: integer type: array x-kubernetes-list-type: set required: - operator - values type: object onPodConditions: description: |- Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. items: description: |- PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type. properties: status: description: Specifies the required Pod condition status. type: string type: description: Specifies the required Pod condition type. type: string required: - status - type type: object type: array x-kubernetes-list-type: atomic required: - action type: object type: array x-kubernetes-list-type: atomic required: - rules type: object podReplacementPolicy: description: podReplacementPolicy specifies when to create replacement Pods. type: string podTemplateAnnotations: additionalProperties: type: string description: |- PodTemplateAnnotations are annotations to be applied to the CronJob's PodTemplate metadata. type: object suspend: description: suspend specifies whether the Job controller should create Pods or not. type: boolean ttlSecondsAfterFinished: description: |- ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). format: int32 type: integer type: object schedule: description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. type: string startingDeadlineSeconds: description: |- Optional deadline in seconds for starting the job if it misses scheduled time for any reason. format: int64 type: integer successfulJobsHistoryLimit: description: The number of successful finished jobs to retain. Value must be non-negative integer. format: int32 type: integer suspend: description: |- This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. type: boolean timeZone: description: The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. type: string type: object feastProject: description: FeastProject is the Feast project id. pattern: ^[A-Za-z0-9][A-Za-z0-9_-]*$ type: string feastProjectDir: description: FeastProjectDir defines how to create the feast project directory. properties: git: description: GitCloneOptions describes how a clone should be performed. properties: configs: additionalProperties: type: string description: |- Configs passed to git via `-c` e.g. http.sslVerify: 'false' OR 'url."https://api:\${TOKEN}@github.com/". type: object env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array featureRepoPath: description: FeatureRepoPath is the relative path to the feature repo subdirectory. Default is 'feature_repo'. type: string ref: description: Reference to a branch / tag / commit type: string url: description: The repository URL to clone from. type: string required: - url type: object x-kubernetes-validations: - message: RepoPath must be a file name only, with no slashes. rule: 'has(self.featureRepoPath) ? !self.featureRepoPath.startsWith(''/'') : true' init: description: FeastInitOptions defines how to run a `feast init`. properties: minimal: type: boolean template: description: Template for the created project enum: - local - gcp - aws - snowflake - spark - postgres - hbase - cassandra - hazelcast - ikv - couchbase - clickhouse type: string type: object type: object x-kubernetes-validations: - message: One selection required between init or git. rule: '[has(self.git), has(self.init)].exists_one(c, c)' services: description: FeatureStoreServices defines the desired feast services. An ephemeral onlineStore feature server is deployed by default. properties: deploymentStrategy: description: DeploymentStrategy describes how to replace existing pods with new ones. properties: rollingUpdate: description: |- Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. properties: maxSurge: anyOf: - type: integer - type: string description: |- The maximum number of pods that can be scheduled above the desired number of pods. x-kubernetes-int-or-string: true maxUnavailable: anyOf: - type: integer - type: string description: The maximum number of pods that can be unavailable during the update. x-kubernetes-int-or-string: true type: object type: description: Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. type: string type: object disableInitContainers: description: Disable the 'feast repo initialization' initContainer type: boolean offlineStore: description: OfflineStore configures the offline store service properties: persistence: description: OfflineStorePersistence configures the persistence settings for the offline store service properties: file: description: OfflineStoreFilePersistence configures the file-based persistence for the offline store service properties: pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') type: enum: - file - dask - duckdb type: string type: object store: description: OfflineStoreDBStorePersistence configures the DB store persistence for the offline store service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - snowflake.offline - bigquery - redshift - spark - postgres - trino - athena - mssql - couchbase.offline - clickhouse - ray type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a remote offline server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object type: object onlineStore: description: OnlineStore configures the online store service properties: persistence: description: OnlineStorePersistence configures the persistence settings for the online store service properties: file: description: OnlineStoreFilePersistence configures the file-based persistence for the online store service properties: path: type: string pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') type: object x-kubernetes-validations: - message: Ephemeral stores must have absolute paths. rule: '(!has(self.pvc) && has(self.path)) ? self.path.startsWith(''/'') : true' - message: PVC path must be a file name only, with no slashes. rule: '(has(self.pvc) && has(self.path)) ? !self.path.startsWith(''/'') : true' - message: Online store does not support S3 or GS buckets. rule: 'has(self.path) ? !(self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' store: description: OnlineStoreDBStorePersistence configures the DB store persistence for the online store service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - snowflake.online - redis - ikv - datastore - dynamodb - bigtable - postgres - cassandra - mysql - hazelcast - singlestore - hbase - elasticsearch - qdrant - couchbase.online - milvus - hybrid type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a feature server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object type: object registry: description: Registry configures the registry service. One selection is required. Local is the default setting. properties: local: description: LocalRegistryConfig configures the registry service properties: persistence: description: RegistryPersistence configures the persistence settings for the registry service properties: file: description: RegistryFilePersistence configures the file-based persistence for the registry service properties: cache_mode: description: |- CacheMode defines the registry cache update strategy. Allowed values are "sync" and "thread". enum: - none - sync - thread type: string cache_ttl_seconds: description: CacheTTLSeconds defines the TTL (in seconds) for the registry cache. format: int32 minimum: 0 type: integer path: type: string pvc: description: PvcConfig defines the settings for a persistent file store based on PVCs. properties: create: description: Settings for creating a new PVC properties: accessModes: description: AccessModes k8s persistent volume access modes. Defaults to ["ReadWriteOnce"]. items: type: string type: array resources: description: Resources describes the storage resource requirements for a volume. 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. 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. type: object type: object storageClassName: description: StorageClassName is the name of an existing StorageClass to which this persistent volume belongs. type: string type: object x-kubernetes-validations: - message: PvcCreate is immutable rule: self == oldSelf mountPath: description: |- MountPath within the container at which the volume should be mounted. Must start by "/" and cannot contain ':'. type: string ref: description: Reference to an existing field properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - mountPath type: object x-kubernetes-validations: - message: One selection is required between ref and create. rule: '[has(self.ref), has(self.create)].exists_one(c, c)' - message: Mount path must start with '/' and must not contain ':' rule: self.mountPath.matches('^/[^:]*$') s3_additional_kwargs: additionalProperties: type: string type: object type: object x-kubernetes-validations: - message: Registry files must use absolute paths or be S3 ('s3://') or GS ('gs://') object store URIs. rule: '(!has(self.pvc) && has(self.path)) ? (self.path.startsWith(''/'') || self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' - message: PVC path must be a file name only, with no slashes. rule: '(has(self.pvc) && has(self.path)) ? !self.path.startsWith(''/'') : true' - message: PVC persistence does not support S3 or GS object store URIs. rule: '(has(self.pvc) && has(self.path)) ? !(self.path.startsWith(''s3://'') || self.path.startsWith(''gs://'')) : true' - message: Additional S3 settings are available only for S3 object store URIs. rule: '(has(self.s3_additional_kwargs) && has(self.path)) ? self.path.startsWith(''s3://'') : true' store: description: RegistryDBStorePersistence configures the DB store persistence for the registry service properties: secretKeyName: description: By default, the selected store "type" is used as the SecretKeyName type: string secretRef: description: Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: description: Type of the persistence type you want to use. enum: - sql - snowflake.registry type: string required: - secretRef - type type: object type: object x-kubernetes-validations: - message: One selection required between file or store. rule: '[has(self.file), has(self.store)].exists_one(c, c)' server: description: Creates a registry server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array grpc: description: Enable gRPC registry server. Defaults to true if unset. type: boolean image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object restAPI: description: Enable REST API registry server. type: boolean tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object x-kubernetes-validations: - message: At least one of restAPI or grpc must be true rule: self.restAPI == true || self.grpc == true || !has(self.grpc) type: object remote: description: RemoteRegistryConfig points to a remote feast registry server. properties: feastRef: description: Reference to an existing `FeatureStore` CR in the same k8s cluster. properties: name: description: Name of the FeatureStore type: string namespace: description: Namespace of the FeatureStore type: string required: - name type: object hostname: description: Host address of the remote registry service - :, e.g. `registry..svc.cluster.local:80` type: string tls: description: TlsRemoteRegistryConfigs configures client TLS for a remote feast registry. properties: certName: description: defines the configmap key name for the client TLS cert. type: string configMapRef: description: references the local k8s configmap where the TLS cert resides properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - certName - configMapRef type: object type: object x-kubernetes-validations: - message: One selection required. rule: '[has(self.hostname), has(self.feastRef)].exists_one(c, c)' type: object x-kubernetes-validations: - message: One selection required. rule: '[has(self.local), has(self.remote)].exists_one(c, c)' securityContext: description: PodSecurityContext holds pod-level security attributes and common container settings. properties: appArmorProfile: description: appArmorProfile is the AppArmor options to use by the containers in this pod. properties: localhostProfile: description: localhostProfile indicates a profile loaded on the node that should be used. type: string type: description: type indicates which kind of AppArmor profile will be applied. type: string required: - type type: object fsGroup: description: A special supplemental group that applies to all containers in a pod. format: int64 type: integer fsGroupChangePolicy: description: |- fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. type: string runAsGroup: description: |- The GID to run the entrypoint of the container process. Uses runtime default if unset. format: int64 type: integer runAsNonRoot: description: Indicates that the container must run as a non-root user. type: boolean runAsUser: description: |- The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. format: int64 type: integer seLinuxOptions: description: The SELinux context to be applied to all containers. properties: level: description: Level is SELinux level label that applies to the container. type: string role: description: Role is a SELinux role label that applies to the container. type: string type: description: Type is a SELinux type label that applies to the container. type: string user: description: User is a SELinux user label that applies to the container. type: string type: object seccompProfile: description: |- The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os. properties: localhostProfile: description: localhostProfile indicates a profile defined in a file on the node should be used. type: string type: description: type indicates which kind of seccomp profile will be applied. type: string required: - type type: object supplementalGroups: description: |- A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsG items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: description: Sysctls hold a list of namespaced sysctls used for the pod. items: description: Sysctl defines a kernel parameter to be set properties: name: description: Name of a property to set type: string value: description: Value of a property to set type: string required: - name - value type: object type: array x-kubernetes-list-type: atomic windowsOptions: description: The Windows specific settings applied to all containers. properties: gmsaCredentialSpec: description: |- GMSACredentialSpec is where the GMSA admission webhook (https://github. type: string gmsaCredentialSpecName: description: GMSACredentialSpecName is the name of the GMSA credential spec to use. type: string hostProcess: description: HostProcess determines if a container should be run as a 'Host Process' container. type: boolean runAsUserName: description: The UserName in Windows to run the entrypoint of the container process. type: string type: object type: object ui: description: Creates a UI server container properties: env: 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 previously defined environment variables in the container and any 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.' 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 x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits. 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 x-kubernetes-map-type: atomic 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: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array envFrom: items: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: description: The ConfigMap to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: description: The Secret to select from properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string logLevel: description: |- LogLevel sets the logging level for the server Allowed values: "debug", "info", "warning", "error", "critical". enum: - debug - info - warning - error - critical type: string metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. type: boolean nodeSelector: additionalProperties: type: string type: object resources: description: ResourceRequirements describes the compute resource requirements. properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map 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. 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. type: object type: object tls: description: TlsConfigs configures server TLS for a feast service. properties: disable: description: will disable TLS for the feast service. useful in an openshift cluster, for example, where TLS is configured by default type: boolean secretKeyNames: description: SecretKeyNames defines the secret key names for the TLS key and cert. properties: tlsCrt: description: defaults to "tls.crt" type: string tlsKey: description: defaults to "tls.key" type: string type: object secretRef: description: references the local k8s secret where the TLS key and cert reside properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: '`secretRef` required if `disable` is false.' rule: '(!has(self.disable) || !self.disable) ? has(self.secretRef) : true' volumeMounts: description: VolumeMounts defines the list of volumes that should be mounted into the feast container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: |- Path within the container at which the volume should be mounted. Must not contain ':'. type: string mountPropagation: description: |- mountPropagation determines how mounts are propagated from the host to container and the other way around. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: |- Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: description: |- RecursiveReadOnly specifies whether read-only mounts should be handled recursively. type: string subPath: description: |- Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: description: Expanded path within the volume from which the container's volume should be mounted. type: string required: - mountPath - name type: object type: array type: object volumes: description: Volumes specifies the volumes to mount in the FeatureStore deployment. items: description: Volume represents a named volume in a pod that may be accessed by any container in the pod. properties: awsElasticBlockStore: description: |- awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to th properties: fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string partition: description: |- partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. format: int32 type: integer readOnly: description: |- readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes. type: boolean volumeID: description: |- volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes. type: string required: - volumeID type: object azureDisk: description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. properties: cachingMode: description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.' type: string diskName: description: diskName is the Name of the data disk in the blob storage type: string diskURI: description: diskURI is the URI of data disk in the blob storage type: string fsType: description: |- fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string kind: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage accoun' type: string readOnly: description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: description: azureFile represents an Azure File Service mount on the host and bind mount to the pod. properties: readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretName: description: secretName is the name of secret that contains Azure Storage Account Name and Key type: string shareName: description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime properties: monitors: description: |- monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s. items: type: string type: array x-kubernetes-list-type: atomic path: description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /' type: string readOnly: description: |- readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretFile: description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.' type: string secretRef: description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.' properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic user: description: |- user is optional: User is the rados user name, default is admin More info: https://examples.k8s. type: string required: - monitors type: object cinder: description: |- cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic volumeID: description: |- volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md type: string required: - volumeID type: object configMap: description: configMap represents a configMap that should populate this volume properties: defaultMode: description: 'defaultMode is optional: mode bits used to set permissions on created files by default.' format: int32 type: integer items: description: |- items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volum items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta fea properties: driver: description: driver is the name of the CSI driver that handles this volume. type: string fsType: description: fsType to mount. Ex. "ext4", "xfs", "ntfs". type: string nodePublishSecretRef: description: |- nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to c properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic readOnly: description: |- readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string description: |- volumeAttributes stores driver-specific properties that are passed to the CSI driver. type: object required: - driver type: object downwardAPI: description: downwardAPI represents downward API about the pod that should populate this volume properties: defaultMode: description: 'Optional: mode bits to use on created files by default.' format: int32 type: integer items: description: Items is a list of downward API volume file items: description: DownwardAPIVolumeFile represents information to create the file containing the pod field properties: fieldRef: description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.' 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 x-kubernetes-map-type: atomic mode: description: |- Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal valu format: int32 type: integer path: description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path.' type: string resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests. 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 x-kubernetes-map-type: atomic required: - path type: object type: array x-kubernetes-list-type: atomic type: object emptyDir: description: |- emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes. properties: medium: description: medium represents what type of storage medium should back this directory. type: string sizeLimit: anyOf: - type: integer - type: string description: sizeLimit is the total amount of local storage required for this EmptyDir volume. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: description: ephemeral represents a volume that is handled by a cluster storage driver. properties: volumeClaimTemplate: description: Will be used to create a stand-alone PVC to provision the volume. properties: metadata: description: |- May contain labels and annotations that will be copied into the PVC when creating it. type: object spec: description: The specification for the PersistentVolumeClaim. properties: accessModes: description: |- accessModes contains the desired access modes the volume should have. More info: https://kubernetes. items: type: string type: array x-kubernetes-list-type: atomic dataSource: description: |- dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s. properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - kind - name type: object x-kubernetes-map-type: atomic dataSourceRef: description: |- dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string namespace: description: |- Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking. type: string required: - kind - name type: object resources: description: resources represents the minimum resources the volume should have. 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. 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. type: object type: object selector: description: selector is a label query over volumes to consider for binding. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: |- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: |- operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: |- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic storageClassName: description: |- storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes. type: string volumeAttributesClassName: description: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. type: string volumeName: description: volumeName is the binding reference to the PersistentVolume backing this claim. type: string type: object required: - spec type: object type: object fc: description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string lun: description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: description: |- readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean targetWWNs: description: 'targetWWNs is Optional: FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: description: "wwids Optional: FC volume world wide identifiers (wwids)\nEither wwids or combination of targetWWNs and lun must be set, " items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: description: |- flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. properties: driver: description: driver is the name of the driver to use for this volume. type: string fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string options: additionalProperties: type: string description: 'options is Optional: this field holds extra command options if any.' type: object readOnly: description: |- readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugi properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic required: - driver type: object flocker: description: flocker represents a Flocker volume attached to a kubelet's host machine. properties: datasetName: description: |- datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as depreca type: string datasetUUID: description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: description: |- gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the po properties: fsType: description: fsType is filesystem type of the volume that you want to mount. type: string partition: description: |- partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. format: int32 type: integer pdName: description: |- pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes. type: string readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes. type: boolean required: - pdName type: object gitRepo: description: |- gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. properties: directory: description: |- directory is the target directory name. Must not contain or start with '..'. If '. type: string repository: description: repository is the URL type: string revision: description: revision is the commit hash for the specified revision. type: string required: - repository type: object glusterfs: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s. properties: endpoints: description: |- endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s. type: string path: description: |- path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod type: string readOnly: description: |- readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. type: boolean required: - endpoints - path type: object hostPath: description: |- hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. properties: path: description: |- path of the directory on the host. If the path is a symlink, it will follow the link to the real path. type: string type: description: |- type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath type: string required: - path type: object iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: description: chapAuthSession defines whether support iSCSI Session CHAP authentication type: boolean fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string initiatorName: description: initiatorName is the custom iSCSI Initiator Name. type: string iqn: description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: description: |- iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). type: string lun: description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: description: portals is the iSCSI Target Portal List. items: type: string type: array x-kubernetes-list-type: atomic readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. type: boolean secretRef: description: secretRef is the CHAP Secret for iSCSI target and initiator authentication properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic targetPortal: description: targetPortal is iSCSI Target Portal. type: string required: - iqn - lun - targetPortal type: object name: description: |- name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes. type: string nfs: description: |- nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes. properties: path: description: |- path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs type: string readOnly: description: |- readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. type: boolean server: description: |- server is the hostname or IP address of the NFS server. More info: https://kubernetes. type: string required: - path - server type: object persistentVolumeClaim: description: |- persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. properties: claimName: description: claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. type: string readOnly: description: |- readOnly Will force the ReadOnly setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string pdID: description: pdID is the ID that identifies Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine properties: fsType: description: |- fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean volumeID: description: volumeID uniquely identifies a Portworx volume type: string required: - volumeID type: object projected: description: projected items for all in one resources secrets, configmaps, and downward API properties: defaultMode: description: defaultMode are the mode bits used to set permissions on created files by default. format: int32 type: integer sources: description: sources is the list of volume projections items: description: Projection that may be projected along with other supported volume types properties: clusterTrustBundle: description: ClusterTrustBundle allows a pod to access the `.spec. properties: labelSelector: description: |- Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: |- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: |- operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: |- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic name: description: |- Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector. type: string optional: description: |- If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. type: boolean path: description: Relative path from the volume root to write the bundle. type: string signerName: description: |- Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. type: string required: - path type: object configMap: description: configMap information about the configMap data to project properties: items: description: |- items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volum items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: description: downwardAPI information about the downwardAPI data to project properties: items: description: Items is a list of DownwardAPIVolume file items: description: DownwardAPIVolumeFile represents information to create the file containing the pod field properties: fieldRef: description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.' 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 x-kubernetes-map-type: atomic mode: description: |- Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal valu format: int32 type: integer path: description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path.' type: string resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests. 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 x-kubernetes-map-type: atomic required: - path type: object type: array x-kubernetes-list-type: atomic type: object secret: description: secret information about the secret data to project properties: items: description: |- items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume a items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string optional: description: optional field specify whether the Secret or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: description: serviceAccountToken is information about the serviceAccountToken data to project properties: audience: description: audience is the intended audience of the token. type: string expirationSeconds: description: |- expirationSeconds is the requested duration of validity of the service account token. format: int64 type: integer path: description: |- path is the path relative to the mount point of the file to project the token into. type: string required: - path type: object type: object type: array x-kubernetes-list-type: atomic type: object quobyte: description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime properties: group: description: |- group to map volume access to Default is no group type: string readOnly: description: |- readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. type: boolean registry: description: |- registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple ent type: string tenant: description: |- tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by type: string user: description: |- user to map volume access to Defaults to serivceaccount user type: string volume: description: volume is a string that references an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s. properties: fsType: description: fsType is the filesystem type of the volume that you want to mount. type: string image: description: |- image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string keyring: description: |- keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s. type: string monitors: description: |- monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it items: type: string type: array x-kubernetes-list-type: atomic pool: description: |- pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s. type: boolean secretRef: description: |- secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic user: description: |- user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string required: - image - monitors type: object scaleIO: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string gateway: description: gateway is the host address of the ScaleIO API Gateway. type: string protectionDomain: description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. type: string readOnly: description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef references to the secret for ScaleIO user and other sensitive information. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic sslEnabled: description: sslEnabled Flag enable/disable SSL communication with Gateway, default false type: boolean storageMode: description: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. type: string storagePool: description: storagePool is the ScaleIO Storage Pool associated with the protection domain. type: string system: description: system is the name of the storage system as configured in ScaleIO. type: string volumeName: description: |- volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. type: string required: - gateway - secretRef - system type: object secret: description: |- secret represents a secret that should populate this volume. More info: https://kubernetes. properties: defaultMode: description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.' format: int32 type: integer items: description: |- items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume a items: description: Maps a string key to a path within a volume. properties: key: description: key is the key to project. type: string mode: description: 'mode is Optional: mode bits used to set permissions on this file.' format: int32 type: integer path: description: |- path is the relative path of the file to map the key to. May not be an absolute path. type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic optional: description: optional field specify whether the Secret or its keys must be defined type: boolean secretName: description: |- secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes. type: string type: object storageos: description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. properties: fsType: description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string readOnly: description: |- readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: description: |- secretRef specifies the secret to use for obtaining the StorageOS API credentials. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. type: string type: object x-kubernetes-map-type: atomic volumeName: description: |- volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. type: string volumeNamespace: description: volumeNamespace specifies the scope of the volume within StorageOS. type: string type: object vsphereVolume: description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine properties: fsType: description: |- fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. type: string storagePolicyID: description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. type: string storagePolicyName: description: storagePolicyName is the storage Policy Based Management (SPBM) profile name. type: string volumePath: description: volumePath is the path that identifies vSphere volume vmdk type: string required: - volumePath type: object required: - name type: object type: array type: object required: - feastProject type: object clientConfigMap: description: ConfigMap in this namespace containing a client `feature_store.yaml` for this feast deployment type: string conditions: items: description: Condition contains details for one aspect of the current state of this API Resource. properties: lastTransitionTime: description: lastTransitionTime is the 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. This may be an empty string. maxLength: 32768 type: string observedGeneration: description: |- observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if . format: int64 minimum: 0 type: integer reason: description: reason contains a programmatic identifier indicating the reason for the condition's last transition. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: |- type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array cronJob: description: CronJob in this namespace for this feast deployment type: string feastVersion: type: string phase: type: string serviceHostnames: description: ServiceHostnames defines the service hostnames in the format of :, e.g. example.svc.cluster.local:80 properties: offlineStore: type: string onlineStore: type: string registry: type: string registryRest: type: string ui: type: string type: object type: object type: object served: true storage: false subresources: status: {} status: acceptedNames: kind: FeatureStore listKind: FeatureStoreList plural: featurestores shortNames: - feast singular: featurestore conditions: - lastTransitionTime: "2026-02-17T13:04:32Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2026-02-17T13:04:32Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1