Skip to content

Commit 7a1f4dd

Browse files
authored
feat: Operator improvements (feast-dev#4928)
operator improvements Signed-off-by: Tommy Hughes <tohughes@redhat.com>
1 parent dd472ba commit 7a1f4dd

28 files changed

+2491
-227
lines changed

infra/feast-operator/api/v1alpha1/featurestore_types.go

+12-9
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package v1alpha1
1818

1919
import (
20+
appsv1 "k8s.io/api/apps/v1"
2021
corev1 "k8s.io/api/core/v1"
2122
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2223
)
@@ -67,9 +68,12 @@ type FeatureStoreSpec struct {
6768

6869
// FeatureStoreServices defines the desired feast services. An ephemeral registry is deployed by default.
6970
type FeatureStoreServices struct {
70-
OfflineStore *OfflineStore `json:"offlineStore,omitempty"`
71-
OnlineStore *OnlineStore `json:"onlineStore,omitempty"`
72-
Registry *Registry `json:"registry,omitempty"`
71+
OfflineStore *OfflineStore `json:"offlineStore,omitempty"`
72+
OnlineStore *OnlineStore `json:"onlineStore,omitempty"`
73+
Registry *Registry `json:"registry,omitempty"`
74+
DeploymentStrategy *appsv1.DeploymentStrategy `json:"deploymentStrategy,omitempty"`
75+
// Disable the 'feast repo initialization' initContainer
76+
DisableInitContainers bool `json:"disableInitContainers,omitempty"`
7377
}
7478

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

381384
// ServiceHostnames defines the service hostnames in the format of <domain>:<port>, e.g. example.svc.cluster.local:80

infra/feast-operator/api/v1alpha1/zz_generated.deepcopy.go

+16-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

infra/feast-operator/bundle.Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/
66
LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
77
LABEL operators.operatorframework.io.bundle.package.v1=feast-operator
88
LABEL operators.operatorframework.io.bundle.channels.v1=alpha
9-
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.37.0
9+
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.38.0
1010
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
1111
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v4
1212

infra/feast-operator/bundle/manifests/feast-operator-controller-manager-metrics-service_v1_service.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ spec:
1212
- name: https
1313
port: 8443
1414
protocol: TCP
15-
targetPort: https
15+
targetPort: 8443
1616
selector:
1717
control-plane: controller-manager
1818
status:

infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml

+38-30
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ metadata:
1616
}
1717
]
1818
capabilities: Basic Install
19-
createdAt: "2024-11-01T13:05:11Z"
20-
operators.operatorframework.io/builder: operator-sdk-v1.37.0
19+
createdAt: "2025-01-16T22:15:56Z"
20+
operators.operatorframework.io/builder: operator-sdk-v1.38.0
2121
operators.operatorframework.io/project_layout: go.kubebuilder.io/v4
22-
name: feast-operator.v0.41.0
22+
name: feast-operator.v0.42.0
2323
namespace: placeholder
2424
spec:
2525
apiservicedefinitions: {}
@@ -54,6 +54,8 @@ spec:
5454
- ""
5555
resources:
5656
- configmaps
57+
- persistentvolumeclaims
58+
- serviceaccounts
5759
- services
5860
verbs:
5961
- create
@@ -62,6 +64,13 @@ spec:
6264
- list
6365
- update
6466
- watch
67+
- apiGroups:
68+
- ""
69+
resources:
70+
- secrets
71+
verbs:
72+
- get
73+
- list
6574
- apiGroups:
6675
- feast.dev
6776
resources:
@@ -88,6 +97,18 @@ spec:
8897
- get
8998
- patch
9099
- update
100+
- apiGroups:
101+
- rbac.authorization.k8s.io
102+
resources:
103+
- rolebindings
104+
- roles
105+
verbs:
106+
- create
107+
- delete
108+
- get
109+
- list
110+
- update
111+
- watch
91112
- apiGroups:
92113
- authentication.k8s.io
93114
resources:
@@ -122,35 +143,17 @@ spec:
122143
spec:
123144
containers:
124145
- args:
125-
- --secure-listen-address=0.0.0.0:8443
126-
- --upstream=http://127.0.0.1:8080/
127-
- --logtostderr=true
128-
- --v=0
129-
image: gcr.io/kubebuilder/kube-rbac-proxy:v0.16.0
130-
name: kube-rbac-proxy
131-
ports:
132-
- containerPort: 8443
133-
name: https
134-
protocol: TCP
135-
resources:
136-
limits:
137-
cpu: 500m
138-
memory: 128Mi
139-
requests:
140-
cpu: 5m
141-
memory: 64Mi
142-
securityContext:
143-
allowPrivilegeEscalation: false
144-
capabilities:
145-
drop:
146-
- ALL
147-
- args:
148-
- --health-probe-bind-address=:8081
149-
- --metrics-bind-address=127.0.0.1:8080
146+
- --metrics-bind-address=:8443
150147
- --leader-elect
148+
- --health-probe-bind-address=:8081
151149
command:
152150
- /manager
153-
image: feastdev/feast-operator:0.41.0
151+
env:
152+
- name: RELATED_IMAGE_FEATURE_SERVER
153+
value: docker.io/feastdev/feature-server:0.42.0
154+
- name: RELATED_IMAGE_GRPC_CURL
155+
value: docker.io/fullstorydev/grpcurl:v1.9.1-alpine
156+
image: feastdev/feast-operator:0.42.0
154157
livenessProbe:
155158
httpGet:
156159
path: /healthz
@@ -239,4 +242,9 @@ spec:
239242
provider:
240243
name: Feast Community
241244
url: https://lf-aidata.atlassian.net/wiki/spaces/FEAST/
242-
version: 0.41.0
245+
relatedImages:
246+
- image: docker.io/feastdev/feature-server:0.42.0
247+
name: feature-server
248+
- image: docker.io/fullstorydev/grpcurl:v1.9.1-alpine
249+
name: grpc-curl
250+
version: 0.42.0

0 commit comments

Comments
 (0)