Skip to content

Commit 98df927

Browse files
committed
fixup! Inject certificate to http client from a configmap referenced in the config
Signed-off-by: ivinokur <[email protected]>
1 parent 66ee28b commit 98df927

File tree

2 files changed

+26
-26
lines changed

2 files changed

+26
-26
lines changed

controllers/workspace/devworkspace_controller.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package controllers
1818
import (
1919
"context"
2020
"fmt"
21-
"net/http"
2221
"strconv"
2322
"strings"
2423
"time"
@@ -28,7 +27,6 @@ import (
2827
"github.com/devfile/devworkspace-operator/controllers/workspace/metrics"
2928
"github.com/devfile/devworkspace-operator/pkg/common"
3029
"github.com/devfile/devworkspace-operator/pkg/conditions"
31-
"github.com/devfile/devworkspace-operator/pkg/config"
3230
wkspConfig "github.com/devfile/devworkspace-operator/pkg/config"
3331
"github.com/devfile/devworkspace-operator/pkg/constants"
3432
"github.com/devfile/devworkspace-operator/pkg/dwerrors"
@@ -144,12 +142,8 @@ func (r *DevWorkspaceReconciler) Reconcile(ctx context.Context, req ctrl.Request
144142
reqLogger = reqLogger.WithValues(constants.DevWorkspaceIDLoggerKey, workspace.Status.DevWorkspaceId)
145143
reqLogger.Info("Reconciling Workspace", "resolvedConfig", configString)
146144

147-
// Inject ca certificates to the http clint if the certificates configmap is created and defined in the config.
148-
if certs, ok := readCertificates(r.Client, config, r.Log); ok {
149-
for _, certsPem := range certs {
150-
injectCertificates([]byte(certsPem), httpClient.Transport.(*http.Transport))
151-
}
152-
}
145+
// Inject ca certificates to the http client, if the certificates configmap is created and defined in the config.
146+
InjectCertificates(r.Client, r.Log)
153147

154148
// Check if the DevWorkspaceRouting instance is marked to be deleted, which is
155149
// indicated by the deletion timestamp being set.
@@ -677,7 +671,7 @@ func (r *DevWorkspaceReconciler) getWorkspaceId(ctx context.Context, workspace *
677671
}
678672

679673
func (r *DevWorkspaceReconciler) SetupWithManager(mgr ctrl.Manager) error {
680-
setupHttpClients(mgr.GetClient(), config.GetGlobalConfig(), mgr.GetLogger())
674+
setupHttpClients(mgr.GetClient(), mgr.GetLogger())
681675

682676
maxConcurrentReconciles, err := wkspConfig.GetMaxConcurrentReconciles()
683677
if err != nil {

controllers/workspace/http.go

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import (
2121
"net/url"
2222
"time"
2323

24-
"k8s.io/apimachinery/pkg/types"
24+
"github.com/devfile/devworkspace-operator/pkg/config"
2525

26-
controller "github.com/devfile/devworkspace-operator/apis/controller/v1alpha1"
26+
"k8s.io/apimachinery/pkg/types"
2727

2828
"github.com/go-logr/logr"
2929
corev1 "k8s.io/api/core/v1"
@@ -37,28 +37,25 @@ var (
3737
healthCheckHttpClient *http.Client
3838
)
3939

40-
func setupHttpClients(k8s client.Client, config *controller.OperatorConfiguration, logger logr.Logger) {
40+
func setupHttpClients(k8s client.Client, logger logr.Logger) {
4141
transport := http.DefaultTransport.(*http.Transport).Clone()
42-
if certs, ok := readCertificates(k8s, config, logger); ok {
43-
for _, certsPem := range certs {
44-
injectCertificates([]byte(certsPem), transport)
45-
}
46-
}
4742
healthCheckTransport := http.DefaultTransport.(*http.Transport).Clone()
4843
healthCheckTransport.TLSClientConfig = &tls.Config{
4944
InsecureSkipVerify: true,
5045
}
5146

52-
if config.Routing != nil && config.Routing.ProxyConfig != nil {
47+
globalConfig := config.GetGlobalConfig()
48+
49+
if globalConfig.Routing != nil && globalConfig.Routing.ProxyConfig != nil {
5350
proxyConf := httpproxy.Config{}
54-
if config.Routing.ProxyConfig.HttpProxy != nil {
55-
proxyConf.HTTPProxy = *config.Routing.ProxyConfig.HttpProxy
51+
if globalConfig.Routing.ProxyConfig.HttpProxy != nil {
52+
proxyConf.HTTPProxy = *globalConfig.Routing.ProxyConfig.HttpProxy
5653
}
57-
if config.Routing.ProxyConfig.HttpsProxy != nil {
58-
proxyConf.HTTPSProxy = *config.Routing.ProxyConfig.HttpsProxy
54+
if globalConfig.Routing.ProxyConfig.HttpsProxy != nil {
55+
proxyConf.HTTPSProxy = *globalConfig.Routing.ProxyConfig.HttpsProxy
5956
}
60-
if config.Routing.ProxyConfig.NoProxy != nil {
61-
proxyConf.NoProxy = *config.Routing.ProxyConfig.NoProxy
57+
if globalConfig.Routing.ProxyConfig.NoProxy != nil {
58+
proxyConf.NoProxy = *globalConfig.Routing.ProxyConfig.NoProxy
6259
}
6360

6461
proxyFunc := func(req *http.Request) (*url.URL, error) {
@@ -75,10 +72,19 @@ func setupHttpClients(k8s client.Client, config *controller.OperatorConfiguratio
7572
Transport: healthCheckTransport,
7673
Timeout: 500 * time.Millisecond,
7774
}
75+
InjectCertificates(k8s, logger)
76+
}
77+
78+
func InjectCertificates(k8s client.Client, logger logr.Logger) {
79+
if certs, ok := readCertificates(k8s, logger); ok {
80+
for _, certsPem := range certs {
81+
injectCertificates([]byte(certsPem), httpClient.Transport.(*http.Transport))
82+
}
83+
}
7884
}
7985

80-
func readCertificates(k8s client.Client, config *controller.OperatorConfiguration, logger logr.Logger) (map[string]string, bool) {
81-
configmapRef := config.Routing.TLSCertificateConfigmapRef
86+
func readCertificates(k8s client.Client, logger logr.Logger) (map[string]string, bool) {
87+
configmapRef := config.GetGlobalConfig().Routing.TLSCertificateConfigmapRef
8288
if configmapRef == nil {
8389
return nil, false
8490
}

0 commit comments

Comments
 (0)