Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/how-to-guides/running-feast-in-production.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ kubectl apply -f https://raw.githubusercontent.com/feast-dev/feast/refs/tags/<ve
3. Deploy a Feature Store

```sh
kubectl apply -f https://raw.githubusercontent.com/feast-dev/feast/refs/heads/stable/infra/feast-operator/config/samples/v1alpha1_featurestore.yaml
kubectl apply -f https://raw.githubusercontent.com/feast-dev/feast/refs/heads/stable/infra/feast-operator/config/samples/v1_featurestore.yaml
```
Verify the status
```
Expand All @@ -238,7 +238,7 @@ sample Ready 2m21s

The above will install a simple [FeatureStore CR](../../infra/feast-operator/docs/api/markdown/ref.md) like the following. By default, it will run the [Online Store feature server](../reference/feature-servers/python-feature-server.md) -
```yaml
apiVersion: feast.dev/v1alpha1
apiVersion: feast.dev/v1
kind: FeatureStore
metadata:
name: sample
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/feature-servers/offline-feature-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ See [this](../../how-to-guides/running-feast-in-production.md#id-4.2.-deploy-fea

The Offline feature server can be deployed with a slight modification of the FeatureStore CR -
```yaml
apiVersion: feast.dev/v1alpha1
apiVersion: feast.dev/v1
kind: FeatureStore
metadata:
name: sample-offline-server
Expand Down
19 changes: 5 additions & 14 deletions examples/operator-postgres-tls-demo/02-Install-feast.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"**Option 1: Directly Setting the CA Certificate Path** \n",
"\n",
"In this approach, we specify the CA certificate path directly in the Feast PostgreSQL URL using the `sslrootcert` parameter. \n",
"\n",
"You can refer to the `v1alpha1_featurestore_postgres_db_volumes_tls.yaml` file for the complete configuration details. "
"**Option 1: Directly Setting the CA Certificate Path** \n\nIn this approach, we specify the CA certificate path directly in the Feast PostgreSQL URL using the `sslrootcert` parameter. \n\nYou can refer to the `v1_featurestore_postgres_db_volumes_tls.yaml` file for the complete configuration details. "
]
},
{
Expand All @@ -131,19 +127,14 @@
}
],
"source": [
"!kubectl apply -f ../../infra/feast-operator/config/samples/v1alpha1_featurestore_postgres_db_volumes_tls.yaml --namespace=feast"
"!kubectl apply -f ../../infra/feast-operator/config/samples/v1_featurestore_postgres_db_volumes_tls.yaml --namespace=feast"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Option 2: Using an Environment Variable for the CA Certificate** \n",
"\n",
"In this approach, you define the CA certificate path as an environment variable. You can refer to the `v1alpha1_featurestore_postgres_tls_volumes_ca_env.yaml` file for the complete configuration details. \n",
"\n",
"```bash\n",
"FEAST_CA_CERT_FILE_PATH=<path-to-ca-cert>\n"
"**Option 2: Using an Environment Variable for the CA Certificate** \n\nIn this approach, you define the CA certificate path as an environment variable. You can refer to the `v1_featurestore_postgres_tls_volumes_ca_env.yaml` file for the complete configuration details. \n\n```bash\nFEAST_CA_CERT_FILE_PATH=<path-to-ca-cert>\n"
]
},
{
Expand All @@ -162,7 +153,7 @@
}
],
"source": [
"!kubectl apply -f ../../infra/feast-operator/config/samples/v1alpha1_featurestore_postgres_tls_volumes_ca_env.yaml --namespace=feast"
"!kubectl apply -f ../../infra/feast-operator/config/samples/v1_featurestore_postgres_tls_volumes_ca_env.yaml --namespace=feast"
]
},
{
Expand Down Expand Up @@ -455,4 +446,4 @@
},
"nbformat": 4,
"nbformat_minor": 4
}
}
10 changes: 2 additions & 8 deletions examples/operator-postgres-tls-demo/03-Uninstall.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,7 @@
}
],
"source": [
"# If you have choosen the option 1 example earlier.\n",
"!kubectl delete -f ../../infra/feast-operator/config/samples/v1alpha1_featurestore_postgres_db_volumes_tls.yaml\n",
"\n",
"# If you have choosen the option 2 example earlier.\n",
"!kubectl delete -f ../../infra/feast-operator/config/samples/v1alpha1_featurestore_postgres_tls_volumes_ca_env.yaml\n",
"\n",
"#!kubectl delete -f ../../infra/feast-operator/dist/install.yaml"
"# If you have choosen the option 1 example earlier.\n!kubectl delete -f ../../infra/feast-operator/config/samples/v1_featurestore_postgres_db_volumes_tls.yaml\n\n# If you have choosen the option 2 example earlier.\n!kubectl delete -f ../../infra/feast-operator/config/samples/v1_featurestore_postgres_tls_volumes_ca_env.yaml\n\n#!kubectl delete -f ../../infra/feast-operator/dist/install.yaml"
]
},
{
Expand Down Expand Up @@ -131,4 +125,4 @@
},
"nbformat": 4,
"nbformat_minor": 4
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Install the Feast services via FeatureStore CR\n",
"Next, we'll use the running Feast Operator to install the feast services with Server components online, offline, registry with kubernetes Authorization set. Apply the included [reference deployment](../../infra/feast-operator/config/samples/v1alpha1_featurestore_kubernetes_auth.yaml) to install and configure Feast with kubernetes Authorization ."
"## Install the Feast services via FeatureStore CR\nNext, we'll use the running Feast Operator to install the feast services with Server components online, offline, registry with kubernetes Authorization set. Apply the included [reference deployment](../../infra/feast-operator/config/samples/v1_featurestore_kubernetes_auth.yaml) to install and configure Feast with kubernetes Authorization ."
]
},
{
Expand Down Expand Up @@ -202,8 +201,7 @@
}
],
"source": [
"!cat ../../infra/feast-operator/config/samples/v1alpha1_featurestore_kubernetes_auth.yaml\n",
"!kubectl apply -f ../../infra/feast-operator/config/samples/v1alpha1_featurestore_kubernetes_auth.yaml -n feast"
"!cat ../../infra/feast-operator/config/samples/v1_featurestore_kubernetes_auth.yaml\n!kubectl apply -f ../../infra/feast-operator/config/samples/v1_featurestore_kubernetes_auth.yaml -n feast"
]
},
{
Expand Down Expand Up @@ -738,4 +736,4 @@
},
"nbformat": 4,
"nbformat_minor": 4
}
}
5 changes: 2 additions & 3 deletions examples/operator-rbac-openshift-tls/3-uninstall.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,7 @@
}
],
"source": [
"!kubectl delete -f ../../infra/feast-operator/config/samples/v1alpha1_featurestore_kubernetes_auth.yaml\n",
"!kubectl delete -f ../../infra/feast-operator/dist/install.yaml"
"!kubectl delete -f ../../infra/feast-operator/config/samples/v1_featurestore_kubernetes_auth.yaml\n!kubectl delete -f ../../infra/feast-operator/dist/install.yaml"
]
},
{
Expand Down Expand Up @@ -218,4 +217,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
}
}
5 changes: 2 additions & 3 deletions examples/operator-rbac/04-uninstall.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,7 @@
}
],
"source": [
"!kubectl delete -f ../../infra/feast-operator/config/samples/v1alpha1_featurestore_kubernetes_auth.yaml\n",
"!kubectl delete -f ../../infra/feast-operator/dist/install.yaml"
"!kubectl delete -f ../../infra/feast-operator/config/samples/v1_featurestore_kubernetes_auth.yaml\n!kubectl delete -f ../../infra/feast-operator/dist/install.yaml"
]
},
{
Expand Down Expand Up @@ -216,4 +215,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
}
}
8 changes: 3 additions & 5 deletions examples/operator-rbac/1-setup-operator-rbac.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Install the Feast services via FeatureStore CR\n",
"Next, we'll use the running Feast Operator to install the feast services with Server components online, offline, registry with kubernetes Authorization set. Apply the included [reference deployment](../../infra/feast-operator/config/samples/v1alpha1_featurestore_kubernetes_auth.yaml) to install and configure Feast with kubernetes Authorization ."
"## Install the Feast services via FeatureStore CR\nNext, we'll use the running Feast Operator to install the feast services with Server components online, offline, registry with kubernetes Authorization set. Apply the included [reference deployment](../../infra/feast-operator/config/samples/v1_featurestore_kubernetes_auth.yaml) to install and configure Feast with kubernetes Authorization ."
]
},
{
Expand Down Expand Up @@ -219,8 +218,7 @@
}
],
"source": [
"!cat ../../infra/feast-operator/config/samples/v1alpha1_featurestore_kubernetes_auth.yaml\n",
"!kubectl apply -f ../../infra/feast-operator/config/samples/v1alpha1_featurestore_kubernetes_auth.yaml -n feast"
"!cat ../../infra/feast-operator/config/samples/v1_featurestore_kubernetes_auth.yaml\n!kubectl apply -f ../../infra/feast-operator/config/samples/v1_featurestore_kubernetes_auth.yaml -n feast"
]
},
{
Expand Down Expand Up @@ -761,4 +759,4 @@
},
"nbformat": 4,
"nbformat_minor": 4
}
}
6 changes: 3 additions & 3 deletions infra/feast-operator/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ endif

