Skip to content

Commit 2b421c0

Browse files
Merge pull request #311 from wking/load-proxy-certs-from-trusted-ca-bundle
Bug 1797123: pkg/cvo: Fetch proxy CA certs from openshift-config-managed/trusted-ca-bundle
2 parents 5d06bfc + c9fab43 commit 2b421c0

File tree

4 files changed

+28
-27
lines changed

4 files changed

+28
-27
lines changed

pkg/cvo/cvo.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,12 @@ type Operator struct {
115115
// syncBackoff allows the tests to use a quicker backoff
116116
syncBackoff wait.Backoff
117117

118-
cvLister configlistersv1.ClusterVersionLister
119-
coLister configlistersv1.ClusterOperatorLister
120-
cmConfigLister listerscorev1.ConfigMapNamespaceLister
121-
proxyLister configlistersv1.ProxyLister
122-
cacheSynced []cache.InformerSynced
118+
cvLister configlistersv1.ClusterVersionLister
119+
coLister configlistersv1.ClusterOperatorLister
120+
cmConfigLister listerscorev1.ConfigMapNamespaceLister
121+
cmConfigManagedLister listerscorev1.ConfigMapNamespaceLister
122+
proxyLister configlistersv1.ProxyLister
123+
cacheSynced []cache.InformerSynced
123124

124125
// queue tracks applying updates to a cluster.
125126
queue workqueue.RateLimitingInterface
@@ -212,6 +213,7 @@ func New(
212213

213214
optr.proxyLister = proxyInformer.Lister()
214215
optr.cmConfigLister = cmConfigInformer.Lister().ConfigMaps(internal.ConfigNamespace)
216+
optr.cmConfigManagedLister = cmConfigInformer.Lister().ConfigMaps(internal.ConfigManagedNamespace)
215217

216218
// make sure this is initialized after all the listers are initialized
217219
optr.upgradeableChecks = optr.defaultUpgradeableChecks()
@@ -751,17 +753,15 @@ func (optr *Operator) HTTPClient() (*http.Client, error) {
751753
// getTransportOpts retrieves the URL of the cluster proxy and the CA
752754
// trust, if they exist.
753755
func (optr *Operator) getTransportOpts() (*url.URL, *tls.Config, error) {
754-
proxyURL, cmNameRef, err := optr.getHTTPSProxyURL()
756+
proxyURL, err := optr.getHTTPSProxyURL()
755757
if err != nil {
756758
return nil, nil, err
757759
}
758760

759761
var tlsConfig *tls.Config
760-
if cmNameRef != "" {
761-
tlsConfig, err = optr.getTLSConfig(cmNameRef)
762-
if err != nil {
763-
return nil, nil, err
764-
}
762+
tlsConfig, err = optr.getTLSConfig()
763+
if err != nil {
764+
return nil, nil, err
765765
}
766766
return proxyURL, tlsConfig, nil
767767
}

pkg/cvo/cvo_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2637,6 +2637,7 @@ func TestOperator_availableUpdatesSync(t *testing.T) {
26372637
optr.proxyLister = &clientProxyLister{client: optr.client}
26382638
optr.coLister = &clientCOLister{client: optr.client}
26392639
optr.cvLister = &clientCVLister{client: optr.client}
2640+
optr.cmConfigManagedLister = &cmConfigLister{}
26402641
optr.eventRecorder = record.NewFakeRecorder(100)
26412642

26422643
if tt.handler != nil {

pkg/cvo/egress.go

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,38 @@ import (
1111

1212
// getHTTPSProxyURL returns a url.URL object for the configured
1313
// https proxy only. It can be nil if does not exist or there is an error.
14-
func (optr *Operator) getHTTPSProxyURL() (*url.URL, string, error) {
14+
func (optr *Operator) getHTTPSProxyURL() (*url.URL, error) {
1515
proxy, err := optr.proxyLister.Get("cluster")
1616

1717
if errors.IsNotFound(err) {
18-
return nil, "", nil
18+
return nil, nil
1919
}
2020
if err != nil {
21-
return nil, "", err
21+
return nil, err
2222
}
2323

2424
if &proxy.Spec != nil {
2525
if proxy.Spec.HTTPSProxy != "" {
2626
proxyURL, err := url.Parse(proxy.Spec.HTTPSProxy)
2727
if err != nil {
28-
return nil, "", err
28+
return nil, err
2929
}
30-
return proxyURL, proxy.Spec.TrustedCA.Name, nil
30+
return proxyURL, nil
3131
}
3232
}
33-
return nil, "", nil
33+
return nil, nil
3434
}
3535

36-
func (optr *Operator) getTLSConfig(cmNameRef string) (*tls.Config, error) {
37-
cm, err := optr.cmConfigLister.Get(cmNameRef)
38-
36+
func (optr *Operator) getTLSConfig() (*tls.Config, error) {
37+
cm, err := optr.cmConfigManagedLister.Get("trusted-ca-bundle")
38+
if errors.IsNotFound(err) {
39+
return nil, nil
40+
}
3941
if err != nil {
4042
return nil, err
4143
}
4244

43-
certPool, _ := x509.SystemCertPool()
44-
if certPool == nil {
45-
certPool = x509.NewCertPool()
46-
}
45+
certPool := x509.NewCertPool()
4746

4847
if cm.Data["ca-bundle.crt"] != "" {
4948
if ok := certPool.AppendCertsFromPEM([]byte(cm.Data["ca-bundle.crt"])); !ok {

pkg/internal/constants.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package internal
22

33
const (
4-
ConfigNamespace = "openshift-config"
5-
InstallerConfigMap = "openshift-install"
6-
ManifestsConfigMap = "openshift-install-manifests"
4+
ConfigNamespace = "openshift-config"
5+
ConfigManagedNamespace = "openshift-config-managed"
6+
InstallerConfigMap = "openshift-install"
7+
ManifestsConfigMap = "openshift-install-manifests"
78
)

0 commit comments

Comments
 (0)