Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
292 commits
Select commit Hold shift + click to select a range
649f382
Merge remote-tracking branch 'upstream/master'
dchourasia Jun 24, 2025
52f2411
Merge remote-tracking branch 'upstream/master'
dchourasia Jun 25, 2025
328adfa
Merge remote-tracking branch 'upstream/master'
dchourasia Jun 26, 2025
be7f270
Merge remote-tracking branch 'upstream/master'
dchourasia Jun 27, 2025
ef676a5
Merge remote-tracking branch 'upstream/master'
dchourasia Jun 29, 2025
d7ebd6e
Merge remote-tracking branch 'upstream/master'
CFSNM Jun 30, 2025
21d6bd6
Merge remote-tracking branch 'upstream/master'
CFSNM Jun 30, 2025
0870470
Merge remote-tracking branch 'upstream/master'
ntkathole Jul 1, 2025
d351c10
Merge remote-tracking branch 'upstream/master'
CFSNM Jul 1, 2025
29d3958
Merge remote-tracking branch 'upstream/master'
ntkathole Jul 1, 2025
ec985b0
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 8, 2025
d55ae12
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 10, 2025
ed778b1
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 11, 2025
3c02037
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 13, 2025
af7f197
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 15, 2025
a1fe77f
Merge remote-tracking branch 'upstream/master'
CFSNM Jul 15, 2025
64bcf88
Merge remote-tracking branch 'upstream/master'
CFSNM Jul 17, 2025
c9bc1c6
Merge remote-tracking branch 'upstream/master'
CFSNM Jul 18, 2025
8c454d8
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 19, 2025
7411adf
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 20, 2025
0c74a9c
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 21, 2025
ce123d0
Merge remote-tracking branch 'upstream/master'
CFSNM Jul 21, 2025
ce6c04a
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 22, 2025
9f5b134
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 24, 2025
bdf0068
Merge remote-tracking branch 'upstream/master'
CFSNM Jul 25, 2025
2a9095d
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 27, 2025
3d495a9
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 28, 2025
86810f7
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 29, 2025
dd992d3
Merge remote-tracking branch 'upstream/master'
dchourasia Jul 30, 2025
e62e927
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 2, 2025
88b107d
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 5, 2025
3948f6d
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 9, 2025
4b1dd8c
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 12, 2025
5ebc2b6
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 13, 2025
39729a1
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 15, 2025
11dec96
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 18, 2025
c1977d7
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 20, 2025
44dfeb4
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 21, 2025
44c5aae
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 26, 2025
6539491
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 27, 2025
2fcf8d4
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 28, 2025
8b8eff3
Merge remote-tracking branch 'upstream/master'
MohammadiIram Aug 29, 2025
5355cf5
Merge remote-tracking branch 'upstream/master'
dchourasia Aug 31, 2025
c5de567
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 2, 2025
c597c33
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 3, 2025
0a60655
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 6, 2025
33dac04
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 8, 2025
d24fa96
Merge remote-tracking branch 'upstream/master'
CFSNM Sep 9, 2025
c3e49df
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 14, 2025
bfdcdb5
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 15, 2025
eadf608
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 16, 2025
ca73eca
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 18, 2025
0b37372
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 20, 2025
f01b93d
Merge remote-tracking branch 'upstream/master'
CFSNM Sep 22, 2025
f946805
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 24, 2025
9a1bc59
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 25, 2025
4ae4213
Merge remote-tracking branch 'upstream/master'
harshad16 Sep 26, 2025
3db8557
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 27, 2025
c063c78
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 28, 2025
4385073
Merge remote-tracking branch 'upstream/master'
riprasad Sep 29, 2025
73c3793
Merge remote-tracking branch 'upstream/master'
dchourasia Sep 30, 2025
84a09c1
Merge remote-tracking branch 'upstream/master'
CFSNM Sep 30, 2025
e93afed
Merge remote-tracking branch 'upstream/master'
ntkathole Sep 30, 2025
4fd6ba8
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 5, 2025
4132c52
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 8, 2025
080bb33
Merge remote-tracking branch 'upstream/master'
CFSNM Oct 10, 2025
a34e4c6
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 11, 2025
ac5fe53
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 13, 2025
dfaf0e5
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 14, 2025
4ec80a8
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 15, 2025
dbfae5e
Merge remote-tracking branch 'upstream/master'
CFSNM Oct 15, 2025
e2adf2b
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 16, 2025
15dddef
Merge remote-tracking branch 'upstream/master'
ntkathole Oct 16, 2025
706ad1b
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 17, 2025
930ac2e
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 18, 2025
59b6d94
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 22, 2025
2501617
Merge remote-tracking branch 'upstream/master'
CFSNM Oct 23, 2025
c7b917b
Merge remote-tracking branch 'upstream/master'
moulalis Oct 24, 2025
8fe62b2
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 25, 2025
6d7162a
Merge remote-tracking branch 'upstream/master'
dchourasia Oct 26, 2025
dc73f3e
Merge remote-tracking branch 'upstream/master'
moulalis Oct 26, 2025
5a7b2a1
Merge remote-tracking branch 'upstream/master'
m-rafeeq Oct 27, 2025
6b05178
Merge remote-tracking branch 'upstream/master'
m-rafeeq Oct 28, 2025
6b0206b
Merge remote-tracking branch 'upstream/master'
m-rafeeq Oct 30, 2025
e86a498
ODH Feature Server Power Support (#44)
puneetsharma21 Oct 30, 2025
8ca6d71
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 1, 2025
8234534
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 4, 2025
559e09f
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 5, 2025
c184a91
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 6, 2025
ccbecca
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 7, 2025
6f19f75
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 11, 2025
57629a7
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 12, 2025
b7a4d66
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 13, 2025
fee4aea
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 14, 2025
7d126ad
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 15, 2025
17dbbcb
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 17, 2025
902ab6c
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 20, 2025
e5cb535
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 21, 2025
7810f12
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 21, 2025
13549b9
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 26, 2025
53c99f7
Merge remote-tracking branch 'upstream/master'
m-rafeeq Nov 28, 2025
c89bd8a
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 1, 2025
d99012f
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 2, 2025
da26f42
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 2, 2025
e3484c5
Merge remote-tracking branch 'upstream/master'
pawelpaszki Dec 2, 2025
f1258d6
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 3, 2025
0f879f5
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 3, 2025
b1e948e
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 6, 2025
b2b840a
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 7, 2025
cf734de
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 8, 2025
4a0b20a
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 10, 2025
52b0070
Merge remote-tracking branch 'upstream/master'
CFSNM Dec 11, 2025
82ef4b8
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 11, 2025
e428606
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 13, 2025
c75658b
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 13, 2025
83956ac
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 15, 2025
5794431
Merge remote-tracking branch 'upstream/master'
CFSNM Dec 15, 2025
3e8cfdf
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 15, 2025
781e943
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 15, 2025
3c4d489
feat: Feast Controller to hold feast Client configmaps for notebook (…
jyejare Dec 16, 2025
0513cba
Merge remote-tracking branch 'upstream/master'
ntkathole Dec 16, 2025
d0473e9
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 17, 2025
6c31bdf
Notebook controller to use v1
jyejare Dec 17, 2025
4991ce4
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 18, 2025
d8cd48c
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 22, 2025
2f0d3c0
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 23, 2025
617d1c8
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 23, 2025
a1c7adf
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 30, 2025
0db79f7
Merge remote-tracking branch 'upstream/master'
m-rafeeq Dec 31, 2025
1fe65db
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 2, 2026
c48d59a
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 3, 2026
00228e2
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 5, 2026
259e58b
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 6, 2026
e911021
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 6, 2026
e014ecd
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 6, 2026
d0031fc
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 7, 2026
04fb5c8
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 10, 2026
6d34968
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 12, 2026
e53962d
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 13, 2026
5edcc33
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 13, 2026
8636706
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 14, 2026
417ec38
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 15, 2026
02024c6
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 16, 2026
fa0907d
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 16, 2026
548bcf8
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 16, 2026
469b386
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 16, 2026
dbe167a
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 16, 2026
a9fbb72
Merge remote-tracking branch 'upstream/master'
m-rafeeq Jan 17, 2026
290ca4a
test: Add E2E RHOAI tests
Srihari1192 Jan 9, 2026
f7c08d8
--amend
Srihari1192 Jan 13, 2026
2344595
Merge remote-tracking branch 'upstream/master'
moulalis Jan 20, 2026
bdd8322
Merge remote-tracking branch 'upstream/master'
moulalis Jan 23, 2026
3665326
Merge remote-tracking branch 'upstream/master'
moulalis Jan 23, 2026
b2dfe8d
Merge remote-tracking branch 'upstream/master'
moulalis Jan 24, 2026
090bc8f
Merge remote-tracking branch 'upstream/master'
moulalis Jan 25, 2026
254cfa5
Merge remote-tracking branch 'upstream/master'
moulalis Jan 26, 2026
c519dc3
Merge remote-tracking branch 'upstream/master'
moulalis Jan 26, 2026
373588a
Merge remote-tracking branch 'upstream/master'
moulalis Jan 27, 2026
9bafa4c
Merge remote-tracking branch 'upstream/master'
moulalis Jan 27, 2026
872c4e2
Merge remote-tracking branch 'upstream/master'
moulalis Jan 28, 2026
bcccd53
Merge remote-tracking branch 'upstream/master'
moulalis Jan 28, 2026
b7334c6
Merge remote-tracking branch 'upstream/master'
moulalis Jan 28, 2026
0942d79
Merge remote-tracking branch 'upstream/master'
moulalis Jan 29, 2026
27b5586
Merge remote-tracking branch 'upstream/master'
moulalis Jan 29, 2026
0a3eb43
Merge remote-tracking branch 'upstream/master'
moulalis Jan 30, 2026
dbfb936
Merge remote-tracking branch 'upstream/master'
moulalis Jan 30, 2026
50b3e70
Update Feast Workbench Connection Remote functions
Srihari1192 Jan 30, 2026
389e933
Merge remote-tracking branch 'upstream/master'
moulalis Jan 31, 2026
1ac789d
Merge remote-tracking branch 'upstream/master'
moulalis Jan 31, 2026
ca90298
Merge remote-tracking branch 'upstream/master'
moulalis Feb 3, 2026
20d73d3
Merge remote-tracking branch 'upstream/master'
moulalis Feb 4, 2026
c01f57d
Fix Ray Offline Store Notebook tests memory issues
Srihari1192 Feb 5, 2026
e8e3a3f
Merge pull request #72 from Srihari1192/UpdateFeastRayNBTests
Srihari1192 Feb 5, 2026
8f0697e
Merge remote-tracking branch 'upstream/master'
moulalis Feb 6, 2026
caefe95
Merge remote-tracking branch 'upstream/master'
moulalis Feb 6, 2026
d8c437e
Merge remote-tracking branch 'upstream/master'
moulalis Feb 9, 2026
41ed7e1
Merge remote-tracking branch 'upstream/master'
moulalis Feb 10, 2026
caf37de
Merge remote-tracking branch 'upstream/master'
moulalis Feb 10, 2026
7559dc2
Merge remote-tracking branch 'upstream/master'
moulalis Feb 10, 2026
82a2512
Merge remote-tracking branch 'upstream/master'
moulalis Feb 11, 2026
8348315
Merge remote-tracking branch 'upstream/master'
moulalis Feb 11, 2026
ea72337
Merge remote-tracking branch 'upstream/master'
moulalis Feb 11, 2026
e8b6e86
Merge remote-tracking branch 'upstream/master'
moulalis Feb 12, 2026
b5c2c9d
Merge remote-tracking branch 'upstream/master'
moulalis Feb 13, 2026
10ca050
Merge remote-tracking branch 'upstream/master'
moulalis Feb 15, 2026
dfd86c8
Merge remote-tracking branch 'upstream/master'
ntkathole Feb 17, 2026
d665758
Merge pull request #74 from opendatahub-io/conflicts
ntkathole Feb 17, 2026
9414062
Merge remote-tracking branch 'upstream/master'
wznoinsk Feb 17, 2026
abcc30c
Merge remote-tracking branch 'upstream/master'
moulalis Feb 19, 2026
89345b6
Merge remote-tracking branch 'upstream/master'
moulalis Feb 19, 2026
8ed33cf
Merge remote-tracking branch 'upstream/master'
moulalis Feb 19, 2026
51e7290
Merge remote-tracking branch 'upstream/master'
moulalis Feb 19, 2026
dd60e87
Merge remote-tracking branch 'upstream/master'
moulalis Feb 21, 2026
f374157
Merge remote-tracking branch 'upstream/master'
moulalis Feb 23, 2026
1286e90
Merge remote-tracking branch 'upstream/master'
moulalis Feb 25, 2026
f8dc9d5
Merge remote-tracking branch 'upstream/master'
moulalis Feb 25, 2026
42e1d27
Merge remote-tracking branch 'upstream/master'
moulalis Feb 25, 2026
695ab54
Merge remote-tracking branch 'upstream/master'
moulalis Feb 26, 2026
2cdca55
Merge remote-tracking branch 'upstream/master'
ntkathole Feb 27, 2026
3b8ef59
Merge pull request #81 from opendatahub-io/fix_conflicts_uv
ntkathole Mar 2, 2026
b3b943e
Merge remote-tracking branch 'upstream/master'
moulalis Mar 2, 2026
904ade7
Merge remote-tracking branch 'upstream/master'
moulalis Mar 3, 2026
f89dac7
Merge remote-tracking branch 'upstream/master'
moulalis Mar 3, 2026
60c8eea
Merge remote-tracking branch 'upstream/master'
moulalis Mar 3, 2026
61cc9a5
Merge remote-tracking branch 'upstream/master'
moulalis Mar 4, 2026
57ac37a
Merge remote-tracking branch 'upstream/master'
ntkathole Mar 4, 2026
4c3f4e9
Merge pull request #83 from opendatahub-io/fix_role_conflcits
ntkathole Mar 4, 2026
d6434c1
Fix lint error
Srihari1192 Mar 5, 2026
ce52a46
Merge pull request #84 from Srihari1192/fixLintError
ntkathole Mar 5, 2026
9153860
Merge remote-tracking branch 'upstream/master'
CFSNM Mar 5, 2026
7126486
Merge remote-tracking branch 'upstream/master'
moulalis Mar 6, 2026
c8fd5a9
Merge remote-tracking branch 'upstream/master'
moulalis Mar 7, 2026
e3c88d1
Merge remote-tracking branch 'upstream/master'
moulalis Mar 9, 2026
3e981e4
Merge remote-tracking branch 'upstream/master'
moulalis Mar 9, 2026
c0b7aa9
Merge remote-tracking branch 'upstream/master'
moulalis Mar 10, 2026
4860db7
Merge remote-tracking branch 'upstream/master'
moulalis Mar 10, 2026
cf6fe7f
Merge remote-tracking branch 'upstream/master'
moulalis Mar 10, 2026
86ef2c8
Merge remote-tracking branch 'upstream/master'
moulalis Mar 10, 2026
1f4c506
Merge remote-tracking branch 'upstream/master'
ntkathole Mar 11, 2026
9d21a2d
Merge remote-tracking branch 'upstream/master'
moulalis Mar 14, 2026
2804aad
Merge remote-tracking branch 'upstream/master'
moulalis Mar 15, 2026
21324b7
Merge remote-tracking branch 'upstream/master'
moulalis Mar 16, 2026
f7c725e
Merge remote-tracking branch 'upstream/master'
moulalis Mar 16, 2026
3858a66
Merge remote-tracking branch 'upstream/master'
moulalis Mar 16, 2026
324d907
Merge remote-tracking branch 'upstream/master'
moulalis Mar 17, 2026
2933509
Fix: Feast configmap failure due to missing notebook CRD timing
jyejare Mar 11, 2026
b059c6a
Merge remote-tracking branch 'upstream/master'
moulalis Mar 17, 2026
1370377
Merge remote-tracking branch 'upstream/master'
moulalis Mar 18, 2026
7e71cbd
Merge pull request #85 from opendatahub-io/fix_52130
Srihari1192 Mar 18, 2026
849e8b9
Merge remote-tracking branch 'upstream/master'
moulalis Mar 20, 2026
013e6c7
Merge remote-tracking branch 'upstream/master'
moulalis Mar 23, 2026
e754be8
Feast client config Auto Access to users and groups based on policies
jyejare Mar 9, 2026
32134e7
Permisisons fetch using Infra token
jyejare Mar 18, 2026
6c5b103
First validate infra token
jyejare Mar 18, 2026
5d0f8a6
Merge remote-tracking branch 'upstream/master'
moulalis Mar 24, 2026
5640662
Merge remote-tracking branch 'upstream/master'
moulalis Mar 24, 2026
5931510
Merge remote-tracking branch 'upstream/master'
moulalis Mar 25, 2026
ce37cc3
fix: Harden informer cache with label selectors and memory optimizations
ugiordan Mar 25, 2026
9475759
Feast Config Registry for backward compatibility
jyejare Mar 19, 2026
d956618
Merge pull request #89 from opendatahub-io/auto_access
ntkathole Mar 26, 2026
bec7920
docs(dynamodb): add missing dynamodb:TagResource permission for feast…
anix-lynch Mar 10, 2026
a57758c
added utility function
Vperiodt Mar 25, 2026
898278a
feat: Add ServiceMonitor auto-generation for Prometheus discovery (#6…
ntkathole Mar 25, 2026
66d0424
Resolving checks issues while merging upstream in downstream
jyejare Mar 26, 2026
9fba4fb
Merge pull request #91 from opendatahub-io/merge_upstream4
ntkathole Mar 26, 2026
1a21fc2
Merge pull request #88 from ugiordan/fix/oom-informer-cache-flooding
jyejare Mar 30, 2026
8bbe8a4
Merge remote-tracking branch 'upstream/master'
jyejare Mar 30, 2026
420ce4f
Merge pull request #93 from opendatahub-io/mergeConflict
ntkathole Mar 30, 2026
1e877d0
Merge remote-tracking branch 'upstream/master'
moulalis Mar 31, 2026
bfd444f
fix: Handle existing RBAC role gracefully in namespace registry
jyejare Apr 1, 2026
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 .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -1156,7 +1156,7 @@
"filename": "infra/feast-operator/internal/controller/services/services.go",
"hashed_secret": "36dc326eb15c7bdd8d91a6b87905bcea20b637d1",
"is_verified": false,
"line_number": 179
"line_number": 184
}
],
"infra/feast-operator/internal/controller/services/tls_test.go": [
Expand Down Expand Up @@ -1539,5 +1539,5 @@
}
]
},
"generated_at": "2026-03-18T13:51:43Z"
"generated_at": "2026-03-26T14:12:54Z"
}
167 changes: 167 additions & 0 deletions infra/feast-operator/cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,39 @@ limitations under the License.
package main

