Skip to content

Commit e16c2d5

Browse files
committed
fix: handle correctly incomplete RegistryTLSConfig
Add some missing unit-test coverage. Fixes #12571 Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com> (cherry picked from commit b8ff967)
1 parent dedd273 commit e16c2d5

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

internal/app/machined/pkg/controllers/cri/registries_config_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,10 @@ func (suite *ConfigSuite) TestRegistryNewStyle() {
323323
}
324324
tr1.TLSCA = "-----BEGIN CERTIFICATE-----\nMIID...IDAQAB\n-----END CERTIFICATE-----"
325325

326-
ctr, err := container.New(mr1, ar1, tr1)
326+
tr2 := criconfig.NewRegistryTLSConfigV1Alpha1("another-registry")
327+
tr2.TLSInsecureSkipVerify = pointer.To(true)
328+
329+
ctr, err := container.New(mr1, ar1, tr1, tr2)
327330
suite.Require().NoError(err)
328331

329332
cfg := config.NewMachineConfig(ctr)
@@ -370,6 +373,9 @@ func (suite *ConfigSuite) TestRegistryNewStyle() {
370373
},
371374
TLSCA: []byte("-----BEGIN CERTIFICATE-----\nMIID...IDAQAB\n-----END CERTIFICATE-----"),
372375
},
376+
"another-registry": {
377+
TLSInsecureSkipVerify: true,
378+
},
373379
},
374380
spec.RegistryTLSs,
375381
)

pkg/machinery/config/types/cri/registry_tls.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,10 @@ func (s *RegistryTLSConfigV1Alpha1) Validate(validation.RuntimeMode, ...validati
159159

160160
// ClientIdentity implements config.RegistryTLSConfigDocument interface.
161161
func (s *RegistryTLSConfigV1Alpha1) ClientIdentity() *x509.PEMEncodedCertificateAndKey {
162+
if s.TLSClientIdentity == nil {
163+
return nil
164+
}
165+
162166
return &x509.PEMEncodedCertificateAndKey{
163167
Crt: []byte(s.TLSClientIdentity.Cert),
164168
Key: []byte(s.TLSClientIdentity.Key),
@@ -167,6 +171,10 @@ func (s *RegistryTLSConfigV1Alpha1) ClientIdentity() *x509.PEMEncodedCertificate
167171

168172
// CA implements config.RegistryTLSConfigDocument interface.
169173
func (s *RegistryTLSConfigV1Alpha1) CA() []byte {
174+
if s.TLSCA == "" {
175+
return nil
176+
}
177+
170178
return []byte(s.TLSCA)
171179
}
172180

0 commit comments

Comments
 (0)