pull/8357/merge
Weiping Cai 10 months ago committed by GitHub
commit 74649fd772
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -173,6 +173,8 @@ func (cfgmaps *ConfigMaps) Create(key string, rls *rspb.Release) error {
if _, err := cfgmaps.impl.Create(context.Background(), obj, metav1.CreateOptions{}); err != nil {
if apierrors.IsAlreadyExists(err) {
return ErrReleaseExists
} else if apierrors.IsRequestEntityTooLargeError(err) {
return errors.Wrapf(err, "release: storage limit")
}
cfgmaps.Log("create: failed to create: %s", err)

@ -17,11 +17,11 @@ import (
"encoding/base64"
"encoding/json"
"reflect"
"strings"
"testing"
v1 "k8s.io/api/core/v1"
rspb "helm.sh/helm/v3/pkg/release"
v1 "k8s.io/api/core/v1"
)
func TestConfigMapName(t *testing.T) {
@ -188,6 +188,12 @@ func TestConfigMapCreate(t *testing.T) {
if !reflect.DeepEqual(rel, got) {
t.Errorf("Expected {%v}, got {%v}", rel, got)
}
// configmap overhead entity limit
if err := cfgmaps.Create(testKey("large-chart", 1), releaseStub("large-chart", 1, "", rspb.StatusDeployed)); !strings.Contains(err.Error(), "storage limit: Request entity too large") {
t.Errorf("Expected {%v}, got {%v}", "release: storage limit: Request entity too large: Request entity too large: limit is 3145728", err)
}
}
func TestConfigMapUpdate(t *testing.T) {

@ -143,6 +143,9 @@ func (mock *MockConfigMapsInterface) Create(_ context.Context, cfgmap *v1.Config
if object, ok := mock.objects[name]; ok {
return object, apierrors.NewAlreadyExists(v1.Resource("tests"), name)
}
if name == "large-chart.v1" {
return nil, apierrors.NewRequestEntityTooLargeError("Request entity too large: limit is 3145728")
}
mock.objects[name] = cfgmap
return cfgmap, nil
}

@ -163,6 +163,8 @@ func (secrets *Secrets) Create(key string, rls *rspb.Release) error {
if _, err := secrets.impl.Create(context.Background(), obj, metav1.CreateOptions{}); err != nil {
if apierrors.IsAlreadyExists(err) {
return ErrReleaseExists
} else if apierrors.IsRequestEntityTooLargeError(err) {
return errors.Wrapf(err, "release: storage limit")
}
return errors.Wrap(err, "create: failed to create")
@ -187,6 +189,11 @@ func (secrets *Secrets) Update(key string, rls *rspb.Release) error {
}
// push the secret object out into the kubiverse
_, err = secrets.impl.Update(context.Background(), obj, metav1.UpdateOptions{})
if apierrors.IsRequestEntityTooLargeError(err) {
return errors.Wrapf(err, "release: storage limit")
}
return errors.Wrap(err, "update: failed to update")
}

Loading…
Cancel
Save