Configuration Reference

Overview

This reference describes how to configure Feast components:

1. Feast Core and Feast Online Serving

Available configuration properties for Feast Core and Feast Online Serving can be referenced from the corresponding application.yml of each component:

Component

Configuration Reference

Core

core/src/main/resources/application.yml

Serving (Online)

serving/src/main/resources/application.yml

Configuration properties for Feast Core and Feast Online Serving are defined depending on Feast is deployed:

Docker Compose Deployment

For each Feast component deployed using Docker Compose, configuration properties from application.yml can be set at:

Component

Configuration Path

Core

infra/docker-compose/core/core.yml

Online Serving

infra/docker-compose/serving/online-serving.yml

Kubernetes Deployment

The Kubernetes Feast Deployment is configured using values.yaml in the Helm chart included with Feast:

# values.yaml
feast-core:
enabled: true # whether to deploy the feast-core subchart to deploy Feast Core.
# feast-core subchart specific config.
gcpServiceAccount:
enabled: true
# ....

A reference of the sub-chart-specific configuration can found in its values.yml:

Configuration properties can be set via application-override.yaml for each component in values.yaml:

# values.yaml
feast-core:
# ....
application-override.yaml:
# application.yml config properties for Feast Core.
# ...

Visit the Helm chart included with Feast to learn more about configuration.

Direct Configuration

If Feast is built and running from source, configuration properties can be set directly in the Feast component's application.yml:

Component

Configuration Path

Core

core/src/main/resources/application.yml

Serving (Online)

serving/src/main/resources/application.yml

2. Feast CLI and Feast Python SDK

Configuration options for both the Feast CLI and Feast Python SDK can be defined in the following locations, in order of precedence:

1. Command line arguments or initialized arguments: Passing parameters to the Feast CLI or instantiating the Feast Client object with specific parameters will take precedence above other parameters.

# Set option as command line arguments.
feast config set core_url "localhost:6565"
# Pass options as initialized arguments.
client = Client(
core_url="localhost:6565",
project="default"
)

2. Environmental variables: Environmental variables can be set to provide configuration options. They must be prefixed with FEAST_. For example FEAST_CORE_URL.

FEAST_CORE_URL=my_feast:6565 FEAST_PROJECT=default feast projects list

3. Configuration file: Options with the lowest precedence are configured in the Feast configuration file. Feast looks for or creates this configuration file in ~/.feast/config if it does not already exist. All options must be defined in the [general] section of this file.

[general]
project = default
core_url = localhost:6565

Visit the available configuration parameters for Feast Python SDK and Feast CLI to learn more.

3. Feast Java and Go SDK

The Feast Java SDK and Feast Go SDK are configured via arguments passed when instantiating the respective Clients:

Go SDK

// configure serving host and port.
cli := feast.NewGrpcClient("localhost", 6566)

Visit the Feast Go SDK API reference to learn more about available configuration parameters.

Java SDK

// configure serving host and port.
client = FeastClient.create(servingHost, servingPort);

Visit the Feast Java SDK API reference to learn more about available configuration parameters.