Merge pull request #102150 from julianvmodesto/ssa-big-last-applied-followup

Make apimachineryvalidation.totalAnnotationSizeLimitB public

Kubernetes-commit: 5078091aa5b82bd1de32d209a489645d50713705
This commit is contained in:
Kubernetes Publisher 2021-05-25 17:03:20 -07:00
commit e78fb1931d
4 changed files with 7 additions and 19 deletions

2
Godeps/Godeps.json generated
View File

@ -928,7 +928,7 @@
},
{
"ImportPath": "k8s.io/apimachinery",
"Rev": "cfc896c115eb"
"Rev": "2dd32d74a857"
},
{
"ImportPath": "k8s.io/client-go",

4
go.mod
View File

@ -39,7 +39,7 @@ require (
gopkg.in/natefinch/lumberjack.v2 v2.0.0
gopkg.in/square/go-jose.v2 v2.2.2
k8s.io/api v0.0.0-20210523150857-a16591c7eddc
k8s.io/apimachinery v0.0.0-20210521150646-cfc896c115eb
k8s.io/apimachinery v0.0.0-20210526000320-2dd32d74a857
k8s.io/client-go v0.0.0-20210524185628-39cb8cd8c11d
k8s.io/component-base v0.0.0-20210521071829-2a2fe9bbf92f
k8s.io/klog/v2 v2.8.0
@ -52,7 +52,7 @@ require (
replace (
k8s.io/api => k8s.io/api v0.0.0-20210523150857-a16591c7eddc
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20210521150646-cfc896c115eb
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20210526000320-2dd32d74a857
k8s.io/client-go => k8s.io/client-go v0.0.0-20210524185628-39cb8cd8c11d
k8s.io/component-base => k8s.io/component-base v0.0.0-20210521071829-2a2fe9bbf92f
)

4
go.sum
View File

@ -686,8 +686,8 @@ honnef.co/go/tools v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
k8s.io/api v0.0.0-20210523150857-a16591c7eddc h1:MY1s8HL0z3c7g23mc5sawXXsIBL/kp89slIVNKz9mZ8=
k8s.io/api v0.0.0-20210523150857-a16591c7eddc/go.mod h1:OYWcx23Cf4qX54GQBQLeSSUlvOAvbgMucgB0TrADRHU=
k8s.io/apimachinery v0.0.0-20210521150646-cfc896c115eb h1:kxJH/Hf/+EnvbMiymbBbJ5nVuiQjcHZjfgI57rCtSDc=
k8s.io/apimachinery v0.0.0-20210521150646-cfc896c115eb/go.mod h1:8Ay3sPKuJtD/dIjPSlQVgJeuW/8JmLTCqDeAv6NSCxU=
k8s.io/apimachinery v0.0.0-20210526000320-2dd32d74a857 h1:WfW9c4wjCfgnqzt83cp2oBTkoKPJwypA05uG6wNC5Ms=
k8s.io/apimachinery v0.0.0-20210526000320-2dd32d74a857/go.mod h1:8Ay3sPKuJtD/dIjPSlQVgJeuW/8JmLTCqDeAv6NSCxU=
k8s.io/client-go v0.0.0-20210524185628-39cb8cd8c11d h1:3OFKvpkqCdzq+OHoMpZnEY8mW3Hnf4rW7W5ADPrbLLQ=
k8s.io/client-go v0.0.0-20210524185628-39cb8cd8c11d/go.mod h1:EWkJNCU4qOSWrtM+poIXCY937ArhI5w0ACG3zkw0qXE=
k8s.io/component-base v0.0.0-20210521071829-2a2fe9bbf92f h1:5WGHsufGjyHFfwMXj0R/nilyN7HzOrb1XqGO6NErjDY=

View File

@ -21,12 +21,11 @@ import (
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/meta"
apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
)
const totalAnnotationSizeLimitB int64 = 256 * (1 << 10) // 256 kB
type lastAppliedUpdater struct {
fieldManager Manager
}
@ -94,7 +93,7 @@ func setLastApplied(obj runtime.Object, value string) error {
annotations = map[string]string{}
}
annotations[corev1.LastAppliedConfigAnnotation] = value
if isAnnotationsValid(annotations) != nil {
if err := apimachineryvalidation.ValidateAnnotationsSize(annotations); err != nil {
delete(annotations, corev1.LastAppliedConfigAnnotation)
}
accessor.SetAnnotations(annotations)
@ -120,14 +119,3 @@ func buildLastApplied(obj runtime.Object) (string, error) {
}
return string(lastApplied), nil
}
func isAnnotationsValid(annotations map[string]string) error {
var totalSize int64
for k, v := range annotations {
totalSize += (int64)(len(k)) + (int64)(len(v))
}
if totalSize > (int64)(totalAnnotationSizeLimitB) {
return fmt.Errorf("annotations size %d is larger than limit %d", totalSize, totalAnnotationSizeLimitB)
}
return nil
}