Skip to content

Commit

Permalink
[receiver/mongodb] Respect TLS in all situations (open-telemetry#12093)
Browse files Browse the repository at this point in the history
* fix tls issue for mongodbreceiver

* add unreleased yaml

* add test case

* integration test uses insecure true

* add mongodbreceiver certs to Makefile generation

* Update Makefile

* revert receiver/mongodbatlasreceiver/testdata/alerts/certs => receiver/mongodbatlasreceiver/testdata/alerts/cert

* Update Makefile
  • Loading branch information
schmikei authored and Konig-Corey committed Jul 6, 2022
1 parent 041cd89 commit d8ff861
Show file tree
Hide file tree
Showing 10 changed files with 155 additions and 3 deletions.
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,8 @@ endef
CERT_DIRS := receiver/sapmreceiver/testdata \
receiver/signalfxreceiver/testdata \
receiver/splunkhecreceiver/testdata \
receiver/mongodbatlasreceiver/testdata/alerts/certs
receiver/mongodbatlasreceiver/testdata/alerts/certs \
receiver/mongodbreceiver/testdata/certs

# Generate certificates for unit tests relying on certificates.
.PHONY: certs
Expand Down
2 changes: 1 addition & 1 deletion receiver/mongodbreceiver/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ func (c *Config) ClientOptions() *options.ClientOptions {
}

tlsConfig, err := c.LoadTLSConfig()
if err != nil && tlsConfig != nil {
if err == nil && tlsConfig != nil {
clientOptions.SetTLSConfig(tlsConfig)
}

Expand Down
22 changes: 22 additions & 0 deletions receiver/mongodbreceiver/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ package mongodbreceiver // import "github.com/open-telemetry/opentelemetry-colle

import (
"errors"
"path/filepath"
"testing"
"time"

Expand Down Expand Up @@ -175,3 +176,24 @@ func TestOptions(t *testing.T) {
)
require.Equal(t, "rs-1", *clientOptions.ReplicaSet)
}

func TestOptionsTLS(t *testing.T) {
// loading valid ca file
caFile := filepath.Join("testdata", "certs", "ca.crt")

cfg := &Config{
Hosts: []confignet.NetAddr{
{
Endpoint: "localhost:27017",
},
},
TLSClientSetting: configtls.TLSClientSetting{
Insecure: false,
TLSSetting: configtls.TLSSetting{
CAFile: caFile,
},
},
}
opts := cfg.ClientOptions()
require.NotNil(t, opts.TLSConfig)
}
4 changes: 3 additions & 1 deletion receiver/mongodbreceiver/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ func TestMongodbIntegration(t *testing.T) {
Endpoint: net.JoinHostPort(hostname, "27017"),
},
}
cfg.Insecure = true

consumer := new(consumertest.MetricsSink)
settings := componenttest.NewNopReceiverCreateSettings()
Expand Down Expand Up @@ -108,6 +109,7 @@ func TestMongodbIntegration(t *testing.T) {
Endpoint: net.JoinHostPort(hostname, "27018"),
},
}
cfg.Insecure = true

consumer := new(consumertest.MetricsSink)
settings := componenttest.NewNopReceiverCreateSettings()
Expand All @@ -126,7 +128,7 @@ func TestMongodbIntegration(t *testing.T) {
expectedMetrics, err := golden.ReadMetrics(expectedFile)
require.NoError(t, err)

scrapertest.CompareMetrics(expectedMetrics, actualMetrics, scrapertest.IgnoreMetricValues())
require.NoError(t, scrapertest.CompareMetrics(expectedMetrics, actualMetrics, scrapertest.IgnoreMetricValues()))
})
}

