--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.18.0 creationTimestamp: "2026-05-29T10:35:39Z" 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-05-29T10:35:39Z" - 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-05-29T10:35:39Z" name: featurestores.feast.dev resourceVersion: "18342" uid: d7685731-5b00-40f1-9e4a-a72752b0aa02 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: caCertConfigMap: description: ConfigMap with the CA certificate for self-signed OIDC providers. Auto-detected on RHOAI/ODH. properties: key: description: Key in the ConfigMap holding the PEM certificate. Defaults to "ca-bundle.crt". type: string name: description: ConfigMap name. type: string required: - name type: object issuerUrl: description: OIDC issuer URL. The operator appends /.well-known/openid-configuration to derive the discovery endpoint. pattern: ^https://\S+$ type: string secretKeyName: description: Key in the Secret containing all OIDC properties as a YAML value. If unset, each key is a property. type: string secretRef: description: Secret with OIDC properties (auth_discovery_url, client_id, client_secret). issuerUrl takes precedence. 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 tokenEnvVar: description: Env var name for client pods to read an OIDC token from. Sets token_env_var in client config. type: string verifySSL: description: Verify SSL certificates for the OIDC provider. Defaults to true. type: boolean 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)' batchEngine: description: BatchEngineConfig defines the batch compute engine configuration. properties: configMapKey: description: Key name in the ConfigMap. Defaults to "config" if not specified. type: string configMapRef: description: Reference to a ConfigMap containing the batch engine configuration. 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 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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... 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 - 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)' materialization: description: |- Materialization controls feature materialization behavior (batch size, pull strategy). Written into feature_store. properties: extraConfig: additionalProperties: type: string description: |- ExtraConfig passes additional materialization key-value settings inline into feature_store.yaml. type: object onlineWriteBatchSize: description: |- Number of rows per batch when writing to the online store during materialization. Prevents OOM for large feature views. format: int32 minimum: 1 type: integer type: object openlineage: description: |- OpenLineage enables OpenLineage data lineage tracking for Feast operations. Written into feature_store. properties: apiKeySecretRef: description: Reference to a Secret containing the key "api_key" for lineage server 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 enabled: description: Enable OpenLineage integration. type: boolean extraConfig: additionalProperties: type: string description: |- ExtraConfig holds additional OpenLineage key-value settings written inline into the openlineage block of feature_store. type: object transportEndpoint: description: API endpoint path appended to transportUrl. Defaults to "api/v1/lineage". type: string transportType: description: Transport type for lineage events. enum: - http - console - file - kafka type: string transportUrl: description: URL for HTTP transport (e.g. http://marquez:5000). Required when transportType is "http". type: string required: - enabled type: object replicas: default: 1 description: |- Replicas is the desired number of pod replicas. Used by the scale sub-resource. Mutually exclusive with services. format: int32 minimum: 1 type: integer services: description: FeatureStoreServices defines the desired feast services. An ephemeral onlineStore feature server is deployed by default. properties: affinity: description: Affinity defines the pod scheduling constraints for the FeatureStore deployment. properties: nodeAffinity: description: Describes node affinity scheduling rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: description: |- The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but... items: description: |- An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). properties: preference: description: A node selector term, associated with the corresponding weight. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: |- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: |- Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: |- An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. items: description: |- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: |- Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: |- An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. format: int32 type: integer required: - preference - weight type: object type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto... properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: |- A null or empty node selector term matches no objects. The requirements of them are ANDed. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: |- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: |- Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: |- An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. items: description: |- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: |- Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: |- An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object x-kubernetes-map-type: atomic type: object podAffinity: description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: description: |- The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but... items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) properties: podAffinityTerm: description: Required. A pod affinity term, associated with the corresponding weight. properties: labelSelector: description: |- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. 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 matchLabelKeys: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in... type: string required: - topologyKey type: object weight: description: |- weight associated with matching the corresponding podAffinityTerm, in the range 1-100. format: int32 type: integer required: - podAffinityTerm - weight type: object type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto... items: description: |- Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should... properties: labelSelector: description: |- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. 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 matchLabelKeys: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in... type: string required: - topologyKey type: object type: array x-kubernetes-list-type: atomic type: object podAntiAffinity: description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. properties: preferredDuringSchedulingIgnoredDuringExecution: description: |- The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field,... items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) properties: podAffinityTerm: description: Required. A pod affinity term, associated with the corresponding weight. properties: labelSelector: description: |- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. 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 matchLabelKeys: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in... type: string required: - topologyKey type: object weight: description: |- weight associated with matching the corresponding podAffinityTerm, in the range 1-100. format: int32 type: integer required: - podAffinityTerm - weight type: object type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled... items: description: |- Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should... properties: labelSelector: description: |- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. 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 matchLabelKeys: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in... type: string required: - topologyKey type: object type: array x-kubernetes-list-type: atomic type: object type: object 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 - oracle 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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 - datastore - dynamodb - bigtable - postgres - cassandra - mysql - hazelcast - singlestore - hbase - elasticsearch - qdrant - couchbase.online - milvus - hybrid - mongodb 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object type: object serving: description: Serving configures the Feast feature_server section written into feature_store.yaml for the online serve pod. properties: mcp: description: Mcp enables MCP (Model Context Protocol) server support. When set, feature server type is "mcp". properties: enabled: description: Enable the MCP server. type: boolean serverName: description: MCP server name for identification. Defaults to "feast-mcp-server". type: string serverVersion: description: MCP server version string. Defaults to "1.0.0". type: string transport: description: MCP transport protocol. enum: - sse - http type: string required: - enabled type: object metrics: description: |- Metrics configures per-category Prometheus metrics for the feature server. Coexists with the server. properties: categories: additionalProperties: type: boolean description: Categories selectively enables or disables individual Feast metric categories. type: object enabled: description: Enable the Prometheus metrics endpoint on port 8000. type: boolean required: - enabled type: object offlinePushBatching: description: OfflinePushBatching batches writes to the offline store via the /push endpoint. properties: batchIntervalSeconds: description: Seconds between batch flushes to the offline store. format: int32 minimum: 1 type: integer batchSize: description: Maximum number of rows per offline write batch. format: int32 minimum: 1 type: integer enabled: description: Enable offline push batching. type: boolean required: - enabled type: object type: object type: object podAnnotations: additionalProperties: type: string description: PodAnnotations are annotations to be applied to the Deployment's PodTemplate metadata. type: object podDisruptionBudgets: description: PodDisruptionBudgets configures a PodDisruptionBudget for the FeatureStore deployment. properties: maxUnavailable: anyOf: - type: integer - type: string description: MaxUnavailable specifies the maximum number/percentage of pods that can be unavailable. x-kubernetes-int-or-string: true minAvailable: anyOf: - type: integer - type: string description: MinAvailable specifies the minimum number/percentage of pods that must remain available. x-kubernetes-int-or-string: true type: object x-kubernetes-validations: - message: Exactly one of minAvailable or maxUnavailable must be set. rule: '[has(self.minAvailable), has(self.maxUnavailable)].exists_one(c, c)' 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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)' runFeastApplyOnInit: description: Runs feast apply on pod start to populate the registry. Defaults to true. Ignored when DisableInitContainers is true. type: boolean scaling: description: Scaling configures horizontal scaling for the FeatureStore deployment (e.g. HPA autoscaling). properties: autoscaling: description: |- Autoscaling configures a HorizontalPodAutoscaler for the FeatureStore deployment. Mutually exclusive with spec.replicas. properties: behavior: description: Behavior configures the scaling behavior of the target. properties: scaleDown: description: scaleDown is scaling policy for scaling Down. properties: policies: description: policies is a list of potential scaling polices which can be used during scaling. items: description: HPAScalingPolicy is a single policy which must hold true for a specified past interval. properties: periodSeconds: description: periodSeconds specifies the window of time for which the policy should hold true. format: int32 type: integer type: description: type is used to specify the scaling policy. type: string value: description: |- value contains the amount of change which is permitted by the policy. It must be greater than zero format: int32 type: integer required: - periodSeconds - type - value type: object type: array x-kubernetes-list-type: atomic selectPolicy: description: |- selectPolicy is used to specify which policy should be used. If not set, the default value Max is used. type: string stabilizationWindowSeconds: description: |- stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling... format: int32 type: integer tolerance: anyOf: - type: integer - type: string description: |- tolerance is the tolerance on the ratio between the current and desired metric value under which no updates are made to... 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 scaleUp: description: scaleUp is scaling policy for scaling Up. properties: policies: description: policies is a list of potential scaling polices which can be used during scaling. items: description: HPAScalingPolicy is a single policy which must hold true for a specified past interval. properties: periodSeconds: description: periodSeconds specifies the window of time for which the policy should hold true. format: int32 type: integer type: description: type is used to specify the scaling policy. type: string value: description: |- value contains the amount of change which is permitted by the policy. It must be greater than zero format: int32 type: integer required: - periodSeconds - type - value type: object type: array x-kubernetes-list-type: atomic selectPolicy: description: |- selectPolicy is used to specify which policy should be used. If not set, the default value Max is used. type: string stabilizationWindowSeconds: description: |- stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling... format: int32 type: integer tolerance: anyOf: - type: integer - type: string description: |- tolerance is the tolerance on the ratio between the current and desired metric value under which no updates are made to... 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 type: object maxReplicas: description: MaxReplicas is the upper limit for the number of replicas. Required. format: int32 minimum: 1 type: integer metrics: description: Metrics contains the specifications for which to use to calculate the desired replica count. items: description: |- MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at... properties: containerResource: description: |- containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes... properties: container: description: container is the name of the container in the pods of the scaling target type: string name: description: name is the name of the resource in question. type: string target: description: target specifies the target value for the given metric properties: averageUtilization: description: |- averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a... format: int32 type: integer averageValue: anyOf: - type: integer - type: string description: |- averageValue is the target value of the average of the metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: description: type represents whether the metric type is Utilization, Value, or AverageValue type: string value: anyOf: - type: integer - type: string description: value is the target value of the metric (as a quantity). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - type type: object required: - container - name - target type: object external: description: |- external refers to a global metric that is not associated with any Kubernetes object. properties: metric: description: metric identifies the target metric by name and selector properties: name: description: name is the name of the given metric type: string selector: description: |- selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed... 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 required: - name type: object target: description: target specifies the target value for the given metric properties: averageUtilization: description: |- averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a... format: int32 type: integer averageValue: anyOf: - type: integer - type: string description: |- averageValue is the target value of the average of the metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: description: type represents whether the metric type is Utilization, Value, or AverageValue type: string value: anyOf: - type: integer - type: string description: value is the target value of the metric (as a quantity). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - type type: object required: - metric - target type: object object: description: |- object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). properties: describedObject: description: describedObject specifies the descriptions of a object,such as kind,name apiVersion properties: apiVersion: description: apiVersion is the API version of the referent type: string kind: description: 'kind is the kind of the referent; More info: https://git.k8s.' type: string name: description: 'name is the name of the referent; More info: https://kubernetes.' type: string required: - kind - name type: object metric: description: metric identifies the target metric by name and selector properties: name: description: name is the name of the given metric type: string selector: description: |- selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed... 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 required: - name type: object target: description: target specifies the target value for the given metric properties: averageUtilization: description: |- averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a... format: int32 type: integer averageValue: anyOf: - type: integer - type: string description: |- averageValue is the target value of the average of the metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: description: type represents whether the metric type is Utilization, Value, or AverageValue type: string value: anyOf: - type: integer - type: string description: value is the target value of the metric (as a quantity). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - type type: object required: - describedObject - metric - target type: object pods: description: |- pods refers to a metric describing each pod in the current scale target (for example,... properties: metric: description: metric identifies the target metric by name and selector properties: name: description: name is the name of the given metric type: string selector: description: |- selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed... 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 required: - name type: object target: description: target specifies the target value for the given metric properties: averageUtilization: description: |- averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a... format: int32 type: integer averageValue: anyOf: - type: integer - type: string description: |- averageValue is the target value of the average of the metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: description: type represents whether the metric type is Utilization, Value, or AverageValue type: string value: anyOf: - type: integer - type: string description: value is the target value of the metric (as a quantity). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - type type: object required: - metric - target type: object resource: description: |- resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing... properties: name: description: name is the name of the resource in question. type: string target: description: target specifies the target value for the given metric properties: averageUtilization: description: |- averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a... format: int32 type: integer averageValue: anyOf: - type: integer - type: string description: |- averageValue is the target value of the average of the metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: description: type represents whether the metric type is Utilization, Value, or AverageValue type: string value: anyOf: - type: integer - type: string description: value is the target value of the metric (as a quantity). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - type type: object required: - name - target type: object type: description: type is the type of metric source. type: string required: - type type: object type: array minReplicas: description: MinReplicas is the lower limit for the number of replicas. Defaults to 1. format: int32 minimum: 1 type: integer required: - maxReplicas type: object type: object 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 seLinuxChangePolicy: description: seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. type: string 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 and... items: format: int64 type: integer type: array x-kubernetes-list-type: atomic supplementalGroupsPolicy: description: |- Defines how supplemental groups of the first container processes are calculated. Valid values are "Merge" and "Strict". type: string 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 topologySpreadConstraints: description: TopologySpreadConstraints defines how pods are spread across topology domains. items: description: TopologySpreadConstraint specifies how to spread matching pods among the given topology. properties: labelSelector: description: LabelSelector is used to find matching pods. 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 matchLabelKeys: description: |- MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. items: type: string type: array x-kubernetes-list-type: atomic maxSkew: description: MaxSkew describes the degree to which pods may be unevenly distributed. format: int32 type: integer minDomains: description: MinDomains indicates a minimum number of eligible domains. format: int32 type: integer nodeAffinityPolicy: description: |- NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread... type: string nodeTaintsPolicy: description: |- NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. type: string topologyKey: description: TopologyKey is the key of node labels. type: string whenUnsatisfiable: description: |- WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. type: string required: - maxSkew - topologyKey - whenUnsatisfiable type: object type: array 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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... 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: default: ext4 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...' type: string readOnly: default: false 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. Deprecated: Cinder is deprecated. 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... 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. 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... 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... 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) Either 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... 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... 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... 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. 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 image: description: image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. properties: pullPolicy: description: |- Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. type: string reference: description: |- Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. type: string 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: default: default 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. Each entry in this list handles one source. items: description: |- Projection that may be projected along with other supported volume types. Exactly one of these fields must be set. 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... 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... 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... 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... type: string tenant: description: |- tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set... 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. 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: default: /etc/ceph/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: default: rbd 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: default: admin 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: default: xfs 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: default: ThinProvisioned 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... 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 x-kubernetes-validations: - message: replicas > 1 and services.scaling.autoscaling are mutually exclusive. rule: self.replicas <= 1 || !has(self.services) || !has(self.services.scaling) || !has(self.services.scaling.autoscaling) - message: Scaling requires DB-backed persistence for the online store. Configure services.onlineStore.persistence.store when using replicas > 1 or autoscaling. rule: self.replicas <= 1 && (!has(self.services) || !has(self.services.scaling) || !has(self.services.scaling.autoscaling)) || (has(self.services) && has(self.services.onlineStore) && has(self.services.onlineStore.persistence) && has(self.services.onlineStore.persistence.store)) - message: Scaling requires DB-backed persistence for the offline store. Configure services.offlineStore.persistence.store when using replicas > 1 or autoscaling. rule: self.replicas <= 1 && (!has(self.services) || !has(self.services.scaling) || !has(self.services.scaling.autoscaling)) || (!has(self.services) || !has(self.services.offlineStore) || (has(self.services.offlineStore.persistence) && has(self.services.offlineStore.persistence.store))) - message: Scaling requires DB-backed or remote registry. Configure registry.local.persistence.store or use a remote registry when using replicas > 1 or autoscaling. S3/GCS-backed registry is also allowed. rule: self.replicas <= 1 && (!has(self.services) || !has(self.services.scaling) || !has(self.services.scaling.autoscaling)) || (has(self.services) && has(self.services.registry) && (has(self.services.registry.remote) || (has(self.services.registry.local) && has(self.services.registry.local.persistence) && (has(self.services.registry.local.persistence.store) || (has(self.services.registry.local.persistence.file) && has(self.services.registry.local.persistence.file.path) && (self.services.registry.local.persistence.file.path.startsWith('s3://') || self.services.registry.local.persistence.file.path.startsWith('gs://'))))))) 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: caCertConfigMap: description: ConfigMap with the CA certificate for self-signed OIDC providers. Auto-detected on RHOAI/ODH. properties: key: description: Key in the ConfigMap holding the PEM certificate. Defaults to "ca-bundle.crt". type: string name: description: ConfigMap name. type: string required: - name type: object issuerUrl: description: OIDC issuer URL. The operator appends /.well-known/openid-configuration to derive the discovery endpoint. pattern: ^https://\S+$ type: string secretKeyName: description: Key in the Secret containing all OIDC properties as a YAML value. If unset, each key is a property. type: string secretRef: description: Secret with OIDC properties (auth_discovery_url, client_id, client_secret). issuerUrl takes precedence. 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 tokenEnvVar: description: Env var name for client pods to read an OIDC token from. Sets token_env_var in client config. type: string verifySSL: description: Verify SSL certificates for the OIDC provider. Defaults to true. type: boolean 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)' batchEngine: description: BatchEngineConfig defines the batch compute engine configuration. properties: configMapKey: description: Key name in the ConfigMap. Defaults to "config" if not specified. type: string configMapRef: description: Reference to a ConfigMap containing the batch engine configuration. 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 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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... 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 - 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)' materialization: description: |- Materialization controls feature materialization behavior (batch size, pull strategy). Written into feature_store. properties: extraConfig: additionalProperties: type: string description: |- ExtraConfig passes additional materialization key-value settings inline into feature_store.yaml. type: object onlineWriteBatchSize: description: |- Number of rows per batch when writing to the online store during materialization. Prevents OOM for large feature views. format: int32 minimum: 1 type: integer type: object openlineage: description: |- OpenLineage enables OpenLineage data lineage tracking for Feast operations. Written into feature_store. properties: apiKeySecretRef: description: Reference to a Secret containing the key "api_key" for lineage server 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 enabled: description: Enable OpenLineage integration. type: boolean extraConfig: additionalProperties: type: string description: |- ExtraConfig holds additional OpenLineage key-value settings written inline into the openlineage block of feature_store. type: object transportEndpoint: description: API endpoint path appended to transportUrl. Defaults to "api/v1/lineage". type: string transportType: description: Transport type for lineage events. enum: - http - console - file - kafka type: string transportUrl: description: URL for HTTP transport (e.g. http://marquez:5000). Required when transportType is "http". type: string required: - enabled type: object replicas: default: 1 description: |- Replicas is the desired number of pod replicas. Used by the scale sub-resource. Mutually exclusive with services. format: int32 minimum: 1 type: integer services: description: FeatureStoreServices defines the desired feast services. An ephemeral onlineStore feature server is deployed by default. properties: affinity: description: Affinity defines the pod scheduling constraints for the FeatureStore deployment. properties: nodeAffinity: description: Describes node affinity scheduling rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: description: |- The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but... items: description: |- An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). properties: preference: description: A node selector term, associated with the corresponding weight. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: |- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: |- Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: |- An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. items: description: |- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: |- Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: |- An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. format: int32 type: integer required: - preference - weight type: object type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto... properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: |- A null or empty node selector term matches no objects. The requirements of them are ANDed. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: |- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: |- Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: |- An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. items: description: |- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: |- Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: |- An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object x-kubernetes-map-type: atomic type: object podAffinity: description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: description: |- The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but... items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) properties: podAffinityTerm: description: Required. A pod affinity term, associated with the corresponding weight. properties: labelSelector: description: |- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. 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 matchLabelKeys: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in... type: string required: - topologyKey type: object weight: description: |- weight associated with matching the corresponding podAffinityTerm, in the range 1-100. format: int32 type: integer required: - podAffinityTerm - weight type: object type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto... items: description: |- Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should... properties: labelSelector: description: |- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. 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 matchLabelKeys: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in... type: string required: - topologyKey type: object type: array x-kubernetes-list-type: atomic type: object podAntiAffinity: description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. properties: preferredDuringSchedulingIgnoredDuringExecution: description: |- The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field,... items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) properties: podAffinityTerm: description: Required. A pod affinity term, associated with the corresponding weight. properties: labelSelector: description: |- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. 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 matchLabelKeys: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in... type: string required: - topologyKey type: object weight: description: |- weight associated with matching the corresponding podAffinityTerm, in the range 1-100. format: int32 type: integer required: - podAffinityTerm - weight type: object type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled... items: description: |- Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should... properties: labelSelector: description: |- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. 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 matchLabelKeys: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in... type: string required: - topologyKey type: object type: array x-kubernetes-list-type: atomic type: object type: object 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 - oracle 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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 - datastore - dynamodb - bigtable - postgres - cassandra - mysql - hazelcast - singlestore - hbase - elasticsearch - qdrant - couchbase.online - milvus - hybrid - mongodb 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object type: object serving: description: Serving configures the Feast feature_server section written into feature_store.yaml for the online serve pod. properties: mcp: description: Mcp enables MCP (Model Context Protocol) server support. When set, feature server type is "mcp". properties: enabled: description: Enable the MCP server. type: boolean serverName: description: MCP server name for identification. Defaults to "feast-mcp-server". type: string serverVersion: description: MCP server version string. Defaults to "1.0.0". type: string transport: description: MCP transport protocol. enum: - sse - http type: string required: - enabled type: object metrics: description: |- Metrics configures per-category Prometheus metrics for the feature server. Coexists with the server. properties: categories: additionalProperties: type: boolean description: Categories selectively enables or disables individual Feast metric categories. type: object enabled: description: Enable the Prometheus metrics endpoint on port 8000. type: boolean required: - enabled type: object offlinePushBatching: description: OfflinePushBatching batches writes to the offline store via the /push endpoint. properties: batchIntervalSeconds: description: Seconds between batch flushes to the offline store. format: int32 minimum: 1 type: integer batchSize: description: Maximum number of rows per offline write batch. format: int32 minimum: 1 type: integer enabled: description: Enable offline push batching. type: boolean required: - enabled type: object type: object type: object podAnnotations: additionalProperties: type: string description: PodAnnotations are annotations to be applied to the Deployment's PodTemplate metadata. type: object podDisruptionBudgets: description: PodDisruptionBudgets configures a PodDisruptionBudget for the FeatureStore deployment. properties: maxUnavailable: anyOf: - type: integer - type: string description: MaxUnavailable specifies the maximum number/percentage of pods that can be unavailable. x-kubernetes-int-or-string: true minAvailable: anyOf: - type: integer - type: string description: MinAvailable specifies the minimum number/percentage of pods that must remain available. x-kubernetes-int-or-string: true type: object x-kubernetes-validations: - message: Exactly one of minAvailable or maxUnavailable must be set. rule: '[has(self.minAvailable), has(self.maxUnavailable)].exists_one(c, c)' 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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)' runFeastApplyOnInit: description: Runs feast apply on pod start to populate the registry. Defaults to true. Ignored when DisableInitContainers is true. type: boolean scaling: description: Scaling configures horizontal scaling for the FeatureStore deployment (e.g. HPA autoscaling). properties: autoscaling: description: |- Autoscaling configures a HorizontalPodAutoscaler for the FeatureStore deployment. Mutually exclusive with spec.replicas. properties: behavior: description: Behavior configures the scaling behavior of the target. properties: scaleDown: description: scaleDown is scaling policy for scaling Down. properties: policies: description: policies is a list of potential scaling polices which can be used during scaling. items: description: HPAScalingPolicy is a single policy which must hold true for a specified past interval. properties: periodSeconds: description: periodSeconds specifies the window of time for which the policy should hold true. format: int32 type: integer type: description: type is used to specify the scaling policy. type: string value: description: |- value contains the amount of change which is permitted by the policy. It must be greater than zero format: int32 type: integer required: - periodSeconds - type - value type: object type: array x-kubernetes-list-type: atomic selectPolicy: description: |- selectPolicy is used to specify which policy should be used. If not set, the default value Max is used. type: string stabilizationWindowSeconds: description: |- stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling... format: int32 type: integer tolerance: anyOf: - type: integer - type: string description: |- tolerance is the tolerance on the ratio between the current and desired metric value under which no updates are made to... 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 scaleUp: description: scaleUp is scaling policy for scaling Up. properties: policies: description: policies is a list of potential scaling polices which can be used during scaling. items: description: HPAScalingPolicy is a single policy which must hold true for a specified past interval. properties: periodSeconds: description: periodSeconds specifies the window of time for which the policy should hold true. format: int32 type: integer type: description: type is used to specify the scaling policy. type: string value: description: |- value contains the amount of change which is permitted by the policy. It must be greater than zero format: int32 type: integer required: - periodSeconds - type - value type: object type: array x-kubernetes-list-type: atomic selectPolicy: description: |- selectPolicy is used to specify which policy should be used. If not set, the default value Max is used. type: string stabilizationWindowSeconds: description: |- stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling... format: int32 type: integer tolerance: anyOf: - type: integer - type: string description: |- tolerance is the tolerance on the ratio between the current and desired metric value under which no updates are made to... 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 type: object maxReplicas: description: MaxReplicas is the upper limit for the number of replicas. Required. format: int32 minimum: 1 type: integer metrics: description: Metrics contains the specifications for which to use to calculate the desired replica count. items: description: |- MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at... properties: containerResource: description: |- containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes... properties: container: description: container is the name of the container in the pods of the scaling target type: string name: description: name is the name of the resource in question. type: string target: description: target specifies the target value for the given metric properties: averageUtilization: description: |- averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a... format: int32 type: integer averageValue: anyOf: - type: integer - type: string description: |- averageValue is the target value of the average of the metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: description: type represents whether the metric type is Utilization, Value, or AverageValue type: string value: anyOf: - type: integer - type: string description: value is the target value of the metric (as a quantity). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - type type: object required: - container - name - target type: object external: description: |- external refers to a global metric that is not associated with any Kubernetes object. properties: metric: description: metric identifies the target metric by name and selector properties: name: description: name is the name of the given metric type: string selector: description: |- selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed... 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 required: - name type: object target: description: target specifies the target value for the given metric properties: averageUtilization: description: |- averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a... format: int32 type: integer averageValue: anyOf: - type: integer - type: string description: |- averageValue is the target value of the average of the metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: description: type represents whether the metric type is Utilization, Value, or AverageValue type: string value: anyOf: - type: integer - type: string description: value is the target value of the metric (as a quantity). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - type type: object required: - metric - target type: object object: description: |- object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). properties: describedObject: description: describedObject specifies the descriptions of a object,such as kind,name apiVersion properties: apiVersion: description: apiVersion is the API version of the referent type: string kind: description: 'kind is the kind of the referent; More info: https://git.k8s.' type: string name: description: 'name is the name of the referent; More info: https://kubernetes.' type: string required: - kind - name type: object metric: description: metric identifies the target metric by name and selector properties: name: description: name is the name of the given metric type: string selector: description: |- selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed... 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 required: - name type: object target: description: target specifies the target value for the given metric properties: averageUtilization: description: |- averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a... format: int32 type: integer averageValue: anyOf: - type: integer - type: string description: |- averageValue is the target value of the average of the metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: description: type represents whether the metric type is Utilization, Value, or AverageValue type: string value: anyOf: - type: integer - type: string description: value is the target value of the metric (as a quantity). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - type type: object required: - describedObject - metric - target type: object pods: description: |- pods refers to a metric describing each pod in the current scale target (for example,... properties: metric: description: metric identifies the target metric by name and selector properties: name: description: name is the name of the given metric type: string selector: description: |- selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed... 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 required: - name type: object target: description: target specifies the target value for the given metric properties: averageUtilization: description: |- averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a... format: int32 type: integer averageValue: anyOf: - type: integer - type: string description: |- averageValue is the target value of the average of the metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: description: type represents whether the metric type is Utilization, Value, or AverageValue type: string value: anyOf: - type: integer - type: string description: value is the target value of the metric (as a quantity). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - type type: object required: - metric - target type: object resource: description: |- resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing... properties: name: description: name is the name of the resource in question. type: string target: description: target specifies the target value for the given metric properties: averageUtilization: description: |- averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a... format: int32 type: integer averageValue: anyOf: - type: integer - type: string description: |- averageValue is the target value of the average of the metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: description: type represents whether the metric type is Utilization, Value, or AverageValue type: string value: anyOf: - type: integer - type: string description: value is the target value of the metric (as a quantity). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - type type: object required: - name - target type: object type: description: type is the type of metric source. type: string required: - type type: object type: array minReplicas: description: MinReplicas is the lower limit for the number of replicas. Defaults to 1. format: int32 minimum: 1 type: integer required: - maxReplicas type: object type: object 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 seLinuxChangePolicy: description: seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. type: string 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 and... items: format: int64 type: integer type: array x-kubernetes-list-type: atomic supplementalGroupsPolicy: description: |- Defines how supplemental groups of the first container processes are calculated. Valid values are "Merge" and "Strict". type: string 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 topologySpreadConstraints: description: TopologySpreadConstraints defines how pods are spread across topology domains. items: description: TopologySpreadConstraint specifies how to spread matching pods among the given topology. properties: labelSelector: description: LabelSelector is used to find matching pods. 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 matchLabelKeys: description: |- MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. items: type: string type: array x-kubernetes-list-type: atomic maxSkew: description: MaxSkew describes the degree to which pods may be unevenly distributed. format: int32 type: integer minDomains: description: MinDomains indicates a minimum number of eligible domains. format: int32 type: integer nodeAffinityPolicy: description: |- NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread... type: string nodeTaintsPolicy: description: |- NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. type: string topologyKey: description: TopologyKey is the key of node labels. type: string whenUnsatisfiable: description: |- WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. type: string required: - maxSkew - topologyKey - whenUnsatisfiable type: object type: array 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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... 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: default: ext4 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...' type: string readOnly: default: false 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. Deprecated: Cinder is deprecated. 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... 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. 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... 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... 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) Either 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... 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... 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... 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. 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 image: description: image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. properties: pullPolicy: description: |- Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. type: string reference: description: |- Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. type: string 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: default: default 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. Each entry in this list handles one source. items: description: |- Projection that may be projected along with other supported volume types. Exactly one of these fields must be set. 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... 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... 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... 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... type: string tenant: description: |- tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set... 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. 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: default: /etc/ceph/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: default: rbd 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: default: admin 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: default: xfs 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: default: ThinProvisioned 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... 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 x-kubernetes-validations: - message: replicas > 1 and services.scaling.autoscaling are mutually exclusive. rule: self.replicas <= 1 || !has(self.services) || !has(self.services.scaling) || !has(self.services.scaling.autoscaling) - message: Scaling requires DB-backed persistence for the online store. Configure services.onlineStore.persistence.store when using replicas > 1 or autoscaling. rule: self.replicas <= 1 && (!has(self.services) || !has(self.services.scaling) || !has(self.services.scaling.autoscaling)) || (has(self.services) && has(self.services.onlineStore) && has(self.services.onlineStore.persistence) && has(self.services.onlineStore.persistence.store)) - message: Scaling requires DB-backed persistence for the offline store. Configure services.offlineStore.persistence.store when using replicas > 1 or autoscaling. rule: self.replicas <= 1 && (!has(self.services) || !has(self.services.scaling) || !has(self.services.scaling.autoscaling)) || (!has(self.services) || !has(self.services.offlineStore) || (has(self.services.offlineStore.persistence) && has(self.services.offlineStore.persistence.store))) - message: Scaling requires DB-backed or remote registry. Configure registry.local.persistence.store or use a remote registry when using replicas > 1 or autoscaling. S3/GCS-backed registry is also allowed. rule: self.replicas <= 1 && (!has(self.services) || !has(self.services.scaling) || !has(self.services.scaling.autoscaling)) || (has(self.services) && has(self.services.registry) && (has(self.services.registry.remote) || (has(self.services.registry.local) && has(self.services.registry.local.persistence) && (has(self.services.registry.local.persistence.store) || (has(self.services.registry.local.persistence.file) && has(self.services.registry.local.persistence.file.path) && (self.services.registry.local.persistence.file.path.startsWith('s3://') || self.services.registry.local.persistence.file.path.startsWith('gs://'))))))) 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. 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 replicas: description: Replicas is the current number of ready pod replicas (used by the scale sub-resource). format: int32 type: integer scalingStatus: description: ScalingStatus reports the current scaling state of the FeatureStore deployment. properties: currentReplicas: description: CurrentReplicas is the current number of pod replicas. format: int32 type: integer desiredReplicas: description: DesiredReplicas is the desired number of pod replicas. format: int32 type: integer type: object selector: description: Selector is the label selector for pods managed by the FeatureStore deployment (used by the scale sub-resource). 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: scale: labelSelectorPath: .status.selector specReplicasPath: .spec.replicas statusReplicasPath: .status.replicas 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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... 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 - 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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 - datastore - dynamodb - bigtable - postgres - cassandra - mysql - hazelcast - singlestore - hbase - elasticsearch - qdrant - couchbase.online - milvus - hybrid - mongodb 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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)' runFeastApplyOnInit: description: Runs feast apply on pod start to populate the registry. Defaults to true. Ignored when DisableInitContainers is true. type: boolean 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 seLinuxChangePolicy: description: seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. type: string 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 and... items: format: int64 type: integer type: array x-kubernetes-list-type: atomic supplementalGroupsPolicy: description: |- Defines how supplemental groups of the first container processes are calculated. Valid values are "Merge" and "Strict". type: string 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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... 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: default: ext4 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...' type: string readOnly: default: false 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. Deprecated: Cinder is deprecated. 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... 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. 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... 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... 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) Either 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... 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... 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... 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. 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 image: description: image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. properties: pullPolicy: description: |- Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. type: string reference: description: |- Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. type: string 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: default: default 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. Each entry in this list handles one source. items: description: |- Projection that may be projected along with other supported volume types. Exactly one of these fields must be set. 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... 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... 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... 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... type: string tenant: description: |- tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set... 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. 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: default: /etc/ceph/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: default: rbd 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: default: admin 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: default: xfs 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: default: ThinProvisioned 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... 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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... 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 - 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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 - datastore - dynamodb - bigtable - postgres - cassandra - mysql - hazelcast - singlestore - hbase - elasticsearch - qdrant - couchbase.online - milvus - hybrid - mongodb 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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)' runFeastApplyOnInit: description: Runs feast apply on pod start to populate the registry. Defaults to true. Ignored when DisableInitContainers is true. type: boolean 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 seLinuxChangePolicy: description: seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. type: string 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 and... items: format: int64 type: integer type: array x-kubernetes-list-type: atomic supplementalGroupsPolicy: description: |- Defines how supplemental groups of the first container processes are calculated. Valid values are "Merge" and "Strict". type: string 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... 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 or Secrets 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: Optional text to prepend to the name of each environment variable. 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 request: description: Request is the name chosen for a request in the referenced claim. 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 workerConfigs: description: WorkerConfigs defines the worker configuration for the Feast server. properties: keepAliveTimeout: description: |- KeepAliveTimeout is the timeout for keep-alive connections in seconds. Defaults to 30. format: int32 minimum: 1 type: integer maxRequests: description: |- MaxRequests is the maximum number of requests a worker will process before restarting. This helps prevent memory leaks. format: int32 minimum: 0 type: integer maxRequestsJitter: description: |- MaxRequestsJitter is the maximum jitter to add to max-requests to prevent thundering herd effect on worker restart. format: int32 minimum: 0 type: integer registryTTLSeconds: description: RegistryTTLSeconds is the number of seconds after which the registry is refreshed. format: int32 minimum: 0 type: integer workerConnections: description: |- WorkerConnections is the maximum number of simultaneous clients per worker process. Defaults to 1000. format: int32 minimum: 1 type: integer workers: description: Workers is the number of worker processes. Use -1 to auto-calculate based on CPU cores (2 * CPU + 1). format: int32 minimum: -1 type: integer type: object 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... 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: default: ext4 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...' type: string readOnly: default: false 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. Deprecated: Cinder is deprecated. 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... 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. 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... 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... 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) Either 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... 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... 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... 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. 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 image: description: image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. properties: pullPolicy: description: |- Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. type: string reference: description: |- Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. type: string 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: default: default 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. Each entry in this list handles one source. items: description: |- Projection that may be projected along with other supported volume types. Exactly one of these fields must be set. 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... 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... 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... 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... type: string tenant: description: |- tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set... 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. 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: default: /etc/ceph/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: default: rbd 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: default: admin 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: default: xfs 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: default: ThinProvisioned 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... 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. 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-05-29T10:35:39Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2026-05-29T10:35:39Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1