mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-10-31 16:13:45 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			383 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			383 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
| /*
 | |
| Copyright The Kubernetes Authors.
 | |
| 
 | |
| Licensed under the Apache License, Version 2.0 (the "License");
 | |
| you may not use this file except in compliance with the License.
 | |
| You may obtain a copy of the License at
 | |
| 
 | |
|     http://www.apache.org/licenses/LICENSE-2.0
 | |
| 
 | |
| Unless required by applicable law or agreed to in writing, software
 | |
| distributed under the License is distributed on an "AS IS" BASIS,
 | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| See the License for the specific language governing permissions and
 | |
| limitations under the License.
 | |
| */
 | |
| 
 | |
| 
 | |
| // This file was autogenerated by go-to-protobuf. Do not edit it manually!
 | |
| 
 | |
| syntax = 'proto2';
 | |
| 
 | |
| package k8s.io.api.autoscaling.v1;
 | |
| 
 | |
| import "k8s.io/api/core/v1/generated.proto";
 | |
| import "k8s.io/apimachinery/pkg/api/resource/generated.proto";
 | |
| import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
 | |
| import "k8s.io/apimachinery/pkg/runtime/generated.proto";
 | |
| import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
 | |
| import "k8s.io/apimachinery/pkg/util/intstr/generated.proto";
 | |
| 
 | |
| // Package-wide variables from generator "generated".
 | |
| option go_package = "v1";
 | |
| 
 | |
| // CrossVersionObjectReference contains enough information to let you identify the referred resource.
 | |
| message CrossVersionObjectReference {
 | |
|   // Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
 | |
|   optional string kind = 1;
 | |
| 
 | |
|   // Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
 | |
|   optional string name = 2;
 | |
| 
 | |
|   // API version of the referent
 | |
|   // +optional
 | |
|   optional string apiVersion = 3;
 | |
| }
 | |
| 
 | |
| // ExternalMetricSource indicates how to scale on a metric not associated with
 | |
| // any Kubernetes object (for example length of queue in cloud
 | |
| // messaging service, or QPS from loadbalancer running outside of cluster).
 | |
| message ExternalMetricSource {
 | |
|   // metricName is the name of the metric in question.
 | |
|   optional string metricName = 1;
 | |
| 
 | |
|   // metricSelector is used to identify a specific time series
 | |
|   // within a given metric.
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2;
 | |
| 
 | |
|   // targetValue is the target value of the metric (as a quantity).
 | |
|   // Mutually exclusive with TargetAverageValue.
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3;
 | |
| 
 | |
|   // targetAverageValue is the target per-pod value of global metric (as a quantity).
 | |
|   // Mutually exclusive with TargetValue.
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 4;
 | |
| }
 | |
| 
 | |
| // ExternalMetricStatus indicates the current value of a global metric
 | |
| // not associated with any Kubernetes object.
 | |
| message ExternalMetricStatus {
 | |
|   // metricName is the name of a metric used for autoscaling in
 | |
|   // metric system.
 | |
|   optional string metricName = 1;
 | |
| 
 | |
|   // metricSelector is used to identify a specific time series
 | |
|   // within a given metric.
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2;
 | |
| 
 | |
|   // currentValue is the current value of the metric (as a quantity)
 | |
|   optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3;
 | |
| 
 | |
|   // currentAverageValue is the current value of metric averaged over autoscaled pods.
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 4;
 | |
| }
 | |
| 
 | |
| // configuration of a horizontal pod autoscaler.
 | |
| message HorizontalPodAutoscaler {
 | |
|   // Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
 | |
| 
 | |
|   // behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
 | |
|   // +optional
 | |
|   optional HorizontalPodAutoscalerSpec spec = 2;
 | |
| 
 | |
|   // current information about the autoscaler.
 | |
|   // +optional
 | |
|   optional HorizontalPodAutoscalerStatus status = 3;
 | |
| }
 | |
| 
 | |
| // HorizontalPodAutoscalerCondition describes the state of
 | |
| // a HorizontalPodAutoscaler at a certain point.
 | |
