Skip to content

Commit e5760b4

Browse files
committed
fix: make operator include full OIDC secret in repo config (#5676)
1 parent 59dbb33 commit e5760b4

File tree

4 files changed

+27
-27
lines changed

4 files changed

+27
-27
lines changed

infra/feast-operator/internal/controller/featurestore_controller_oidc_auth_test.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -487,16 +487,21 @@ func expectedServerOidcAuthorizConfig() services.AuthzConfig {
487487
OidcParameters: map[string]interface{}{
488488
string(services.OidcAuthDiscoveryUrl): "auth-discovery-url",
489489
string(services.OidcClientId): "client-id",
490+
string(services.OidcClientSecret): "client-secret",
491+
string(services.OidcUsername): "username",
492+
string(services.OidcPassword): "password",
490493
},
491494
}
492495
}
493496
func expectedClientOidcAuthorizConfig() services.AuthzConfig {
494497
return services.AuthzConfig{
495498
Type: services.OidcAuthType,
496499
OidcParameters: map[string]interface{}{
497-
string(services.OidcClientSecret): "client-secret",
498-
string(services.OidcUsername): "username",
499-
string(services.OidcPassword): "password"},
500+
string(services.OidcClientId): "client-id",
501+
string(services.OidcAuthDiscoveryUrl): "auth-discovery-url",
502+
string(services.OidcClientSecret): "client-secret",
503+
string(services.OidcUsername): "username",
504+
string(services.OidcPassword): "password"},
500505
}
501506
}
502507

infra/feast-operator/internal/controller/services/repo_config.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,15 @@ func getBaseServiceRepoConfig(
102102
return repoConfig, authSecretErr
103103
}
104104

105-
oidcServerProperties := map[string]interface{}{}
106-
for _, oidcServerProperty := range OidcServerProperties {
107-
if val, exists := propertiesMap[string(oidcServerProperty)]; exists {
108-
oidcServerProperties[string(oidcServerProperty)] = val
105+
oidcParameters := map[string]interface{}{}
106+
for _, oidcProperty := range OidcProperties {
107+
if val, exists := propertiesMap[string(oidcProperty)]; exists {
108+
oidcParameters[string(oidcProperty)] = val
109109
} else {
110-
return repoConfig, missingOidcSecretProperty(oidcServerProperty)
110+
return repoConfig, missingOidcSecretProperty(oidcProperty)
111111
}
112112
}
113-
repoConfig.AuthzConfig.OidcParameters = oidcServerProperties
113+
repoConfig.AuthzConfig.OidcParameters = oidcParameters
114114
}
115115

116116
return repoConfig, nil
@@ -327,11 +327,11 @@ func getRepoConfig(
327327
}
328328

329329
oidcClientProperties := map[string]interface{}{}
330-
for _, oidcClientProperty := range OidcClientProperties {
331-
if val, exists := propertiesMap[string(oidcClientProperty)]; exists {
332-
oidcClientProperties[string(oidcClientProperty)] = val
330+
for _, oidcProperty := range OidcProperties {
331+
if val, exists := propertiesMap[string(oidcProperty)]; exists {
332+
oidcClientProperties[string(oidcProperty)] = val
333333
} else {
334-
return repoConfig, missingOidcSecretProperty(oidcClientProperty)
334+
return repoConfig, missingOidcSecretProperty(oidcProperty)
335335
}
336336
}
337337
repoConfig.AuthzConfig.OidcParameters = oidcClientProperties

infra/feast-operator/internal/controller/services/repo_config_test.go

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -214,17 +214,22 @@ var _ = Describe("Repo Config", func() {
214214
repoConfig, err = getServiceRepoConfig(featureStore, secretExtractionFunc)
215215
Expect(err).NotTo(HaveOccurred())
216216
Expect(repoConfig.AuthzConfig.Type).To(Equal(OidcAuthType))
217-
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveLen(2))
217+
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveLen(5))
218218
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcClientId)))
219219
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcAuthDiscoveryUrl)))
220+
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcClientSecret)))
221+
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcUsername)))
222+
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcPassword)))
220223
Expect(repoConfig.OfflineStore).To(Equal(expectedOfflineConfig))
221224
Expect(repoConfig.OnlineStore).To(Equal(defaultOnlineStoreConfig(featureStore)))
222225
Expect(repoConfig.Registry).To(Equal(defaultRegistryConfig(featureStore)))
223226

224227
repoConfig, err = getClientRepoConfig(featureStore, secretExtractionFunc, nil)
225228
Expect(err).NotTo(HaveOccurred())
226229
Expect(repoConfig.AuthzConfig.Type).To(Equal(OidcAuthType))
227-
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveLen(3))
230+
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveLen(5))
231+
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcClientId)))
232+
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcAuthDiscoveryUrl)))
228233
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcClientSecret)))
229234
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcUsername)))
230235
Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcPassword)))
@@ -314,14 +319,9 @@ var _ = Describe("Repo Config", func() {
314319
_, err := getServiceRepoConfig(featureStore, secretExtractionFunc)
315320
Expect(err).To(HaveOccurred())
316321
Expect(err.Error()).To(ContainSubstring("missing OIDC secret"))
317-
_, err = getServiceRepoConfig(featureStore, secretExtractionFunc)
318-
Expect(err).To(HaveOccurred())
319-
Expect(err.Error()).To(ContainSubstring("missing OIDC secret"))
320-
_, err = getServiceRepoConfig(featureStore, secretExtractionFunc)
322+
_, err = getClientRepoConfig(featureStore, secretExtractionFunc, nil)
321323
Expect(err).To(HaveOccurred())
322324
Expect(err.Error()).To(ContainSubstring("missing OIDC secret"))
323-
_, err = getClientRepoConfig(featureStore, secretExtractionFunc, nil)
324-
Expect(err).ToNot(HaveOccurred())
325325

326326
By("Having invalid client oidc authorization")
327327
featureStore.Spec.AuthzConfig = &feastdevv1.AuthzConfig{
@@ -341,12 +341,6 @@ var _ = Describe("Repo Config", func() {
341341
_, err = getServiceRepoConfig(featureStore, secretExtractionFunc)
342342
Expect(err).To(HaveOccurred())
343343
Expect(err.Error()).To(ContainSubstring("missing OIDC secret"))
344-
_, err = getServiceRepoConfig(featureStore, secretExtractionFunc)
345-
Expect(err).To(HaveOccurred())
346-
Expect(err.Error()).To(ContainSubstring("missing OIDC secret"))
347-
_, err = getServiceRepoConfig(featureStore, secretExtractionFunc)
348-
Expect(err).To(HaveOccurred())
349-
Expect(err.Error()).To(ContainSubstring("missing OIDC secret"))
350344
_, err = getClientRepoConfig(featureStore, secretExtractionFunc, nil)
351345
Expect(err).To(HaveOccurred())
352346
Expect(err.Error()).To(ContainSubstring("missing OIDC secret"))

infra/feast-operator/internal/controller/services/services_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ var (
210210

211211
OidcServerProperties = []OidcPropertyType{OidcClientId, OidcAuthDiscoveryUrl}
212212
OidcClientProperties = []OidcPropertyType{OidcClientSecret, OidcUsername, OidcPassword}
213+
OidcProperties = []OidcPropertyType{OidcClientId, OidcAuthDiscoveryUrl, OidcClientSecret, OidcUsername, OidcPassword}
213214
)
214215

215216
// Feast server types: Reserved only for server types like Online, Offline, and Registry servers. Should not be used for client types like the UI, etc.

0 commit comments

Comments
 (0)