Skip to content

Commit abecb9a

Browse files
authored
Fix custom CA bundle resolution (#296)
* add different resolver for CA bundles * remove commented out CaBundleResolver in resolverChain
1 parent ede0900 commit abecb9a

3 files changed

Lines changed: 5 additions & 3 deletions

File tree

pkg/apiserver/apiserver.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,11 +212,11 @@ func (c completedConfig) New(ctx context.Context) (*PorchServer, error) {
212212
resolverChain := []porch.Resolver{
213213
porch.NewBasicAuthResolver(),
214214
porch.NewBearerTokenAuthResolver(),
215-
porch.NewCaBundleResolver(),
216215
porch.NewGcloudWIResolver(coreV1Client, stsClient),
217216
}
218217

219218
credentialResolver := porch.NewCredentialResolver(coreClient, resolverChain)
219+
caBundleResolver := porch.NewCredentialResolver(coreClient, []porch.Resolver{porch.NewCaBundleResolver()})
220220
referenceResolver := porch.NewReferenceResolver(coreClient)
221221
userInfoProvider := &porch.ApiserverUserInfoProvider{}
222222

@@ -225,6 +225,7 @@ func (c completedConfig) New(ctx context.Context) (*PorchServer, error) {
225225
c.ExtraConfig.CacheOptions.CoreClient = coreClient
226226
c.ExtraConfig.CacheOptions.RepoPRChangeNotifier = watcherMgr
227227
c.ExtraConfig.CacheOptions.ExternalRepoOptions.CredentialResolver = credentialResolver
228+
c.ExtraConfig.CacheOptions.ExternalRepoOptions.CaBundleResolver = caBundleResolver
228229
c.ExtraConfig.CacheOptions.ExternalRepoOptions.UserInfoProvider = userInfoProvider
229230

230231
cacheImpl, err := cache.GetCacheImpl(ctx, c.ExtraConfig.CacheOptions)

pkg/externalrepo/git/git.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,8 @@ func OpenRepository(ctx context.Context, name, namespace string, spec *configapi
196196
deployment: deployment,
197197
}
198198

199-
if opts.ExternalRepoOptions.UseUserDefinedCaBundle {
200-
if caBundle, err := opts.ExternalRepoOptions.CredentialResolver.ResolveCredential(ctx, namespace, namespace+"-ca-bundle"); err != nil {
199+
if opts.UseUserDefinedCaBundle && opts.CaBundleResolver != nil {
200+
if caBundle, err := opts.CaBundleResolver.ResolveCredential(ctx, namespace, namespace+"-ca-bundle"); err != nil {
201201
klog.Errorf("failed to obtain caBundle from secret %s/%s: %v", namespace, namespace+"-ca-bundle", err)
202202
} else {
203203
repository.caBundle = []byte(caBundle.ToString())

pkg/externalrepo/types/externalrepotypes.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@ type ExternalRepoOptions struct {
2929
LocalDirectory string
3030
UseUserDefinedCaBundle bool
3131
CredentialResolver repository.CredentialResolver
32+
CaBundleResolver repository.CredentialResolver
3233
UserInfoProvider repository.UserInfoProvider
3334
}

0 commit comments

Comments
 (0)