.PHONY: install
install: manifests kustomize ## Install CRDs into the K8s cluster specified in ~/.kube/config.
$(KUSTOMIZE) build config/crd | $(KUBECTL) apply -f -
$(KUSTOMIZE) build config/crd | $(KUBECTL) apply --server-side --force-conflicts -f -

.PHONY: uninstall
uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
Expand All @@ -215,7 +215,7 @@ uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified
.PHONY: deploy
deploy: manifests kustomize related-image-fs ## Deploy controller to the K8s cluster specified in ~/.kube/config.
cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
$(KUSTOMIZE) build config/default | $(KUBECTL) apply -f -
$(KUSTOMIZE) build config/default | $(KUBECTL) apply --server-side --force-conflicts -f -

.PHONY: undeploy
undeploy: kustomize ## Undeploy controller from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
Expand Down Expand Up @@ -312,7 +312,7 @@ $(CRD_REF_DOCS): $(LOCALBIN)

.PHONY: generate-ref
generate-ref: generate fmt crd-ref-docs
$(CRD_REF_DOCS) --log-level=WARN --max-depth=30 --config=$(LOCALDIR)/docs/crd-ref-templates/config.yaml --source-path=$(LOCALDIR)/api/v1alpha1 --renderer=markdown --templates-dir=$(LOCALDIR)/docs/crd-ref-templates/markdown --output-path=$(LOCALDIR)/docs/api/markdown/ref.md
$(CRD_REF_DOCS) --log-level=WARN --max-depth=30 --config=$(LOCALDIR)/docs/crd-ref-templates/config.yaml --source-path=$(LOCALDIR)/api/v1 --renderer=markdown --templates-dir=$(LOCALDIR)/docs/crd-ref-templates/markdown --output-path=$(LOCALDIR)/docs/api/markdown/ref.md

