mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #42310 from liggitt/init-container-default
Automatic merge from submit-queue (batch tested with PRs 42443, 38924, 42367, 42391, 42310) Apply custom defaults to init containers Adds overridden defaults to init containers. They were not being defaulted the same way normal containers were.
This commit is contained in:
commit
99445553df
@ -160,6 +160,18 @@ func SetDefaults_Pod(obj *Pod) {
|
||||
}
|
||||
}
|
||||
}
|
||||
for i := range obj.Spec.InitContainers {
|
||||
if obj.Spec.InitContainers[i].Resources.Limits != nil {
|
||||
if obj.Spec.InitContainers[i].Resources.Requests == nil {
|
||||
obj.Spec.InitContainers[i].Resources.Requests = make(ResourceList)
|
||||
}
|
||||
for key, value := range obj.Spec.InitContainers[i].Resources.Limits {
|
||||
if _, exists := obj.Spec.InitContainers[i].Resources.Requests[key]; !exists {
|
||||
obj.Spec.InitContainers[i].Resources.Requests[key] = *(value.Copy())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
func SetDefaults_PodSpec(obj *PodSpec) {
|
||||
if obj.DNSPolicy == "" {
|
||||
@ -170,6 +182,7 @@ func SetDefaults_PodSpec(obj *PodSpec) {
|
||||
}
|
||||
if obj.HostNetwork {
|
||||
defaultHostNetworkPorts(&obj.Containers)
|
||||
defaultHostNetworkPorts(&obj.InitContainers)
|
||||
}
|
||||
if obj.SecurityContext == nil {
|
||||
obj.SecurityContext = &PodSecurityContext{}
|
||||
|
@ -536,6 +536,15 @@ func TestSetDefaultPodSpecHostNetwork(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
s.InitContainers = []v1.Container{
|
||||
{
|
||||
Ports: []v1.ContainerPort{
|
||||
{
|
||||
ContainerPort: portNum,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
pod := &v1.Pod{
|
||||
Spec: s,
|
||||
}
|
||||
@ -547,6 +556,11 @@ func TestSetDefaultPodSpecHostNetwork(t *testing.T) {
|
||||
if hostPortNum != portNum {
|
||||
t.Errorf("Expected container port to be defaulted, was made %d instead of %d", hostPortNum, portNum)
|
||||
}
|
||||
|
||||
hostPortNum = s2.InitContainers[0].Ports[0].HostPort
|
||||
if hostPortNum != portNum {
|
||||
t.Errorf("Expected container port to be defaulted, was made %d instead of %d", hostPortNum, portNum)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSetDefaultNodeExternalID(t *testing.T) {
|
||||
@ -679,6 +693,18 @@ func TestSetMinimumScalePod(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
s.InitContainers = []v1.Container{
|
||||
{
|
||||
Resources: v1.ResourceRequirements{
|
||||
Requests: v1.ResourceList{
|
||||
v1.ResourceMemory: resource.MustParse("1n"),
|
||||
},
|
||||
Limits: v1.ResourceList{
|
||||
v1.ResourceCPU: resource.MustParse("2n"),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
pod := &v1.Pod{
|
||||
Spec: s,
|
||||
}
|
||||
@ -687,6 +713,9 @@ func TestSetMinimumScalePod(t *testing.T) {
|
||||
if expect := resource.MustParse("1m"); expect.Cmp(pod.Spec.Containers[0].Resources.Requests[v1.ResourceMemory]) != 0 {
|
||||
t.Errorf("did not round resources: %#v", pod.Spec.Containers[0].Resources)
|
||||
}
|
||||
if expect := resource.MustParse("1m"); expect.Cmp(pod.Spec.InitContainers[0].Resources.Requests[v1.ResourceMemory]) != 0 {
|
||||
t.Errorf("did not round resources: %#v", pod.Spec.InitContainers[0].Resources)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSetDefaultRequestsPod(t *testing.T) {
|
||||
@ -705,6 +734,19 @@ func TestSetDefaultRequestsPod(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
s.InitContainers = []v1.Container{
|
||||
{
|
||||
Resources: v1.ResourceRequirements{
|
||||
Requests: v1.ResourceList{
|
||||
v1.ResourceMemory: resource.MustParse("0"),
|
||||
},
|
||||
Limits: v1.ResourceList{
|
||||
v1.ResourceCPU: resource.MustParse("100m"),
|
||||
v1.ResourceMemory: resource.MustParse("1Gi"),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
pod := &v1.Pod{
|
||||
Spec: s,
|
||||
}
|
||||
@ -717,10 +759,18 @@ func TestSetDefaultRequestsPod(t *testing.T) {
|
||||
if requestValue := defaultRequest[v1.ResourceMemory]; requestValue.String() != "0" {
|
||||
t.Errorf("Expected request memory: %s, got: %s", "0", requestValue.String())
|
||||
}
|
||||
defaultRequest = pod2.Spec.InitContainers[0].Resources.Requests
|
||||
if requestValue := defaultRequest[v1.ResourceCPU]; requestValue.String() != "100m" {
|
||||
t.Errorf("Expected request cpu: %s, got: %s", "100m", requestValue.String())
|
||||
}
|
||||
if requestValue := defaultRequest[v1.ResourceMemory]; requestValue.String() != "0" {
|
||||
t.Errorf("Expected request memory: %s, got: %s", "0", requestValue.String())
|
||||
}
|
||||
|
||||
// verify we do nothing if no limits are specified
|
||||
s = v1.PodSpec{}
|
||||
s.Containers = []v1.Container{{}}
|
||||
s.InitContainers = []v1.Container{{}}
|
||||
pod = &v1.Pod{
|
||||
Spec: s,
|
||||
}
|
||||
@ -730,6 +780,10 @@ func TestSetDefaultRequestsPod(t *testing.T) {
|
||||
if requestValue := defaultRequest[v1.ResourceCPU]; requestValue.String() != "0" {
|
||||
t.Errorf("Expected 0 request value, got: %s", requestValue.String())
|
||||
}
|
||||
defaultRequest = pod2.Spec.InitContainers[0].Resources.Requests
|
||||
if requestValue := defaultRequest[v1.ResourceCPU]; requestValue.String() != "0" {
|
||||
t.Errorf("Expected 0 request value, got: %s", requestValue.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestDefaultRequestIsNotSetForReplicationController(t *testing.T) {
|
||||
|
@ -160,6 +160,18 @@ func SetDefaults_Pod(obj *Pod) {
|
||||
}
|
||||
}
|
||||
}
|
||||
for i := range obj.Spec.InitContainers {
|
||||
if obj.Spec.InitContainers[i].Resources.Limits != nil {
|
||||
if obj.Spec.InitContainers[i].Resources.Requests == nil {
|
||||
obj.Spec.InitContainers[i].Resources.Requests = make(ResourceList)
|
||||
}
|
||||
for key, value := range obj.Spec.InitContainers[i].Resources.Limits {
|
||||
if _, exists := obj.Spec.InitContainers[i].Resources.Requests[key]; !exists {
|
||||
obj.Spec.InitContainers[i].Resources.Requests[key] = *(value.Copy())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
func SetDefaults_PodSpec(obj *PodSpec) {
|
||||
if obj.DNSPolicy == "" {
|
||||
@ -170,6 +182,7 @@ func SetDefaults_PodSpec(obj *PodSpec) {
|
||||
}
|
||||
if obj.HostNetwork {
|
||||
defaultHostNetworkPorts(&obj.Containers)
|
||||
defaultHostNetworkPorts(&obj.InitContainers)
|
||||
}
|
||||
if obj.SecurityContext == nil {
|
||||
obj.SecurityContext = &PodSecurityContext{}
|
||||
|
Loading…
Reference in New Issue
Block a user