Skip to content

Commit efaf16a

Browse files
authored
fix(domainCA): lookup in kcpsetup regardless if oidc patch is enabled (#141)
* fix(domainCA): lookup in kcpsetup regardless if oidc patch is enabled On-behalf-of: @SAP [email protected] Signed-off-by: Angel Kafazov <[email protected]> * fix(controller): pin ocm-controller image version On-behalf-of: @SAP [email protected] Signed-off-by: Angel Kafazov <[email protected]> --------- Signed-off-by: Angel Kafazov <[email protected]>
1 parent cc94812 commit efaf16a

File tree

2 files changed

+56
-14
lines changed

2 files changed

+56
-14
lines changed

pkg/subroutines/kcpsetup.go

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -244,22 +244,20 @@ func (r *KcpsetupSubroutine) getCABundleInventory(
244244
validatingB64Data := base64.StdEncoding.EncodeToString(validatingCaData)
245245
caBundles[validatingKey] = validatingB64Data
246246

247-
if r.cfg.Subroutines.PatchOIDC.DomainCALookup {
248-
domainCA, err := r.getCaBundle(ctx, &corev1alpha1.WebhookConfiguration{
249-
SecretData: "tls.crt",
250-
SecretRef: corev1alpha1.SecretReference{
251-
Name: "domain-certificate-ca",
252-
Namespace: "platform-mesh-system",
253-
},
254-
})
255-
if err != nil {
256-
log.Error().Err(err).Msg("Failed to get Domain CA bundle")
257-
return nil, errors.Wrap(err, "Failed to get Domain CA bundle")
258-
}
259-
260-
caBundles["domainCA"] = base64.StdEncoding.EncodeToString(domainCA)
247+
domainCA, err := r.getCaBundle(ctx, &corev1alpha1.WebhookConfiguration{
248+
SecretData: "tls.crt",
249+
SecretRef: corev1alpha1.SecretReference{
250+
Name: "domain-certificate-ca",
251+
Namespace: "platform-mesh-system",
252+
},
253+
})
254+
if err != nil {
255+
log.Error().Err(err).Msg("Failed to get Domain CA bundle")
256+
return nil, errors.Wrap(err, "Failed to get Domain CA bundle")
261257
}
262258

259+
caBundles["domainCA"] = base64.StdEncoding.EncodeToString(domainCA)
260+
263261
// Cache the results
264262
r.caBundleCache = caBundles
265263

pkg/subroutines/kcpsetup_test.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,21 @@ func (s *KcpsetupTestSuite) Test_getCABundleInventory() {
148148
}).
149149
Once() // Only called once due to caching
150150

151+
s.clientMock.EXPECT().
152+
Get(mock.Anything, types.NamespacedName{
153+
Name: "domain-certificate-ca",
154+
Namespace: "platform-mesh-system",
155+
}, mock.Anything).
156+
RunAndReturn(func(ctx context.Context, nn types.NamespacedName, obj client.Object, opts ...client.GetOption) error {
157+
secret := obj.(*corev1.Secret)
158+
secret.Data = map[string][]byte{
159+
"ca.crt": []byte("test-ca-data"),
160+
"tls.crt": []byte("test-tls-crt"),
161+
"tls.key": []byte("test-tls-key"),
162+
}
163+
return nil
164+
})
165+
151166
// First call should fetch from secrets
152167
inventory, err := s.testObj.GetCABundleInventory(ctx)
153168
s.Assert().NoError(err)
@@ -323,6 +338,20 @@ func (s *KcpsetupTestSuite) TestProcess() {
323338
}
324339
return nil
325340
})
341+
s.clientMock.EXPECT().
342+
Get(mock.Anything, types.NamespacedName{
343+
Name: "domain-certificate-ca",
344+
Namespace: "platform-mesh-system",
345+
}, mock.Anything).
346+
RunAndReturn(func(ctx context.Context, nn types.NamespacedName, obj client.Object, opts ...client.GetOption) error {
347+
secret := obj.(*corev1.Secret)
348+
secret.Data = map[string][]byte{
349+
"ca.crt": []byte("test-ca-data"),
350+
"tls.crt": []byte("test-tls-crt"),
351+
"tls.key": []byte("test-tls-key"),
352+
}
353+
return nil
354+
})
326355

327356
// Mock the webhook server cert lookup (called once since we cache results)
328357
s.clientMock.EXPECT().
@@ -572,6 +601,21 @@ func (s *KcpsetupTestSuite) TestCreateWorkspaces() {
572601
Return(nil).
573602
Once()
574603

604+
// Mock the mutating webhook secret lookup (called once due to caching)
605+
mockedK8sClient.EXPECT().Get(mock.Anything, types.NamespacedName{
606+
Name: "domain-certificate-ca",
607+
Namespace: webhookConfig.SecretRef.Namespace,
608+
}, mock.AnythingOfType("*v1.Secret")).
609+
Run(func(ctx context.Context, key types.NamespacedName, obj client.Object, opts ...client.GetOption) {
610+
sec := obj.(*corev1.Secret)
611+
sec.Data = map[string][]byte{
612+
"ca.crt": []byte("test-ca-data"),
613+
"tls.crt": []byte("test-tls-crt"),
614+
"tls.key": []byte("test-tls-key"),
615+
}
616+
}).
617+
Return(nil)
618+
575619
// Mock the validating webhook secret lookup (called once due to caching)
576620
mockedK8sClient.EXPECT().Get(mock.Anything, types.NamespacedName{
577621
Name: validatingWebhookConfig.SecretRef.Name,

0 commit comments

Comments
 (0)