Commit fef4e78
authored
feat: Expose the OIDC JWKS tunables through the operator (#6690)
* feat: Expose the OIDC JWKS tunables through the operator
Follow-up to #6683, requested in its review. Add jwksCacheLifespanSeconds
and jwksRequestTimeoutSeconds to OidcAuthz as CR fields rather than OIDC
Secret keys: these are non-secret operational knobs, so they belong with
verifySSL and caCertConfigMap rather than in the Secret bag that carries
IdP-coupled credentials.
Both are optional pointers with a Minimum=1 constraint mirroring the
SDK's validation, and are omitted from the generated feature_store.yaml
when unset so the SDK defaults apply rather than the operator asserting
its own. Regenerates deepcopy, CRD bases, dist/install.yaml, and the API
reference.
Documents that the cache lifespan is not purely a performance setting:
it also bounds how long a key the provider revoked keeps validating
tokens.
Signed-off-by: Larry Singleton <166439969+larrysingleton007@users.noreply.github.com>
* fix: Regenerate the OLM bundle and close review gaps
Code review findings on the JWKS tunables change.
The OLM bundle CRD was not regenerated, so it lacked both new fields
while config/crd/bases and dist/install.yaml carried them. Every other
OidcAuthz field is present in all three copies, and no PR workflow runs
make bundle, so CI would not have caught it: an OLM install would have
pruned the settings silently rather than failing. Regenerated with
make bundle; operator-sdk bundle validate passes.
Assert the client repo config omits both keys. OidcClientAuthConfig
inherits the same strict validation, so mirroring the forwarding into
the client path would break every client pod, and nothing tested it.
Also restore the neighbouring blocks' length assertion so a leaked
parameter fails.
Add CRD validation tests for the Minimum=1 constraints the docs promise.
Docs: caCertConfigMap was documented as a bare string but the CRD
requires an object with a name key, so the whole snippet failed to
apply, including the lines added here. Name the required Feast version
instead of implying any newer image works.
Signed-off-by: Larry Singleton <166439969+larrysingleton007@users.noreply.github.com>
* docs: State that the OIDC authz options require apiVersion v1
The CRD serves v1alpha1 alongside v1 with no conversion webhook, so a
resource submitted as v1alpha1 is validated against the v1alpha1 schema and
any field outside it is pruned without error. Under v1alpha1, authz.oidc
accepts only secretRef, so every other option is silently dropped.
This predates the JWKS settings: v1alpha1 has never carried issuerUrl,
secretKeyName, tokenEnvVar, verifySSL or caCertConfigMap either, all of
which landed v1-only in 7c04026. Documenting the whole section rather
than the two new fields keeps the guidance consistent with that.
The v1alpha1 schema already enforces this - the fields cannot be expressed
there - so no validation change is needed, only the missing warning.
Signed-off-by: Larry Singleton <166439969+larrysingleton007@users.noreply.github.com>
---------
Signed-off-by: Larry Singleton <166439969+larrysingleton007@users.noreply.github.com>1 parent ea17419 commit fef4e78
13 files changed
Lines changed: 172 additions & 6 deletions
File tree
- docs/how-to-guides/feast-operator
- infra/feast-operator
- api/v1
- bundle/manifests
- config/crd/bases
- dist
- docs/api/markdown
- internal/controller/services
- test/api
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
957 | 957 | | |
958 | 958 | | |
959 | 959 | | |
960 | | - | |
| 960 | + | |
961 | 961 | | |
962 | 962 | | |
963 | 963 | | |
| |||
980 | 980 | | |
981 | 981 | | |
982 | 982 | | |
983 | | - | |
| 983 | + | |
984 | 984 | | |
985 | 985 | | |
986 | 986 | | |
| |||
1172 | 1172 | | |
1173 | 1173 | | |
1174 | 1174 | | |
1175 | | - | |
| 1175 | + | |
1176 | 1176 | | |
1177 | 1177 | | |
1178 | 1178 | | |
| |||
1564 | 1564 | | |
1565 | 1565 | | |
1566 | 1566 | | |
1567 | | - | |
| 1567 | + | |
1568 | 1568 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
96 | 105 | | |
97 | 106 | | |
98 | 107 | | |
| |||
101 | 110 | | |
102 | 111 | | |
103 | 112 | | |
104 | | - | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
105 | 117 | | |
106 | 118 | | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
107 | 125 | | |
108 | 126 | | |
109 | 127 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
929 | 929 | | |
930 | 930 | | |
931 | 931 | | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
932 | 943 | | |
933 | 944 | | |
934 | 945 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
150 | | - | |
| 150 | + | |
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
| |||
Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
84 | 96 | | |
85 | 97 | | |
86 | 98 | | |
| |||
6390 | 6402 | | |
6391 | 6403 | | |
6392 | 6404 | | |
| 6405 | + | |
| 6406 | + | |
| 6407 | + | |
| 6408 | + | |
| 6409 | + | |
| 6410 | + | |
| 6411 | + | |
| 6412 | + | |
| 6413 | + | |
| 6414 | + | |
| 6415 | + | |
| 6416 | + | |
6393 | 6417 | | |
6394 | 6418 | | |
6395 | 6419 | | |
| |||
Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
84 | 96 | | |
85 | 97 | | |
86 | 98 | | |
| |||
6390 | 6402 | | |
6391 | 6403 | | |
6392 | 6404 | | |
| 6405 | + | |
| 6406 | + | |
| 6407 | + | |
| 6408 | + | |
| 6409 | + | |
| 6410 | + | |
| 6411 | + | |
| 6412 | + | |
| 6413 | + | |
| 6414 | + | |
| 6415 | + | |
| 6416 | + | |
6393 | 6417 | | |
6394 | 6418 | | |
6395 | 6419 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
92 | 104 | | |
93 | 105 | | |
94 | 106 | | |
| |||
6398 | 6410 | | |
6399 | 6411 | | |
6400 | 6412 | | |
| 6413 | + | |
| 6414 | + | |
| 6415 | + | |
| 6416 | + | |
| 6417 | + | |
| 6418 | + | |
| 6419 | + | |
| 6420 | + | |
| 6421 | + | |
| 6422 | + | |
| 6423 | + | |
| 6424 | + | |
6401 | 6425 | | |
6402 | 6426 | | |
6403 | 6427 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
642 | 642 | | |
643 | 643 | | |
644 | 644 | | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
645 | 650 | | |
646 | 651 | | |
647 | 652 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
166 | 172 | | |
167 | 173 | | |
168 | 174 | | |
| |||
0 commit comments