Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
86b4e777
Commit
86b4e777
authored
Sep 13, 2015
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #13834 from derekwaynecarr/more_improvements_to_limit_range_validation
Auto commit by PR queue bot
parents
4578f60e
9bc48f69
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
55 additions
and
12 deletions
+55
-12
validation.go
pkg/api/validation/validation.go
+20
-9
validation_test.go
pkg/api/validation/validation_test.go
+35
-3
No files found.
pkg/api/validation/validation.go
View file @
86b4e777
...
@@ -1458,16 +1458,27 @@ func ValidateLimitRange(limitRange *api.LimitRange) errs.ValidationErrorList {
...
@@ -1458,16 +1458,27 @@ func ValidateLimitRange(limitRange *api.LimitRange) errs.ValidationErrorList {
keys
.
Insert
(
string
(
k
))
keys
.
Insert
(
string
(
k
))
min
[
string
(
k
)]
=
q
min
[
string
(
k
)]
=
q
}
}
for
k
,
q
:=
range
limit
.
Default
{
allErrs
=
append
(
allErrs
,
validateResourceName
(
string
(
k
),
fmt
.
Sprintf
(
"spec.limits[%d].default[%s]"
,
i
,
k
))
...
)
if
limit
.
Type
==
api
.
LimitTypePod
{
keys
.
Insert
(
string
(
k
))
if
len
(
limit
.
Default
)
>
0
{
defaults
[
string
(
k
)]
=
q
allErrs
=
append
(
allErrs
,
errs
.
NewFieldInvalid
(
"spec.limits[%d].default"
,
limit
.
Default
,
"Default is not supported when limit type is Pod"
))
}
}
for
k
,
q
:=
range
limit
.
DefaultRequest
{
if
len
(
limit
.
DefaultRequest
)
>
0
{
allErrs
=
append
(
allErrs
,
validateResourceName
(
string
(
k
),
fmt
.
Sprintf
(
"spec.limits[%d].defaultRequest[%s]"
,
i
,
k
))
...
)
allErrs
=
append
(
allErrs
,
errs
.
NewFieldInvalid
(
"spec.limits[%d].defaultRequest"
,
limit
.
DefaultRequest
,
"DefaultRequest is not supported when limit type is Pod"
))
keys
.
Insert
(
string
(
k
))
}
defaultRequests
[
string
(
k
)]
=
q
}
else
{
for
k
,
q
:=
range
limit
.
Default
{
allErrs
=
append
(
allErrs
,
validateResourceName
(
string
(
k
),
fmt
.
Sprintf
(
"spec.limits[%d].default[%s]"
,
i
,
k
))
...
)
keys
.
Insert
(
string
(
k
))
defaults
[
string
(
k
)]
=
q
}
for
k
,
q
:=
range
limit
.
DefaultRequest
{
allErrs
=
append
(
allErrs
,
validateResourceName
(
string
(
k
),
fmt
.
Sprintf
(
"spec.limits[%d].defaultRequest[%s]"
,
i
,
k
))
...
)
keys
.
Insert
(
string
(
k
))
defaultRequests
[
string
(
k
)]
=
q
}
}
}
for
k
:=
range
limit
.
MaxLimitRequestRatio
{
for
k
:=
range
limit
.
MaxLimitRequestRatio
{
allErrs
=
append
(
allErrs
,
validateResourceName
(
string
(
k
),
fmt
.
Sprintf
(
"spec.limits[%d].maxLimitRequestRatio[%s]"
,
i
,
k
))
...
)
allErrs
=
append
(
allErrs
,
validateResourceName
(
string
(
k
),
fmt
.
Sprintf
(
"spec.limits[%d].maxLimitRequestRatio[%s]"
,
i
,
k
))
...
)
}
}
...
...
pkg/api/validation/validation_test.go
View file @
86b4e777
...
@@ -2911,6 +2911,12 @@ func TestValidateLimitRange(t *testing.T) {
...
@@ -2911,6 +2911,12 @@ func TestValidateLimitRange(t *testing.T) {
Type
:
api
.
LimitTypePod
,
Type
:
api
.
LimitTypePod
,
Max
:
getResourceList
(
"100m"
,
"10000Mi"
),
Max
:
getResourceList
(
"100m"
,
"10000Mi"
),
Min
:
getResourceList
(
"5m"
,
"100Mi"
),
Min
:
getResourceList
(
"5m"
,
"100Mi"
),
MaxLimitRequestRatio
:
getResourceList
(
"10"
,
""
),
},
{
Type
:
api
.
LimitTypeContainer
,
Max
:
getResourceList
(
"100m"
,
"10000Mi"
),
Min
:
getResourceList
(
"5m"
,
"100Mi"
),
Default
:
getResourceList
(
"50m"
,
"500Mi"
),
Default
:
getResourceList
(
"50m"
,
"500Mi"
),
DefaultRequest
:
getResourceList
(
"10m"
,
"200Mi"
),
DefaultRequest
:
getResourceList
(
"10m"
,
"200Mi"
),
MaxLimitRequestRatio
:
getResourceList
(
"10"
,
""
),
MaxLimitRequestRatio
:
getResourceList
(
"10"
,
""
),
...
@@ -2923,7 +2929,7 @@ func TestValidateLimitRange(t *testing.T) {
...
@@ -2923,7 +2929,7 @@ func TestValidateLimitRange(t *testing.T) {
spec
:
api
.
LimitRangeSpec
{
spec
:
api
.
LimitRangeSpec
{
Limits
:
[]
api
.
LimitRangeItem
{
Limits
:
[]
api
.
LimitRangeItem
{
{
{
Type
:
api
.
LimitType
Pod
,
Type
:
api
.
LimitType
Container
,
Max
:
getResourceList
(
"100m"
,
"10000T"
),
Max
:
getResourceList
(
"100m"
,
"10000T"
),
Min
:
getResourceList
(
"5m"
,
"100Mi"
),
Min
:
getResourceList
(
"5m"
,
"100Mi"
),
Default
:
getResourceList
(
"50m"
,
"500Mi"
),
Default
:
getResourceList
(
"50m"
,
"500Mi"
),
...
@@ -2978,6 +2984,32 @@ func TestValidateLimitRange(t *testing.T) {
...
@@ -2978,6 +2984,32 @@ func TestValidateLimitRange(t *testing.T) {
}},
}},
""
,
""
,
},
},
"default-limit-type-pod"
:
{
api
.
LimitRange
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"abc"
,
Namespace
:
"foo"
},
Spec
:
api
.
LimitRangeSpec
{
Limits
:
[]
api
.
LimitRangeItem
{
{
Type
:
api
.
LimitTypePod
,
Max
:
getResourceList
(
"100m"
,
"10000m"
),
Min
:
getResourceList
(
"0m"
,
"100m"
),
Default
:
getResourceList
(
"10m"
,
"100m"
),
},
},
}},
"Default is not supported when limit type is Pod"
,
},
"default-request-limit-type-pod"
:
{
api
.
LimitRange
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"abc"
,
Namespace
:
"foo"
},
Spec
:
api
.
LimitRangeSpec
{
Limits
:
[]
api
.
LimitRangeItem
{
{
Type
:
api
.
LimitTypePod
,
Max
:
getResourceList
(
"100m"
,
"10000m"
),
Min
:
getResourceList
(
"0m"
,
"100m"
),
DefaultRequest
:
getResourceList
(
"10m"
,
"100m"
),
},
},
}},
"DefaultRequest is not supported when limit type is Pod"
,
},
"min value 100m is greater than max value 10m"
:
{
"min value 100m is greater than max value 10m"
:
{
api
.
LimitRange
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"abc"
,
Namespace
:
"foo"
},
Spec
:
api
.
LimitRangeSpec
{
api
.
LimitRange
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"abc"
,
Namespace
:
"foo"
},
Spec
:
api
.
LimitRangeSpec
{
Limits
:
[]
api
.
LimitRangeItem
{
Limits
:
[]
api
.
LimitRangeItem
{
...
@@ -2994,7 +3026,7 @@ func TestValidateLimitRange(t *testing.T) {
...
@@ -2994,7 +3026,7 @@ func TestValidateLimitRange(t *testing.T) {
api
.
LimitRange
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"abc"
,
Namespace
:
"foo"
},
Spec
:
api
.
LimitRangeSpec
{
api
.
LimitRange
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"abc"
,
Namespace
:
"foo"
},
Spec
:
api
.
LimitRangeSpec
{
Limits
:
[]
api
.
LimitRangeItem
{
Limits
:
[]
api
.
LimitRangeItem
{
{
{
Type
:
api
.
LimitType
Pod
,
Type
:
api
.
LimitType
Container
,
Max
:
getResourceList
(
"1"
,
""
),
Max
:
getResourceList
(
"1"
,
""
),
Min
:
getResourceList
(
"100m"
,
""
),
Min
:
getResourceList
(
"100m"
,
""
),
Default
:
getResourceList
(
"2000m"
,
""
),
Default
:
getResourceList
(
"2000m"
,
""
),
...
@@ -3007,7 +3039,7 @@ func TestValidateLimitRange(t *testing.T) {
...
@@ -3007,7 +3039,7 @@ func TestValidateLimitRange(t *testing.T) {
api
.
LimitRange
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"abc"
,
Namespace
:
"foo"
},
Spec
:
api
.
LimitRangeSpec
{
api
.
LimitRange
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"abc"
,
Namespace
:
"foo"
},
Spec
:
api
.
LimitRangeSpec
{
Limits
:
[]
api
.
LimitRangeItem
{
Limits
:
[]
api
.
LimitRangeItem
{
{
{
Type
:
api
.
LimitType
Pod
,
Type
:
api
.
LimitType
Container
,
Max
:
getResourceList
(
"1"
,
""
),
Max
:
getResourceList
(
"1"
,
""
),
Min
:
getResourceList
(
"100m"
,
""
),
Min
:
getResourceList
(
"100m"
,
""
),
DefaultRequest
:
getResourceList
(
"2000m"
,
""
),
DefaultRequest
:
getResourceList
(
"2000m"
,
""
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment