Skip to content

Commit 39c5fb9

Browse files
committed
fixup: handler err and lint
Signed-off-by: Todd Baert <[email protected]>
1 parent 1674c78 commit 39c5fb9

File tree

5 files changed

+37
-15
lines changed

5 files changed

+37
-15
lines changed

config/samples/example_flags.flagd.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"key1": "val1",
1616
"key2": "val2"
1717
},
18-
"defaultVariant": "key1"
18+
"defaultVariant": "key2"
1919
},
2020
"myFloatFlag": {
2121
"state": "ENABLED",

core/pkg/telemetry/builder.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,11 @@ func buildTransportCredentials(_ context.Context, cfg CollectorConfig) (credenti
147147
RootCAs: capool,
148148
MinVersion: tls.VersionTLS13,
149149
GetCertificate: func(chi *tls.ClientHelloInfo) (*tls.Certificate, error) {
150-
return reloader.GetCertificate()
150+
certs, err := reloader.GetCertificate()
151+
if err != nil {
152+
return nil, fmt.Errorf("failed to reload certs: %w", err)
153+
}
154+
return certs, nil
151155
},
152156
}
153157

flagd/cmd/start.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ func init() {
7575
flags.StringP(otelCertPathFlagName, "D", "", "tls certificate path to use with OpenTelemetry collector")
7676
flags.StringP(otelKeyPathFlagName, "K", "", "tls key path to use with OpenTelemetry collector")
7777
flags.StringP(otelCAPathFlagName, "A", "", "tls certificate authority path to use with OpenTelemetry collector")
78-
flags.DurationP(otelReloadIntervalFlagName, "I", time.Hour, "how long between reloading the otel tls certificate from disk")
78+
flags.DurationP(otelReloadIntervalFlagName, "I", time.Hour, "how long between reloading the otel tls certificate"+
79+
"from disk")
7980

8081
_ = viper.BindPFlag(corsFlagName, flags.Lookup(corsFlagName))
8182
_ = viper.BindPFlag(logFormatFlagName, flags.Lookup(logFormatFlagName))

flagd/pkg/certreloader/certreloader.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ type Config struct {
1313
ReloadInterval time.Duration
1414
}
1515

16-
type certReloader struct {
16+
type CertReloader struct {
1717
cert *tls.Certificate
1818
mu sync.RWMutex
1919
nextReload time.Time
2020
Config
2121
}
2222

23-
func NewCertReloader(config Config) (*certReloader, error) {
24-
reloader := certReloader{
23+
func NewCertReloader(config Config) (*CertReloader, error) {
24+
reloader := CertReloader{
2525
Config: config,
2626
}
2727

@@ -36,7 +36,7 @@ func NewCertReloader(config Config) (*certReloader, error) {
3636
return &reloader, nil
3737
}
3838

39-
func (r *certReloader) GetCertificate() (*tls.Certificate, error) {
39+
func (r *CertReloader) GetCertificate() (*tls.Certificate, error) {
4040
now := time.Now()
4141
// Read locking here before we do the time comparison
4242
// If a reload is in progress this will block and we will skip reloading in the current
@@ -59,8 +59,8 @@ func (r *certReloader) GetCertificate() (*tls.Certificate, error) {
5959
return r.cert, nil
6060
}
6161

62-
func (c *certReloader) loadCertificate() (tls.Certificate, error) {
63-
newCert, err := tls.LoadX509KeyPair(c.CertPath, c.KeyPath)
62+
func (r *CertReloader) loadCertificate() (tls.Certificate, error) {
63+
newCert, err := tls.LoadX509KeyPair(r.CertPath, r.KeyPath)
6464
if err != nil {
6565
return tls.Certificate{}, fmt.Errorf("failed to load key pair: %w", err)
6666
}

flagd/pkg/certreloader/certreloader_test.go

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -186,16 +186,22 @@ func generateValidCertificate(t *testing.T) (*bytes.Buffer, *bytes.Buffer) {
186186

187187
// pem encode
188188
caPEM := new(bytes.Buffer)
189-
pem.Encode(caPEM, &pem.Block{
189+
err = pem.Encode(caPEM, &pem.Block{
190190
Type: "CERTIFICATE",
191191
Bytes: caBytes,
192192
})
193+
if err != nil {
194+
t.Fatal(err)
195+
}
193196

194197
caPrivKeyPEM := new(bytes.Buffer)
195-
pem.Encode(caPrivKeyPEM, &pem.Block{
198+
err = pem.Encode(caPrivKeyPEM, &pem.Block{
196199
Type: "RSA PRIVATE KEY",
197200
Bytes: x509.MarshalPKCS1PrivateKey(caPrivKey),
198201
})
202+
if err != nil {
203+
t.Fatal(err)
204+
}
199205

200206
// set up our server certificate
201207
cert := &x509.Certificate{
@@ -228,16 +234,22 @@ func generateValidCertificate(t *testing.T) (*bytes.Buffer, *bytes.Buffer) {
228234
}
229235

230236
certPEM := new(bytes.Buffer)
231-
pem.Encode(certPEM, &pem.Block{
237+
err = pem.Encode(certPEM, &pem.Block{
232238
Type: "CERTIFICATE",
233239
Bytes: certBytes,
234240
})
241+
if err != nil {
242+
t.Fatal(err)
243+
}
235244

236245
certPrivKeyPEM := new(bytes.Buffer)
237-
pem.Encode(certPrivKeyPEM, &pem.Block{
246+
err = pem.Encode(certPrivKeyPEM, &pem.Block{
238247
Type: "RSA PRIVATE KEY",
239248
Bytes: x509.MarshalPKCS1PrivateKey(certPrivKey),
240249
})
250+
if err != nil {
251+
t.Fatal(err)
252+
}
241253

242254
return certPEM, certPrivKeyPEM
243255
}
@@ -272,15 +284,20 @@ func generateValidCertificateFiles(t *testing.T) (string, string, func()) {
272284
func copyFile(src, dst string) error {
273285
data, err := os.ReadFile(src)
274286
if err != nil {
275-
return err
287+
return fmt.Errorf("failed to load key pair: %w", err)
276288
}
277289

278-
return os.WriteFile(dst, data, 0o777)
290+
err = os.WriteFile(dst, data, 0o0600)
291+
if err != nil {
292+
return fmt.Errorf("failed to load key pair: %w", err)
293+
}
294+
return nil
279295
}
280296

281297
func randString(n int) string {
282298
const alphanum = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
283299
bytes := make([]byte, n)
300+
//nolint:errcheck
284301
rand.Read(bytes)
285302
for i, b := range bytes {
286303
bytes[i] = alphanum[b%byte(len(alphanum))]

0 commit comments

Comments
 (0)