Skip to content

Commit 162648c

Browse files
feat: Add hybrid to ValidOfflineStoreDBStorePersistenceTypes for HybridOfflineStore support
The Feast SDK supports HybridOfflineStore, which routes offline operations to different backends based on each FeatureView's batch_source, but the operator's FeatureStore CRD did not allow type: hybrid in the offline store persistence enum, blocking configuration via the CR. Mirrors the online store fix in #5810: - Register hybrid in OFFLINE_STORE_CLASS_FOR_TYPE so the type resolves to HybridOfflineStore (the SDK map previously had this only for the online store). - Add hybrid to the offline DB store enum and ValidOfflineStoreDBStorePersistenceTypes in both api/v1 and api/v1alpha1, and regenerate the CRD manifests (config/crd/bases, dist/install.yaml, bundle/manifests). - Update the offline hybrid doc to use the short type: hybrid form. Fixes #6701
1 parent 4efb86c commit 162648c

7 files changed

Lines changed: 18 additions & 3 deletions

File tree

docs/reference/offline-stores/hybrid.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ project: my_feature_repo
1818
registry: data/registry.db
1919
provider: local
2020
offline_store:
21-
type: hybrid_offline_store.HybridOfflineStore
21+
type: hybrid
2222
offline_stores:
2323
- type: spark
2424
conf:

infra/feast-operator/api/v1/featurestore_types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ var ValidOfflineStoreFilePersistenceTypes = []string{
528528
// OfflineStoreDBStorePersistence configures the DB store persistence for the offline store service
529529
type OfflineStoreDBStorePersistence struct {
530530
// Type of the persistence type you want to use.
531-
// +kubebuilder:validation:Enum=snowflake.offline;bigquery;redshift;spark;postgres;trino;athena;mssql;couchbase.offline;clickhouse;ray;oracle
531+
// +kubebuilder:validation:Enum=snowflake.offline;bigquery;redshift;spark;postgres;trino;athena;mssql;couchbase.offline;clickhouse;ray;oracle;hybrid
532532
Type string `json:"type"`
533533
// Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. "registry_type" & "type" fields should be removed.
534534
SecretRef corev1.LocalObjectReference `json:"secretRef"`
@@ -549,6 +549,7 @@ var ValidOfflineStoreDBStorePersistenceTypes = []string{
549549
"clickhouse",
550550
"ray",
551551
"oracle",
552+
"hybrid",
552553
}
553554

554555
// OnlineStore configures the online store service

infra/feast-operator/api/v1alpha1/featurestore_types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ var ValidOfflineStoreFilePersistenceTypes = []string{
337337
// OfflineStoreDBStorePersistence configures the DB store persistence for the offline store service
338338
type OfflineStoreDBStorePersistence struct {
339339
// Type of the persistence type you want to use.
340-
// +kubebuilder:validation:Enum=snowflake.offline;bigquery;redshift;spark;postgres;trino;athena;mssql;couchbase.offline;clickhouse;ray
340+
// +kubebuilder:validation:Enum=snowflake.offline;bigquery;redshift;spark;postgres;trino;athena;mssql;couchbase.offline;clickhouse;ray;hybrid
341341
Type string `json:"type"`
342342
// Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. "registry_type" & "type" fields should be removed.
343343
SecretRef corev1.LocalObjectReference `json:"secretRef"`
@@ -357,6 +357,7 @@ var ValidOfflineStoreDBStorePersistenceTypes = []string{
357357
"couchbase.offline",
358358
"clickhouse",
359359
"ray",
360+
"hybrid",
360361
}
361362

362363
// OnlineStore configures the online store service

infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1881,6 +1881,7 @@ spec:
18811881
- clickhouse
18821882
- ray
18831883
- oracle
1884+
- hybrid
18841885
type: string
18851886
required:
18861887
- secretRef
@@ -8211,6 +8212,7 @@ spec:
82118212
- clickhouse
82128213
- ray
82138214
- oracle
8215+
- hybrid
82148216
type: string
82158217
required:
82168218
- secretRef
@@ -13771,6 +13773,7 @@ spec:
1377113773
- couchbase.offline
1377213774
- clickhouse
1377313775
- ray
13776+
- hybrid
1377413777
type: string
1377513778
required:
1377613779
- secretRef
@@ -18292,6 +18295,7 @@ spec:
1829218295
- couchbase.offline
1829318296
- clickhouse
1829418297
- ray
18298+
- hybrid
1829518299
type: string
1829618300
required:
1829718301
- secretRef

infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1881,6 +1881,7 @@ spec:
18811881
- clickhouse
18821882
- ray
18831883
- oracle
1884+
- hybrid
18841885
type: string
18851886
required:
18861887
- secretRef
@@ -8211,6 +8212,7 @@ spec:
82118212
- clickhouse
82128213
- ray
82138214
- oracle
8215+
- hybrid
82148216
type: string
82158217
required:
82168218
- secretRef
@@ -13771,6 +13773,7 @@ spec:
1377113773
- couchbase.offline
1377213774
- clickhouse
1377313775
- ray
13776+
- hybrid
1377413777
type: string
1377513778
required:
1377613779
- secretRef
@@ -18292,6 +18295,7 @@ spec:
1829218295
- couchbase.offline
1829318296
- clickhouse
1829418297
- ray
18298+
- hybrid
1829518299
type: string
1829618300
required:
1829718301
- secretRef

infra/feast-operator/dist/install.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1889,6 +1889,7 @@ spec:
18891889
- clickhouse
18901890
- ray
18911891
- oracle
1892+
- hybrid
18921893
type: string
18931894
required:
18941895
- secretRef
@@ -8219,6 +8220,7 @@ spec:
82198220
- clickhouse
82208221
- ray
82218222
- oracle
8223+
- hybrid
82228224
type: string
82238225
required:
82248226
- secretRef
@@ -13779,6 +13781,7 @@ spec:
1377913781
- couchbase.offline
1378013782
- clickhouse
1378113783
- ray
13784+
- hybrid
1378213785
type: string
1378313786
required:
1378413787
- secretRef
@@ -18300,6 +18303,7 @@ spec:
1830018303
- couchbase.offline
1830118304
- clickhouse
1830218305
- ray
18306+
- hybrid
1830318307
type: string
1830418308
required:
1830518309
- secretRef

sdk/python/feast/repo_config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@
108108
"clickhouse": "feast.infra.offline_stores.contrib.clickhouse_offline_store.clickhouse.ClickhouseOfflineStore",
109109
"ray": "feast.infra.offline_stores.contrib.ray_offline_store.ray.RayOfflineStore",
110110
"oracle": "feast.infra.offline_stores.contrib.oracle_offline_store.oracle.OracleOfflineStore",
111+
"hybrid": "feast.infra.offline_stores.hybrid_offline_store.HybridOfflineStore",
111112
}
112113

113114
FEATURE_SERVER_CONFIG_CLASS_FOR_TYPE = {

0 commit comments

Comments
 (0)