-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Made fixes to Go Operator DB persistence #4830
Conversation
Signed-off-by: Theodor Mihalache <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looking good... just a couple nits so far
infra/feast-operator/internal/controller/featurestore_controller_db_store_test.go
Outdated
Show resolved
Hide resolved
infra/feast-operator/internal/controller/featurestore_controller_db_store_test.go
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
otherwise, lgtm
Type string `json:"type,omitempty"` | ||
PvcConfig *PvcConfig `json:"pvc,omitempty"` | ||
} | ||
|
||
var ValidOfflineStoreFilePersistenceTypes = []string{ | ||
"dask", | ||
"duckdb", | ||
"file", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it appears this is the same as dask
... so maybe we don't include it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thoughts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is supported and not deprecated yet, so I think we should include it as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it was removed from the doc since v0.40
https://docs.feast.dev/v0.40-branch/reference/offline-stores/overview
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it was removed from the doc since v0.40 https://docs.feast.dev/v0.40-branch/reference/offline-stores/overview
But not the code and is not deprecated in the code
Signed-off-by: Theodor Mihalache <[email protected]>
@@ -125,8 +126,10 @@ var ValidOfflineStoreDBStorePersistenceTypes = []string{ | |||
"redshift", | |||
"spark", | |||
"postgres", | |||
"feast_trino.trino.TrinoOfflineStore", | |||
"trino", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the docs are using "feast_trino.trino.TrinoOfflineStore" in the example configs. Is there an issue tracking the defect? otherwise, you can simply fix it here 😉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dmartinol it appears the docs are out of date ... here's the code where these classes/types are declared -
feast/sdk/python/feast/repo_config.py
Lines 87 to 100 in a36f7e5
OFFLINE_STORE_CLASS_FOR_TYPE = { | |
"file": "feast.infra.offline_stores.dask.DaskOfflineStore", | |
"dask": "feast.infra.offline_stores.dask.DaskOfflineStore", | |
"bigquery": "feast.infra.offline_stores.bigquery.BigQueryOfflineStore", | |
"redshift": "feast.infra.offline_stores.redshift.RedshiftOfflineStore", | |
"snowflake.offline": "feast.infra.offline_stores.snowflake.SnowflakeOfflineStore", | |
"spark": "feast.infra.offline_stores.contrib.spark_offline_store.spark.SparkOfflineStore", | |
"trino": "feast.infra.offline_stores.contrib.trino_offline_store.trino.TrinoOfflineStore", | |
"postgres": "feast.infra.offline_stores.contrib.postgres_offline_store.postgres.PostgreSQLOfflineStore", | |
"athena": "feast.infra.offline_stores.contrib.athena_offline_store.athena.AthenaOfflineStore", | |
"mssql": "feast.infra.offline_stores.contrib.mssql_offline_store.mssql.MsSqlServerOfflineStore", | |
"duckdb": "feast.infra.offline_stores.duckdb.DuckDBOfflineStore", | |
"remote": "feast.infra.offline_stores.remote.RemoteOfflineStore", | |
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is what I was trying to suggest: raise an issue (optional) and fix the docs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah ... agree @dmartinol
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Opened an issue #4837
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm apart from minor comments
* Made fixes to Go Operator DB persistence Signed-off-by: Theodor Mihalache <[email protected]> * Fixes following review Signed-off-by: Theodor Mihalache <[email protected]> --------- Signed-off-by: Theodor Mihalache <[email protected]>
# [0.43.0](v0.42.0...v0.43.0) (2025-01-20) ### Bug Fixes * Add k8s module to feature-server image ([#4839](#4839)) ([f565565](f565565)) * Adding input to workflow ([e3e8c97](e3e8c97)) * Change image push to use --all-tags option ([#4926](#4926)) ([02458fd](02458fd)) * Fix integration build/push for images ([#4923](#4923)) ([695e49b](695e49b)) * Fix integration operator push ([#4924](#4924)) ([13c7267](13c7267)) * Fix release.yml ([#4845](#4845)) ([b4768a8](b4768a8)) * Fixing some of the warnings with the github actions ([#4763](#4763)) ([1119439](1119439)) * Improve status.applied updates & add offline pvc unit test ([#4871](#4871)) ([3f49517](3f49517)) * Made fixes to Go Operator DB persistence ([#4830](#4830)) ([cdc0753](cdc0753)) * Make transformation_service_endpoint configuration optional ([#4880](#4880)) ([c62377b](c62377b)) * Move pre-release image builds to quay.io, retire gcr.io pushes ([#4922](#4922)) ([40b975b](40b975b)) * Performance regression in /get-online-features ([#4892](#4892)) ([0db56a2](0db56a2)) * Refactor Operator to deploy all feast services to the same Deployment/Pod ([#4863](#4863)) ([88854dd](88854dd)) * Remove unnecessary google cloud steps & upgrade docker action versions ([#4925](#4925)) ([32aaf9a](32aaf9a)) * Remove verifyClient TLS offlineStore option from the Operator ([#4847](#4847)) ([79fa247](79fa247)) * Resolving syntax error while querying a feature view with column name starting with a number and BigQuery as data source ([#4908](#4908)) ([d3495a0](d3495a0)) * Updated python-helm-demo example to use MinIO instead of GS ([#4691](#4691)) ([31afd99](31afd99)) ### Features * Add date field support to spark ([#4913](#4913)) ([a8aeb79](a8aeb79)) * Add date support when converting from python to feast types ([#4918](#4918)) ([bd9f071](bd9f071)) * Add duckdb extra to multicloud release image ([#4862](#4862)) ([b539eba](b539eba)) * Add milvus package to release image & option to Operator ([#4870](#4870)) ([ef724b6](ef724b6)) * Add Milvus Vector Database Implementation ([#4751](#4751)) ([22c7b58](22c7b58)) * Add online/offline replica support ([#4812](#4812)) ([b97da6c](b97da6c)) * Added pvc accessModes support ([#4851](#4851)) ([a73514c](a73514c)) * Adding EnvFrom support for the OptionalConfigs type to the Go Operator ([#4909](#4909)) ([e01e510](e01e510)) * Adding Feature Server to components docs ([#4868](#4868)) ([f95e54b](f95e54b)) * Adding features field to retrieve_online_features to return mor… ([#4869](#4869)) ([7df287e](7df287e)) * Adding packages for Milvus Online Store ([#4854](#4854)) ([49171bd](49171bd)) * Adding vector_search parameter to fields ([#4855](#4855)) ([739eaa7](739eaa7)) * Feast Operator support log level configuration for services ([#4808](#4808)) ([19424bc](19424bc)) * Go Operator - Parsing the output to go structs ([#4832](#4832)) ([732865f](732865f)) * Implement `date_partition_column` for `SparkSource` ([#4844](#4844)) ([c5ffa03](c5ffa03)) * Loading the CA trusted store certificate into Feast to verify the public certificate. ([#4852](#4852)) ([132ce2a](132ce2a)) * Operator E2E test to validate FeatureStore custom resource using remote registry ([#4822](#4822)) ([d558ef7](d558ef7)) * Operator improvements ([#4928](#4928)) ([7a1f4dd](7a1f4dd)) * Removing the tls_verify_client flag from feast cli for offline server. ([#4842](#4842)) ([8320e23](8320e23)) * Separating the RBAC and Remote related integration tests. ([#4905](#4905)) ([76e1e21](76e1e21)) * Snyk vulnerability issues fix. ([#4867](#4867)) ([dbc9207](dbc9207)), closes [#6](#6) [#3](#3) [#4](#4) * Use ASOF JOIN in Snowflake offline store query ([#4850](#4850)) ([8f591a2](8f591a2)) ### Reverts * Revert "chore: Add Milvus to pr_integration_tests.yml" ([#4900](#4900)) ([07958f7](07958f7)), closes [#4891](#4891)
# [0.43.0](feast-dev/feast@v0.42.0...v0.43.0) (2025-01-20) ### Bug Fixes * Add k8s module to feature-server image ([feast-dev#4839](feast-dev#4839)) ([f565565](feast-dev@f565565)) * Adding input to workflow ([e3e8c97](feast-dev@e3e8c97)) * Change image push to use --all-tags option ([feast-dev#4926](feast-dev#4926)) ([02458fd](feast-dev@02458fd)) * Fix integration build/push for images ([feast-dev#4923](feast-dev#4923)) ([695e49b](feast-dev@695e49b)) * Fix integration operator push ([feast-dev#4924](feast-dev#4924)) ([13c7267](feast-dev@13c7267)) * Fix release.yml ([feast-dev#4845](feast-dev#4845)) ([b4768a8](feast-dev@b4768a8)) * Fixing some of the warnings with the github actions ([feast-dev#4763](feast-dev#4763)) ([1119439](feast-dev@1119439)) * Improve status.applied updates & add offline pvc unit test ([feast-dev#4871](feast-dev#4871)) ([3f49517](feast-dev@3f49517)) * Made fixes to Go Operator DB persistence ([feast-dev#4830](feast-dev#4830)) ([cdc0753](feast-dev@cdc0753)) * Make transformation_service_endpoint configuration optional ([feast-dev#4880](feast-dev#4880)) ([c62377b](feast-dev@c62377b)) * Move pre-release image builds to quay.io, retire gcr.io pushes ([feast-dev#4922](feast-dev#4922)) ([40b975b](feast-dev@40b975b)) * Performance regression in /get-online-features ([feast-dev#4892](feast-dev#4892)) ([0db56a2](feast-dev@0db56a2)) * Refactor Operator to deploy all feast services to the same Deployment/Pod ([feast-dev#4863](feast-dev#4863)) ([88854dd](feast-dev@88854dd)) * Remove unnecessary google cloud steps & upgrade docker action versions ([feast-dev#4925](feast-dev#4925)) ([32aaf9a](feast-dev@32aaf9a)) * Remove verifyClient TLS offlineStore option from the Operator ([feast-dev#4847](feast-dev#4847)) ([79fa247](feast-dev@79fa247)) * Resolving syntax error while querying a feature view with column name starting with a number and BigQuery as data source ([feast-dev#4908](feast-dev#4908)) ([d3495a0](feast-dev@d3495a0)) * Updated python-helm-demo example to use MinIO instead of GS ([feast-dev#4691](feast-dev#4691)) ([31afd99](feast-dev@31afd99)) ### Features * Add date field support to spark ([feast-dev#4913](feast-dev#4913)) ([a8aeb79](feast-dev@a8aeb79)) * Add date support when converting from python to feast types ([feast-dev#4918](feast-dev#4918)) ([bd9f071](feast-dev@bd9f071)) * Add duckdb extra to multicloud release image ([feast-dev#4862](feast-dev#4862)) ([b539eba](feast-dev@b539eba)) * Add milvus package to release image & option to Operator ([feast-dev#4870](feast-dev#4870)) ([ef724b6](feast-dev@ef724b6)) * Add Milvus Vector Database Implementation ([feast-dev#4751](feast-dev#4751)) ([22c7b58](feast-dev@22c7b58)) * Add online/offline replica support ([feast-dev#4812](feast-dev#4812)) ([b97da6c](feast-dev@b97da6c)) * Added pvc accessModes support ([feast-dev#4851](feast-dev#4851)) ([a73514c](feast-dev@a73514c)) * Adding EnvFrom support for the OptionalConfigs type to the Go Operator ([feast-dev#4909](feast-dev#4909)) ([e01e510](feast-dev@e01e510)) * Adding Feature Server to components docs ([feast-dev#4868](feast-dev#4868)) ([f95e54b](feast-dev@f95e54b)) * Adding features field to retrieve_online_features to return mor… ([feast-dev#4869](feast-dev#4869)) ([7df287e](feast-dev@7df287e)) * Adding packages for Milvus Online Store ([feast-dev#4854](feast-dev#4854)) ([49171bd](feast-dev@49171bd)) * Adding vector_search parameter to fields ([feast-dev#4855](feast-dev#4855)) ([739eaa7](feast-dev@739eaa7)) * Feast Operator support log level configuration for services ([feast-dev#4808](feast-dev#4808)) ([19424bc](feast-dev@19424bc)) * Go Operator - Parsing the output to go structs ([feast-dev#4832](feast-dev#4832)) ([732865f](feast-dev@732865f)) * Implement `date_partition_column` for `SparkSource` ([feast-dev#4844](feast-dev#4844)) ([c5ffa03](feast-dev@c5ffa03)) * Loading the CA trusted store certificate into Feast to verify the public certificate. ([feast-dev#4852](feast-dev#4852)) ([132ce2a](feast-dev@132ce2a)) * Operator E2E test to validate FeatureStore custom resource using remote registry ([feast-dev#4822](feast-dev#4822)) ([d558ef7](feast-dev@d558ef7)) * Operator improvements ([feast-dev#4928](feast-dev#4928)) ([7a1f4dd](feast-dev@7a1f4dd)) * Removing the tls_verify_client flag from feast cli for offline server. ([feast-dev#4842](feast-dev#4842)) ([8320e23](feast-dev@8320e23)) * Separating the RBAC and Remote related integration tests. ([feast-dev#4905](feast-dev#4905)) ([76e1e21](feast-dev@76e1e21)) * Snyk vulnerability issues fix. ([feast-dev#4867](feast-dev#4867)) ([dbc9207](feast-dev@dbc9207)), closes [#6](feast-dev#6) [#3](feast-dev#3) [#4](feast-dev#4) * Use ASOF JOIN in Snowflake offline store query ([feast-dev#4850](feast-dev#4850)) ([8f591a2](feast-dev@8f591a2)) ### Reverts * Revert "chore: Add Milvus to pr_integration_tests.yml" ([feast-dev#4900](feast-dev#4900)) ([07958f7](feast-dev@07958f7)), closes [feast-dev#4891](feast-dev#4891)
What this PR does / why we need it:
type
orregistry_type
field in their persistence config Secret.The fix is to throw an error only if these fields are set and do not match the CR configured persistence type for that service.
The fix is to add CR validation for missing types