@@ -122,7 +122,6 @@ func (r *PodReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.R
122122 }
123123 }
124124 log .Info (fmt .Sprint (SumPodRequest ))
125- log .Info (fmt .Sprint (SumPodRequest .TimeSinceFirstSample , ">" , r .MinSecondsBetweenPodRestart ))
126125 if (SumPodRequest .Sample >= r .SampleSize ) && (SumPodRequest .TimeSinceFirstSample >= r .MinSecondsBetweenPodRestart ) {
127126 log .Info ("Sample Size and Minimum Time have been reached" )
128127 PodChange := false
@@ -139,21 +138,21 @@ func (r *PodReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.R
139138 log .Info (fmt .Sprint ("Comparing CPU: " , fmt .Sprintf ("%dm" , AverageUsageCPU ), " <> " , fmt .Sprintf ("%dm" , currentC .CPU )))
140139 log .Info (fmt .Sprint ("Comparing Memory: " , fmt .Sprintf ("%dMi" , AverageUsageMemory ), " <> " , fmt .Sprintf ("%dMi" , currentC .Memory )))
141140 // if AverageUsageCPU < currentC.CPU {
142- if AverageUsageCPU > 0 {
141+ if r . ValidateCPU ( currentC . CPU , AverageUsageCPU ) {
143142 if pod .Spec .Containers [i ].Resources .Requests != nil {
144143 pod .Spec .Containers [i ].Resources .Requests [v1 .ResourceCPU ] = resource .MustParse (fmt .Sprintf ("%dm" , AverageUsageCPU ))
145144 PodChange = true
146145 }
147146 }
148147 // }
149- // if AverageUsageMemory < currentC.Memory {
150- if AverageUsageMemory > 0 {
151- if pod .Spec .Containers [i ].Resources .Requests != nil {
152- pod .Spec .Containers [i ].Resources .Requests [v1 .ResourceMemory ] = resource .MustParse (fmt .Sprintf ("%dMi" , AverageUsageMemory ))
153- PodChange = true
148+ if r .ValidateMemory (currentC .Memory , AverageUsageMemory ) {
149+ if AverageUsageMemory > 0 {
150+ if pod .Spec .Containers [i ].Resources .Requests != nil {
151+ pod .Spec .Containers [i ].Resources .Requests [v1 .ResourceMemory ] = resource .MustParse (fmt .Sprintf ("%dMi" , AverageUsageMemory ))
152+ PodChange = true
153+ }
154154 }
155155 }
156- // }
157156 Requests = append (Requests , NewContainerRequests {Name : c .Name , Requests : pod .Spec .Containers [i ].Resources })
158157 }
159158 }
@@ -170,7 +169,6 @@ func (r *PodReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.R
170169 }
171170
172171 var ownerName string
173-
174172 switch pod .OwnerReferences [0 ].Kind {
175173 case "ReplicaSet" :
176174 replica , err := r .ClientSet .AppsV1 ().ReplicaSets (pod .Namespace ).Get (ctx , pod .OwnerReferences [0 ].Name , metav1.GetOptions {})
@@ -187,7 +185,9 @@ func (r *PodReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.R
187185 log .Error (err , err .Error ())
188186 return ctrl.Result {}, err
189187 }
190- UpdatePodController (deployment , Requests , ctx )
188+ UpdatePodController (& deployment .Spec .Template .Spec , Requests , ctx )
189+ deployment .Annotations ["auto.request.operator/changed" ] = "true"
190+
191191 return r .UpdateKubeObject (deployment , ctx )
192192 } else {
193193 log .Info ("Is Owned by Unknown CRD" )
@@ -202,7 +202,8 @@ func (r *PodReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.R
202202 log .Error (err , err .Error ())
203203 return ctrl.Result {}, err
204204 }
205- UpdatePodController (deployment , Requests , ctx )
205+ UpdatePodController (& deployment .Spec .Template .Spec , Requests , ctx )
206+ deployment .Annotations ["auto.request.operator/changed" ] = "true"
206207 return r .UpdateKubeObject (deployment , ctx )
207208 case "StatefulSet" :
208209 log .Info ("Is Owned by StatefulSet" )
@@ -214,7 +215,8 @@ func (r *PodReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.R
214215 return ctrl.Result {}, err
215216 }
216217
217- UpdatePodController (deployment , Requests , ctx )
218+ UpdatePodController (& deployment .Spec .Template .Spec , Requests , ctx )
219+ deployment .Annotations ["auto.request.operator/changed" ] = "true"
218220 return r .UpdateKubeObject (deployment , ctx )
219221 default :
220222 fmt .Printf ("Could not find resource manager for type %s\n " , pod .OwnerReferences [0 ].Kind )
0 commit comments