Skip to content

Commit

Permalink
feat: Operator improvements (feast-dev#4928)
Browse files Browse the repository at this point in the history
operator improvements

Signed-off-by: Tommy Hughes <tohughes@redhat.com>
  • Loading branch information
tchughesiv authored Jan 17, 2025
1 parent dd472ba commit 7a1f4dd
Show file tree
Hide file tree
Showing 28 changed files with 2,491 additions and 227 deletions.
21 changes: 12 additions & 9 deletions infra/feast-operator/api/v1alpha1/featurestore_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ limitations under the License.
package v1alpha1

import (
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
Expand Down Expand Up @@ -67,9 +68,12 @@ 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"`
DeploymentStrategy *appsv1.DeploymentStrategy `json:"deploymentStrategy,omitempty"`
// Disable the 'feast repo initialization' initContainer
DisableInitContainers bool `json:"disableInitContainers,omitempty"`
}

// OfflineStore configures the deployed offline store service
Expand Down Expand Up @@ -370,12 +374,11 @@ type FeatureStoreStatus struct {
// Shows the currently applied feast configuration, including any pertinent defaults
Applied FeatureStoreSpec `json:"applied,omitempty"`
// ConfigMap in this namespace containing a client `feature_store.yaml` for this feast deployment
ClientConfigMap string `json:"clientConfigMap,omitempty"`
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Version of feast that's currently deployed
FeastVersion string `json:"feastVersion,omitempty"`
Phase string `json:"phase,omitempty"`
ServiceHostnames ServiceHostnames `json:"serviceHostnames,omitempty"`
ClientConfigMap string `json:"clientConfigMap,omitempty"`
Conditions []metav1.Condition `json:"conditions,omitempty"`
FeastVersion string `json:"feastVersion,omitempty"`
Phase string `json:"phase,omitempty"`
ServiceHostnames ServiceHostnames `json:"serviceHostnames,omitempty"`
}

// ServiceHostnames defines the service hostnames in the format of <domain>:<port>, e.g. example.svc.cluster.local:80
Expand Down
26 changes: 16 additions & 10 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.

2 changes: 1 addition & 1 deletion infra/feast-operator/bundle.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/
LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
LABEL operators.operatorframework.io.bundle.package.v1=feast-operator
LABEL operators.operatorframework.io.bundle.channels.v1=alpha
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.37.0
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.38.0
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v4

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ spec:
- name: https
port: 8443
protocol: TCP
targetPort: https
targetPort: 8443
selector:
control-plane: controller-manager
status:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ metadata:
}
]
capabilities: Basic Install
createdAt: "2024-11-01T13:05:11Z"
operators.operatorframework.io/builder: operator-sdk-v1.37.0
createdAt: "2025-01-16T22:15:56Z"
operators.operatorframework.io/builder: operator-sdk-v1.38.0
operators.operatorframework.io/project_layout: go.kubebuilder.io/v4
name: feast-operator.v0.41.0
name: feast-operator.v0.42.0
namespace: placeholder
spec:
apiservicedefinitions: {}
Expand Down Expand Up @@ -54,6 +54,8 @@ spec:
- ""
resources:
- configmaps
- persistentvolumeclaims
- serviceaccounts
- services
verbs:
- create
Expand All @@ -62,6 +64,13 @@ spec:
- list
- update
- watch
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- list
- apiGroups:
- feast.dev
resources:
Expand All @@ -88,6 +97,18 @@ spec:
- get
- patch
- update
- apiGroups:
- rbac.authorization.k8s.io
resources:
- rolebindings
- roles
verbs:
- create
- delete
- get
- list
- update
- watch
- apiGroups:
- authentication.k8s.io
resources:
Expand Down Expand Up @@ -122,35 +143,17 @@ spec:
spec:
containers:
- args:
- --secure-listen-address=0.0.0.0:8443
- --upstream=http://127.0.0.1:8080/
- --logtostderr=true
- --v=0
image: gcr.io/kubebuilder/kube-rbac-proxy:v0.16.0
name: kube-rbac-proxy
ports:
- containerPort: 8443
name: https
protocol: TCP
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 5m
memory: 64Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
- args:
- --health-probe-bind-address=:8081
- --metrics-bind-address=127.0.0.1:8080
- --metrics-bind-address=:8443
- --leader-elect
- --health-probe-bind-address=:8081
command:
- /manager
image: feastdev/feast-operator:0.41.0
env:
- name: RELATED_IMAGE_FEATURE_SERVER
value: docker.io/feastdev/feature-server:0.42.0
- name: RELATED_IMAGE_GRPC_CURL
value: docker.io/fullstorydev/grpcurl:v1.9.1-alpine
image: feastdev/feast-operator:0.42.0
livenessProbe:
httpGet:
path: /healthz
Expand Down Expand Up @@ -239,4 +242,9 @@ spec:
provider:
name: Feast Community
url: https://lf-aidata.atlassian.net/wiki/spaces/FEAST/
version: 0.41.0
relatedImages:
- image: docker.io/feastdev/feature-server:0.42.0
name: feature-server
- image: docker.io/fullstorydev/grpcurl:v1.9.1-alpine
name: grpc-curl
version: 0.42.0
Loading

0 comments on commit 7a1f4dd

Please sign in to comment.