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",

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…