| message HorizontalPodAutoscalerCondition {
 | |
|   // type describes the current condition
 | |
|   optional string type = 1;
 | |
| 
 | |
|   // status is the status of the condition (True, False, Unknown)
 | |
|   optional string status = 2;
 | |
| 
 | |
|   // lastTransitionTime is the last time the condition transitioned from
 | |
|   // one status to another
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
 | |
| 
 | |
|   // reason is the reason for the condition's last transition.
 | |
|   // +optional
 | |
|   optional string reason = 4;
 | |
| 
 | |
|   // message is a human-readable explanation containing details about
 | |
|   // the transition
 | |
|   // +optional
 | |
|   optional string message = 5;
 | |
| }
 | |
| 
 | |
| // list of horizontal pod autoscaler objects.
 | |
| message HorizontalPodAutoscalerList {
 | |
|   // Standard list metadata.
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
 | |
| 
 | |
|   // list of horizontal pod autoscaler objects.
 | |
|   repeated HorizontalPodAutoscaler items = 2;
 | |
| }
 | |
| 
 | |
| // specification of a horizontal pod autoscaler.
 | |
| message HorizontalPodAutoscalerSpec {
 | |
|   // reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption
 | |
|   // and will set the desired number of pods by using its Scale subresource.
 | |
|   optional CrossVersionObjectReference scaleTargetRef = 1;
 | |
| 
 | |
|   // lower limit for the number of pods that can be set by the autoscaler, default 1.
 | |
|   // +optional
 | |
|   optional int32 minReplicas = 2;
 | |
| 
 | |
|   // upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.
 | |
|   optional int32 maxReplicas = 3;
 | |
| 
 | |
|   // 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.
 | |
|   // +optional
 | |
|   optional int32 targetCPUUtilizationPercentage = 4;
 | |
| }
 | |
| 
 | |
| // current status of a horizontal pod autoscaler
 | |
| message HorizontalPodAutoscalerStatus {
 | |
|   // most recent generation observed by this autoscaler.
 | |
|   // +optional
 | |
|   optional int64 observedGeneration = 1;
 | |
| 
 | |
|   // last time the HorizontalPodAutoscaler scaled the number of pods;
 | |
|   // used by the autoscaler to control how often the number of pods is changed.
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScaleTime = 2;
 | |
| 
 | |
|   // current number of replicas of pods managed by this autoscaler.
 | |
|   optional int32 currentReplicas = 3;
 | |
| 
 | |
|   // desired number of replicas of pods managed by this autoscaler.
 | |
|   optional int32 desiredReplicas = 4;
 | |
| 
 | |
|   // current average CPU utilization over all pods, represented as a percentage of requested CPU,
 | |
|   // e.g. 70 means that an average pod is using now 70% of its requested CPU.
 | |
|   // +optional
 | |
|   optional int32 currentCPUUtilizationPercentage = 5;
 | |
| }
 | |
| 
 | |
| // MetricSpec specifies how to scale based on a single metric
 | |
| // (only `type` and one other matching field should be set at once).
 | |
| message MetricSpec {
 | |
|   // type is the type of metric source.  It should be one of "Object",
 | |
|   // "Pods" or "Resource", each mapping to a matching field in the object.
 | |
|   optional string type = 1;
 | |
| 
 | |
|   // object refers to a metric describing a single kubernetes object
 | |
|   // (for example, hits-per-second on an Ingress object).
 | |
|   // +optional
 | |
|   optional ObjectMetricSource object = 2;
 | |
| 
 | |
|   // pods refers to a metric describing each pod in the current scale target
 | |
|   // (for example, transactions-processed-per-second).  The values will be
 | |
|   // averaged together before being compared to the target value.
 | |
|   // +optional
 | |
|   optional PodsMetricSource pods = 3;
 | |
| 
 | |
|   // resource refers to a resource metric (such as those specified in
 | |
|   // requests and limits) known to Kubernetes describing each pod in the
 | |
|   // current scale target (e.g. CPU or memory). Such metrics are built in to
 | |
|   // Kubernetes, and have special scaling options on top of those available
 | |
|   // to normal per-pod metrics using the "pods" source.
 | |
|   // +optional
 | |
|   optional ResourceMetricSource resource = 4;
 | |
| 
 | |
|   // external refers to a global metric that is not associated
 | |
|   // with any Kubernetes object. It allows autoscaling based on information
 | |
|   // coming from components running outside of cluster
 | |
|   // (for example length of queue in cloud messaging service, or
 | |
|   // QPS from loadbalancer running outside of cluster).
 | |
|   // +optional
 | |
|   optional ExternalMetricSource external = 5;
 | |
| }
 | |