.PHONY: bundle
bundle: manifests kustomize related-image-fs operator-sdk ## Generate bundle manifests and metadata, then validate generated files.
Expand Down
8 changes: 5 additions & 3 deletions infra/feast-operator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,17 @@ This is a K8s Operator that can be used to deploy and manage **Feast**, an open

## To deploy an Operator release on a cluster

Users can just run `kubectl apply -f <URL for YAML BUNDLE>` to install the project, i.e.:
Users can deploy the operator using Server-Side Apply to avoid CRD annotation size limits:

```sh
## Install the latest release -
kubectl apply -f https://raw.githubusercontent.com/feast-dev/feast/refs/heads/stable/infra/feast-operator/dist/install.yaml
kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/feast-dev/feast/refs/heads/stable/infra/feast-operator/dist/install.yaml

## OR, install a specific version -
# kubectl apply -f https://raw.githubusercontent.com/feast-dev/feast/refs/tags/<version>/infra/feast-operator/dist/install.yaml
# kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/feast-dev/feast/refs/tags/<version>/infra/feast-operator/dist/install.yaml
```

> **NOTE**: Server-Side Apply (`--server-side`) is required because the CRD includes both v1alpha1 and v1 API versions, making it too large for the standard `kubectl apply` annotation limit. If you encounter annotation size errors, use `--server-side --force-conflicts` flags.
##### Feast Operator Demo Videos
[![](https://img.youtube.com/vi/48cb4AHxPR4/0.jpg)](https://www.youtube.com/playlist?list=PLPzVNzik7rsAN-amQLZckd0so3cIr7blX)

Expand Down
Loading
Loading