Skip to content

Commit

Permalink
feat: Operator - make server container creation explicit in the CR (#…
Browse files Browse the repository at this point in the history
…5024)

add server option

Signed-off-by: Tommy Hughes <tohughes@redhat.com>
  • Loading branch information
tchughesiv authored Feb 7, 2025
1 parent 5a17b68 commit b16fb40
Show file tree
Hide file tree
Showing 29 changed files with 1,929 additions and 1,883 deletions.
27 changes: 11 additions & 16 deletions examples/operator-quickstart/feast.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,32 +25,27 @@ spec:
persistence:
file:
type: duckdb
envFrom:
- secretRef:
name: postgres-secret
onlineStore:
persistence:
store:
type: redis
secretRef:
name: feast-data-stores
envFrom:
- secretRef:
name: postgres-secret
registry:
local:
persistence:
store:
type: sql
secretRef:
name: feast-data-stores
envFrom:
- secretRef:
name: postgres-secret
env:
- name: MPLCONFIGDIR
value: /tmp
resources:
requests:
cpu: 150m
memory: 128Mi
server:
envFrom:
- secretRef:
name: postgres-secret
env:
- name: MPLCONFIGDIR
value: /tmp
resources:
requests:
cpu: 150m
memory: 128Mi
26 changes: 15 additions & 11 deletions infra/feast-operator/api/v1alpha1/featurestore_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,10 @@ type FeatureStoreSpec struct {

// FeatureStoreServices defines the desired feast services. An ephemeral registry is deployed by default.
type FeatureStoreServices struct {
OfflineStore *OfflineStore `json:"offlineStore,omitempty"`
OnlineStore *OnlineStore `json:"onlineStore,omitempty"`
Registry *Registry `json:"registry,omitempty"`
OfflineStore *OfflineStore `json:"offlineStore,omitempty"`
OnlineStore *OnlineStore `json:"onlineStore,omitempty"`
Registry *Registry `json:"registry,omitempty"`
// Creates a UI server container
UI *ServerConfigs `json:"ui,omitempty"`
DeploymentStrategy *appsv1.DeploymentStrategy `json:"deploymentStrategy,omitempty"`
// Disable the 'feast repo initialization' initContainer
Expand All @@ -84,8 +85,9 @@ type FeatureStoreServices struct {

// OfflineStore configures the deployed offline store service
type OfflineStore struct {
ServerConfigs `json:",inline"`
Persistence *OfflineStorePersistence `json:"persistence,omitempty"`
// Creates a remote offline server container
Server *ServerConfigs `json:"server,omitempty"`
Persistence *OfflineStorePersistence `json:"persistence,omitempty"`
}

// OfflineStorePersistence configures the persistence settings for the offline store service
Expand Down Expand Up @@ -132,8 +134,9 @@ var ValidOfflineStoreDBStorePersistenceTypes = []string{

// OnlineStore configures the deployed online store service
type OnlineStore struct {
ServerConfigs `json:",inline"`
Persistence *OnlineStorePersistence `json:"persistence,omitempty"`
// Creates a feature server container
Server *ServerConfigs `json:"server,omitempty"`
Persistence *OnlineStorePersistence `json:"persistence,omitempty"`
}

// OnlineStorePersistence configures the persistence settings for the online store service
Expand Down Expand Up @@ -183,8 +186,9 @@ var ValidOnlineStoreDBStorePersistenceTypes = []string{

// LocalRegistryConfig configures the deployed registry service
type LocalRegistryConfig struct {
ServerConfigs `json:",inline"`
Persistence *RegistryPersistence `json:"persistence,omitempty"`
// Creates a registry server container
Server *ServerConfigs `json:"server,omitempty"`
Persistence *RegistryPersistence `json:"persistence,omitempty"`
}

// RegistryPersistence configures the persistence settings for the registry service
Expand Down Expand Up @@ -277,14 +281,14 @@ type FeatureStoreRef struct {
Namespace string `json:"namespace,omitempty"`
}

// ServerConfigs server-related configurations for a feast service
// ServerConfigs creates a server for the feast service, with specified container configurations.
type ServerConfigs struct {
ContainerConfigs `json:",inline"`
TLS *TlsConfigs `json:"tls,omitempty"`
// LogLevel sets the logging level for the server
// Allowed values: "debug", "info", "warning", "error", "critical".
// +kubebuilder:validation:Enum=debug;info;warning;error;critical
LogLevel string `json:"logLevel,omitempty"`
LogLevel *string `json:"logLevel,omitempty"`
}

// ContainerConfigs k8s container settings for the server
Expand Down
23 changes: 20 additions & 3 deletions infra/feast-operator/api/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit b16fb40

Please sign in to comment.