| 
 | |
| // MetricStatus describes the last-read state of a single metric.
 | |
| message MetricStatus {
 | |
|   // type is the type of metric source.  It will be one of "Object",
 | |
|   // "Pods" or "Resource", each corresponds to a matching field in the object.
 | |
|   optional string type = 1;
 | |
| 
 | |
|   // object refers to a metric describing a single kubernetes object
 | |
|   // (for example, hits-per-second on an Ingress object).
 | |
|   // +optional
 | |
|   optional ObjectMetricStatus object = 2;
 | |
| 
 | |
|   // pods refers to a metric describing each pod in the current scale target
 | |
|   // (for example, transactions-processed-per-second).  The values will be
 | |
|   // averaged together before being compared to the target value.
 | |
|   // +optional
 | |
|   optional PodsMetricStatus pods = 3;
 | |
| 
 | |
|   // resource refers to a resource metric (such as those specified in
 | |
|   // requests and limits) known to Kubernetes describing each pod in the
 | |
|   // current scale target (e.g. CPU or memory). Such metrics are built in to
 | |
|   // Kubernetes, and have special scaling options on top of those available
 | |
|   // to normal per-pod metrics using the "pods" source.
 | |
|   // +optional
 | |
|   optional ResourceMetricStatus resource = 4;
 | |
| 
 | |
|   // external refers to a global metric that is not associated
 | |
|   // with any Kubernetes object. It allows autoscaling based on information
 | |
|   // coming from components running outside of cluster
 | |
|   // (for example length of queue in cloud messaging service, or
 | |
|   // QPS from loadbalancer running outside of cluster).
 | |
|   // +optional
 | |
|   optional ExternalMetricStatus external = 5;
 | |
| }
 | |
| 
 | |
| // ObjectMetricSource indicates how to scale on a metric describing a
 | |
| // kubernetes object (for example, hits-per-second on an Ingress object).
 | |
| message ObjectMetricSource {
 | |
|   // target is the described Kubernetes object.
 | |
|   optional CrossVersionObjectReference target = 1;
 | |
| 
 | |
|   // metricName is the name of the metric in question.
 | |
|   optional string metricName = 2;
 | |
| 
 | |
|   // targetValue is the target value of the metric (as a quantity).
 | |
|   optional k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3;
 | |
| }
 | |
| 
 | |
| // ObjectMetricStatus indicates the current value of a metric describing a
 | |
| // kubernetes object (for example, hits-per-second on an Ingress object).
 | |
| message ObjectMetricStatus {
 | |
|   // target is the described Kubernetes object.
 | |
|   optional CrossVersionObjectReference target = 1;
 | |
| 
 | |
|   // metricName is the name of the metric in question.
 | |
|   optional string metricName = 2;
 | |
| 
 | |
|   // currentValue is the current value of the metric (as a quantity).
 | |
|   optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3;
 | |
| }
 | |
| 
 | |
| // PodsMetricSource indicates how to scale on a metric describing each pod in
 | |
| // the current scale target (for example, transactions-processed-per-second).
 | |
| // The values will be averaged together before being compared to the target
 | |
| // value.
 | |
| message PodsMetricSource {
 | |
|   // metricName is the name of the metric in question
 | |
|   optional string metricName = 1;
 | |
| 
 | |
|   // targetAverageValue is the target value of the average of the
 | |
|   // metric across all relevant pods (as a quantity)
 | |
|   optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 2;
 | |
| }
 | |
| 
 | |
| // PodsMetricStatus indicates the current value of a metric describing each pod in
 | |
| // the current scale target (for example, transactions-processed-per-second).
 | |