Expand Down
20 changes: 20 additions & 0 deletions receiver/mongodbreceiver/testdata/certs/ca.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
-----BEGIN CERTIFICATE-----
MIIDNjCCAh4CCQDmOfeuC8vmcjANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJB
VTESMBAGA1UECAwJQXVzdHJhbGlhMQ8wDQYDVQQHDAZTeWRuZXkxEjAQBgNVBAoM
CU15T3JnTmFtZTEVMBMGA1UEAwwMTXlDb21tb25OYW1lMB4XDTIyMDcwNjEzNTQ0
MloXDTMyMDcwMzEzNTQ0MlowXTELMAkGA1UEBhMCQVUxEjAQBgNVBAgMCUF1c3Ry
YWxpYTEPMA0GA1UEBwwGU3lkbmV5MRIwEAYDVQQKDAlNeU9yZ05hbWUxFTATBgNV
BAMMDE15Q29tbW9uTmFtZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AM9TZgQ25nIJNvd0DRMY7vMxXd4zQ7d9CgnlEtQE86Qt81jzcTACrHMExOLOHQhr
u0mPuTazHUuPulMewQI6CqI7oJNMRsEypfkAVOR9HU2MpTpx5l22RhfqMqlACC9T
WzWasak+I8R7TYywl3NG0xe5CNPaWQ4HHM4QRnRVrNFH8M4IMQc4RWXBE0Y3fzQc
+ycU0NoCNpOI5MCUjoEyp8NG3p1/u/Hekk7LfxU6sRaDo/Ko8NDSlyYmXGznrEKJ
tejxRHNyTzkVr0qoOiG4iCCfJk1B3Zov7rPWzXpzDIOcmOY9EGoNpm1Er7JndTXg
aE5uC9RSQk9+qJB47sg8Ba8CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEARf1OpLVn
f7TWDKEIpOQztfESDogi1Qp7LBwcKiNOqLru9xg6g8lX+GhtlxwLkz/LdoE8ihfV
7hE7zuYodhPUI06c+2EKoxns1UUvQPTAxn8RwHCi4djR4AJsUKeq1hh1H51MvipI
EBWD5M5nD5sbhw0i0i0jjDp0kKzgD36IkTt/cruSmqVd1/+SJAHRF4yuJx7kY+Nl
MAWbIQkPK0wA6SrjeO/8zpdFzbPXFBXF7cnzYvjhwJmr2uVIPuvx9R/Yss4rjFil
MsLx2YbFPgn6jW0/DvMMIHAYzlqwewjpVCkrzJ5OErKa5DG6HMynyn4wFN0ZGBW2
eWavAfqQ175VYw==
-----END CERTIFICATE-----
21 changes: 21 additions & 0 deletions receiver/mongodbreceiver/testdata/certs/client.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIJAMIAJJH8uhyIMA0GCSqGSIb3DQEBCwUAMF0xCzAJBgNV
BAYTAkFVMRIwEAYDVQQIDAlBdXN0cmFsaWExDzANBgNVBAcMBlN5ZG5leTESMBAG
A1UECgwJTXlPcmdOYW1lMRUwEwYDVQQDDAxNeUNvbW1vbk5hbWUwHhcNMjIwNzA2
MTM1NDQyWhcNMzIwNzAzMTM1NDQyWjBdMQswCQYDVQQGEwJBVTESMBAGA1UECAwJ
QXVzdHJhbGlhMQ8wDQYDVQQHDAZTeWRuZXkxEjAQBgNVBAoMCU15T3JnTmFtZTEV
MBMGA1UEAwwMTXlDb21tb25OYW1lMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAzaXJTE3AU2y2len2x3FacgR4oklcXI9/QVe0UyS2n1Mp79Mb/uAmdq0d
wzDqVOaGYP8UCzokUHZmiMZDNaPwdWifastfA9Pkd4AqrHuoas9HN7lVSqq7kq2Y
AkxegGAjp7apPSdebQUTcI2MRlWKFckz43gMwtjzkfZZXQd9xWOu1yiZCaZ8UGo6
HQmMeXAVin8CVnNLC8P5/imokDfPUsmhlVrlL7/jSlKsIp+CkGtCa6HQl05WQnIY
cI71G5MEllqhtEM2HWskQs+6a55RLMiJ+TCZYv3DbQlOJ+SuxjcZUV81y8cmpsTF
RNESbLP/RBoZ7bpOkHvbWkgMrxs3FwIDAQABoy4wLDAUBgNVHREEDTALgglsb2Nh
bGhvc3QwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQAr
y2Rnv22Zxl3ClJLLYedkqgf44yOY1OlEarZvEhy0RYKgJ4Jfvm1JXDRWfuaSPeVU
Nprq1Y2rGYGo+A+6nyWdo2liu3lyiAkpMY/G6AnHNUzrVA0FG+6cPaHqhRcmOznc
vpCGHVZaiudD9FfT4HphSqEYj+XdkZFiDiAMtdgTgkjIGnHQFbGZO92lk8+k3i5Z
8B/V/JYxMRVKNhDHuygJH4CzvXiwZm6mX3Qd4cu2DsPE4+8IlXeczOjzyjUNbNP4
lb4O0OvDe8/plAaFRwzvBZXI5gpncyT/kYwuIgjydab817LCR1jMiQb8nmyipYum
BDti8kXe5kPCGqFXsWTG
-----END CERTIFICATE-----
27 changes: 27 additions & 0 deletions receiver/mongodbreceiver/testdata/certs/client.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAzaXJTE3AU2y2len2x3FacgR4oklcXI9/QVe0UyS2n1Mp79Mb
/uAmdq0dwzDqVOaGYP8UCzokUHZmiMZDNaPwdWifastfA9Pkd4AqrHuoas9HN7lV
Sqq7kq2YAkxegGAjp7apPSdebQUTcI2MRlWKFckz43gMwtjzkfZZXQd9xWOu1yiZ
CaZ8UGo6HQmMeXAVin8CVnNLC8P5/imokDfPUsmhlVrlL7/jSlKsIp+CkGtCa6HQ
l05WQnIYcI71G5MEllqhtEM2HWskQs+6a55RLMiJ+TCZYv3DbQlOJ+SuxjcZUV81
y8cmpsTFRNESbLP/RBoZ7bpOkHvbWkgMrxs3FwIDAQABAoIBAQCVBxCSqEG48y56
A3vf2qhluhHF4Y36Uc8xhiJaol9ppHXeo0lFciDNnfTUj+0xK4G0ZwWagT7xxGvX
sH3iMHTAUNo+JTUs6/BEHXBPYKmTBbUhj8BchM+7outmtvtA4urTzk5kz9PhA22s
AhfmnHSeBxoAPO5agag5XaIzBYvCb4Yp13RaN+KWqEA2oc9JqaGqUM9ilXmjsvAK
QkP/PS4qsdz4ZMtIPjRcvNlpdYw0cJdXb/6w8pjGLeIecK0niDK6ld1aQrwRsrVB
lJc8sO0cIzEOb2bXSbo4YA00fiQBb09VAZdGE0WNTRWLAYCnD3OinEso8CUwuwaY
Eo39+muxAoGBAPfNngU45RVomR+jIQwbY2fyxt1/VIGqqF4Z0rwzRncGTrLux9tw
WKIjbhgkZxThexEebyUq74MajQtE46qeeIkhbOBUDkCzLh05zz8qz6WDPeSzKO9V
YJv8Nxpdm4qekTomwA8QrbdQG6nz0h2UVmjZTonOoRsCTGnRKEz2xziJAoGBANRz
MrGEgOMLvmqC8/TIqgCIcjTwXRdvUwLz69E5yVYOnEy/SN1FuefV4wT+Mvbrbc7+
Yo+72/CZQ8MiLY3reQEsnteZZasxrfQvEDo30iM3061jTrIboCHUMdKRgLTx9Yvq
4HVRP2qwY5FUl0rp+Dmn3KVeYOhNc9Kbw0SJ68qfAoGALL7qO9MsOpNqovXX79G6
P3jtQ+3MGqXwRR2wmd9AaBmxeEn5uLwupQh0xtM78d9NU6gFNdbs7OWMdm54FcUL
yudIO7Gx6SjxuMFJlQRr/l0WfgeD6sOl8ES4xoAEqCE95Bw/Lfk7BRDoDeZDGKhC
eihTMDspiDEAD1N/TXZ6PtECgYEAlHjhn7AThxlI/RUBuzuVm4PAFQE6fcs+P10K
nBD/hRX246f3GzTEhKI04uNn6KqF9lhPt1W5kr753WCAZ6N90HVHmTNKG0c/49wU
QiuKvzQfyhgSAmVOFvY9z4QCZ/KFAUCnlzWt1TjqjMGKbj9vS5PlnuiDXzXp0PEs
mTSuRc8CgYBFzjuU1Dxd3PlHOj842RjfBtagomTb9FIiN3fll/CMIUuhb83C08r9
7MafZ6xFyCromSEcCR0IwJX52ytOR9fL0Q5KR9AyB1Xn/kMTJvjtPwYBvR2cdnSF
2C9HALkyg61f4HON6kqaDYjGD6pPJ3FwsDvMrfhtNntIxVVKllC77Q==
-----END RSA PRIVATE KEY-----
21 changes: 21 additions & 0 deletions receiver/mongodbreceiver/testdata/certs/server.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIJAMIAJJH8uhyHMA0GCSqGSIb3DQEBCwUAMF0xCzAJBgNV
BAYTAkFVMRIwEAYDVQQIDAlBdXN0cmFsaWExDzANBgNVBAcMBlN5ZG5leTESMBAG
A1UECgwJTXlPcmdOYW1lMRUwEwYDVQQDDAxNeUNvbW1vbk5hbWUwHhcNMjIwNzA2
MTM1NDQyWhcNMzIwNzAzMTM1NDQyWjBdMQswCQYDVQQGEwJBVTESMBAGA1UECAwJ
QXVzdHJhbGlhMQ8wDQYDVQQHDAZTeWRuZXkxEjAQBgNVBAoMCU15T3JnTmFtZTEV
MBMGA1UEAwwMTXlDb21tb25OYW1lMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAyFSq76TH2cowoQFUufJdmf/Wjpu50Z/qvL3ZLdhhgWzmZksegf4734gH
nSHveuD5QA4qLrTBS7nNvJggfBmJEZKneMHiC107MudHY5awqgqRZNDshwtpCOaw
/GKBVfnNdFACHwRL9+MiBxuHJ116XH9XO8mK3Fhe9YFJ5kxvaUId3aAaSieM0zBW
7DmP2f1wn9rejiCRelzPIUTIZCR1IZFbzTt7AfaOd0U+dfh6pfP+hWaz82Ky+HXY
yIlM1Sld8CKdgos5f2WZwMvoplo0SQFVeETfu2HbFfL+aeqke/mMJX9KMvJ+IP8I
0Xh68uKDzAEqGBgR3vs6UCZqbh4qlwIDAQABoy4wLDAUBgNVHREEDTALgglsb2Nh
bGhvc3QwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQDK
my/S08ETtLTm3gACtrF4GaPgQlPSxMcZWWZwOpS1k8+e4L3hLdvWBKmEpTJk+7JU
RC0Ino3XXBdhafXBbdalCmP3P5ZfsxRaD5yCJNWNzqwQ2i/S/WnlMyINyWvsEPbj
kLDQB5waV/Gxv8L1EGa40/BinPAZmGUhBq51eqvKdk8EVCR9ZJJBVi/PwTxo9JpI
/FAFCx3IucuZGuQoB1ohJFt5ioFFoGMqZQLgMs3OrMG7v97/feH2n5WmufA0yClR
zhKqeE8/Dg9K9xDIAKGDYAnxIa1rJO5PXWmbv2E4lJgORSDwUNnrEV7P8uZ+TX2Z
A7hHsFhoJuODARPv4HbU
-----END CERTIFICATE-----
27 changes: 27 additions & 0 deletions receiver/mongodbreceiver/testdata/certs/server.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAyFSq76TH2cowoQFUufJdmf/Wjpu50Z/qvL3ZLdhhgWzmZkse
gf4734gHnSHveuD5QA4qLrTBS7nNvJggfBmJEZKneMHiC107MudHY5awqgqRZNDs
hwtpCOaw/GKBVfnNdFACHwRL9+MiBxuHJ116XH9XO8mK3Fhe9YFJ5kxvaUId3aAa
SieM0zBW7DmP2f1wn9rejiCRelzPIUTIZCR1IZFbzTt7AfaOd0U+dfh6pfP+hWaz
82Ky+HXYyIlM1Sld8CKdgos5f2WZwMvoplo0SQFVeETfu2HbFfL+aeqke/mMJX9K
MvJ+IP8I0Xh68uKDzAEqGBgR3vs6UCZqbh4qlwIDAQABAoIBAQDFy/NK0mQRAbWq
Aupo/oi0uQpbnB6If2ECImEBBxie9as3bQweRatQNbtuxkbyCJeRS2sS2p3P6xDc
GUhZv8y6cRayAJzzo4YD6J9wESU1f2G3LSGc5QM8KqqtR4V0IkVdhnHRtihcBQNg
CSoVEBL0qTa0bXaRwR9hP9p7bRTD0yjiWYaOWlDeRTgMiEI7T986cA7roZmmd2DK
ADGnuSI0uNmJaiaJAyOxN4zZZY5cSf56bjWQ/Pl8Yr9J7vtPwICqBBfXrn14ohbd
qqvF3FPJgvr2kmiKbZQSN0BD+qb57qhp2sQIrHpVcSugEQoTPCYPMGiKSi71/aI+
4CkG3lVBAoGBAOeN2SELxhstLO3j8qQt2I8fIXxCuco7FXGL9IT5Rk4KgyV7covY
QtCWVqeIP2yxcqPnBmQhhuAPFzGxjC2w98juLWJ8gPe9qjC76/5oD8r7Sz70ON5j
F0kP0Sl5+SHCUCmSZAVxTh4zxEfBmFLpelPN5p+PMp4p5J035if1xrsZAoGBAN16
9DapJeXVNfpERKWNyJRtHrCY+SdmNDx0yhXHVnI8P3NQzhPZMax8Ue4q8KYCdiOT
7dWPOcRIsr9o+AFZGOCwOBlxp/7KAp/aeTy0eIzi9gzrdRons0o6Hqgv+bI+xkm2
LYXo7vIcHuny4bbvUZWXX87XH78Acb+fawjrK3kvAoGACo+IoJ412dV0oCDuVxiU
MOrdjxpH+PY64yPb8higYTzPgG0h60jguzywFRH8uotZTCpkOzrgOOXXS/fqCcdx
daOPRFejVik7Ut+vQroiRkKxytw+n73rOPTUuEyM1UJUf6DimPDy/COmRxOIS/fE
EYBpjUttppMIjzcWcyoddzkCgYAKTPWetS82CTyBbztiF74EaS7MN9Eeq/ox9ZyQ
drzmgzbQPinXcnqE8yM8WHLoxaSI8xBUplyhbGAj1tXx+hrWGFwDku2lQ+/rT1Xk
JOCWbNfUsf64QLBt+1YBrHmIeLLwKrDjUXoLeJNXfhxRTcAVnPyvugGX+IVRzDBG
MenLsQKBgQC9HAtEVpY/UJsxQnHgH4PR4rC/C8lwv/Q1dTCee+7141u8uOb8PAsR
CmmDS2QYtd1+yKaGz6JIuzcMTukolvh1CmYRaKKlt+mcU0eulN5j9a6g/eFR65oO
1fkh5pYhbWcyXFAkHdWSARYQk/E+sDJi/A3eGLRvHP85LVxT2HEtWA==
-----END RSA PRIVATE KEY-----
11 changes: 11 additions & 0 deletions unreleased/mongodb-rcvr-fix-tls.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: bug_fix

# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver)
component: mongodbreceiver

# A brief description of the change
note: do not ignore TLS Settings in mongodbreceiver

# One or more tracking issues related to the change
issues: [12092]

0 comments on commit d8ff861

Please sign in to comment.