INNER CODE UNIT · Go
applyVPA
streamnative/function-mesh · controllers/common.go:143
func applyVPA(ctx context.Context, r client.Client, logger logr.Logger, condition v1alpha1.ResourceCondition,
meta *metav1.ObjectMeta,
targetRef *autov2.CrossVersionObjectReference, vpaSpec *v1alpha1.VPASpec, component string, namespace string,
name string) error {
switch condition.Action {
case v1alpha1.Create:
vpa := spec.MakeVPA(meta, targetRef, vpaSpec)
if err := r.Create(ctx, vpa); err != nil {
logger.Error(err, "failed to create vertical pod autoscaler", "name", name, "component", component)
return err
}
case v1alpha1.Update:
vpa := &vpav1.VerticalPodAutoscaler{}
err := r.Get(ctx, types.NamespacedName{Namespace: namespace,
Name: meta.Name}, vpa)
if err != nil {
logger.Error(err, "failed to update vertical pod autoscaler, cannot find vpa", "name", name, "component",