diff --git a/pkg/apis/autoscaling/annotations.go b/pkg/apis/autoscaling/annotations.go index 4c377561b..c6586ea70 100644 --- a/pkg/apis/autoscaling/annotations.go +++ b/pkg/apis/autoscaling/annotations.go @@ -24,6 +24,10 @@ const MetricSpecsAnnotation = "autoscaling.alpha.kubernetes.io/metrics" // statuses when converting the `CurrentMetrics` field from autoscaling/v2alpha1 const MetricStatusesAnnotation = "autoscaling.alpha.kubernetes.io/current-metrics" +// HorizontalPodAutoscalerConditionsAnnotation is the annotation which holds the conditions +// of an HPA when converting the `Conditions` field from autoscaling/v2alpha1 +const HorizontalPodAutoscalerConditionsAnnotation = "autoscaling.alpha.kubernetes.io/conditions" + // DefaultCPUUtilization is the default value for CPU utilization, provided no other // metrics are present. This is here because it's used by both the v2alpha1 defaulting // logic, and the pseudo-defaulting done in v1 conversion. diff --git a/pkg/apis/autoscaling/types.go b/pkg/apis/autoscaling/types.go index 67f7fb259..2746290ac 100644 --- a/pkg/apis/autoscaling/types.go +++ b/pkg/apis/autoscaling/types.go @@ -202,6 +202,59 @@ type HorizontalPodAutoscalerStatus struct { // CurrentMetrics is the last read state of the metrics used by this autoscaler. CurrentMetrics []MetricStatus + + // Conditions is the set of conditions required for this autoscaler to scale its target, + // and indicates whether or not those conditions are met. + Conditions []HorizontalPodAutoscalerCondition +} + +// ConditionStatus indicates the status of a condition (true, false, or unknown). +type ConditionStatus string + +// These are valid condition statuses. "ConditionTrue" means a resource is in the condition; +// "ConditionFalse" means a resource is not in the condition; "ConditionUnknown" means kubernetes +// can't decide if a resource is in the condition or not. In the future, we could add other +// intermediate conditions, e.g. ConditionDegraded. +const ( + ConditionTrue ConditionStatus = "True" + ConditionFalse ConditionStatus = "False" + ConditionUnknown ConditionStatus = "Unknown" +) + +// HorizontalPodAutoscalerConditionType are the valid conditions of +// a HorizontalPodAutoscaler. +type HorizontalPodAutoscalerConditionType string + +var ( + // ScalingActive indicates that the HPA controller is able to scale if necessary: + // it's correctly configured, can fetch the desired metrics, and isn't disabled. + ScalingActive HorizontalPodAutoscalerConditionType = "ScalingActive" + // AbleToScale indicates a lack of transient issues which prevent scaling from occuring, + // such as being in a backoff window, or being unable to access/update the target scale. + AbleToScale HorizontalPodAutoscalerConditionType = "AbleToScale" + // ScalingLimited indicates that the calculated scale based on metrics would be above or + // below the range for the HPA, and has thus been capped. + ScalingLimited HorizontalPodAutoscalerConditionType = "ScalingLimited" +) + +// HorizontalPodAutoscalerCondition describes the state of +// a HorizontalPodAutoscaler at a certain point. +type HorizontalPodAutoscalerCondition struct { + // Type describes the current condition + Type HorizontalPodAutoscalerConditionType + // Status is the status of the condition (True, False, Unknown) + Status ConditionStatus + // LastTransitionTime is the last time the condition transitioned from + // one status to another + // +optional + LastTransitionTime metav1.Time + // Reason is the reason for the condition's last transition. + // +optional + Reason string + // Message is a human-readable explanation containing details about + // the transition + // +optional + Message string } // MetricStatus describes the last-read state of a single metric. diff --git a/pkg/apis/autoscaling/v1/conversion.go b/pkg/apis/autoscaling/v1/conversion.go index 6b8306922..3e6a320a2 100644 --- a/pkg/apis/autoscaling/v1/conversion.go +++ b/pkg/apis/autoscaling/v1/conversion.go @@ -68,9 +68,17 @@ func Convert_autoscaling_HorizontalPodAutoscaler_To_v1_HorizontalPodAutoscaler(i } } - if len(otherMetrics) > 0 || len(in.Status.CurrentMetrics) > 0 { + // store HPA conditions in an annotation + currentConditions := make([]HorizontalPodAutoscalerCondition, len(in.Status.Conditions)) + for i, currentCondition := range in.Status.Conditions { + if err := Convert_autoscaling_HorizontalPodAutoscalerCondition_To_v1_HorizontalPodAutoscalerCondition(¤tCondition, ¤tConditions[i], s); err != nil { + return err + } + } + + if len(otherMetrics) > 0 || len(in.Status.CurrentMetrics) > 0 || len(currentConditions) > 0 { old := out.Annotations - out.Annotations = make(map[string]string, len(old)+2) + out.Annotations = make(map[string]string, len(old)+3) if old != nil { for k, v := range old { out.Annotations[k] = v @@ -94,6 +102,14 @@ func Convert_autoscaling_HorizontalPodAutoscaler_To_v1_HorizontalPodAutoscaler(i out.Annotations[autoscaling.MetricStatusesAnnotation] = string(currentMetricsEnc) } + if len(in.Status.Conditions) > 0 { + currentConditionsEnc, err := json.Marshal(currentConditions) + if err != nil { + return err + } + out.Annotations[autoscaling.HorizontalPodAutoscalerConditionsAnnotation] = string(currentConditionsEnc) + } + return nil } @@ -154,6 +170,21 @@ func Convert_v1_HorizontalPodAutoscaler_To_autoscaling_HorizontalPodAutoscaler(i *out.Spec.Metrics[0].Resource.TargetAverageUtilization = autoscaling.DefaultCPUUtilization } + if currentConditionsEnc, hasCurrentConditions := out.Annotations[autoscaling.HorizontalPodAutoscalerConditionsAnnotation]; hasCurrentConditions { + var currentConditions []HorizontalPodAutoscalerCondition + if err := json.Unmarshal([]byte(currentConditionsEnc), ¤tConditions); err != nil { + return err + } + + out.Status.Conditions = make([]autoscaling.HorizontalPodAutoscalerCondition, len(currentConditions)) + for i, currentCondition := range currentConditions { + if err := Convert_v1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition(¤tCondition, &out.Status.Conditions[i], s); err != nil { + return err + } + } + delete(out.Annotations, autoscaling.HorizontalPodAutoscalerConditionsAnnotation) + } + return nil } diff --git a/pkg/apis/autoscaling/v1/generated.pb.go b/pkg/apis/autoscaling/v1/generated.pb.go index 323d43322..7d59b1202 100644 --- a/pkg/apis/autoscaling/v1/generated.pb.go +++ b/pkg/apis/autoscaling/v1/generated.pb.go @@ -27,6 +27,7 @@ limitations under the License. It has these top-level messages: CrossVersionObjectReference HorizontalPodAutoscaler + HorizontalPodAutoscalerCondition HorizontalPodAutoscalerList HorizontalPodAutoscalerSpec HorizontalPodAutoscalerStatus @@ -79,71 +80,78 @@ func (m *HorizontalPodAutoscaler) Reset() { *m = HorizontalPo func (*HorizontalPodAutoscaler) ProtoMessage() {} func (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (m *HorizontalPodAutoscalerCondition) Reset() { *m = HorizontalPodAutoscalerCondition{} } +func (*HorizontalPodAutoscalerCondition) ProtoMessage() {} +func (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{2} +} + func (m *HorizontalPodAutoscalerList) Reset() { *m = HorizontalPodAutoscalerList{} } func (*HorizontalPodAutoscalerList) ProtoMessage() {} func (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{2} + return fileDescriptorGenerated, []int{3} } func (m *HorizontalPodAutoscalerSpec) Reset() { *m = HorizontalPodAutoscalerSpec{} } func (*HorizontalPodAutoscalerSpec) ProtoMessage() {} func (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{3} + return fileDescriptorGenerated, []int{4} } func (m *HorizontalPodAutoscalerStatus) Reset() { *m = HorizontalPodAutoscalerStatus{} } func (*HorizontalPodAutoscalerStatus) ProtoMessage() {} func (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{4} + return fileDescriptorGenerated, []int{5} } func (m *MetricSpec) Reset() { *m = MetricSpec{} } func (*MetricSpec) ProtoMessage() {} -func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *MetricStatus) Reset() { *m = MetricStatus{} } func (*MetricStatus) ProtoMessage() {} -func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } func (m *ObjectMetricSource) Reset() { *m = ObjectMetricSource{} } func (*ObjectMetricSource) ProtoMessage() {} -func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *ObjectMetricStatus) Reset() { *m = ObjectMetricStatus{} } func (*ObjectMetricStatus) ProtoMessage() {} -func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *PodsMetricSource) Reset() { *m = PodsMetricSource{} } func (*PodsMetricSource) ProtoMessage() {} -func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *PodsMetricStatus) Reset() { *m = PodsMetricStatus{} } func (*PodsMetricStatus) ProtoMessage() {} -func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func (m *ResourceMetricSource) Reset() { *m = ResourceMetricSource{} } func (*ResourceMetricSource) ProtoMessage() {} -func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } +func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } func (m *ResourceMetricStatus) Reset() { *m = ResourceMetricStatus{} } func (*ResourceMetricStatus) ProtoMessage() {} -func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } +func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } func (m *Scale) Reset() { *m = Scale{} } func (*Scale) ProtoMessage() {} -func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } +func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } func (m *ScaleSpec) Reset() { *m = ScaleSpec{} } func (*ScaleSpec) ProtoMessage() {} -func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } +func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } func (m *ScaleStatus) Reset() { *m = ScaleStatus{} } func (*ScaleStatus) ProtoMessage() {} -func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } +func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } func init() { proto.RegisterType((*CrossVersionObjectReference)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v1.CrossVersionObjectReference") proto.RegisterType((*HorizontalPodAutoscaler)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler") + proto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerCondition") proto.RegisterType((*HorizontalPodAutoscalerList)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList") proto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec") proto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus") @@ -231,6 +239,48 @@ func (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n4, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + return i, nil +} + func (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -249,11 +299,11 @@ func (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n4, err := m.ListMeta.MarshalTo(dAtA[i:]) + n5, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n4 + i += n5 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -287,11 +337,11 @@ func (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleTargetRef.Size())) - n5, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) + n6, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n5 + i += n6 if m.MinReplicas != nil { dAtA[i] = 0x10 i++ @@ -332,11 +382,11 @@ func (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastScaleTime.Size())) - n6, err := m.LastScaleTime.MarshalTo(dAtA[i:]) + n7, err := m.LastScaleTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n7 } dAtA[i] = 0x18 i++ @@ -375,32 +425,32 @@ func (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) - n7, err := m.Object.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - } - if m.Pods != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) - n8, err := m.Pods.MarshalTo(dAtA[i:]) + n8, err := m.Object.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n8 } - if m.Resource != nil { - dAtA[i] = 0x22 + if m.Pods != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) - n9, err := m.Resource.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) + n9, err := m.Pods.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n9 } + if m.Resource != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) + n10, err := m.Resource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + } return i, nil } @@ -427,32 +477,32 @@ func (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) - n10, err := m.Object.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n10 - } - if m.Pods != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) - n11, err := m.Pods.MarshalTo(dAtA[i:]) + n11, err := m.Object.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n11 } - if m.Resource != nil { - dAtA[i] = 0x22 + if m.Pods != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) - n12, err := m.Resource.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) + n12, err := m.Pods.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n12 } + if m.Resource != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) + n13, err := m.Resource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + } return i, nil } @@ -474,11 +524,11 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n13, err := m.Target.MarshalTo(dAtA[i:]) + n14, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n13 + i += n14 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -486,11 +536,11 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetValue.Size())) - n14, err := m.TargetValue.MarshalTo(dAtA[i:]) + n15, err := m.TargetValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n14 + i += n15 return i, nil } @@ -512,11 +562,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n15, err := m.Target.MarshalTo(dAtA[i:]) + n16, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n16 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -524,11 +574,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) - n16, err := m.CurrentValue.MarshalTo(dAtA[i:]) + n17, err := m.CurrentValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n17 return i, nil } @@ -554,11 +604,11 @@ func (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n17, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n18, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n18 return i, nil } @@ -584,11 +634,11 @@ func (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n18, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n19, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n19 return i, nil } @@ -620,11 +670,11 @@ func (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n19, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n20, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n20 } return i, nil } @@ -656,11 +706,11 @@ func (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n20, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n21, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n21 return i, nil } @@ -682,27 +732,27 @@ func (m *Scale) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n21, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n21 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n22, err := m.Spec.MarshalTo(dAtA[i:]) + n22, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n22 - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n23, err := m.Status.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n23, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n23 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n24, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 return i, nil } @@ -803,6 +853,22 @@ func (m *HorizontalPodAutoscaler) Size() (n int) { return n } +func (m *HorizontalPodAutoscalerCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *HorizontalPodAutoscalerList) Size() (n int) { var l int _ = l @@ -1027,6 +1093,20 @@ func (this *HorizontalPodAutoscaler) String() string { }, "") return s } +func (this *HorizontalPodAutoscalerCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} func (this *HorizontalPodAutoscalerList) String() string { if this == nil { return "nil" @@ -1479,6 +1559,202 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { } return nil } +func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = k8s_io_kubernetes_pkg_api_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -3420,85 +3696,92 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1266 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x57, 0xcd, 0x6f, 0x1b, 0x45, - 0x14, 0xcf, 0xda, 0x4e, 0x94, 0xce, 0xe6, 0x8b, 0x49, 0x95, 0xba, 0x09, 0xf5, 0x46, 0x0b, 0x87, - 0x16, 0x95, 0x5d, 0x62, 0x42, 0x45, 0x84, 0x10, 0x8a, 0x8d, 0x4a, 0x2b, 0xea, 0x36, 0x4c, 0xdc, - 0x88, 0x2f, 0x21, 0x26, 0xeb, 0xa9, 0x33, 0x8d, 0xf7, 0x43, 0xbb, 0x63, 0x8b, 0x44, 0x42, 0xe2, - 0xc4, 0x99, 0x0b, 0x67, 0x04, 0xff, 0x04, 0xe7, 0x22, 0x21, 0xe5, 0xd8, 0x1b, 0x9c, 0x56, 0x64, - 0xe1, 0x86, 0xf8, 0x07, 0x2a, 0x0e, 0x68, 0x67, 0xc7, 0xeb, 0x5d, 0xdb, 0xeb, 0xc4, 0x69, 0x5a, - 0xd4, 0xdb, 0xee, 0xcc, 0x7b, 0xbf, 0xdf, 0x7b, 0xbf, 0x79, 0xf3, 0x66, 0x06, 0x6c, 0xec, 0xbf, - 0xed, 0x69, 0xd4, 0xd6, 0xf7, 0xdb, 0xbb, 0xc4, 0xb5, 0x08, 0x23, 0x9e, 0xee, 0xec, 0x37, 0x75, - 0xec, 0x50, 0x4f, 0xc7, 0x6d, 0x66, 0x7b, 0x06, 0x6e, 0x51, 0xab, 0xa9, 0x77, 0xd6, 0xf4, 0x26, - 0xb1, 0x88, 0x8b, 0x19, 0x69, 0x68, 0x8e, 0x6b, 0x33, 0x1b, 0x5e, 0x8b, 0x5c, 0xb5, 0x9e, 0xab, - 0xe6, 0xec, 0x37, 0xb5, 0xd0, 0x55, 0x4b, 0xb8, 0x6a, 0x9d, 0xb5, 0xe5, 0xd7, 0x9b, 0x94, 0xed, - 0xb5, 0x77, 0x35, 0xc3, 0x36, 0xf5, 0xa6, 0xdd, 0xb4, 0x75, 0x8e, 0xb0, 0xdb, 0x7e, 0xc0, 0xff, - 0xf8, 0x0f, 0xff, 0x8a, 0x90, 0x97, 0xd7, 0x45, 0x50, 0xd8, 0xa1, 0x26, 0x36, 0xf6, 0xa8, 0x45, - 0xdc, 0x83, 0x6e, 0x58, 0xba, 0x4b, 0x3c, 0xbb, 0xed, 0x1a, 0xa4, 0x3f, 0x9e, 0x91, 0x5e, 0x9e, - 0x6e, 0x12, 0x86, 0x87, 0x64, 0xb1, 0xac, 0x67, 0x79, 0xb9, 0x6d, 0x8b, 0x51, 0x73, 0x90, 0xe6, - 0xc6, 0x49, 0x0e, 0x9e, 0xb1, 0x47, 0x4c, 0x3c, 0xe0, 0xf7, 0x66, 0x96, 0x5f, 0x9b, 0xd1, 0x96, - 0x4e, 0x2d, 0xe6, 0x31, 0x77, 0xc0, 0xe9, 0x7a, 0xe6, 0xf2, 0x0c, 0xc9, 0x45, 0xfd, 0x5e, 0x02, - 0x2b, 0x55, 0xd7, 0xf6, 0xbc, 0x1d, 0xe2, 0x7a, 0xd4, 0xb6, 0xee, 0xed, 0x3e, 0x24, 0x06, 0x43, - 0xe4, 0x01, 0x71, 0x89, 0x65, 0x10, 0xb8, 0x0a, 0x0a, 0xfb, 0xd4, 0x6a, 0x14, 0xa5, 0x55, 0xe9, - 0xea, 0x85, 0xca, 0xcc, 0x91, 0xaf, 0x4c, 0x04, 0xbe, 0x52, 0xf8, 0x90, 0x5a, 0x0d, 0xc4, 0x67, - 0x42, 0x0b, 0x0b, 0x9b, 0xa4, 0x98, 0x4b, 0x5b, 0xdc, 0xc5, 0x26, 0x41, 0x7c, 0x06, 0x96, 0x01, - 0xc0, 0x0e, 0x15, 0x04, 0xc5, 0x3c, 0xb7, 0x83, 0xc2, 0x0e, 0x6c, 0x6e, 0xdd, 0x16, 0x33, 0x28, - 0x61, 0xa5, 0xfe, 0x96, 0x03, 0x97, 0x6e, 0xd9, 0x2e, 0x3d, 0xb4, 0x2d, 0x86, 0x5b, 0x5b, 0x76, - 0x63, 0x53, 0x94, 0x07, 0x71, 0xe1, 0x97, 0x60, 0x3a, 0x5c, 0x9a, 0x06, 0x66, 0x98, 0xc7, 0x25, - 0x97, 0xdf, 0xd0, 0x44, 0x61, 0x25, 0x95, 0xea, 0x95, 0x56, 0x68, 0xad, 0x75, 0xd6, 0xb4, 0x28, - 0xb9, 0x1a, 0x61, 0xb8, 0xc7, 0xdf, 0x1b, 0x43, 0x31, 0x2a, 0xdc, 0x03, 0x05, 0xcf, 0x21, 0x06, - 0xcf, 0x49, 0x2e, 0xdf, 0xd4, 0x4e, 0x5d, 0xb6, 0x5a, 0x46, 0xcc, 0xdb, 0x0e, 0x31, 0x7a, 0xda, - 0x84, 0x7f, 0x88, 0x33, 0x40, 0x07, 0x4c, 0x79, 0x0c, 0xb3, 0xb6, 0xc7, 0x75, 0x91, 0xcb, 0xb7, - 0xce, 0x81, 0x8b, 0xe3, 0x55, 0xe6, 0x04, 0xdb, 0x54, 0xf4, 0x8f, 0x04, 0x8f, 0xfa, 0x97, 0x04, - 0x56, 0x32, 0x3c, 0xef, 0x50, 0x8f, 0xc1, 0xcf, 0x07, 0xd4, 0xd5, 0x4e, 0xa7, 0x6e, 0xe8, 0xcd, - 0xb5, 0x5d, 0x10, 0xcc, 0xd3, 0xdd, 0x91, 0x84, 0xb2, 0x4d, 0x30, 0x49, 0x19, 0x31, 0xbd, 0x62, - 0x6e, 0x35, 0x7f, 0x55, 0x2e, 0x57, 0x9e, 0x3e, 0xdd, 0xca, 0xac, 0xa0, 0x9b, 0xbc, 0x1d, 0x02, - 0xa3, 0x08, 0x5f, 0xfd, 0x37, 0x97, 0x99, 0x66, 0x28, 0x3f, 0xfc, 0x56, 0x02, 0x73, 0xfc, 0xb7, - 0x8e, 0xdd, 0x26, 0x09, 0x2b, 0x5e, 0x64, 0x3b, 0xce, 0x6a, 0x8f, 0xd8, 0x39, 0x95, 0x25, 0x11, - 0xd6, 0xdc, 0x76, 0x8a, 0x05, 0xf5, 0xb1, 0xc2, 0x35, 0x20, 0x9b, 0xd4, 0x42, 0xc4, 0x69, 0x51, - 0x03, 0x7b, 0xbc, 0xe4, 0x26, 0x2b, 0xf3, 0x81, 0xaf, 0xc8, 0xb5, 0xde, 0x30, 0x4a, 0xda, 0xc0, - 0xb7, 0x80, 0x6c, 0xe2, 0xaf, 0x62, 0x97, 0x3c, 0x77, 0x59, 0x14, 0x7c, 0x72, 0xad, 0x37, 0x85, - 0x92, 0x76, 0xf0, 0x21, 0x28, 0x31, 0x4e, 0x5b, 0xdd, 0xba, 0x7f, 0x9f, 0xd1, 0x16, 0x3d, 0xc4, - 0x8c, 0xda, 0xd6, 0x16, 0x71, 0x0d, 0x62, 0x31, 0xdc, 0x24, 0xc5, 0x02, 0x47, 0x52, 0x03, 0x5f, - 0x29, 0xd5, 0x47, 0x5a, 0xa2, 0x13, 0x90, 0xd4, 0x47, 0x79, 0x70, 0x65, 0x64, 0x7d, 0xc2, 0x9b, - 0x00, 0xda, 0xbb, 0x1e, 0x71, 0x3b, 0xa4, 0xf1, 0x41, 0xd4, 0x94, 0xc2, 0xee, 0x10, 0xae, 0x41, - 0xbe, 0xb2, 0x14, 0xf8, 0x0a, 0xbc, 0x37, 0x30, 0x8b, 0x86, 0x78, 0x40, 0x03, 0xcc, 0xb6, 0xb0, - 0xc7, 0x22, 0x95, 0xa9, 0x68, 0x44, 0x72, 0xf9, 0xb5, 0xd3, 0x15, 0x6d, 0xe8, 0x51, 0x79, 0x29, - 0xf0, 0x95, 0xd9, 0x3b, 0x49, 0x10, 0x94, 0xc6, 0x84, 0x9b, 0x60, 0xde, 0x68, 0xbb, 0x2e, 0xb1, - 0x58, 0x9f, 0xea, 0x97, 0x84, 0xea, 0xf3, 0xd5, 0xf4, 0x34, 0xea, 0xb7, 0x0f, 0x21, 0x1a, 0xc4, - 0xa3, 0x2e, 0x69, 0xc4, 0x10, 0x85, 0x34, 0xc4, 0xfb, 0xe9, 0x69, 0xd4, 0x6f, 0x0f, 0x4d, 0xa0, - 0x08, 0xd4, 0xcc, 0x15, 0x9c, 0xe4, 0x90, 0xaf, 0x04, 0xbe, 0xa2, 0x54, 0x47, 0x9b, 0xa2, 0x93, - 0xb0, 0xd4, 0xbf, 0x73, 0x00, 0xd4, 0x08, 0x73, 0xa9, 0xc1, 0x77, 0xcc, 0x3a, 0x28, 0xb0, 0x03, - 0x87, 0x88, 0xa3, 0x60, 0xb5, 0xdb, 0xcc, 0xea, 0x07, 0x0e, 0x79, 0xe2, 0x2b, 0x0b, 0xc2, 0x92, - 0x1f, 0xb4, 0xe1, 0x18, 0xe2, 0xd6, 0x10, 0x83, 0x29, 0x9b, 0xef, 0x0c, 0xb1, 0x2e, 0xef, 0x8e, - 0xb1, 0xbd, 0xe2, 0xde, 0x1c, 0x03, 0x57, 0x40, 0xd8, 0xd1, 0xc4, 0x56, 0x13, 0xc0, 0xf0, 0x13, - 0x50, 0x70, 0xec, 0x46, 0xb7, 0x83, 0xbe, 0x33, 0x06, 0xc1, 0x96, 0xdd, 0xf0, 0x52, 0xf0, 0xd3, - 0x61, 0x46, 0xe1, 0x28, 0xe2, 0x90, 0x90, 0x82, 0xe9, 0xee, 0xe5, 0x81, 0xaf, 0x96, 0x5c, 0x7e, - 0x6f, 0x0c, 0x78, 0x24, 0x5c, 0x53, 0x14, 0x33, 0x61, 0x67, 0xec, 0xce, 0xa0, 0x18, 0x5e, 0xfd, - 0x27, 0x07, 0x66, 0x84, 0x61, 0xb4, 0x41, 0xfe, 0x67, 0xbd, 0xa3, 0x53, 0xe4, 0x99, 0xe9, 0x1d, - 0xc1, 0x3f, 0x53, 0xbd, 0x23, 0x8a, 0x2c, 0xbd, 0x7f, 0xc8, 0x01, 0x38, 0x58, 0x60, 0xd0, 0x02, - 0x53, 0x51, 0x6b, 0x3b, 0xe7, 0xe3, 0x20, 0x3e, 0x8e, 0x45, 0xe7, 0x17, 0x2c, 0xe1, 0xe5, 0xc8, - 0xe4, 0xfc, 0x77, 0x7b, 0x97, 0xa8, 0xf8, 0x72, 0x52, 0x8b, 0x67, 0x50, 0xc2, 0x0a, 0x12, 0x20, - 0x47, 0xde, 0x3b, 0xb8, 0xd5, 0x26, 0x62, 0x1d, 0x46, 0x9e, 0xd2, 0x5a, 0x37, 0x6d, 0xed, 0xa3, - 0x36, 0xb6, 0x18, 0x65, 0x07, 0xbd, 0xf3, 0xa2, 0xde, 0x83, 0x42, 0x49, 0x5c, 0xf5, 0xa7, 0x7e, - 0x85, 0xa2, 0xba, 0x7c, 0x11, 0x14, 0xda, 0x03, 0x33, 0xa2, 0xbb, 0x3d, 0x8d, 0x44, 0x17, 0x05, - 0xcb, 0x4c, 0x35, 0x81, 0x85, 0x52, 0xc8, 0xea, 0x2f, 0x12, 0x58, 0xe8, 0x6f, 0x23, 0x7d, 0x21, - 0x4b, 0xa7, 0x0a, 0xf9, 0x10, 0xc0, 0x28, 0xe1, 0xcd, 0x0e, 0x71, 0x71, 0x93, 0x44, 0x81, 0xe7, - 0xce, 0x14, 0xf8, 0xb2, 0xe0, 0x82, 0xf5, 0x01, 0x44, 0x34, 0x84, 0x45, 0xfd, 0x35, 0x9d, 0x44, - 0xb4, 0xce, 0x67, 0x49, 0xe2, 0x6b, 0xb0, 0x28, 0xd4, 0x39, 0x87, 0x2c, 0x56, 0x04, 0xd9, 0x62, - 0x75, 0x10, 0x12, 0x0d, 0xe3, 0x51, 0x7f, 0xce, 0x81, 0x8b, 0xc3, 0x9a, 0x2e, 0xac, 0x89, 0x47, - 0x4a, 0x94, 0xc5, 0x46, 0xf2, 0x91, 0xf2, 0xc4, 0x57, 0xae, 0x8d, 0x7a, 0x32, 0xc5, 0x5d, 0x25, - 0xf1, 0xa2, 0xf9, 0x18, 0x14, 0x53, 0x2a, 0x26, 0xce, 0x4f, 0x71, 0x81, 0x7b, 0x39, 0xf0, 0x95, - 0x62, 0x3d, 0xc3, 0x06, 0x65, 0x7a, 0xc3, 0xce, 0xd0, 0x2a, 0x38, 0x5b, 0xf9, 0x2e, 0x8d, 0x51, - 0x01, 0x8f, 0x06, 0x95, 0x8b, 0xaa, 0xe0, 0x9c, 0x95, 0xfb, 0x0c, 0x5c, 0x4e, 0x2f, 0xdc, 0xa0, - 0x74, 0x57, 0x02, 0x5f, 0xb9, 0x5c, 0xcd, 0x32, 0x42, 0xd9, 0xfe, 0x59, 0xd5, 0x97, 0x7f, 0x4e, - 0xd5, 0xf7, 0x63, 0x0e, 0x4c, 0xf2, 0x2b, 0xe3, 0x73, 0x78, 0xa1, 0xee, 0xa4, 0x5e, 0xa8, 0xeb, - 0x63, 0xb4, 0x60, 0x1e, 0x61, 0xe6, 0x7b, 0xf4, 0x8b, 0xbe, 0xf7, 0xe8, 0x8d, 0xb1, 0x91, 0x47, - 0xbf, 0x3e, 0x37, 0xc0, 0x85, 0x38, 0x00, 0x78, 0x3d, 0x3c, 0xed, 0xc5, 0x5d, 0x58, 0xe2, 0x6b, - 0x1f, 0x3f, 0x1d, 0xe3, 0x4b, 0x70, 0x6c, 0xa1, 0x52, 0x20, 0x27, 0x18, 0xc6, 0x73, 0x0e, 0xad, - 0x3d, 0xd2, 0x22, 0x06, 0xb3, 0x5d, 0x71, 0x84, 0xc4, 0xd6, 0xdb, 0x62, 0x1c, 0xc5, 0x16, 0x95, - 0x57, 0x8f, 0x8e, 0x4b, 0x13, 0x8f, 0x8f, 0x4b, 0x13, 0xbf, 0x1f, 0x97, 0x26, 0xbe, 0x09, 0x4a, - 0xd2, 0x51, 0x50, 0x92, 0x1e, 0x07, 0x25, 0xe9, 0x8f, 0xa0, 0x24, 0x7d, 0xf7, 0x67, 0x69, 0xe2, - 0xd3, 0x5c, 0x67, 0xed, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x83, 0xac, 0x71, 0x0f, 0x09, 0x13, - 0x00, 0x00, + // 1377 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcf, 0x6f, 0x1b, 0xc5, + 0x17, 0xcf, 0xda, 0x4e, 0x9a, 0x8e, 0xd3, 0xa6, 0xdf, 0x69, 0xd5, 0xba, 0xe9, 0xb7, 0xde, 0x68, + 0xa9, 0x50, 0x8b, 0xca, 0x2e, 0x09, 0xa1, 0xa2, 0x42, 0x80, 0x62, 0xa3, 0xd2, 0x8a, 0xba, 0x0d, + 0x53, 0x37, 0xe2, 0x97, 0x10, 0x93, 0xf5, 0xd4, 0x99, 0xc6, 0xfb, 0x43, 0x33, 0x63, 0x8b, 0x54, + 0x42, 0xe2, 0xc4, 0x15, 0x2e, 0x9c, 0x11, 0xfc, 0x13, 0x9c, 0x8b, 0x84, 0xd4, 0x63, 0x6f, 0x70, + 0xb2, 0xa8, 0xe1, 0x86, 0xf8, 0x07, 0x2a, 0x0e, 0x68, 0x66, 0xc7, 0xeb, 0x5d, 0xdb, 0xeb, 0xc4, + 0x6d, 0x5a, 0xc4, 0xcd, 0x9e, 0xf9, 0xbc, 0xcf, 0xe7, 0xbd, 0x37, 0x6f, 0xde, 0xcc, 0x2c, 0xb8, + 0xbc, 0xf3, 0x3a, 0xb7, 0x69, 0xe0, 0xec, 0xb4, 0xb7, 0x08, 0xf3, 0x89, 0x20, 0xdc, 0x09, 0x77, + 0x9a, 0x0e, 0x0e, 0x29, 0x77, 0x70, 0x5b, 0x04, 0xdc, 0xc5, 0x2d, 0xea, 0x37, 0x9d, 0xce, 0x8a, + 0xd3, 0x24, 0x3e, 0x61, 0x58, 0x90, 0x86, 0x1d, 0xb2, 0x40, 0x04, 0xf0, 0x42, 0x64, 0x6a, 0x0f, + 0x4c, 0xed, 0x70, 0xa7, 0x69, 0x4b, 0x53, 0x3b, 0x61, 0x6a, 0x77, 0x56, 0x96, 0x5e, 0x6e, 0x52, + 0xb1, 0xdd, 0xde, 0xb2, 0xdd, 0xc0, 0x73, 0x9a, 0x41, 0x33, 0x70, 0x14, 0xc3, 0x56, 0xfb, 0x8e, + 0xfa, 0xa7, 0xfe, 0xa8, 0x5f, 0x11, 0xf3, 0xd2, 0x9a, 0x76, 0x0a, 0x87, 0xd4, 0xc3, 0xee, 0x36, + 0xf5, 0x09, 0xdb, 0xed, 0xbb, 0xe5, 0x30, 0xc2, 0x83, 0x36, 0x73, 0xc9, 0xb0, 0x3f, 0x13, 0xad, + 0xb8, 0xe3, 0x11, 0x81, 0xc7, 0x44, 0xb1, 0xe4, 0x64, 0x59, 0xb1, 0xb6, 0x2f, 0xa8, 0x37, 0x2a, + 0x73, 0x69, 0x2f, 0x03, 0xee, 0x6e, 0x13, 0x0f, 0x8f, 0xd8, 0xbd, 0x9a, 0x65, 0xd7, 0x16, 0xb4, + 0xe5, 0x50, 0x5f, 0x70, 0xc1, 0x46, 0x8c, 0x2e, 0x66, 0x2e, 0xcf, 0x98, 0x58, 0xac, 0x6f, 0x0d, + 0x70, 0xa6, 0xca, 0x02, 0xce, 0x37, 0x09, 0xe3, 0x34, 0xf0, 0x6f, 0x6e, 0xdd, 0x25, 0xae, 0x40, + 0xe4, 0x0e, 0x61, 0xc4, 0x77, 0x09, 0x5c, 0x06, 0x85, 0x1d, 0xea, 0x37, 0x4a, 0xc6, 0xb2, 0x71, + 0xfe, 0x70, 0x65, 0xe1, 0x41, 0xd7, 0x9c, 0xe9, 0x75, 0xcd, 0xc2, 0x7b, 0xd4, 0x6f, 0x20, 0x35, + 0x23, 0x11, 0x3e, 0xf6, 0x48, 0x29, 0x97, 0x46, 0xdc, 0xc0, 0x1e, 0x41, 0x6a, 0x06, 0xae, 0x02, + 0x80, 0x43, 0xaa, 0x05, 0x4a, 0x79, 0x85, 0x83, 0x1a, 0x07, 0xd6, 0x37, 0xae, 0xe9, 0x19, 0x94, + 0x40, 0x59, 0xbf, 0xe4, 0xc0, 0xa9, 0xab, 0x01, 0xa3, 0xf7, 0x02, 0x5f, 0xe0, 0xd6, 0x46, 0xd0, + 0x58, 0xd7, 0xe5, 0x41, 0x18, 0xfc, 0x0c, 0xcc, 0xcb, 0xa5, 0x69, 0x60, 0x81, 0x95, 0x5f, 0xc5, + 0xd5, 0x57, 0x6c, 0x5d, 0x58, 0xc9, 0x4c, 0x0d, 0x4a, 0x4b, 0xa2, 0xed, 0xce, 0x8a, 0x1d, 0x05, + 0x57, 0x23, 0x02, 0x0f, 0xf4, 0x07, 0x63, 0x28, 0x66, 0x85, 0xdb, 0xa0, 0xc0, 0x43, 0xe2, 0xaa, + 0x98, 0x8a, 0xab, 0x57, 0xec, 0x7d, 0x97, 0xad, 0x9d, 0xe1, 0xf3, 0xad, 0x90, 0xb8, 0x83, 0xdc, + 0xc8, 0x7f, 0x48, 0x29, 0xc0, 0x10, 0xcc, 0x71, 0x81, 0x45, 0x9b, 0xab, 0xbc, 0x14, 0x57, 0xaf, + 0x1e, 0x80, 0x96, 0xe2, 0xab, 0x1c, 0xd5, 0x6a, 0x73, 0xd1, 0x7f, 0xa4, 0x75, 0xac, 0xaf, 0xf3, + 0x60, 0x39, 0xc3, 0xb2, 0x1a, 0xf8, 0x0d, 0x2a, 0x68, 0xe0, 0xc3, 0xab, 0xa0, 0x20, 0x76, 0x43, + 0xa2, 0x97, 0x7d, 0xad, 0xef, 0x78, 0x7d, 0x37, 0x24, 0x8f, 0xbb, 0xe6, 0xb9, 0xbd, 0xec, 0x25, + 0x0e, 0x29, 0x06, 0xb8, 0x19, 0x07, 0x18, 0x15, 0xc8, 0x5b, 0x69, 0xb7, 0x1e, 0x77, 0xcd, 0x89, + 0x05, 0x6b, 0xc7, 0x9c, 0xe9, 0x30, 0x60, 0x07, 0xc0, 0x16, 0xe6, 0xa2, 0xce, 0xb0, 0xcf, 0x23, + 0x4d, 0xea, 0x11, 0x9d, 0xc4, 0x97, 0xf6, 0x57, 0x0e, 0xd2, 0xa2, 0xb2, 0xa4, 0xfd, 0x81, 0xd7, + 0x47, 0xd8, 0xd0, 0x18, 0x05, 0xf8, 0x22, 0x98, 0x63, 0x04, 0xf3, 0xc0, 0x2f, 0x15, 0x54, 0x3c, + 0x71, 0x9a, 0x91, 0x1a, 0x45, 0x7a, 0x16, 0x5e, 0x00, 0x87, 0x3c, 0xc2, 0x39, 0x6e, 0x92, 0xd2, + 0xac, 0x02, 0x2e, 0x6a, 0xe0, 0xa1, 0x5a, 0x34, 0x8c, 0xfa, 0xf3, 0xd6, 0x1f, 0x06, 0x38, 0x93, + 0x91, 0xd1, 0xeb, 0x94, 0x0b, 0xf8, 0xc9, 0x48, 0xbd, 0xdb, 0xfb, 0x0b, 0x50, 0x5a, 0xab, 0x6a, + 0x3f, 0xa6, 0xb5, 0xe7, 0xfb, 0x23, 0x89, 0x5a, 0x6f, 0x82, 0x59, 0x2a, 0x88, 0x27, 0xd7, 0x27, + 0x7f, 0xbe, 0xb8, 0x5a, 0x79, 0xfa, 0x02, 0xac, 0x1c, 0xd1, 0x72, 0xb3, 0xd7, 0x24, 0x31, 0x8a, + 0xf8, 0xad, 0xbf, 0x73, 0x99, 0x61, 0xca, 0x0d, 0x01, 0xbf, 0x32, 0xc0, 0x51, 0xf5, 0xb7, 0x8e, + 0x59, 0x93, 0xc8, 0x1e, 0xa4, 0xa3, 0x9d, 0x66, 0xff, 0x4d, 0xe8, 0x65, 0x95, 0x93, 0xda, 0xad, + 0xa3, 0xb7, 0x52, 0x2a, 0x68, 0x48, 0x15, 0xae, 0x80, 0xa2, 0x47, 0x7d, 0x44, 0xc2, 0x16, 0x75, + 0x71, 0x54, 0xb7, 0xb3, 0x95, 0xc5, 0x5e, 0xd7, 0x2c, 0xd6, 0x06, 0xc3, 0x28, 0x89, 0x81, 0xaf, + 0x81, 0xa2, 0x87, 0x3f, 0x8f, 0x4d, 0xf2, 0xca, 0xe4, 0xb8, 0xd6, 0x2b, 0xd6, 0x06, 0x53, 0x28, + 0x89, 0x83, 0x77, 0x41, 0x59, 0x28, 0xd9, 0xea, 0xc6, 0xed, 0xdb, 0x82, 0xb6, 0xe8, 0x3d, 0x2c, + 0x0b, 0x6d, 0x83, 0x30, 0x97, 0xf8, 0x42, 0xd6, 0x4e, 0x41, 0x31, 0x59, 0xbd, 0xae, 0x59, 0xae, + 0x4f, 0x44, 0xa2, 0x3d, 0x98, 0xac, 0xfb, 0x79, 0x70, 0x76, 0x62, 0xc7, 0x80, 0x57, 0x00, 0x0c, + 0xb6, 0x38, 0x61, 0x1d, 0xd2, 0x78, 0x37, 0x3a, 0x26, 0x64, 0xbf, 0x96, 0x6b, 0x90, 0xaf, 0x9c, + 0x94, 0x5b, 0xe4, 0xe6, 0xc8, 0x2c, 0x1a, 0x63, 0x01, 0x5d, 0x70, 0x44, 0x6e, 0x9c, 0x28, 0xcb, + 0x54, 0x1f, 0x0d, 0xd3, 0xed, 0xca, 0xff, 0xf5, 0xba, 0xe6, 0x91, 0xeb, 0x49, 0x12, 0x94, 0xe6, + 0x84, 0xeb, 0x60, 0xd1, 0x6d, 0x33, 0x46, 0x7c, 0x31, 0x94, 0xf5, 0x53, 0x3a, 0xeb, 0x8b, 0xd5, + 0xf4, 0x34, 0x1a, 0xc6, 0x4b, 0x8a, 0x06, 0xe1, 0x94, 0x91, 0x46, 0x4c, 0x51, 0x48, 0x53, 0xbc, + 0x93, 0x9e, 0x46, 0xc3, 0x78, 0xe8, 0x01, 0x53, 0xb3, 0x66, 0xae, 0xe0, 0xac, 0xa2, 0x7c, 0xa1, + 0xd7, 0x35, 0xcd, 0xea, 0x64, 0x28, 0xda, 0x8b, 0xcb, 0xfa, 0x33, 0x07, 0x40, 0x8d, 0x08, 0x46, + 0x5d, 0xb5, 0x63, 0xd6, 0x52, 0x5d, 0x7a, 0x79, 0xa8, 0x4b, 0x1f, 0xd3, 0x48, 0x75, 0xf5, 0x49, + 0x74, 0x64, 0x0c, 0xe6, 0x02, 0xb5, 0x33, 0xf4, 0xba, 0xbc, 0x39, 0xc5, 0xf6, 0x8a, 0x4f, 0xcb, + 0x98, 0xb8, 0x02, 0x64, 0xf3, 0xd3, 0x5b, 0x4d, 0x13, 0xc3, 0x0f, 0x41, 0x21, 0x0c, 0x1a, 0xfd, + 0x33, 0xed, 0x8d, 0x29, 0x04, 0x36, 0x82, 0x06, 0x4f, 0xd1, 0xcf, 0xcb, 0x88, 0xe4, 0x28, 0x52, + 0x94, 0x90, 0x82, 0xf9, 0xfe, 0x75, 0x4e, 0xad, 0x56, 0x71, 0xf5, 0xed, 0x29, 0xe8, 0x91, 0x36, + 0x4d, 0x49, 0x2c, 0xc8, 0xce, 0xd8, 0x9f, 0x41, 0x31, 0xbd, 0xf5, 0x57, 0x0e, 0x2c, 0x68, 0x60, + 0xb4, 0x41, 0xfe, 0xe5, 0x7c, 0x47, 0xe7, 0xfa, 0x33, 0xcb, 0x77, 0x44, 0xff, 0x4c, 0xf3, 0x1d, + 0x49, 0x64, 0xe5, 0xfb, 0xbb, 0x1c, 0x80, 0xa3, 0x05, 0x06, 0x7d, 0x30, 0x17, 0xb5, 0xb6, 0x03, + 0x3e, 0x0e, 0xe2, 0x93, 0x5b, 0x77, 0x7e, 0xad, 0x22, 0xaf, 0xab, 0x9e, 0xd2, 0xbf, 0x31, 0xb8, + 0xd6, 0xc6, 0xd7, 0xc5, 0x5a, 0x3c, 0x83, 0x12, 0x28, 0x48, 0x40, 0x31, 0xb2, 0xde, 0xc4, 0xad, + 0x76, 0xff, 0x1a, 0x32, 0xf1, 0x94, 0xb6, 0xfb, 0x61, 0xdb, 0xef, 0xb7, 0xb1, 0x2f, 0xa8, 0xd8, + 0x1d, 0x9c, 0x17, 0xf5, 0x01, 0x15, 0x4a, 0xf2, 0x5a, 0x3f, 0x0c, 0x67, 0x28, 0xaa, 0xcb, 0xff, + 0x42, 0x86, 0xb6, 0xc1, 0x82, 0xee, 0x6e, 0x4f, 0x93, 0xa2, 0x13, 0x5a, 0x65, 0xa1, 0x9a, 0xe0, + 0x42, 0x29, 0x66, 0xeb, 0x27, 0x03, 0x1c, 0x1b, 0x6e, 0x23, 0x43, 0x2e, 0x1b, 0xfb, 0x72, 0xf9, + 0x1e, 0x80, 0x51, 0xc0, 0xeb, 0x1d, 0xc2, 0x70, 0x93, 0x44, 0x8e, 0xe7, 0x9e, 0xc8, 0xf1, 0xf8, + 0x9a, 0x59, 0x1f, 0x61, 0x44, 0x63, 0x54, 0xac, 0x9f, 0xd3, 0x41, 0x44, 0xeb, 0xfc, 0x24, 0x41, + 0x7c, 0x01, 0x8e, 0xeb, 0xec, 0x1c, 0x40, 0x14, 0x67, 0xb4, 0xd8, 0xf1, 0xea, 0x28, 0x25, 0x1a, + 0xa7, 0x63, 0xfd, 0x98, 0x03, 0x27, 0xc6, 0x35, 0x5d, 0x58, 0xd3, 0xcf, 0xc6, 0x28, 0x8a, 0xcb, + 0xc9, 0x67, 0xe3, 0xe3, 0xae, 0x79, 0x61, 0xe2, 0x9b, 0xa0, 0x4f, 0x98, 0x78, 0x63, 0x7e, 0x00, + 0x4a, 0xa9, 0x2c, 0x26, 0xce, 0x4f, 0x7d, 0x81, 0xfb, 0x7f, 0xaf, 0x6b, 0x96, 0xea, 0x19, 0x18, + 0x94, 0x69, 0x2d, 0x1f, 0x1a, 0x63, 0xaa, 0xe0, 0xc9, 0xca, 0xf7, 0xe4, 0x14, 0x15, 0x70, 0x7f, + 0x34, 0x73, 0x51, 0x15, 0x1c, 0x70, 0xe6, 0x3e, 0x06, 0xa7, 0xd3, 0x0b, 0x37, 0x9a, 0xba, 0xb3, + 0xbd, 0xae, 0x79, 0xba, 0x9a, 0x05, 0x42, 0xd9, 0xf6, 0x59, 0xd5, 0x97, 0x7f, 0x4e, 0xd5, 0xf7, + 0x7d, 0x0e, 0xcc, 0xaa, 0x2b, 0xe3, 0x73, 0xf8, 0x66, 0xb0, 0x99, 0xfa, 0x66, 0xb0, 0x36, 0x45, + 0x0b, 0x56, 0x1e, 0x66, 0x7e, 0x21, 0xf8, 0x74, 0xe8, 0x0b, 0xc1, 0xa5, 0xa9, 0x99, 0x27, 0x7f, + 0x0f, 0xb8, 0x0c, 0x0e, 0xc7, 0x0e, 0xc0, 0x8b, 0xf2, 0xb4, 0xd7, 0x77, 0x61, 0x43, 0xad, 0x7d, + 0xfc, 0x74, 0x8c, 0x2f, 0xc1, 0x31, 0xc2, 0xa2, 0xa0, 0x98, 0x50, 0x98, 0xce, 0x58, 0xa2, 0x39, + 0x69, 0x11, 0x57, 0x04, 0x4c, 0x1f, 0x21, 0x31, 0xfa, 0x96, 0x1e, 0x47, 0x31, 0xa2, 0x72, 0xee, + 0xc1, 0xa3, 0xf2, 0xcc, 0xc3, 0x47, 0xe5, 0x99, 0x5f, 0x1f, 0x95, 0x67, 0xbe, 0xec, 0x95, 0x8d, + 0x07, 0xbd, 0xb2, 0xf1, 0xb0, 0x57, 0x36, 0x7e, 0xeb, 0x95, 0x8d, 0x6f, 0x7e, 0x2f, 0xcf, 0x7c, + 0x94, 0xeb, 0xac, 0xfc, 0x13, 0x00, 0x00, 0xff, 0xff, 0xba, 0x11, 0x55, 0x3c, 0x9b, 0x14, 0x00, + 0x00, } diff --git a/pkg/apis/autoscaling/v1/generated.proto b/pkg/apis/autoscaling/v1/generated.proto index d0a3d85f8..ca972f28a 100644 --- a/pkg/apis/autoscaling/v1/generated.proto +++ b/pkg/apis/autoscaling/v1/generated.proto @@ -59,6 +59,30 @@ message HorizontalPodAutoscaler { 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. diff --git a/pkg/apis/autoscaling/v1/types.generated.go b/pkg/apis/autoscaling/v1/types.generated.go index 36fc8b7bc..fc01e4d95 100644 --- a/pkg/apis/autoscaling/v1/types.generated.go +++ b/pkg/apis/autoscaling/v1/types.generated.go @@ -4278,6 +4278,423 @@ func (x *MetricStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } +func (x HorizontalPodAutoscalerConditionType) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x)) + } +} + +func (x *HorizontalPodAutoscalerConditionType) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + *((*string)(x)) = r.DecodeString() + } +} + +func (x *HorizontalPodAutoscalerCondition) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [5]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[2] = true + yyq2[3] = x.Reason != "" + yyq2[4] = x.Message != "" + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(5) + } else { + yynn2 = 2 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + x.Type.CodecEncodeSelf(e) + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("type")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + x.Type.CodecEncodeSelf(e) + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yysf7 := &x.Status + yysf7.CodecEncodeSelf(e) + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("status")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yysf8 := &x.Status + yysf8.CodecEncodeSelf(e) + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yy10 := &x.LastTransitionTime + yym11 := z.EncBinary() + _ = yym11 + if false { + } else if z.HasExtensions() && z.EncExt(yy10) { + } else if yym11 { + z.EncBinaryMarshal(yy10) + } else if !yym11 && z.IsJSONHandle() { + z.EncJSONMarshal(yy10) + } else { + z.EncFallback(yy10) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("lastTransitionTime")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy12 := &x.LastTransitionTime + yym13 := z.EncBinary() + _ = yym13 + if false { + } else if z.HasExtensions() && z.EncExt(yy12) { + } else if yym13 { + z.EncBinaryMarshal(yy12) + } else if !yym13 && z.IsJSONHandle() { + z.EncJSONMarshal(yy12) + } else { + z.EncFallback(yy12) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[3] { + yym15 := z.EncBinary() + _ = yym15 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Reason)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[3] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("reason")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Reason)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[4] { + yym18 := z.EncBinary() + _ = yym18 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Message)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[4] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("message")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym19 := z.EncBinary() + _ = yym19 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Message)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *HorizontalPodAutoscalerCondition) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *HorizontalPodAutoscalerCondition) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "type": + if r.TryDecodeAsNil() { + x.Type = "" + } else { + yyv4 := &x.Type + yyv4.CodecDecodeSelf(d) + } + case "status": + if r.TryDecodeAsNil() { + x.Status = "" + } else { + yyv5 := &x.Status + yyv5.CodecDecodeSelf(d) + } + case "lastTransitionTime": + if r.TryDecodeAsNil() { + x.LastTransitionTime = pkg1_v1.Time{} + } else { + yyv6 := &x.LastTransitionTime + yym7 := z.DecBinary() + _ = yym7 + if false { + } else if z.HasExtensions() && z.DecExt(yyv6) { + } else if yym7 { + z.DecBinaryUnmarshal(yyv6) + } else if !yym7 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv6) + } else { + z.DecFallback(yyv6, false) + } + } + case "reason": + if r.TryDecodeAsNil() { + x.Reason = "" + } else { + yyv8 := &x.Reason + yym9 := z.DecBinary() + _ = yym9 + if false { + } else { + *((*string)(yyv8)) = r.DecodeString() + } + } + case "message": + if r.TryDecodeAsNil() { + x.Message = "" + } else { + yyv10 := &x.Message + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + *((*string)(yyv10)) = r.DecodeString() + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *HorizontalPodAutoscalerCondition) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj12 int + var yyb12 bool + var yyhl12 bool = l >= 0 + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Type = "" + } else { + yyv13 := &x.Type + yyv13.CodecDecodeSelf(d) + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Status = "" + } else { + yyv14 := &x.Status + yyv14.CodecDecodeSelf(d) + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.LastTransitionTime = pkg1_v1.Time{} + } else { + yyv15 := &x.LastTransitionTime + yym16 := z.DecBinary() + _ = yym16 + if false { + } else if z.HasExtensions() && z.DecExt(yyv15) { + } else if yym16 { + z.DecBinaryUnmarshal(yyv15) + } else if !yym16 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv15) + } else { + z.DecFallback(yyv15, false) + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Reason = "" + } else { + yyv17 := &x.Reason + yym18 := z.DecBinary() + _ = yym18 + if false { + } else { + *((*string)(yyv17)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Message = "" + } else { + yyv19 := &x.Message + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + *((*string)(yyv19)) = r.DecodeString() + } + } + for { + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj12-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + func (x *ObjectMetricStatus) CodecEncodeSelf(e *codec1978.Encoder) { var h codecSelfer1234 z, r := codec1978.GenHelperEncoder(e) diff --git a/pkg/apis/autoscaling/v1/types.go b/pkg/apis/autoscaling/v1/types.go index 47fd31e27..c4fc9aff8 100644 --- a/pkg/apis/autoscaling/v1/types.go +++ b/pkg/apis/autoscaling/v1/types.go @@ -251,6 +251,42 @@ type MetricStatus struct { Resource *ResourceMetricStatus `json:"resource,omitempty" protobuf:"bytes,4,opt,name=resource"` } +// HorizontalPodAutoscalerConditionType are the valid conditions of +// a HorizontalPodAutoscaler. +type HorizontalPodAutoscalerConditionType string + +var ( + // ScalingActive indicates that the HPA controller is able to scale if necessary: + // it's correctly configured, can fetch the desired metrics, and isn't disabled. + ScalingActive HorizontalPodAutoscalerConditionType = "ScalingActive" + // AbleToScale indicates a lack of transient issues which prevent scaling from occuring, + // such as being in a backoff window, or being unable to access/update the target scale. + AbleToScale HorizontalPodAutoscalerConditionType = "AbleToScale" + // ScalingLimited indicates that the calculated scale based on metrics would be above or + // below the range for the HPA, and has thus been capped. + ScalingLimited HorizontalPodAutoscalerConditionType = "ScalingLimited" +) + +// HorizontalPodAutoscalerCondition describes the state of +// a HorizontalPodAutoscaler at a certain point. +type HorizontalPodAutoscalerCondition struct { + // type describes the current condition + Type HorizontalPodAutoscalerConditionType `json:"type" protobuf:"bytes,1,name=type"` + // status is the status of the condition (True, False, Unknown) + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,name=status"` + // lastTransitionTime is the last time the condition transitioned from + // one status to another + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // reason is the reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // message is a human-readable explanation containing details about + // the transition + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` +} + // ObjectMetricStatus indicates the current value of a metric describing a // kubernetes object (for example, hits-per-second on an Ingress object). type ObjectMetricStatus struct { diff --git a/pkg/apis/autoscaling/v1/types_swagger_doc_generated.go b/pkg/apis/autoscaling/v1/types_swagger_doc_generated.go index 01d205f87..61eca80fb 100644 --- a/pkg/apis/autoscaling/v1/types_swagger_doc_generated.go +++ b/pkg/apis/autoscaling/v1/types_swagger_doc_generated.go @@ -49,6 +49,19 @@ func (HorizontalPodAutoscaler) SwaggerDoc() map[string]string { return map_HorizontalPodAutoscaler } +var map_HorizontalPodAutoscalerCondition = map[string]string{ + "": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", + "type": "type describes the current condition", + "status": "status is the status of the condition (True, False, Unknown)", + "lastTransitionTime": "lastTransitionTime is the last time the condition transitioned from one status to another", + "reason": "reason is the reason for the condition's last transition.", + "message": "message is a human-readable explanation containing details about the transition", +} + +func (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string { + return map_HorizontalPodAutoscalerCondition +} + var map_HorizontalPodAutoscalerList = map[string]string{ "": "list of horizontal pod autoscaler objects.", "metadata": "Standard list metadata.", diff --git a/pkg/apis/autoscaling/v1/zz_generated.conversion.go b/pkg/apis/autoscaling/v1/zz_generated.conversion.go index cd87d268b..12c064849 100644 --- a/pkg/apis/autoscaling/v1/zz_generated.conversion.go +++ b/pkg/apis/autoscaling/v1/zz_generated.conversion.go @@ -43,6 +43,8 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_autoscaling_CrossVersionObjectReference_To_v1_CrossVersionObjectReference, Convert_v1_HorizontalPodAutoscaler_To_autoscaling_HorizontalPodAutoscaler, Convert_autoscaling_HorizontalPodAutoscaler_To_v1_HorizontalPodAutoscaler, + Convert_v1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition, + Convert_autoscaling_HorizontalPodAutoscalerCondition_To_v1_HorizontalPodAutoscalerCondition, Convert_v1_HorizontalPodAutoscalerList_To_autoscaling_HorizontalPodAutoscalerList, Convert_autoscaling_HorizontalPodAutoscalerList_To_v1_HorizontalPodAutoscalerList, Convert_v1_HorizontalPodAutoscalerSpec_To_autoscaling_HorizontalPodAutoscalerSpec, @@ -120,6 +122,34 @@ func autoConvert_autoscaling_HorizontalPodAutoscaler_To_v1_HorizontalPodAutoscal return nil } +func autoConvert_v1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition(in *HorizontalPodAutoscalerCondition, out *autoscaling.HorizontalPodAutoscalerCondition, s conversion.Scope) error { + out.Type = autoscaling.HorizontalPodAutoscalerConditionType(in.Type) + out.Status = autoscaling.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition is an autogenerated conversion function. +func Convert_v1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition(in *HorizontalPodAutoscalerCondition, out *autoscaling.HorizontalPodAutoscalerCondition, s conversion.Scope) error { + return autoConvert_v1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition(in, out, s) +} + +func autoConvert_autoscaling_HorizontalPodAutoscalerCondition_To_v1_HorizontalPodAutoscalerCondition(in *autoscaling.HorizontalPodAutoscalerCondition, out *HorizontalPodAutoscalerCondition, s conversion.Scope) error { + out.Type = HorizontalPodAutoscalerConditionType(in.Type) + out.Status = api_v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_autoscaling_HorizontalPodAutoscalerCondition_To_v1_HorizontalPodAutoscalerCondition is an autogenerated conversion function. +func Convert_autoscaling_HorizontalPodAutoscalerCondition_To_v1_HorizontalPodAutoscalerCondition(in *autoscaling.HorizontalPodAutoscalerCondition, out *HorizontalPodAutoscalerCondition, s conversion.Scope) error { + return autoConvert_autoscaling_HorizontalPodAutoscalerCondition_To_v1_HorizontalPodAutoscalerCondition(in, out, s) +} + func autoConvert_v1_HorizontalPodAutoscalerList_To_autoscaling_HorizontalPodAutoscalerList(in *HorizontalPodAutoscalerList, out *autoscaling.HorizontalPodAutoscalerList, s conversion.Scope) error { out.ListMeta = in.ListMeta if in.Items != nil { @@ -197,6 +227,7 @@ func autoConvert_autoscaling_HorizontalPodAutoscalerStatus_To_v1_HorizontalPodAu out.CurrentReplicas = in.CurrentReplicas out.DesiredReplicas = in.DesiredReplicas // WARNING: in.CurrentMetrics requires manual conversion: does not exist in peer-type + // WARNING: in.Conditions requires manual conversion: does not exist in peer-type return nil } diff --git a/pkg/apis/autoscaling/v1/zz_generated.deepcopy.go b/pkg/apis/autoscaling/v1/zz_generated.deepcopy.go index db7191747..94fdc46d0 100644 --- a/pkg/apis/autoscaling/v1/zz_generated.deepcopy.go +++ b/pkg/apis/autoscaling/v1/zz_generated.deepcopy.go @@ -38,6 +38,7 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { return scheme.AddGeneratedDeepCopyFuncs( conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_CrossVersionObjectReference, InType: reflect.TypeOf(&CrossVersionObjectReference{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_HorizontalPodAutoscaler, InType: reflect.TypeOf(&HorizontalPodAutoscaler{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_HorizontalPodAutoscalerCondition, InType: reflect.TypeOf(&HorizontalPodAutoscalerCondition{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_HorizontalPodAutoscalerList, InType: reflect.TypeOf(&HorizontalPodAutoscalerList{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_HorizontalPodAutoscalerSpec, InType: reflect.TypeOf(&HorizontalPodAutoscalerSpec{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_HorizontalPodAutoscalerStatus, InType: reflect.TypeOf(&HorizontalPodAutoscalerStatus{})}, @@ -86,6 +87,17 @@ func DeepCopy_v1_HorizontalPodAutoscaler(in interface{}, out interface{}, c *con } } +// DeepCopy_v1_HorizontalPodAutoscalerCondition is an autogenerated deepcopy function. +func DeepCopy_v1_HorizontalPodAutoscalerCondition(in interface{}, out interface{}, c *conversion.Cloner) error { + { + in := in.(*HorizontalPodAutoscalerCondition) + out := out.(*HorizontalPodAutoscalerCondition) + *out = *in + out.LastTransitionTime = in.LastTransitionTime.DeepCopy() + return nil + } +} + // DeepCopy_v1_HorizontalPodAutoscalerList is an autogenerated deepcopy function. func DeepCopy_v1_HorizontalPodAutoscalerList(in interface{}, out interface{}, c *conversion.Cloner) error { { diff --git a/pkg/apis/autoscaling/v2alpha1/generated.pb.go b/pkg/apis/autoscaling/v2alpha1/generated.pb.go index 086117d5b..9d07f077d 100644 --- a/pkg/apis/autoscaling/v2alpha1/generated.pb.go +++ b/pkg/apis/autoscaling/v2alpha1/generated.pb.go @@ -27,6 +27,7 @@ limitations under the License. It has these top-level messages: CrossVersionObjectReference HorizontalPodAutoscaler + HorizontalPodAutoscalerCondition HorizontalPodAutoscalerList HorizontalPodAutoscalerSpec HorizontalPodAutoscalerStatus @@ -76,59 +77,66 @@ func (m *HorizontalPodAutoscaler) Reset() { *m = HorizontalPo func (*HorizontalPodAutoscaler) ProtoMessage() {} func (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (m *HorizontalPodAutoscalerCondition) Reset() { *m = HorizontalPodAutoscalerCondition{} } +func (*HorizontalPodAutoscalerCondition) ProtoMessage() {} +func (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{2} +} + func (m *HorizontalPodAutoscalerList) Reset() { *m = HorizontalPodAutoscalerList{} } func (*HorizontalPodAutoscalerList) ProtoMessage() {} func (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{2} + return fileDescriptorGenerated, []int{3} } func (m *HorizontalPodAutoscalerSpec) Reset() { *m = HorizontalPodAutoscalerSpec{} } func (*HorizontalPodAutoscalerSpec) ProtoMessage() {} func (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{3} + return fileDescriptorGenerated, []int{4} } func (m *HorizontalPodAutoscalerStatus) Reset() { *m = HorizontalPodAutoscalerStatus{} } func (*HorizontalPodAutoscalerStatus) ProtoMessage() {} func (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{4} + return fileDescriptorGenerated, []int{5} } func (m *MetricSpec) Reset() { *m = MetricSpec{} } func (*MetricSpec) ProtoMessage() {} -func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *MetricStatus) Reset() { *m = MetricStatus{} } func (*MetricStatus) ProtoMessage() {} -func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } func (m *ObjectMetricSource) Reset() { *m = ObjectMetricSource{} } func (*ObjectMetricSource) ProtoMessage() {} -func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *ObjectMetricStatus) Reset() { *m = ObjectMetricStatus{} } func (*ObjectMetricStatus) ProtoMessage() {} -func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *PodsMetricSource) Reset() { *m = PodsMetricSource{} } func (*PodsMetricSource) ProtoMessage() {} -func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *PodsMetricStatus) Reset() { *m = PodsMetricStatus{} } func (*PodsMetricStatus) ProtoMessage() {} -func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func (m *ResourceMetricSource) Reset() { *m = ResourceMetricSource{} } func (*ResourceMetricSource) ProtoMessage() {} -func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } +func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } func (m *ResourceMetricStatus) Reset() { *m = ResourceMetricStatus{} } func (*ResourceMetricStatus) ProtoMessage() {} -func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } +func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } func init() { proto.RegisterType((*CrossVersionObjectReference)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v2alpha1.CrossVersionObjectReference") proto.RegisterType((*HorizontalPodAutoscaler)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscaler") + proto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerCondition") proto.RegisterType((*HorizontalPodAutoscalerList)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerList") proto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerSpec") proto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), "k8s.io.client-go.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerStatus") @@ -213,6 +221,48 @@ func (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n4, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + return i, nil +} + func (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -231,11 +281,11 @@ func (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n4, err := m.ListMeta.MarshalTo(dAtA[i:]) + n5, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n4 + i += n5 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -269,11 +319,11 @@ func (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleTargetRef.Size())) - n5, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) + n6, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n5 + i += n6 if m.MinReplicas != nil { dAtA[i] = 0x10 i++ @@ -321,11 +371,11 @@ func (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastScaleTime.Size())) - n6, err := m.LastScaleTime.MarshalTo(dAtA[i:]) + n7, err := m.LastScaleTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n7 } dAtA[i] = 0x18 i++ @@ -345,6 +395,18 @@ func (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) { i += n } } + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } return i, nil } @@ -371,32 +433,32 @@ func (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) - n7, err := m.Object.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - } - if m.Pods != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) - n8, err := m.Pods.MarshalTo(dAtA[i:]) + n8, err := m.Object.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n8 } - if m.Resource != nil { - dAtA[i] = 0x22 + if m.Pods != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) - n9, err := m.Resource.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) + n9, err := m.Pods.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n9 } + if m.Resource != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) + n10, err := m.Resource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + } return i, nil } @@ -423,32 +485,32 @@ func (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) - n10, err := m.Object.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n10 - } - if m.Pods != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) - n11, err := m.Pods.MarshalTo(dAtA[i:]) + n11, err := m.Object.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n11 } - if m.Resource != nil { - dAtA[i] = 0x22 + if m.Pods != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) - n12, err := m.Resource.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) + n12, err := m.Pods.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n12 } + if m.Resource != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) + n13, err := m.Resource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + } return i, nil } @@ -470,11 +532,11 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n13, err := m.Target.MarshalTo(dAtA[i:]) + n14, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n13 + i += n14 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -482,11 +544,11 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetValue.Size())) - n14, err := m.TargetValue.MarshalTo(dAtA[i:]) + n15, err := m.TargetValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n14 + i += n15 return i, nil } @@ -508,11 +570,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n15, err := m.Target.MarshalTo(dAtA[i:]) + n16, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n16 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -520,11 +582,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) - n16, err := m.CurrentValue.MarshalTo(dAtA[i:]) + n17, err := m.CurrentValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n17 return i, nil } @@ -550,11 +612,11 @@ func (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n17, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n18, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n18 return i, nil } @@ -580,11 +642,11 @@ func (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n18, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n19, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n19 return i, nil } @@ -616,11 +678,11 @@ func (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n19, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n20, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n20 } return i, nil } @@ -652,11 +714,11 @@ func (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n20, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n21, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n21 return i, nil } @@ -711,6 +773,22 @@ func (m *HorizontalPodAutoscaler) Size() (n int) { return n } +func (m *HorizontalPodAutoscalerCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *HorizontalPodAutoscalerList) Size() (n int) { var l int _ = l @@ -761,6 +839,12 @@ func (m *HorizontalPodAutoscalerStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -913,6 +997,20 @@ func (this *HorizontalPodAutoscaler) String() string { }, "") return s } +func (this *HorizontalPodAutoscalerCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} func (this *HorizontalPodAutoscalerList) String() string { if this == nil { return "nil" @@ -947,6 +1045,7 @@ func (this *HorizontalPodAutoscalerStatus) String() string { `CurrentReplicas:` + fmt.Sprintf("%v", this.CurrentReplicas) + `,`, `DesiredReplicas:` + fmt.Sprintf("%v", this.DesiredReplicas) + `,`, `CurrentMetrics:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.CurrentMetrics), "MetricStatus", "MetricStatus", 1), `&`, ``, 1) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "HorizontalPodAutoscalerCondition", "HorizontalPodAutoscalerCondition", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -1332,6 +1431,202 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { } return nil } +func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = k8s_io_kubernetes_pkg_api_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -1744,6 +2039,37 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, HorizontalPodAutoscalerCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -2988,80 +3314,88 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1196 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x57, 0x5b, 0x6f, 0x1b, 0xc5, - 0x17, 0x8f, 0x2f, 0x49, 0xf3, 0x9f, 0x4d, 0x93, 0xfc, 0x27, 0x55, 0xea, 0x26, 0xd4, 0x8e, 0xf6, - 0xa9, 0x54, 0xb0, 0x4b, 0x4c, 0x41, 0x54, 0x08, 0xa1, 0xd8, 0x5c, 0x5a, 0x11, 0xa7, 0x61, 0x1a, - 0x2a, 0x04, 0x48, 0x30, 0x59, 0x4f, 0x9c, 0x21, 0xde, 0x8b, 0x76, 0x66, 0x2d, 0x12, 0xa9, 0x12, - 0x1f, 0x80, 0x07, 0x5e, 0xf8, 0x08, 0x48, 0x7c, 0x03, 0x9e, 0x41, 0x42, 0xca, 0x63, 0x79, 0xe3, - 0xc9, 0x22, 0xee, 0x1b, 0x1f, 0xa1, 0x12, 0x17, 0xed, 0xcc, 0x78, 0x2f, 0x5e, 0x6f, 0x88, 0x43, - 0x5a, 0xc1, 0x9b, 0x67, 0xe6, 0x9c, 0xdf, 0xef, 0x9c, 0xf3, 0x3b, 0x3e, 0x33, 0x0b, 0xde, 0x3c, - 0x78, 0x8d, 0x19, 0xd4, 0x35, 0x0f, 0x82, 0x5d, 0xe2, 0x3b, 0x84, 0x13, 0x66, 0x7a, 0x07, 0x1d, - 0x13, 0x7b, 0x94, 0x99, 0x38, 0xe0, 0x2e, 0xb3, 0x70, 0x97, 0x3a, 0x1d, 0xb3, 0x57, 0xc7, 0x5d, - 0x6f, 0x1f, 0xaf, 0x9b, 0x1d, 0xe2, 0x10, 0x1f, 0x73, 0xd2, 0x36, 0x3c, 0xdf, 0xe5, 0x2e, 0x34, - 0x25, 0x80, 0x11, 0x03, 0x18, 0xde, 0x41, 0xc7, 0x08, 0x01, 0x8c, 0x04, 0x80, 0x31, 0x04, 0x58, - 0x79, 0xb1, 0x43, 0xf9, 0x7e, 0xb0, 0x6b, 0x58, 0xae, 0x6d, 0x76, 0xdc, 0x8e, 0x6b, 0x0a, 0x9c, - 0xdd, 0x60, 0x4f, 0xac, 0xc4, 0x42, 0xfc, 0x92, 0xf8, 0x2b, 0xb7, 0x54, 0x80, 0xd8, 0xa3, 0x36, - 0xb6, 0xf6, 0xa9, 0x43, 0xfc, 0xc3, 0x61, 0x88, 0xa6, 0x4f, 0x98, 0x1b, 0xf8, 0x16, 0x19, 0x8d, - 0xea, 0x54, 0x2f, 0x66, 0xda, 0x84, 0x63, 0xb3, 0x97, 0xc9, 0x65, 0xc5, 0xcc, 0xf3, 0xf2, 0x03, - 0x87, 0x53, 0x3b, 0x4b, 0xf3, 0xea, 0xdf, 0x39, 0x30, 0x6b, 0x9f, 0xd8, 0x38, 0xe3, 0xf7, 0x72, - 0x9e, 0x5f, 0xc0, 0x69, 0xd7, 0xa4, 0x0e, 0x67, 0xdc, 0xcf, 0x38, 0xbd, 0x90, 0x2b, 0xd5, 0xb8, - 0x5c, 0x6e, 0x9f, 0x55, 0xd8, 0x8c, 0xab, 0xfe, 0x4d, 0x01, 0xac, 0x36, 0x7d, 0x97, 0xb1, 0x07, - 0xc4, 0x67, 0xd4, 0x75, 0xee, 0xed, 0x7e, 0x4e, 0x2c, 0x8e, 0xc8, 0x1e, 0xf1, 0x89, 0x63, 0x11, - 0xb8, 0x06, 0xca, 0x07, 0xd4, 0x69, 0x57, 0x0a, 0x6b, 0x85, 0x1b, 0xff, 0x6b, 0xcc, 0x1d, 0xf7, - 0x6b, 0x53, 0x83, 0x7e, 0xad, 0xfc, 0x1e, 0x75, 0xda, 0x48, 0x9c, 0x84, 0x16, 0x0e, 0xb6, 0x49, - 0xa5, 0x98, 0xb6, 0xd8, 0xc2, 0x36, 0x41, 0xe2, 0x04, 0xd6, 0x01, 0xc0, 0x1e, 0x55, 0x04, 0x95, - 0x92, 0xb0, 0x83, 0xca, 0x0e, 0x6c, 0x6c, 0xdf, 0x55, 0x27, 0x28, 0x61, 0xa5, 0x3f, 0x2e, 0x82, - 0xab, 0x77, 0x5c, 0x9f, 0x1e, 0xb9, 0x0e, 0xc7, 0xdd, 0x6d, 0xb7, 0xbd, 0xa1, 0xf2, 0x20, 0x3e, - 0xfc, 0x0c, 0xcc, 0x86, 0xaa, 0xb6, 0x31, 0xc7, 0x22, 0x2e, 0xad, 0xfe, 0x92, 0xa1, 0x3a, 0x33, - 0x59, 0xe4, 0xb8, 0x37, 0x43, 0x6b, 0xa3, 0xb7, 0x6e, 0xc8, 0xe4, 0x5a, 0x84, 0xe3, 0x98, 0x3f, - 0xde, 0x43, 0x11, 0x2a, 0x74, 0x40, 0x99, 0x79, 0xc4, 0x12, 0x39, 0x69, 0xf5, 0x4d, 0x63, 0xc2, - 0xbe, 0x37, 0x72, 0x22, 0xbf, 0xef, 0x11, 0x2b, 0xae, 0x50, 0xb8, 0x42, 0x82, 0x07, 0xf6, 0xc0, - 0x0c, 0xe3, 0x98, 0x07, 0x4c, 0x54, 0x47, 0xab, 0x6f, 0x5d, 0x18, 0xa3, 0x40, 0x6d, 0xcc, 0x2b, - 0xce, 0x19, 0xb9, 0x46, 0x8a, 0x4d, 0xff, 0xad, 0x00, 0x56, 0x73, 0x3c, 0x37, 0x29, 0xe3, 0xf0, - 0x93, 0x4c, 0xa5, 0x8d, 0xb3, 0x55, 0x3a, 0xf4, 0x16, 0x75, 0x5e, 0x54, 0xcc, 0xb3, 0xc3, 0x9d, - 0x44, 0x95, 0x6d, 0x30, 0x4d, 0x39, 0xb1, 0x59, 0xa5, 0xb8, 0x56, 0xba, 0xa1, 0xd5, 0xef, 0x5c, - 0x54, 0xd2, 0x8d, 0xcb, 0x8a, 0x74, 0xfa, 0x6e, 0x08, 0x8f, 0x24, 0x8b, 0xfe, 0x47, 0x31, 0x37, - 0xd9, 0x50, 0x0a, 0xf8, 0x55, 0x01, 0xcc, 0x8b, 0xe5, 0x0e, 0xf6, 0x3b, 0x24, 0xfc, 0x0f, 0xa8, - 0x9c, 0x27, 0xd7, 0xff, 0x94, 0x7f, 0x54, 0x63, 0x59, 0x05, 0x37, 0x7f, 0x3f, 0xc5, 0x85, 0x46, - 0xb8, 0xe1, 0x3a, 0xd0, 0x6c, 0xea, 0x20, 0xe2, 0x75, 0xa9, 0x85, 0x99, 0x68, 0xc5, 0xe9, 0xc6, - 0xc2, 0xa0, 0x5f, 0xd3, 0x5a, 0xf1, 0x36, 0x4a, 0xda, 0xc0, 0x57, 0x80, 0x66, 0xe3, 0x2f, 0x22, - 0x97, 0x92, 0x70, 0x59, 0x52, 0x7c, 0x5a, 0x2b, 0x3e, 0x42, 0x49, 0x3b, 0xb8, 0x07, 0x2e, 0xd9, - 0x84, 0xfb, 0xd4, 0x62, 0x95, 0xb2, 0x50, 0xe2, 0xf5, 0x89, 0x13, 0x6e, 0x09, 0x7f, 0xd1, 0xdf, - 0x0b, 0x8a, 0xef, 0x92, 0xdc, 0x63, 0x68, 0x08, 0xae, 0xff, 0x5c, 0x02, 0xd7, 0x4f, 0xed, 0x53, - 0xf8, 0x0e, 0x80, 0xee, 0x2e, 0x23, 0x7e, 0x8f, 0xb4, 0xdf, 0x95, 0x83, 0x2a, 0x9c, 0x18, 0xa1, - 0x0a, 0xa5, 0xc6, 0xf2, 0xa0, 0x5f, 0x83, 0xf7, 0x32, 0xa7, 0x68, 0x8c, 0x07, 0xb4, 0xc0, 0xe5, - 0x2e, 0x66, 0x5c, 0x56, 0x98, 0xaa, 0xe1, 0xa4, 0xd5, 0x6f, 0x9e, 0xad, 0x79, 0x43, 0x8f, 0xc6, - 0xff, 0x07, 0xfd, 0xda, 0xe5, 0xcd, 0x24, 0x08, 0x4a, 0x63, 0xc2, 0x0d, 0xb0, 0x60, 0x05, 0xbe, - 0x4f, 0x1c, 0x3e, 0x52, 0xf1, 0xab, 0xaa, 0x02, 0x0b, 0xcd, 0xf4, 0x31, 0x1a, 0xb5, 0x0f, 0x21, - 0xda, 0x84, 0x51, 0x9f, 0xb4, 0x23, 0x88, 0x72, 0x1a, 0xe2, 0xad, 0xf4, 0x31, 0x1a, 0xb5, 0x87, - 0x0f, 0xc1, 0xbc, 0x42, 0x55, 0xf5, 0xae, 0x4c, 0x0b, 0x0d, 0xdf, 0x38, 0xaf, 0x86, 0x72, 0x62, - 0x44, 0x5d, 0xda, 0x4c, 0x81, 0xa3, 0x11, 0x32, 0xfd, 0xf7, 0x22, 0x00, 0xb1, 0xf8, 0xf0, 0x16, - 0x28, 0xf3, 0x43, 0x8f, 0xa8, 0xeb, 0x62, 0x6d, 0x38, 0xea, 0x76, 0x0e, 0x3d, 0xf2, 0xa4, 0x5f, - 0x5b, 0x54, 0x96, 0xe2, 0x1e, 0x0f, 0xf7, 0x90, 0xb0, 0x86, 0x1d, 0x30, 0xe3, 0x8a, 0x7f, 0x89, - 0xd2, 0xa9, 0x39, 0x71, 0xec, 0xd1, 0x14, 0x8f, 0xe0, 0x1b, 0x20, 0x9c, 0x77, 0xea, 0xcf, 0xa7, - 0xe0, 0xe1, 0xa7, 0xa0, 0xec, 0xb9, 0xed, 0xe1, 0x94, 0xdd, 0x98, 0x98, 0x66, 0xdb, 0x6d, 0xb3, - 0x14, 0xc9, 0x6c, 0x98, 0x5d, 0xb8, 0x8b, 0x04, 0x30, 0x74, 0xc1, 0xec, 0xf0, 0x9d, 0x22, 0x94, - 0xd4, 0xea, 0x6f, 0x4f, 0x4c, 0x82, 0x14, 0x40, 0x8a, 0x68, 0x2e, 0x9c, 0xa1, 0xc3, 0x13, 0x14, - 0x91, 0xe8, 0x7f, 0x16, 0xc1, 0x5c, 0x52, 0xb8, 0x7f, 0x87, 0x02, 0xb2, 0x87, 0x9e, 0xb2, 0x02, - 0x92, 0xe4, 0x19, 0x28, 0x20, 0x89, 0xf2, 0x14, 0xf8, 0xb6, 0x08, 0x60, 0xb6, 0xfd, 0x20, 0x07, - 0x33, 0x5c, 0xcc, 0xf2, 0xa7, 0x72, 0x89, 0x44, 0x17, 0xba, 0xba, 0x2f, 0x14, 0x57, 0xf8, 0xd4, - 0x92, 0xd3, 0x76, 0x2b, 0x7e, 0x92, 0x45, 0x4f, 0x9d, 0x56, 0x74, 0x82, 0x12, 0x56, 0x90, 0x00, - 0x4d, 0x7a, 0x3f, 0xc0, 0xdd, 0x80, 0x28, 0x65, 0x4e, 0xbd, 0xe7, 0x8d, 0x61, 0xf2, 0xc6, 0xfb, - 0x01, 0x76, 0x38, 0xe5, 0x87, 0xf1, 0x2d, 0xb3, 0x13, 0x43, 0xa1, 0x24, 0xae, 0xfe, 0xdd, 0x68, - 0x9d, 0x64, 0xbf, 0xfe, 0x77, 0xea, 0xb4, 0x0f, 0xe6, 0xd4, 0xf0, 0xfb, 0x27, 0x85, 0xba, 0xa2, - 0x58, 0xe6, 0x9a, 0x09, 0x2c, 0x94, 0x42, 0xd6, 0x7f, 0x2c, 0x80, 0xc5, 0xd1, 0x51, 0x33, 0x12, - 0x72, 0xe1, 0x4c, 0x21, 0x1f, 0x01, 0x28, 0x13, 0xde, 0xe8, 0x11, 0x1f, 0x77, 0x88, 0x0c, 0xbc, - 0x78, 0xae, 0xc0, 0x57, 0x14, 0x17, 0xdc, 0xc9, 0x20, 0xa2, 0x31, 0x2c, 0xfa, 0x4f, 0xe9, 0x24, - 0xa4, 0xda, 0xe7, 0x49, 0xe2, 0x21, 0x58, 0x52, 0xd5, 0xb9, 0x80, 0x2c, 0x56, 0x15, 0xd9, 0x52, - 0x33, 0x0b, 0x89, 0xc6, 0xf1, 0xe8, 0xdf, 0x17, 0xc1, 0x95, 0x71, 0x23, 0x19, 0xb6, 0xd4, 0x87, - 0x8f, 0xcc, 0xe2, 0x76, 0xf2, 0xc3, 0xe7, 0x49, 0xbf, 0xf6, 0xfc, 0x69, 0x5f, 0x70, 0xd1, 0x84, - 0x49, 0x7c, 0x25, 0x7d, 0x08, 0x2a, 0xa9, 0x2a, 0x7e, 0xc0, 0x69, 0x97, 0x1e, 0xc9, 0x17, 0x90, - 0x7c, 0xfc, 0x3d, 0x37, 0xe8, 0xd7, 0x2a, 0x3b, 0x39, 0x36, 0x28, 0xd7, 0x1b, 0xf6, 0xc6, 0x76, - 0xc1, 0xf9, 0xda, 0x77, 0x79, 0x82, 0x0e, 0xf8, 0x21, 0x5b, 0x39, 0xd9, 0x05, 0x17, 0x5c, 0xb9, - 0x8f, 0xc1, 0xb5, 0xb4, 0x70, 0xd9, 0xd2, 0x5d, 0x1f, 0xf4, 0x6b, 0xd7, 0x9a, 0x79, 0x46, 0x28, - 0xdf, 0x3f, 0xaf, 0xfb, 0x4a, 0xcf, 0xa6, 0xfb, 0x1a, 0x37, 0x8f, 0x4f, 0xaa, 0x53, 0x8f, 0x4e, - 0xaa, 0x53, 0xbf, 0x9c, 0x54, 0xa7, 0xbe, 0x1c, 0x54, 0x0b, 0xc7, 0x83, 0x6a, 0xe1, 0xd1, 0xa0, - 0x5a, 0xf8, 0x75, 0x50, 0x2d, 0x7c, 0xfd, 0xb8, 0x3a, 0xf5, 0xd1, 0xec, 0x70, 0x10, 0xfe, 0x15, - 0x00, 0x00, 0xff, 0xff, 0x08, 0xe1, 0xc3, 0x12, 0xe0, 0x11, 0x00, 0x00, + // 1327 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x57, 0x5b, 0x6f, 0x1b, 0x45, + 0x1b, 0xce, 0x3a, 0x4e, 0x9a, 0x6f, 0x9c, 0x26, 0xfd, 0xa6, 0x55, 0xeb, 0xa6, 0xd4, 0x8e, 0x56, + 0x08, 0xb5, 0x15, 0xec, 0x52, 0x53, 0x10, 0x15, 0x02, 0x14, 0x9b, 0x43, 0x2b, 0xe2, 0x1e, 0xa6, + 0xa1, 0x42, 0x80, 0x04, 0x93, 0xf5, 0xd4, 0x19, 0xe2, 0x3d, 0x68, 0x67, 0x6c, 0x91, 0x4a, 0x95, + 0xb8, 0xe1, 0x0e, 0x09, 0x6e, 0xf8, 0x09, 0x48, 0xfc, 0x03, 0xae, 0x41, 0x42, 0xea, 0x65, 0x2f, + 0xe1, 0xc6, 0xa2, 0xee, 0x1d, 0x3f, 0x21, 0x12, 0x07, 0xcd, 0x61, 0x4f, 0x5e, 0x6f, 0x1a, 0x87, + 0xb4, 0x82, 0x3b, 0x7b, 0xe6, 0x7d, 0x9f, 0xe7, 0x3d, 0x3c, 0xf3, 0xce, 0x2c, 0x78, 0x73, 0xfb, + 0x55, 0x66, 0x51, 0xdf, 0xde, 0xee, 0x6f, 0x92, 0xd0, 0x23, 0x9c, 0x30, 0x3b, 0xd8, 0xee, 0xda, + 0x38, 0xa0, 0xcc, 0xc6, 0x7d, 0xee, 0x33, 0x07, 0xf7, 0xa8, 0xd7, 0xb5, 0x07, 0x0d, 0xdc, 0x0b, + 0xb6, 0xf0, 0x45, 0xbb, 0x4b, 0x3c, 0x12, 0x62, 0x4e, 0x3a, 0x56, 0x10, 0xfa, 0xdc, 0x87, 0xb6, + 0x02, 0xb0, 0x12, 0x00, 0x2b, 0xd8, 0xee, 0x5a, 0x02, 0xc0, 0x4a, 0x01, 0x58, 0x11, 0xc0, 0xca, + 0x0b, 0x5d, 0xca, 0xb7, 0xfa, 0x9b, 0x96, 0xe3, 0xbb, 0x76, 0xd7, 0xef, 0xfa, 0xb6, 0xc4, 0xd9, + 0xec, 0xdf, 0x91, 0xff, 0xe4, 0x1f, 0xf9, 0x4b, 0xe1, 0xaf, 0x5c, 0xd2, 0x01, 0xe2, 0x80, 0xba, + 0xd8, 0xd9, 0xa2, 0x1e, 0x09, 0x77, 0xa2, 0x10, 0xed, 0x90, 0x30, 0xbf, 0x1f, 0x3a, 0x64, 0x3c, + 0xaa, 0x3d, 0xbd, 0x98, 0xed, 0x12, 0x8e, 0xed, 0x41, 0x2e, 0x97, 0x15, 0xbb, 0xc8, 0x2b, 0xec, + 0x7b, 0x9c, 0xba, 0x79, 0x9a, 0x57, 0x1e, 0xe7, 0xc0, 0x9c, 0x2d, 0xe2, 0xe2, 0x9c, 0xdf, 0x4b, + 0x45, 0x7e, 0x7d, 0x4e, 0x7b, 0x36, 0xf5, 0x38, 0xe3, 0x61, 0xce, 0xe9, 0xf9, 0xc2, 0x56, 0x4d, + 0xca, 0xe5, 0xf2, 0x7e, 0x1b, 0x9b, 0x73, 0x35, 0xbf, 0x35, 0xc0, 0x99, 0x56, 0xe8, 0x33, 0x76, + 0x9b, 0x84, 0x8c, 0xfa, 0xde, 0xf5, 0xcd, 0xcf, 0x88, 0xc3, 0x11, 0xb9, 0x43, 0x42, 0xe2, 0x39, + 0x04, 0xae, 0x82, 0xf2, 0x36, 0xf5, 0x3a, 0x55, 0x63, 0xd5, 0x38, 0xf7, 0xbf, 0xe6, 0xe2, 0xfd, + 0x61, 0x7d, 0x66, 0x34, 0xac, 0x97, 0xdf, 0xa3, 0x5e, 0x07, 0xc9, 0x1d, 0x61, 0xe1, 0x61, 0x97, + 0x54, 0x4b, 0x59, 0x8b, 0x6b, 0xd8, 0x25, 0x48, 0xee, 0xc0, 0x06, 0x00, 0x38, 0xa0, 0x9a, 0xa0, + 0x3a, 0x2b, 0xed, 0xa0, 0xb6, 0x03, 0x6b, 0x37, 0xae, 0xea, 0x1d, 0x94, 0xb2, 0x32, 0x1f, 0x95, + 0xc0, 0xa9, 0x2b, 0x7e, 0x48, 0xef, 0xfa, 0x1e, 0xc7, 0xbd, 0x1b, 0x7e, 0x67, 0x4d, 0xe7, 0x41, + 0x42, 0xf8, 0x29, 0x58, 0x10, 0x5d, 0xed, 0x60, 0x8e, 0x65, 0x5c, 0x95, 0xc6, 0x8b, 0x96, 0x56, + 0x66, 0xba, 0xc8, 0x89, 0x36, 0x85, 0xb5, 0x35, 0xb8, 0x68, 0xa9, 0xe4, 0xda, 0x84, 0xe3, 0x84, + 0x3f, 0x59, 0x43, 0x31, 0x2a, 0xf4, 0x40, 0x99, 0x05, 0xc4, 0x91, 0x39, 0x55, 0x1a, 0xeb, 0xd6, + 0x94, 0xba, 0xb7, 0x0a, 0x22, 0xbf, 0x15, 0x10, 0x27, 0xa9, 0x90, 0xf8, 0x87, 0x24, 0x0f, 0x1c, + 0x80, 0x79, 0xc6, 0x31, 0xef, 0x33, 0x59, 0x9d, 0x4a, 0xe3, 0xda, 0xa1, 0x31, 0x4a, 0xd4, 0xe6, + 0x92, 0xe6, 0x9c, 0x57, 0xff, 0x91, 0x66, 0x33, 0xbf, 0x9e, 0x05, 0xab, 0x05, 0x9e, 0x2d, 0xdf, + 0xeb, 0x50, 0x4e, 0x7d, 0x0f, 0x5e, 0x01, 0x65, 0xbe, 0x13, 0x10, 0x2d, 0x81, 0x4b, 0x51, 0xf8, + 0x1b, 0x3b, 0x01, 0xd9, 0x1d, 0xd6, 0x9f, 0x7d, 0x9c, 0xbf, 0xb0, 0x43, 0x12, 0x01, 0xde, 0x8e, + 0xd3, 0x54, 0x62, 0x79, 0x23, 0x1b, 0xd6, 0xee, 0xb0, 0xbe, 0xa7, 0xee, 0xad, 0x18, 0x33, 0x9b, + 0x06, 0x1c, 0x00, 0xd8, 0xc3, 0x8c, 0x6f, 0x84, 0xd8, 0x63, 0x8a, 0x93, 0xba, 0x44, 0x97, 0xf2, + 0xc2, 0xfe, 0xa4, 0x21, 0x3c, 0x9a, 0x2b, 0x3a, 0x1e, 0xb8, 0x9e, 0x43, 0x43, 0x13, 0x18, 0xe0, + 0x73, 0x60, 0x3e, 0x24, 0x98, 0xf9, 0x5e, 0xb5, 0x2c, 0xf3, 0x89, 0xcb, 0x8c, 0xe4, 0x2a, 0xd2, + 0xbb, 0xf0, 0x3c, 0x38, 0xe2, 0x12, 0xc6, 0x70, 0x97, 0x54, 0xe7, 0xa4, 0xe1, 0xb2, 0x36, 0x3c, + 0xd2, 0x56, 0xcb, 0x28, 0xda, 0x37, 0x7f, 0x37, 0xc0, 0x99, 0x82, 0x8a, 0xae, 0x53, 0xc6, 0xe1, + 0xc7, 0x39, 0xed, 0x5b, 0xfb, 0x4b, 0x50, 0x78, 0x4b, 0xe5, 0x1f, 0xd3, 0xdc, 0x0b, 0xd1, 0x4a, + 0x4a, 0xf7, 0x2e, 0x98, 0xa3, 0x9c, 0xb8, 0xa2, 0x3f, 0xb3, 0xe7, 0x2a, 0x8d, 0x2b, 0x87, 0x25, + 0xc3, 0xe6, 0x51, 0x4d, 0x3a, 0x77, 0x55, 0xc0, 0x23, 0xc5, 0x62, 0xfe, 0x59, 0x2a, 0x4c, 0x56, + 0x1c, 0x0e, 0xf8, 0x95, 0x01, 0x96, 0xe4, 0xdf, 0x0d, 0x1c, 0x76, 0x89, 0x98, 0x4a, 0x3a, 0xe7, + 0xe9, 0x4f, 0xe4, 0x1e, 0x33, 0xae, 0x79, 0x52, 0x07, 0xb7, 0x74, 0x2b, 0xc3, 0x85, 0xc6, 0xb8, + 0xe1, 0x45, 0x50, 0x71, 0xa9, 0x87, 0x48, 0xd0, 0xa3, 0x0e, 0x56, 0x1a, 0x9e, 0x6b, 0x2e, 0x8f, + 0x86, 0xf5, 0x4a, 0x3b, 0x59, 0x46, 0x69, 0x1b, 0xf8, 0x32, 0xa8, 0xb8, 0xf8, 0xf3, 0xd8, 0x65, + 0x56, 0xba, 0x1c, 0xd7, 0x7c, 0x95, 0x76, 0xb2, 0x85, 0xd2, 0x76, 0xf0, 0x8e, 0x10, 0x0c, 0x0f, + 0xa9, 0xc3, 0xaa, 0x65, 0xd9, 0x89, 0xd7, 0xa6, 0x4e, 0xb8, 0x2d, 0xfd, 0xe5, 0xc4, 0x49, 0xa9, + 0x4d, 0x62, 0xa2, 0x08, 0xdc, 0xfc, 0xb5, 0x0c, 0xce, 0xee, 0x39, 0x39, 0xe0, 0x3b, 0x00, 0xfa, + 0x9b, 0x8c, 0x84, 0x03, 0xd2, 0x79, 0x57, 0x5d, 0x1d, 0x62, 0x86, 0x8b, 0x2e, 0xcc, 0x36, 0x4f, + 0x8a, 0xa3, 0x72, 0x3d, 0xb7, 0x8b, 0x26, 0x78, 0x40, 0x07, 0x1c, 0x15, 0x07, 0x48, 0x55, 0x98, + 0xea, 0xeb, 0x62, 0xba, 0xd3, 0xf9, 0xff, 0xd1, 0xb0, 0x7e, 0x74, 0x3d, 0x0d, 0x82, 0xb2, 0x98, + 0x70, 0x0d, 0x2c, 0x3b, 0xfd, 0x30, 0x24, 0x1e, 0x1f, 0xab, 0xf8, 0x29, 0x5d, 0x81, 0xe5, 0x56, + 0x76, 0x1b, 0x8d, 0xdb, 0x0b, 0x88, 0x0e, 0x61, 0x34, 0x24, 0x9d, 0x18, 0xa2, 0x9c, 0x85, 0x78, + 0x2b, 0xbb, 0x8d, 0xc6, 0xed, 0xe1, 0x3d, 0xb0, 0xa4, 0x51, 0x75, 0xbd, 0xab, 0x73, 0xb2, 0x87, + 0xaf, 0x1f, 0xb4, 0x87, 0x6a, 0x86, 0xc7, 0x2a, 0x6d, 0x65, 0xc0, 0xd1, 0x18, 0x19, 0xfc, 0xd2, + 0x00, 0xc0, 0x89, 0x06, 0x25, 0xab, 0xce, 0x4b, 0xee, 0x9b, 0x87, 0x75, 0x92, 0xe3, 0x11, 0x9c, + 0xdc, 0xa0, 0xf1, 0x12, 0x43, 0x29, 0x62, 0xf3, 0x8f, 0x12, 0x00, 0x89, 0x08, 0xe1, 0xa5, 0xcc, + 0x2d, 0xb2, 0x3a, 0x76, 0x8b, 0x1c, 0xd3, 0x96, 0xf2, 0x85, 0x97, 0xba, 0x31, 0xba, 0x60, 0xde, + 0x97, 0xa7, 0x55, 0xeb, 0xa5, 0x35, 0x75, 0x1e, 0xf1, 0xfd, 0x1e, 0xc3, 0x37, 0x81, 0x18, 0xd1, + 0x7a, 0x08, 0x68, 0x78, 0xf8, 0x09, 0x28, 0x07, 0x7e, 0x27, 0xba, 0x7f, 0xd7, 0xa6, 0xa6, 0xb9, + 0xe1, 0x77, 0x58, 0x86, 0x64, 0x41, 0x64, 0x27, 0x56, 0x91, 0x04, 0x86, 0x3e, 0x58, 0x88, 0x5e, + 0xb0, 0x52, 0x51, 0x95, 0xc6, 0xdb, 0x53, 0x93, 0x20, 0x0d, 0x90, 0x21, 0x5a, 0x14, 0xb3, 0x3c, + 0xda, 0x41, 0x31, 0x89, 0xf9, 0x57, 0x09, 0x2c, 0xa6, 0x05, 0xf4, 0xef, 0xe8, 0x80, 0xd2, 0xf2, + 0x13, 0xee, 0x80, 0x22, 0x79, 0x0a, 0x1d, 0x50, 0x44, 0x45, 0x1d, 0xf8, 0xae, 0x04, 0x60, 0x5e, + 0x7e, 0x90, 0x83, 0x79, 0x2e, 0xef, 0x94, 0x27, 0x72, 0x99, 0xc5, 0x6f, 0x10, 0x7d, 0x6f, 0x69, + 0x2e, 0xf1, 0x08, 0x57, 0x53, 0xff, 0x5a, 0xf2, 0x58, 0x8f, 0x8f, 0x70, 0x3b, 0xde, 0x41, 0x29, + 0x2b, 0x48, 0x40, 0x45, 0x79, 0xdf, 0xc6, 0xbd, 0x7e, 0xf4, 0xa0, 0xda, 0xf3, 0xbd, 0x61, 0x45, + 0xc9, 0x5b, 0x37, 0xfb, 0xd8, 0xe3, 0x94, 0xef, 0x24, 0xb7, 0xdd, 0x46, 0x02, 0x85, 0xd2, 0xb8, + 0xe6, 0xf7, 0xe3, 0x75, 0x52, 0x7a, 0xfd, 0xef, 0xd4, 0x69, 0x0b, 0x2c, 0xea, 0x21, 0xfc, 0x4f, + 0x0a, 0x75, 0x42, 0xb3, 0x2c, 0xb6, 0x52, 0x58, 0x28, 0x83, 0x6c, 0xfe, 0x64, 0x80, 0x63, 0xe3, + 0xa3, 0x66, 0x2c, 0x64, 0x63, 0x5f, 0x21, 0xdf, 0x05, 0x50, 0x25, 0xbc, 0x36, 0x20, 0x21, 0xee, + 0x12, 0x15, 0x78, 0xe9, 0x40, 0x81, 0xc7, 0xcf, 0xe6, 0x8d, 0x1c, 0x22, 0x9a, 0xc0, 0x62, 0xfe, + 0x9c, 0x4d, 0x42, 0x75, 0xfb, 0x20, 0x49, 0xdc, 0x03, 0xc7, 0x75, 0x75, 0x0e, 0x21, 0x8b, 0x33, + 0x9a, 0xec, 0x78, 0x2b, 0x0f, 0x89, 0x26, 0xf1, 0x98, 0x3f, 0x94, 0xc0, 0x89, 0x49, 0x23, 0x19, + 0xb6, 0xf5, 0x27, 0xb1, 0xca, 0xe2, 0x72, 0xfa, 0x93, 0x78, 0x77, 0x58, 0x3f, 0xbf, 0xe7, 0x37, + 0x4e, 0x04, 0x98, 0xfa, 0x7e, 0xfe, 0x00, 0x54, 0x33, 0x55, 0x7c, 0x9f, 0xd3, 0x1e, 0xbd, 0xab, + 0x5e, 0x62, 0xea, 0x11, 0xfa, 0xcc, 0x68, 0x58, 0xaf, 0x6e, 0x14, 0xd8, 0xa0, 0x42, 0x6f, 0xf1, + 0xe1, 0x34, 0x41, 0x05, 0x07, 0x93, 0xef, 0xc9, 0x29, 0x14, 0xf0, 0x63, 0xbe, 0x72, 0x4a, 0x05, + 0x87, 0x5c, 0xb9, 0x8f, 0xc0, 0xe9, 0x6c, 0xe3, 0xf2, 0xa5, 0x3b, 0x3b, 0x1a, 0xd6, 0x4f, 0xb7, + 0x8a, 0x8c, 0x50, 0xb1, 0x7f, 0x91, 0xfa, 0x66, 0x9f, 0x8e, 0xfa, 0x9a, 0x17, 0xee, 0x3f, 0xac, + 0xcd, 0x3c, 0x78, 0x58, 0x9b, 0xf9, 0xe5, 0x61, 0x6d, 0xe6, 0x8b, 0x51, 0xcd, 0xb8, 0x3f, 0xaa, + 0x19, 0x0f, 0x46, 0x35, 0xe3, 0xb7, 0x51, 0xcd, 0xf8, 0xe6, 0x51, 0x6d, 0xe6, 0xc3, 0x85, 0x68, + 0x10, 0xfe, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x06, 0xf6, 0x81, 0x48, 0xfa, 0x13, 0x00, 0x00, } diff --git a/pkg/apis/autoscaling/v2alpha1/generated.proto b/pkg/apis/autoscaling/v2alpha1/generated.proto index ec5bf3bf9..8404ef7ee 100644 --- a/pkg/apis/autoscaling/v2alpha1/generated.proto +++ b/pkg/apis/autoscaling/v2alpha1/generated.proto @@ -64,6 +64,30 @@ message HorizontalPodAutoscaler { 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; +} + // HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects. message HorizontalPodAutoscalerList { // metadata is the standard list metadata. @@ -121,6 +145,10 @@ message HorizontalPodAutoscalerStatus { // currentMetrics is the last read state of the metrics used by this autoscaler. repeated MetricStatus currentMetrics = 5; + + // conditions is the set of conditions required for this autoscaler to scale its target, + // and indicates whether or not those conditions are met. + repeated HorizontalPodAutoscalerCondition conditions = 6; } // MetricSpec specifies how to scale based on a single metric diff --git a/pkg/apis/autoscaling/v2alpha1/types.generated.go b/pkg/apis/autoscaling/v2alpha1/types.generated.go index c43b05aae..5f984e4f5 100644 --- a/pkg/apis/autoscaling/v2alpha1/types.generated.go +++ b/pkg/apis/autoscaling/v2alpha1/types.generated.go @@ -1916,16 +1916,16 @@ func (x *HorizontalPodAutoscalerStatus) CodecEncodeSelf(e *codec1978.Encoder) { } else { yysep2 := !z.EncBinary() yy2arr2 := z.EncBasicHandle().StructToArray - var yyq2 [5]bool + var yyq2 [6]bool _, _, _ = yysep2, yyq2, yy2arr2 const yyr2 bool = false yyq2[0] = x.ObservedGeneration != nil yyq2[1] = x.LastScaleTime != nil var yynn2 int if yyr2 || yy2arr2 { - r.EncodeArrayStart(5) + r.EncodeArrayStart(6) } else { - yynn2 = 3 + yynn2 = 4 for _, b := range yyq2 { if b { yynn2++ @@ -2077,6 +2077,33 @@ func (x *HorizontalPodAutoscalerStatus) CodecEncodeSelf(e *codec1978.Encoder) { } } } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.Conditions == nil { + r.EncodeNil() + } else { + yym21 := z.EncBinary() + _ = yym21 + if false { + } else { + h.encSliceHorizontalPodAutoscalerCondition(([]HorizontalPodAutoscalerCondition)(x.Conditions), e) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("conditions")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Conditions == nil { + r.EncodeNil() + } else { + yym22 := z.EncBinary() + _ = yym22 + if false { + } else { + h.encSliceHorizontalPodAutoscalerCondition(([]HorizontalPodAutoscalerCondition)(x.Conditions), e) + } + } + } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { @@ -2211,6 +2238,18 @@ func (x *HorizontalPodAutoscalerStatus) codecDecodeSelfFromMap(l int, d *codec19 h.decSliceMetricStatus((*[]MetricStatus)(yyv12), d) } } + case "conditions": + if r.TryDecodeAsNil() { + x.Conditions = nil + } else { + yyv14 := &x.Conditions + yym15 := z.DecBinary() + _ = yym15 + if false { + } else { + h.decSliceHorizontalPodAutoscalerCondition((*[]HorizontalPodAutoscalerCondition)(yyv14), d) + } + } default: z.DecStructFieldNotFound(-1, yys3) } // end switch yys3 @@ -2222,16 +2261,16 @@ func (x *HorizontalPodAutoscalerStatus) codecDecodeSelfFromArray(l int, d *codec var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj14 int - var yyb14 bool - var yyhl14 bool = l >= 0 - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l + var yyj16 int + var yyb16 bool + var yyhl16 bool = l >= 0 + yyj16++ + if yyhl16 { + yyb16 = yyj16 > l } else { - yyb14 = r.CheckBreak() + yyb16 = r.CheckBreak() } - if yyb14 { + if yyb16 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -2244,20 +2283,20 @@ func (x *HorizontalPodAutoscalerStatus) codecDecodeSelfFromArray(l int, d *codec if x.ObservedGeneration == nil { x.ObservedGeneration = new(int64) } - yym16 := z.DecBinary() - _ = yym16 + yym18 := z.DecBinary() + _ = yym18 if false { } else { *((*int64)(x.ObservedGeneration)) = int64(r.DecodeInt(64)) } } - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l + yyj16++ + if yyhl16 { + yyb16 = yyj16 > l } else { - yyb14 = r.CheckBreak() + yyb16 = r.CheckBreak() } - if yyb14 { + if yyb16 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -2270,25 +2309,25 @@ func (x *HorizontalPodAutoscalerStatus) codecDecodeSelfFromArray(l int, d *codec if x.LastScaleTime == nil { x.LastScaleTime = new(pkg3_v1.Time) } - yym18 := z.DecBinary() - _ = yym18 + yym20 := z.DecBinary() + _ = yym20 if false { } else if z.HasExtensions() && z.DecExt(x.LastScaleTime) { - } else if yym18 { + } else if yym20 { z.DecBinaryUnmarshal(x.LastScaleTime) - } else if !yym18 && z.IsJSONHandle() { + } else if !yym20 && z.IsJSONHandle() { z.DecJSONUnmarshal(x.LastScaleTime) } else { z.DecFallback(x.LastScaleTime, false) } } - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l + yyj16++ + if yyhl16 { + yyb16 = yyj16 > l } else { - yyb14 = r.CheckBreak() + yyb16 = r.CheckBreak() } - if yyb14 { + if yyb16 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -2296,29 +2335,7 @@ func (x *HorizontalPodAutoscalerStatus) codecDecodeSelfFromArray(l int, d *codec if r.TryDecodeAsNil() { x.CurrentReplicas = 0 } else { - yyv19 := &x.CurrentReplicas - yym20 := z.DecBinary() - _ = yym20 - if false { - } else { - *((*int32)(yyv19)) = int32(r.DecodeInt(32)) - } - } - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l - } else { - yyb14 = r.CheckBreak() - } - if yyb14 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.DesiredReplicas = 0 - } else { - yyv21 := &x.DesiredReplicas + yyv21 := &x.CurrentReplicas yym22 := z.DecBinary() _ = yym22 if false { @@ -2326,13 +2343,35 @@ func (x *HorizontalPodAutoscalerStatus) codecDecodeSelfFromArray(l int, d *codec *((*int32)(yyv21)) = int32(r.DecodeInt(32)) } } - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l + yyj16++ + if yyhl16 { + yyb16 = yyj16 > l } else { - yyb14 = r.CheckBreak() + yyb16 = r.CheckBreak() } - if yyb14 { + if yyb16 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.DesiredReplicas = 0 + } else { + yyv23 := &x.DesiredReplicas + yym24 := z.DecBinary() + _ = yym24 + if false { + } else { + *((*int32)(yyv23)) = int32(r.DecodeInt(32)) + } + } + yyj16++ + if yyhl16 { + yyb16 = yyj16 > l + } else { + yyb16 = r.CheckBreak() + } + if yyb16 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -2340,26 +2379,465 @@ func (x *HorizontalPodAutoscalerStatus) codecDecodeSelfFromArray(l int, d *codec if r.TryDecodeAsNil() { x.CurrentMetrics = nil } else { - yyv23 := &x.CurrentMetrics - yym24 := z.DecBinary() - _ = yym24 + yyv25 := &x.CurrentMetrics + yym26 := z.DecBinary() + _ = yym26 if false { } else { - h.decSliceMetricStatus((*[]MetricStatus)(yyv23), d) + h.decSliceMetricStatus((*[]MetricStatus)(yyv25), d) + } + } + yyj16++ + if yyhl16 { + yyb16 = yyj16 > l + } else { + yyb16 = r.CheckBreak() + } + if yyb16 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Conditions = nil + } else { + yyv27 := &x.Conditions + yym28 := z.DecBinary() + _ = yym28 + if false { + } else { + h.decSliceHorizontalPodAutoscalerCondition((*[]HorizontalPodAutoscalerCondition)(yyv27), d) } } for { - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l + yyj16++ + if yyhl16 { + yyb16 = yyj16 > l } else { - yyb14 = r.CheckBreak() + yyb16 = r.CheckBreak() } - if yyb14 { + if yyb16 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj14-1, "") + z.DecStructFieldNotFound(yyj16-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x HorizontalPodAutoscalerConditionType) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x)) + } +} + +func (x *HorizontalPodAutoscalerConditionType) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + *((*string)(x)) = r.DecodeString() + } +} + +func (x *HorizontalPodAutoscalerCondition) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [5]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[2] = true + yyq2[3] = x.Reason != "" + yyq2[4] = x.Message != "" + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(5) + } else { + yynn2 = 2 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + x.Type.CodecEncodeSelf(e) + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("type")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + x.Type.CodecEncodeSelf(e) + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yysf7 := &x.Status + yysf7.CodecEncodeSelf(e) + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("status")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yysf8 := &x.Status + yysf8.CodecEncodeSelf(e) + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yy10 := &x.LastTransitionTime + yym11 := z.EncBinary() + _ = yym11 + if false { + } else if z.HasExtensions() && z.EncExt(yy10) { + } else if yym11 { + z.EncBinaryMarshal(yy10) + } else if !yym11 && z.IsJSONHandle() { + z.EncJSONMarshal(yy10) + } else { + z.EncFallback(yy10) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("lastTransitionTime")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy12 := &x.LastTransitionTime + yym13 := z.EncBinary() + _ = yym13 + if false { + } else if z.HasExtensions() && z.EncExt(yy12) { + } else if yym13 { + z.EncBinaryMarshal(yy12) + } else if !yym13 && z.IsJSONHandle() { + z.EncJSONMarshal(yy12) + } else { + z.EncFallback(yy12) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[3] { + yym15 := z.EncBinary() + _ = yym15 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Reason)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[3] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("reason")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Reason)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[4] { + yym18 := z.EncBinary() + _ = yym18 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Message)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[4] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("message")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym19 := z.EncBinary() + _ = yym19 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Message)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *HorizontalPodAutoscalerCondition) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *HorizontalPodAutoscalerCondition) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "type": + if r.TryDecodeAsNil() { + x.Type = "" + } else { + yyv4 := &x.Type + yyv4.CodecDecodeSelf(d) + } + case "status": + if r.TryDecodeAsNil() { + x.Status = "" + } else { + yyv5 := &x.Status + yyv5.CodecDecodeSelf(d) + } + case "lastTransitionTime": + if r.TryDecodeAsNil() { + x.LastTransitionTime = pkg3_v1.Time{} + } else { + yyv6 := &x.LastTransitionTime + yym7 := z.DecBinary() + _ = yym7 + if false { + } else if z.HasExtensions() && z.DecExt(yyv6) { + } else if yym7 { + z.DecBinaryUnmarshal(yyv6) + } else if !yym7 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv6) + } else { + z.DecFallback(yyv6, false) + } + } + case "reason": + if r.TryDecodeAsNil() { + x.Reason = "" + } else { + yyv8 := &x.Reason + yym9 := z.DecBinary() + _ = yym9 + if false { + } else { + *((*string)(yyv8)) = r.DecodeString() + } + } + case "message": + if r.TryDecodeAsNil() { + x.Message = "" + } else { + yyv10 := &x.Message + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + *((*string)(yyv10)) = r.DecodeString() + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *HorizontalPodAutoscalerCondition) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj12 int + var yyb12 bool + var yyhl12 bool = l >= 0 + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Type = "" + } else { + yyv13 := &x.Type + yyv13.CodecDecodeSelf(d) + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Status = "" + } else { + yyv14 := &x.Status + yyv14.CodecDecodeSelf(d) + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.LastTransitionTime = pkg3_v1.Time{} + } else { + yyv15 := &x.LastTransitionTime + yym16 := z.DecBinary() + _ = yym16 + if false { + } else if z.HasExtensions() && z.DecExt(yyv15) { + } else if yym16 { + z.DecBinaryUnmarshal(yyv15) + } else if !yym16 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv15) + } else { + z.DecFallback(yyv15, false) + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Reason = "" + } else { + yyv17 := &x.Reason + yym18 := z.DecBinary() + _ = yym18 + if false { + } else { + *((*string)(yyv17)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Message = "" + } else { + yyv19 := &x.Message + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + *((*string)(yyv19)) = r.DecodeString() + } + } + for { + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj12-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -4501,6 +4979,125 @@ func (x codecSelfer1234) decSliceMetricStatus(v *[]MetricStatus, d *codec1978.De } } +func (x codecSelfer1234) encSliceHorizontalPodAutoscalerCondition(v []HorizontalPodAutoscalerCondition, e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + r.EncodeArrayStart(len(v)) + for _, yyv1 := range v { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy2 := &yyv1 + yy2.CodecEncodeSelf(e) + } + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x codecSelfer1234) decSliceHorizontalPodAutoscalerCondition(v *[]HorizontalPodAutoscalerCondition, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + + yyv1 := *v + yyh1, yyl1 := z.DecSliceHelperStart() + var yyc1 bool + _ = yyc1 + if yyl1 == 0 { + if yyv1 == nil { + yyv1 = []HorizontalPodAutoscalerCondition{} + yyc1 = true + } else if len(yyv1) != 0 { + yyv1 = yyv1[:0] + yyc1 = true + } + } else if yyl1 > 0 { + var yyrr1, yyrl1 int + var yyrt1 bool + _, _ = yyrl1, yyrt1 + yyrr1 = yyl1 // len(yyv1) + if yyl1 > cap(yyv1) { + + yyrg1 := len(yyv1) > 0 + yyv21 := yyv1 + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 88) + if yyrt1 { + if yyrl1 <= cap(yyv1) { + yyv1 = yyv1[:yyrl1] + } else { + yyv1 = make([]HorizontalPodAutoscalerCondition, yyrl1) + } + } else { + yyv1 = make([]HorizontalPodAutoscalerCondition, yyrl1) + } + yyc1 = true + yyrr1 = len(yyv1) + if yyrg1 { + copy(yyv1, yyv21) + } + } else if yyl1 != len(yyv1) { + yyv1 = yyv1[:yyl1] + yyc1 = true + } + yyj1 := 0 + for ; yyj1 < yyrr1; yyj1++ { + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = HorizontalPodAutoscalerCondition{} + } else { + yyv2 := &yyv1[yyj1] + yyv2.CodecDecodeSelf(d) + } + + } + if yyrt1 { + for ; yyj1 < yyl1; yyj1++ { + yyv1 = append(yyv1, HorizontalPodAutoscalerCondition{}) + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = HorizontalPodAutoscalerCondition{} + } else { + yyv3 := &yyv1[yyj1] + yyv3.CodecDecodeSelf(d) + } + + } + } + + } else { + yyj1 := 0 + for ; !r.CheckBreak(); yyj1++ { + + if yyj1 >= len(yyv1) { + yyv1 = append(yyv1, HorizontalPodAutoscalerCondition{}) // var yyz1 HorizontalPodAutoscalerCondition + yyc1 = true + } + yyh1.ElemContainerState(yyj1) + if yyj1 < len(yyv1) { + if r.TryDecodeAsNil() { + yyv1[yyj1] = HorizontalPodAutoscalerCondition{} + } else { + yyv4 := &yyv1[yyj1] + yyv4.CodecDecodeSelf(d) + } + + } else { + z.DecSwallow() + } + + } + if yyj1 < len(yyv1) { + yyv1 = yyv1[:yyj1] + yyc1 = true + } else if yyj1 == 0 && yyv1 == nil { + yyv1 = []HorizontalPodAutoscalerCondition{} + yyc1 = true + } + } + yyh1.End() + if yyc1 { + *v = yyv1 + } +} + func (x codecSelfer1234) encSliceHorizontalPodAutoscaler(v []HorizontalPodAutoscaler, e *codec1978.Encoder) { var h codecSelfer1234 z, r := codec1978.GenHelperEncoder(e) @@ -4540,7 +5137,7 @@ func (x codecSelfer1234) decSliceHorizontalPodAutoscaler(v *[]HorizontalPodAutos yyrg1 := len(yyv1) > 0 yyv21 := yyv1 - yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 400) + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 424) if yyrt1 { if yyrl1 <= cap(yyv1) { yyv1 = yyv1[:yyrl1] diff --git a/pkg/apis/autoscaling/v2alpha1/types.go b/pkg/apis/autoscaling/v2alpha1/types.go index dd2951424..8967fb3ce 100644 --- a/pkg/apis/autoscaling/v2alpha1/types.go +++ b/pkg/apis/autoscaling/v2alpha1/types.go @@ -166,6 +166,46 @@ type HorizontalPodAutoscalerStatus struct { // currentMetrics is the last read state of the metrics used by this autoscaler. CurrentMetrics []MetricStatus `json:"currentMetrics" protobuf:"bytes,5,rep,name=currentMetrics"` + + // conditions is the set of conditions required for this autoscaler to scale its target, + // and indicates whether or not those conditions are met. + Conditions []HorizontalPodAutoscalerCondition `json:"conditions" protobuf:"bytes,6,rep,name=conditions"` +} + +// HorizontalPodAutoscalerConditionType are the valid conditions of +// a HorizontalPodAutoscaler. +type HorizontalPodAutoscalerConditionType string + +var ( + // ScalingActive indicates that the HPA controller is able to scale if necessary: + // it's correctly configured, can fetch the desired metrics, and isn't disabled. + ScalingActive HorizontalPodAutoscalerConditionType = "ScalingActive" + // AbleToScale indicates a lack of transient issues which prevent scaling from occuring, + // such as being in a backoff window, or being unable to access/update the target scale. + AbleToScale HorizontalPodAutoscalerConditionType = "AbleToScale" + // ScalingLimited indicates that the calculated scale based on metrics would be above or + // below the range for the HPA, and has thus been capped. + ScalingLimited HorizontalPodAutoscalerConditionType = "ScalingLimited" +) + +// HorizontalPodAutoscalerCondition describes the state of +// a HorizontalPodAutoscaler at a certain point. +type HorizontalPodAutoscalerCondition struct { + // type describes the current condition + Type HorizontalPodAutoscalerConditionType `json:"type" protobuf:"bytes,1,name=type"` + // status is the status of the condition (True, False, Unknown) + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,name=status"` + // lastTransitionTime is the last time the condition transitioned from + // one status to another + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // reason is the reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // message is a human-readable explanation containing details about + // the transition + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` } // MetricStatus describes the last-read state of a single metric. diff --git a/pkg/apis/autoscaling/v2alpha1/types_swagger_doc_generated.go b/pkg/apis/autoscaling/v2alpha1/types_swagger_doc_generated.go index 13491dd9f..3df00d569 100644 --- a/pkg/apis/autoscaling/v2alpha1/types_swagger_doc_generated.go +++ b/pkg/apis/autoscaling/v2alpha1/types_swagger_doc_generated.go @@ -49,6 +49,19 @@ func (HorizontalPodAutoscaler) SwaggerDoc() map[string]string { return map_HorizontalPodAutoscaler } +var map_HorizontalPodAutoscalerCondition = map[string]string{ + "": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", + "type": "type describes the current condition", + "status": "status is the status of the condition (True, False, Unknown)", + "lastTransitionTime": "lastTransitionTime is the last time the condition transitioned from one status to another", + "reason": "reason is the reason for the condition's last transition.", + "message": "message is a human-readable explanation containing details about the transition", +} + +func (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string { + return map_HorizontalPodAutoscalerCondition +} + var map_HorizontalPodAutoscalerList = map[string]string{ "": "HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.", "metadata": "metadata is the standard list metadata.", @@ -78,6 +91,7 @@ var map_HorizontalPodAutoscalerStatus = map[string]string{ "currentReplicas": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", "desiredReplicas": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", "currentMetrics": "currentMetrics is the last read state of the metrics used by this autoscaler.", + "conditions": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", } func (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string { diff --git a/pkg/apis/autoscaling/v2alpha1/zz_generated.conversion.go b/pkg/apis/autoscaling/v2alpha1/zz_generated.conversion.go index 007aeb4a1..698ff6d1d 100644 --- a/pkg/apis/autoscaling/v2alpha1/zz_generated.conversion.go +++ b/pkg/apis/autoscaling/v2alpha1/zz_generated.conversion.go @@ -22,11 +22,11 @@ package v2alpha1 import ( resource "k8s.io/apimachinery/pkg/api/resource" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" api "k8s.io/client-go/pkg/api" - api_v1 "k8s.io/client-go/pkg/api/v1" + v1 "k8s.io/client-go/pkg/api/v1" autoscaling "k8s.io/client-go/pkg/apis/autoscaling" unsafe "unsafe" ) @@ -43,6 +43,8 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_autoscaling_CrossVersionObjectReference_To_v2alpha1_CrossVersionObjectReference, Convert_v2alpha1_HorizontalPodAutoscaler_To_autoscaling_HorizontalPodAutoscaler, Convert_autoscaling_HorizontalPodAutoscaler_To_v2alpha1_HorizontalPodAutoscaler, + Convert_v2alpha1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition, + Convert_autoscaling_HorizontalPodAutoscalerCondition_To_v2alpha1_HorizontalPodAutoscalerCondition, Convert_v2alpha1_HorizontalPodAutoscalerList_To_autoscaling_HorizontalPodAutoscalerList, Convert_autoscaling_HorizontalPodAutoscalerList_To_v2alpha1_HorizontalPodAutoscalerList, Convert_v2alpha1_HorizontalPodAutoscalerSpec_To_autoscaling_HorizontalPodAutoscalerSpec, @@ -124,6 +126,34 @@ func Convert_autoscaling_HorizontalPodAutoscaler_To_v2alpha1_HorizontalPodAutosc return autoConvert_autoscaling_HorizontalPodAutoscaler_To_v2alpha1_HorizontalPodAutoscaler(in, out, s) } +func autoConvert_v2alpha1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition(in *HorizontalPodAutoscalerCondition, out *autoscaling.HorizontalPodAutoscalerCondition, s conversion.Scope) error { + out.Type = autoscaling.HorizontalPodAutoscalerConditionType(in.Type) + out.Status = autoscaling.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v2alpha1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition is an autogenerated conversion function. +func Convert_v2alpha1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition(in *HorizontalPodAutoscalerCondition, out *autoscaling.HorizontalPodAutoscalerCondition, s conversion.Scope) error { + return autoConvert_v2alpha1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalPodAutoscalerCondition(in, out, s) +} + +func autoConvert_autoscaling_HorizontalPodAutoscalerCondition_To_v2alpha1_HorizontalPodAutoscalerCondition(in *autoscaling.HorizontalPodAutoscalerCondition, out *HorizontalPodAutoscalerCondition, s conversion.Scope) error { + out.Type = HorizontalPodAutoscalerConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_autoscaling_HorizontalPodAutoscalerCondition_To_v2alpha1_HorizontalPodAutoscalerCondition is an autogenerated conversion function. +func Convert_autoscaling_HorizontalPodAutoscalerCondition_To_v2alpha1_HorizontalPodAutoscalerCondition(in *autoscaling.HorizontalPodAutoscalerCondition, out *HorizontalPodAutoscalerCondition, s conversion.Scope) error { + return autoConvert_autoscaling_HorizontalPodAutoscalerCondition_To_v2alpha1_HorizontalPodAutoscalerCondition(in, out, s) +} + func autoConvert_v2alpha1_HorizontalPodAutoscalerList_To_autoscaling_HorizontalPodAutoscalerList(in *HorizontalPodAutoscalerList, out *autoscaling.HorizontalPodAutoscalerList, s conversion.Scope) error { out.ListMeta = in.ListMeta out.Items = *(*[]autoscaling.HorizontalPodAutoscaler)(unsafe.Pointer(&in.Items)) @@ -182,10 +212,11 @@ func Convert_autoscaling_HorizontalPodAutoscalerSpec_To_v2alpha1_HorizontalPodAu func autoConvert_v2alpha1_HorizontalPodAutoscalerStatus_To_autoscaling_HorizontalPodAutoscalerStatus(in *HorizontalPodAutoscalerStatus, out *autoscaling.HorizontalPodAutoscalerStatus, s conversion.Scope) error { out.ObservedGeneration = (*int64)(unsafe.Pointer(in.ObservedGeneration)) - out.LastScaleTime = (*v1.Time)(unsafe.Pointer(in.LastScaleTime)) + out.LastScaleTime = (*meta_v1.Time)(unsafe.Pointer(in.LastScaleTime)) out.CurrentReplicas = in.CurrentReplicas out.DesiredReplicas = in.DesiredReplicas out.CurrentMetrics = *(*[]autoscaling.MetricStatus)(unsafe.Pointer(&in.CurrentMetrics)) + out.Conditions = *(*[]autoscaling.HorizontalPodAutoscalerCondition)(unsafe.Pointer(&in.Conditions)) return nil } @@ -196,7 +227,7 @@ func Convert_v2alpha1_HorizontalPodAutoscalerStatus_To_autoscaling_HorizontalPod func autoConvert_autoscaling_HorizontalPodAutoscalerStatus_To_v2alpha1_HorizontalPodAutoscalerStatus(in *autoscaling.HorizontalPodAutoscalerStatus, out *HorizontalPodAutoscalerStatus, s conversion.Scope) error { out.ObservedGeneration = (*int64)(unsafe.Pointer(in.ObservedGeneration)) - out.LastScaleTime = (*v1.Time)(unsafe.Pointer(in.LastScaleTime)) + out.LastScaleTime = (*meta_v1.Time)(unsafe.Pointer(in.LastScaleTime)) out.CurrentReplicas = in.CurrentReplicas out.DesiredReplicas = in.DesiredReplicas if in.CurrentMetrics == nil { @@ -204,6 +235,11 @@ func autoConvert_autoscaling_HorizontalPodAutoscalerStatus_To_v2alpha1_Horizonta } else { out.CurrentMetrics = *(*[]MetricStatus)(unsafe.Pointer(&in.CurrentMetrics)) } + if in.Conditions == nil { + out.Conditions = make([]HorizontalPodAutoscalerCondition, 0) + } else { + out.Conditions = *(*[]HorizontalPodAutoscalerCondition)(unsafe.Pointer(&in.Conditions)) + } return nil } @@ -377,7 +413,7 @@ func Convert_v2alpha1_ResourceMetricSource_To_autoscaling_ResourceMetricSource(i } func autoConvert_autoscaling_ResourceMetricSource_To_v2alpha1_ResourceMetricSource(in *autoscaling.ResourceMetricSource, out *ResourceMetricSource, s conversion.Scope) error { - out.Name = api_v1.ResourceName(in.Name) + out.Name = v1.ResourceName(in.Name) out.TargetAverageUtilization = (*int32)(unsafe.Pointer(in.TargetAverageUtilization)) out.TargetAverageValue = (*resource.Quantity)(unsafe.Pointer(in.TargetAverageValue)) return nil @@ -401,7 +437,7 @@ func Convert_v2alpha1_ResourceMetricStatus_To_autoscaling_ResourceMetricStatus(i } func autoConvert_autoscaling_ResourceMetricStatus_To_v2alpha1_ResourceMetricStatus(in *autoscaling.ResourceMetricStatus, out *ResourceMetricStatus, s conversion.Scope) error { - out.Name = api_v1.ResourceName(in.Name) + out.Name = v1.ResourceName(in.Name) out.CurrentAverageUtilization = (*int32)(unsafe.Pointer(in.CurrentAverageUtilization)) out.CurrentAverageValue = in.CurrentAverageValue return nil diff --git a/pkg/apis/autoscaling/v2alpha1/zz_generated.deepcopy.go b/pkg/apis/autoscaling/v2alpha1/zz_generated.deepcopy.go index b9916f60c..9a9dd690e 100644 --- a/pkg/apis/autoscaling/v2alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/autoscaling/v2alpha1/zz_generated.deepcopy.go @@ -38,6 +38,7 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { return scheme.AddGeneratedDeepCopyFuncs( conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v2alpha1_CrossVersionObjectReference, InType: reflect.TypeOf(&CrossVersionObjectReference{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v2alpha1_HorizontalPodAutoscaler, InType: reflect.TypeOf(&HorizontalPodAutoscaler{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v2alpha1_HorizontalPodAutoscalerCondition, InType: reflect.TypeOf(&HorizontalPodAutoscalerCondition{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v2alpha1_HorizontalPodAutoscalerList, InType: reflect.TypeOf(&HorizontalPodAutoscalerList{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v2alpha1_HorizontalPodAutoscalerSpec, InType: reflect.TypeOf(&HorizontalPodAutoscalerSpec{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v2alpha1_HorizontalPodAutoscalerStatus, InType: reflect.TypeOf(&HorizontalPodAutoscalerStatus{})}, @@ -83,6 +84,17 @@ func DeepCopy_v2alpha1_HorizontalPodAutoscaler(in interface{}, out interface{}, } } +// DeepCopy_v2alpha1_HorizontalPodAutoscalerCondition is an autogenerated deepcopy function. +func DeepCopy_v2alpha1_HorizontalPodAutoscalerCondition(in interface{}, out interface{}, c *conversion.Cloner) error { + { + in := in.(*HorizontalPodAutoscalerCondition) + out := out.(*HorizontalPodAutoscalerCondition) + *out = *in + out.LastTransitionTime = in.LastTransitionTime.DeepCopy() + return nil + } +} + // DeepCopy_v2alpha1_HorizontalPodAutoscalerList is an autogenerated deepcopy function. func DeepCopy_v2alpha1_HorizontalPodAutoscalerList(in interface{}, out interface{}, c *conversion.Cloner) error { { @@ -151,6 +163,15 @@ func DeepCopy_v2alpha1_HorizontalPodAutoscalerStatus(in interface{}, out interfa } } } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]HorizontalPodAutoscalerCondition, len(*in)) + for i := range *in { + if err := DeepCopy_v2alpha1_HorizontalPodAutoscalerCondition(&(*in)[i], &(*out)[i], c); err != nil { + return err + } + } + } return nil } } diff --git a/pkg/apis/autoscaling/zz_generated.deepcopy.go b/pkg/apis/autoscaling/zz_generated.deepcopy.go index 6ba85e93e..a15d9b32b 100644 --- a/pkg/apis/autoscaling/zz_generated.deepcopy.go +++ b/pkg/apis/autoscaling/zz_generated.deepcopy.go @@ -38,6 +38,7 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { return scheme.AddGeneratedDeepCopyFuncs( conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_autoscaling_CrossVersionObjectReference, InType: reflect.TypeOf(&CrossVersionObjectReference{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_autoscaling_HorizontalPodAutoscaler, InType: reflect.TypeOf(&HorizontalPodAutoscaler{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_autoscaling_HorizontalPodAutoscalerCondition, InType: reflect.TypeOf(&HorizontalPodAutoscalerCondition{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_autoscaling_HorizontalPodAutoscalerList, InType: reflect.TypeOf(&HorizontalPodAutoscalerList{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_autoscaling_HorizontalPodAutoscalerSpec, InType: reflect.TypeOf(&HorizontalPodAutoscalerSpec{})}, conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_autoscaling_HorizontalPodAutoscalerStatus, InType: reflect.TypeOf(&HorizontalPodAutoscalerStatus{})}, @@ -86,6 +87,17 @@ func DeepCopy_autoscaling_HorizontalPodAutoscaler(in interface{}, out interface{ } } +// DeepCopy_autoscaling_HorizontalPodAutoscalerCondition is an autogenerated deepcopy function. +func DeepCopy_autoscaling_HorizontalPodAutoscalerCondition(in interface{}, out interface{}, c *conversion.Cloner) error { + { + in := in.(*HorizontalPodAutoscalerCondition) + out := out.(*HorizontalPodAutoscalerCondition) + *out = *in + out.LastTransitionTime = in.LastTransitionTime.DeepCopy() + return nil + } +} + // DeepCopy_autoscaling_HorizontalPodAutoscalerList is an autogenerated deepcopy function. func DeepCopy_autoscaling_HorizontalPodAutoscalerList(in interface{}, out interface{}, c *conversion.Cloner) error { { @@ -154,6 +166,15 @@ func DeepCopy_autoscaling_HorizontalPodAutoscalerStatus(in interface{}, out inte } } } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]HorizontalPodAutoscalerCondition, len(*in)) + for i := range *in { + if err := DeepCopy_autoscaling_HorizontalPodAutoscalerCondition(&(*in)[i], &(*out)[i], c); err != nil { + return err + } + } + } return nil } }