Skip to content

Commit bf14926

Browse files
authored
Handle bad metadata secret values gracefully (#224)
* Handle bad metadata secret values gracefully * Fix chainguard build
1 parent eb04766 commit bf14926

File tree

4 files changed

+10
-9
lines changed

4 files changed

+10
-9
lines changed

deploy/apko.yaml.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ contents:
66
- https://packages.wolfi.dev/os/wolfi-signing.rsa.pub
77
- ./melange.rsa.pub
88
packages:
9-
- replicated-head # This is expected to be built locally by `melange`.
9+
- replicated # This is expected to be built locally by `melange`.
1010
- bash
1111
- busybox
1212
- curl

deploy/melange.yaml.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package:
2-
name: replicated-head
2+
name: replicated
33
version: ${GIT_TAG}
44
epoch: 0
55
description: replicated package

pkg/meta/latest_custom_metrics.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func SyncCustomAppMetrics(ctx context.Context, clientset kubernetes.Interface, n
1616
existing := map[string]interface{}{}
1717

1818
err := get(ctx, clientset, namespace, customMetricsSecretKey, &existing)
19-
if err != nil && errors.Cause(err) != ErrReplicatedMetadataSecretNotFound {
19+
if err != nil && errors.Cause(err) != ErrReplicatedMetadataNotFound {
2020
return nil, errors.Wrapf(err, "failed to get custom metrics data")
2121
}
2222

pkg/meta/meta.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"sync"
77

88
"github.com/pkg/errors"
9+
"github.com/replicatedhq/replicated-sdk/pkg/logger"
910
"github.com/replicatedhq/replicated-sdk/pkg/util"
1011
corev1 "k8s.io/api/core/v1"
1112
kuberneteserrors "k8s.io/apimachinery/pkg/api/errors"
@@ -90,8 +91,7 @@ func save(ctx context.Context, clientset kubernetes.Interface, namespace string,
9091
}
9192

9293
var (
93-
ErrReplicatedMetadataSecretEmpty = errors.New("replicated metadata secret is empty")
94-
ErrReplicatedMetadataSecretNotFound = errors.New("replicated metadata secret not found")
94+
ErrReplicatedMetadataNotFound = errors.New("replicated metadata not found")
9595
)
9696

9797
func get(ctx context.Context, clientset kubernetes.Interface, namespace string, key replicatedMetadataSecretKey, v interface{}) error {
@@ -101,20 +101,21 @@ func get(ctx context.Context, clientset kubernetes.Interface, namespace string,
101101
}
102102

103103
if kuberneteserrors.IsNotFound(err) {
104-
return ErrReplicatedMetadataSecretNotFound
104+
return ErrReplicatedMetadataNotFound
105105
}
106106

107107
if len(secret.Data) == 0 {
108-
return ErrReplicatedMetadataSecretEmpty
108+
return ErrReplicatedMetadataNotFound
109109
}
110110

111111
dataBytes, ok := secret.Data[string(key)]
112112
if !ok || len(dataBytes) == 0 {
113-
return errors.Wrapf(ErrReplicatedMetadataSecretEmpty, "key (%s) not found in secret", key)
113+
return errors.Wrapf(ErrReplicatedMetadataNotFound, "key (%s) not found in secret", key)
114114
}
115115

116116
if err := json.Unmarshal(dataBytes, v); err != nil {
117-
return errors.Wrapf(err, "failed to unmarshal secret data for key %s", key)
117+
logger.Infof("failed to unmarshal secret data for key %s: %v", key, err)
118+
return ErrReplicatedMetadataNotFound
118119
}
119120

120121
return nil

0 commit comments

Comments
 (0)