| message PodsMetricStatus {
 | |
|   // metricName is the name of the metric in question
 | |
|   optional string metricName = 1;
 | |
| 
 | |
|   // currentAverageValue is the current value of the average of the
 | |
|   // metric across all relevant pods (as a quantity)
 | |
|   optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 2;
 | |
| }
 | |
| 
 | |
| // ResourceMetricSource indicates how to scale on a resource metric known to
 | |
| // Kubernetes, as specified in requests and limits, describing each pod in the
 | |
| // current scale target (e.g. CPU or memory).  The values will be averaged
 | |
| // together before being compared to the target.  Such metrics are built in to
 | |
| // Kubernetes, and have special scaling options on top of those available to
 | |
| // normal per-pod metrics using the "pods" source.  Only one "target" type
 | |
| // should be set.
 | |
| message ResourceMetricSource {
 | |
|   // name is the name of the resource in question.
 | |
|   optional string name = 1;
 | |
| 
 | |
|   // targetAverageUtilization is the target value of the average of the
 | |
|   // resource metric across all relevant pods, represented as a percentage of
 | |
|   // the requested value of the resource for the pods.
 | |
|   // +optional
 | |
|   optional int32 targetAverageUtilization = 2;
 | |
| 
 | |
|   // targetAverageValue is the target value of the average of the
 | |
|   // resource metric across all relevant pods, as a raw value (instead of as
 | |
|   // a percentage of the request), similar to the "pods" metric source type.
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 3;
 | |
| }
 | |
| 
 | |
| // ResourceMetricStatus indicates the current value of a resource metric known to
 | |
| // Kubernetes, as specified in requests and limits, describing each pod in the
 | |
| // current scale target (e.g. CPU or memory).  Such metrics are built in to
 | |
| // Kubernetes, and have special scaling options on top of those available to
 | |
| // normal per-pod metrics using the "pods" source.
 | |
| message ResourceMetricStatus {
 | |
|   // name is the name of the resource in question.
 | |
|   optional string name = 1;
 | |
| 
 | |
|   // currentAverageUtilization is the current value of the average of the
 | |
|   // resource metric across all relevant pods, represented as a percentage of
 | |
|   // the requested value of the resource for the pods.  It will only be
 | |
|   // present if `targetAverageValue` was set in the corresponding metric
 | |
|   // specification.
 | |
|   // +optional
 | |
|   optional int32 currentAverageUtilization = 2;
 | |
| 
 | |
|   // currentAverageValue is the current value of the average of the
 | |
|   // resource metric across all relevant pods, as a raw value (instead of as
 | |
|   // a percentage of the request), similar to the "pods" metric source type.
 | |
|   // It will always be set, regardless of the corresponding metric specification.
 | |
|   optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3;
 | |
| }
 | |
| 
 | |
| // Scale represents a scaling request for a resource.
 | |
| message Scale {
 | |
|   // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.
 | |
|   // +optional
 | |
|   optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
 | |
| 
 | |
|   // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
 | |
|   // +optional
 | |
|   optional ScaleSpec spec = 2;
 | |
| 
 | |
|   // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.
 | |
|   // +optional
 | |
|   optional ScaleStatus status = 3;
 | |
| }
 | |
| 
 | |
| // ScaleSpec describes the attributes of a scale subresource.
 | |
| message ScaleSpec {
 | |
|   // desired number of instances for the scaled object.
 | |
|   // +optional
 | |
|   optional int32 replicas = 1;
 | |
| }
 | |
| 
 | |
| // ScaleStatus represents the current status of a scale subresource.
 | |
| message ScaleStatus {
 | |
|   // actual number of observed instances of the scaled object.
 | |
|   optional int32 replicas = 1;
 | |
| 
 | |
|   // label query over pods that should match the replicas count. This is same
 | |
|   // as the label selector but in the string format to avoid introspection
 | |
|   // by clients. The string will be in the same format as the query-param syntax.
 | |
|   // More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors
 | |
|   // +optional
 | |
|   optional string selector = 2;
 | |
| }
 | |
| 
 | 
