All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec Maven / Gradle / Ivy

package io.k8s.api.autoscaling.v1;

import java.lang.Long;

/**
 * specification of a horizontal pod autoscaler.
 */
public class HorizontalPodAutoscalerSpec {
  public Long maxReplicas;

  public Long minReplicas;

  public CrossVersionObjectReference scaleTargetRef;

  public Long targetCPUUtilizationPercentage;

  /**
   * maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.
   */
  public HorizontalPodAutoscalerSpec maxReplicas(Long maxReplicas) {
    this.maxReplicas = maxReplicas;
    return this;
  }

  /**
   * minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.
   */
  public HorizontalPodAutoscalerSpec minReplicas(Long minReplicas) {
    this.minReplicas = minReplicas;
    return this;
  }

  public HorizontalPodAutoscalerSpec scaleTargetRef(CrossVersionObjectReference scaleTargetRef) {
    this.scaleTargetRef = scaleTargetRef;
    return this;
  }

  /**
   * targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.
   */
  public HorizontalPodAutoscalerSpec targetCPUUtilizationPercentage(
      Long targetCPUUtilizationPercentage) {
    this.targetCPUUtilizationPercentage = targetCPUUtilizationPercentage;
    return this;
  }

  public static HorizontalPodAutoscalerSpec horizontalPodAutoscalerSpec() {
    return new HorizontalPodAutoscalerSpec();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy