mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +00:00
Merge pull request #86294 from enj/enj/i/negative_disable_kms_cache
kms: use negative cachesize value to disable caching
This commit is contained in:
commit
54c255e911
@ -88,12 +88,13 @@ type IdentityConfiguration struct{}
|
|||||||
type KMSConfiguration struct {
|
type KMSConfiguration struct {
|
||||||
// name is the name of the KMS plugin to be used.
|
// name is the name of the KMS plugin to be used.
|
||||||
Name string
|
Name string
|
||||||
// cacheSize is the maximum number of secrets which are cached in memory. The default value is 1000.
|
// cachesize is the maximum number of secrets which are cached in memory. The default value is 1000.
|
||||||
|
// Set to a negative value to disable caching.
|
||||||
// +optional
|
// +optional
|
||||||
CacheSize *int32
|
CacheSize *int32
|
||||||
// endpoint is the gRPC server listening address, for example "unix:///var/run/kms-provider.sock".
|
// endpoint is the gRPC server listening address, for example "unix:///var/run/kms-provider.sock".
|
||||||
Endpoint string
|
Endpoint string
|
||||||
// Timeout for gRPC calls to kms-plugin (ex. 5s). The default is 3 seconds.
|
// timeout for gRPC calls to kms-plugin (ex. 5s). The default is 3 seconds.
|
||||||
// +optional
|
// +optional
|
||||||
Timeout *metav1.Duration
|
Timeout *metav1.Duration
|
||||||
}
|
}
|
||||||
|
@ -88,12 +88,13 @@ type IdentityConfiguration struct{}
|
|||||||
type KMSConfiguration struct {
|
type KMSConfiguration struct {
|
||||||
// name is the name of the KMS plugin to be used.
|
// name is the name of the KMS plugin to be used.
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
// cacheSize is the maximum number of secrets which are cached in memory. The default value is 1000.
|
// cachesize is the maximum number of secrets which are cached in memory. The default value is 1000.
|
||||||
|
// Set to a negative value to disable caching.
|
||||||
// +optional
|
// +optional
|
||||||
CacheSize *int32 `json:"cachesize,omitempty"`
|
CacheSize *int32 `json:"cachesize,omitempty"`
|
||||||
// endpoint is the gRPC server listening address, for example "unix:///var/run/kms-provider.sock".
|
// endpoint is the gRPC server listening address, for example "unix:///var/run/kms-provider.sock".
|
||||||
Endpoint string `json:"endpoint"`
|
Endpoint string `json:"endpoint"`
|
||||||
// Timeout for gRPC calls to kms-plugin (ex. 5s). The default is 3 seconds.
|
// timeout for gRPC calls to kms-plugin (ex. 5s). The default is 3 seconds.
|
||||||
// +optional
|
// +optional
|
||||||
Timeout *metav1.Duration `json:"timeout,omitempty"`
|
Timeout *metav1.Duration `json:"timeout,omitempty"`
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ const (
|
|||||||
mandatoryFieldErrFmt = "%s is a mandatory field for a %s"
|
mandatoryFieldErrFmt = "%s is a mandatory field for a %s"
|
||||||
base64EncodingErr = "secrets must be base64 encoded"
|
base64EncodingErr = "secrets must be base64 encoded"
|
||||||
zeroOrNegativeErrFmt = "%s should be a positive value"
|
zeroOrNegativeErrFmt = "%s should be a positive value"
|
||||||
negativeValueErrFmt = "%s can't be negative"
|
nonZeroErrFmt = "%s should be a positive value, or negative to disable"
|
||||||
encryptionConfigNilErr = "EncryptionConfiguration can't be nil"
|
encryptionConfigNilErr = "EncryptionConfiguration can't be nil"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -184,8 +184,8 @@ func validateKMSConfiguration(c *config.KMSConfiguration, fieldPath *field.Path)
|
|||||||
|
|
||||||
func validateKMSCacheSize(c *config.KMSConfiguration, fieldPath *field.Path) field.ErrorList {
|
func validateKMSCacheSize(c *config.KMSConfiguration, fieldPath *field.Path) field.ErrorList {
|
||||||
allErrs := field.ErrorList{}
|
allErrs := field.ErrorList{}
|
||||||
if *c.CacheSize <= 0 {
|
if *c.CacheSize == 0 {
|
||||||
allErrs = append(allErrs, field.Invalid(fieldPath, *c.CacheSize, fmt.Sprintf(zeroOrNegativeErrFmt, "cachesize")))
|
allErrs = append(allErrs, field.Invalid(fieldPath, *c.CacheSize, fmt.Sprintf(nonZeroErrFmt, "cachesize")))
|
||||||
}
|
}
|
||||||
|
|
||||||
return allErrs
|
return allErrs
|
||||||
|
@ -331,15 +331,13 @@ func TestKMSProviderCacheSize(t *testing.T) {
|
|||||||
desc: "invalid zero cache size",
|
desc: "invalid zero cache size",
|
||||||
in: &config.KMSConfiguration{CacheSize: &zeroCacheSize},
|
in: &config.KMSConfiguration{CacheSize: &zeroCacheSize},
|
||||||
want: field.ErrorList{
|
want: field.ErrorList{
|
||||||
field.Invalid(cacheField, int32(0), fmt.Sprintf(zeroOrNegativeErrFmt, "cachesize")),
|
field.Invalid(cacheField, int32(0), fmt.Sprintf(nonZeroErrFmt, "cachesize")),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
desc: "negative caches size",
|
desc: "valid negative caches size",
|
||||||
in: &config.KMSConfiguration{CacheSize: &negativeCacheSize},
|
in: &config.KMSConfiguration{CacheSize: &negativeCacheSize},
|
||||||
want: field.ErrorList{
|
want: field.ErrorList{},
|
||||||
field.Invalid(cacheField, negativeCacheSize, fmt.Sprintf(zeroOrNegativeErrFmt, "cachesize")),
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user