import (
"context"
"crypto/tls"
"flag"
"fmt"
"os"
"strings"
"time"

// Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.)
// to ensure that exec-entrypoint and run can make use of them.
_ "k8s.io/client-go/plugin/pkg/client/auth"

appsv1 "k8s.io/api/apps/v1"
autoscalingv2 "k8s.io/api/autoscaling/v2"
batchv1 "k8s.io/api/batch/v1"
corev1 "k8s.io/api/core/v1"
policyv1 "k8s.io/api/policy/v1"
rbacv1 "k8s.io/api/rbac/v1"
apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/rest"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/cache"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/healthz"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/webhook"
Expand All @@ -59,6 +76,29 @@ func init() {
// +kubebuilder:scaffold:scheme
}

func newCacheOptions() cache.Options {
managedBySelector := labels.SelectorFromSet(labels.Set{
services.ManagedByLabelKey: services.ManagedByLabelValue,
})
managedByFilter := cache.ByObject{Label: managedBySelector}

return cache.Options{
DefaultTransform: cache.TransformStripManagedFields(),
ByObject: map[client.Object]cache.ByObject{
&corev1.ConfigMap{}: managedByFilter,
&appsv1.Deployment{}: managedByFilter,
&corev1.Service{}: managedByFilter,
&corev1.ServiceAccount{}: managedByFilter,
&corev1.PersistentVolumeClaim{}: managedByFilter,
&rbacv1.RoleBinding{}: managedByFilter,
&rbacv1.Role{}: managedByFilter,
&batchv1.CronJob{}: managedByFilter,
&autoscalingv2.HorizontalPodAutoscaler{}: managedByFilter,
&policyv1.PodDisruptionBudget{}: managedByFilter,
},
}
}

func main() {
var metricsAddr string
var enableLeaderElection bool
Expand Down Expand Up @@ -145,6 +185,7 @@ func main() {
// if you are doing or is intended to do any operation such as perform cleanups
// after the manager stops then its usage might be unsafe.
// LeaderElectionReleaseOnCancel: true,
Cache: newCacheOptions(),
Client: client.Options{
Cache: &client.CacheOptions{
DisableFor: []client.Object{
Expand All @@ -168,6 +209,43 @@ func main() {
setupLog.Error(err, "unable to create controller", "controller", "FeatureStore")
os.Exit(1)
}

// Setup Notebook ConfigMap controller for OpenDataHub integration
// Default to kubeflow.org/v1 Notebook CRD (used by OpenDataHub)
notebookGVK := schema.GroupVersionKind{
Group: "kubeflow.org",
Version: "v1",
Kind: "Notebook",
}
// Validate Notebook CRD availability and skip controller setup if CRD is missing
crdExists, err := validateNotebookCRD(context.Background(), mgr.GetConfig(), notebookGVK)
if err != nil {
setupLog.Error(err, "Notebook CRD validation failed for feast specific configmap", "GVK", notebookGVK)
if !crdExists {
setupLog.Info("Skipping Notebook ConfigMap controller setup - Notebook CRD not found")
} else {
setupLog.Info("Notebook ConfigMap controller will be set up anyway (could not verify CRD)")
}
}
if crdExists {
if err = setupNotebookController(mgr, notebookGVK); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "NotebookConfigMap")
os.Exit(1)
}
} else {
// CRD not found at startup (not an error, just not installed yet).
// During DSC deployment the Notebook CRD may be installed after the Feast
// operator starts. Poll in the background and trigger a process restart
// when the CRD appears so the controller can register during normal startup.
// Dynamic controller registration on a running manager is not supported by
// controller-runtime v0.18 (cache sync fails for late-added informers).
setupLog.Info("Notebook CRD not found at startup, will poll for CRD availability", "GVK", notebookGVK)
if addErr := mgr.Add(manager.RunnableFunc(func(ctx context.Context) error {
return waitForCRDAndRestart(ctx, mgr.GetConfig(), notebookGVK)
})); addErr != nil {
setupLog.Error(addErr, "Failed to add CRD watcher runnable")
}
}
// +kubebuilder:scaffold:builder

if err := mgr.AddHealthzCheck("healthz", healthz.Ping); err != nil {
Expand All @@ -185,3 +263,92 @@ func main() {
os.Exit(1)
}
}

// validateNotebookCRD checks if the Notebook CRD exists in the cluster
// Returns (crdExists bool, error) where crdExists is true if CRD exists, false if not found or unknown
func validateNotebookCRD(ctx context.Context, config *rest.Config, gvk schema.GroupVersionKind) (bool, error) {
apiextensionsClientset, err := apiextensionsclient.NewForConfig(config)
if err != nil {
return false, fmt.Errorf("failed to create apiextensions client: %w", err)
}

// Construct CRD name from GVK (format: plural.group)
// For kubeflow.org/v1 Notebook, the CRD name is "notebooks.kubeflow.org"
// Simple heuristic: convert Kind to lowercase and add 's' for plural
plural := strings.ToLower(gvk.Kind) + "s"
crdName := plural + "." + gvk.Group

_, err = apiextensionsClientset.ApiextensionsV1().CustomResourceDefinitions().Get(
ctx,
crdName,
metav1.GetOptions{},
)
if err != nil {
if apierrors.IsNotFound(err) {
// Not an error: integration is optional and controller setup will be skipped.
setupLog.Info(
"Notebook CRD not found; skipping Notebook ConfigMap controller setup",
"GVK", gvk,
"expectedCRD", crdName,
)
return false, nil
}
if apierrors.IsForbidden(err) {
// Can't verify - assume it might exist and let controller try
setupLog.Info(
"Unable to validate Notebook CRD (insufficient permissions), will attempt setup",
"CRD", crdName,
"GVK", gvk,
)
return true, nil // Return true to allow controller setup
}
return false, fmt.Errorf("failed to check Notebook CRD availability: %w", err)
}

setupLog.Info("Notebook CRD validated successfully", "CRD", crdName, "GVK", gvk)
return true, nil
}

const crdPollInterval = 5 * time.Second

func setupNotebookController(mgr ctrl.Manager, notebookGVK schema.GroupVersionKind) error {
if err := (&controller.NotebookConfigMapReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
NotebookGVK: notebookGVK,
}).SetupWithManager(mgr); err != nil {
return err
}
setupLog.Info("Notebook ConfigMap controller setup completed successfully")
return nil
}

// waitForCRDAndRestart polls for the Notebook CRD and exits the process when
// it becomes available. Kubernetes will restart the pod, and on the next startup
// the controller registers normally via the standard code path. This avoids
// dynamically adding controllers to a running manager, which causes cache sync
// failures in controller-runtime v0.18.
func waitForCRDAndRestart(ctx context.Context, config *rest.Config, gvk schema.GroupVersionKind) error {
ticker := time.NewTicker(crdPollInterval)
defer ticker.Stop()

setupLog.Info("Waiting for Notebook CRD to become available...", "GVK", gvk)

for {
select {
case <-ctx.Done():
setupLog.Info("Context cancelled, stopping CRD watch", "GVK", gvk)
return nil
case <-ticker.C:
crdExists, err := validateNotebookCRD(ctx, config, gvk)
if err != nil {
setupLog.Error(err, "Failed to check Notebook CRD availability, will retry")
continue
}
if crdExists {
setupLog.Info("Notebook CRD detected, restarting operator to initialize Notebook ConfigMap controller", "GVK", gvk)
os.Exit(0)
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
- op: test
path: "/spec/template/spec/containers/0/env/1/name"
value: RELATED_IMAGE_FEATURE_SERVER
- op: replace
path: "/spec/template/spec/containers/0/env/0"
path: "/spec/template/spec/containers/0/env/1"
value:
name: RELATED_IMAGE_FEATURE_SERVER
value: ${FS_IMG}
- op: test
path: "/spec/template/spec/containers/0/env/2/name"
value: RELATED_IMAGE_CRON_JOB
- op: replace
path: "/spec/template/spec/containers/0/env/1"
path: "/spec/template/spec/containers/0/env/2"
value:
name: RELATED_IMAGE_CRON_JOB
value: ${CJ_IMG}
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
- op: test
path: "/spec/template/spec/containers/0/env/1/name"
value: RELATED_IMAGE_FEATURE_SERVER
- op: replace
path: "/spec/template/spec/containers/0/env/0"
path: "/spec/template/spec/containers/0/env/1"
value:
name: RELATED_IMAGE_FEATURE_SERVER
value: quay.io/feastdev/feature-server:0.61.0
- op: test
path: "/spec/template/spec/containers/0/env/2/name"
value: RELATED_IMAGE_CRON_JOB
- op: replace
path: "/spec/template/spec/containers/0/env/1"
path: "/spec/template/spec/containers/0/env/2"
value:
name: RELATED_IMAGE_CRON_JOB
value: quay.io/openshift/origin-cli:4.17
2 changes: 2 additions & 0 deletions infra/feast-operator/config/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ spec:
drop:
- "ALL"
env:
- name: GOMEMLIMIT
value: "230MiB"
- name: RELATED_IMAGE_FEATURE_SERVER
value: feast:latest
- name: RELATED_IMAGE_CRON_JOB
Expand Down
36 changes: 36 additions & 0 deletions infra/feast-operator/config/rbac/role.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ kind: ClusterRole
metadata:
name: manager-role
rules:
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- apiGroups:
- apps
resources:
Expand Down Expand Up @@ -45,6 +52,18 @@ rules:
- patch
- update
- watch
- apiGroups:
- ""
resources:
- configmaps
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
Expand All @@ -63,6 +82,15 @@ rules:
- ""
resources:
- namespaces
verbs:
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- pods
- secrets
verbs:
Expand Down Expand Up @@ -101,6 +129,14 @@ rules:
- get
- patch
- update
- apiGroups:
- kubeflow.org
resources:
- notebooks
verbs:
- get
- list
- watch
- apiGroups:
- monitoring.coreos.com
resources:
Expand Down
Loading
Loading