Merge pull request #791 from monzo/vertical-pod-autoscaler-metrics
store: add metrics for VerticalPodAutoscaler objects
This commit is contained in:
commit
0ffcc30a0f
|
|
@ -68,6 +68,7 @@ Per group of metrics there is one file for each metrics. See each file for speci
|
|||
- [ConfigMap Metrics](configmap-metrics.md)
|
||||
- [Ingress Metrics](ingress-metrics.md)
|
||||
- [CertificateSigningRequest Metrics](certificatessigningrequest-metrics.md)
|
||||
- [VerticalPodAutoscaler Metrics](verticalpodautoscaler-metrics.md)
|
||||
|
||||
## Join Metrics
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
# Vertical Pod Autoscaler Metrics
|
||||
|
||||
| Metric name | Metric type | Labels/tags | Status |
|
||||
| -------------------------------- | ----------- | ------------------------------------------------------------- | ------ |
|
||||
| kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_minallowed | Gauge | `container`=<container name> <br> `namespace`=<namespace> <br> `resource`=<cpu | memory> <br> `target_api_version`=<api version> <br> `target_kind`=<target kind> <br> `target_name`=<target name> <br> `unit`=<core | byte> <br> `verticalpodautoscaler`=<vertical pod autoscaler name> | EXPERIMENTAL |
|
||||
| kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_maxallowed | Gauge | `container`=<container name> <br> `namespace`=<namespace> <br> `resource`=<cpu | memory> <br> `target_api_version`=<api version> <br> `target_kind`=<target kind> <br> `target_name`=<target name> <br> `unit`=<core | byte> <br> `verticalpodautoscaler`=<vertical pod autoscaler name> | EXPERIMENTAL |
|
||||
| kube_verticalpodautoscaler_status_recommendation_containerrecommendations_lowerbound | Gauge | `container`=<container name> <br> `namespace`=<namespace> <br> `resource`=<cpu | memory> <br> `target_api_version`=<api version> <br> `target_kind`=<target kind> <br> `target_name`=<target name> <br> `unit`=<core | byte> <br> `verticalpodautoscaler`=<vertical pod autoscaler name> | EXPERIMENTAL |
|
||||
| kube_verticalpodautoscaler_status_recommendation_containerrecommendations_target | Gauge | `container`=<container name> <br> `namespace`=<namespace> <br> `resource`=<cpu | memory> <br> `target_api_version`=<api version> <br> `target_kind`=<target kind> <br> `target_name`=<target name> <br> `unit`=<core | byte> <br> `verticalpodautoscaler`=<vertical pod autoscaler name> | EXPERIMENTAL |
|
||||
| kube_verticalpodautoscaler_status_recommendation_containerrecommendations_uncappedtarget | Gauge | `container`=<container name> <br> `namespace`=<namespace> <br> `resource`=<cpu | memory> <br> `target_api_version`=<api version> <br> `target_kind`=<target kind> <br> `target_name`=<target name> <br> `unit`=<core | byte> <br> `verticalpodautoscaler`=<vertical pod autoscaler name> | EXPERIMENTAL |
|
||||
| kube_verticalpodautoscaler_status_recommendation_containerrecommendations_upperbound | Gauge | `container`=<container name> <br> `namespace`=<namespace> <br> `resource`=<cpu | memory> <br> `target_api_version`=<api version> <br> `target_kind`=<target kind> <br> `target_name`=<target name> <br> `unit`=<core | byte> <br> `verticalpodautoscaler`=<vertical pod autoscaler name> | EXPERIMENTAL |
|
||||
| kube_verticalpodautoscaler_labels | Gauge | `label_app`=<foo> <br> `namespace`=<namespace> <br> `target_api_version`=<api version> <br> `target_kind`=<target kind> <br> `target_name`=<target name> <br> `verticalpodautoscaler`=<vertical pod autoscaler name> | EXPERIMENTAL |
|
||||
| kube_verticalpodautoscaler_spec_updatepolicy_updatemode | Gauge | `namespace`=<namespace> <br> `target_api_version`=<api version> <br> `target_kind`=<target kind> <br> `target_name`=<target name> <br> `update_mode`=<foo> <br> `verticalpodautoscaler`=<vertical pod autoscaler name> | EXPERIMENTAL |
|
||||
1
go.mod
1
go.mod
|
|
@ -28,6 +28,7 @@ require (
|
|||
gopkg.in/inf.v0 v0.9.0 // indirect
|
||||
k8s.io/api v0.0.0-20190313235455-40a48860b5ab
|
||||
k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1
|
||||
k8s.io/autoscaler v0.0.0-20190612121530-8bb2354d9af9
|
||||
k8s.io/client-go v2.0.0-alpha.0.0.20190313235726-6ee68ca5fd83+incompatible
|
||||
k8s.io/klog v0.3.0
|
||||
k8s.io/kube-openapi v0.0.0-20190320154901-5e45bb682580 // indirect
|
||||
|
|
|
|||
2
go.sum
2
go.sum
|
|
@ -134,6 +134,8 @@ k8s.io/api v0.0.0-20190313235455-40a48860b5ab h1:DG9A67baNpoeweOy2spF1OWHhnVY5KR
|
|||
k8s.io/api v0.0.0-20190313235455-40a48860b5ab/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=
|
||||
k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1 h1:IS7K02iBkQXpCeieSiyJjGoLSdVOv2DbPaWHJ+ZtgKg=
|
||||
k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=
|
||||
k8s.io/autoscaler v0.0.0-20190612121530-8bb2354d9af9 h1:+GB3VH3tw7T8PZw4RPa9XLmYdqTnSB3qa/Zern1bhOk=
|
||||
k8s.io/autoscaler v0.0.0-20190612121530-8bb2354d9af9/go.mod h1:QEXezc9uKPT91dwqhSJq3GNI3B1HxFRQHiku9kmrsSA=
|
||||
k8s.io/client-go v2.0.0-alpha.0.0.20190313235726-6ee68ca5fd83+incompatible h1:+SiikveGdttGGsPhWZsGg+RD1ziNvr+PL8zKqLDIrbE=
|
||||
k8s.io/client-go v2.0.0-alpha.0.0.20190313235726-6ee68ca5fd83+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
|
||||
k8s.io/klog v0.3.0 h1:0VPpR+sizsiivjIfIAQH/rl8tan6jvWkS7lU+0di3lE=
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@ import (
|
|||
extensions "k8s.io/api/extensions/v1beta1"
|
||||
policy "k8s.io/api/policy/v1beta1"
|
||||
storagev1 "k8s.io/api/storage/v1"
|
||||
vpaautoscaling "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2"
|
||||
vpaclientset "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned"
|
||||
clientset "k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
"k8s.io/kube-state-metrics/pkg/metric"
|
||||
|
|
@ -49,6 +51,7 @@ type whiteBlackLister interface {
|
|||
// (https://en.wikipedia.org/wiki/Builder_pattern).
|
||||
type Builder struct {
|
||||
kubeClient clientset.Interface
|
||||
vpaClient vpaclientset.Interface
|
||||
namespaces options.NamespaceList
|
||||
ctx context.Context
|
||||
enabledResources []string
|
||||
|
|
@ -91,6 +94,11 @@ func (b *Builder) WithKubeClient(c clientset.Interface) {
|
|||
b.kubeClient = c
|
||||
}
|
||||
|
||||
// WithVPAClient sets the vpaClient property of a Builder so that the verticalpodautoscaler collector can query VPA objects.
|
||||
func (b *Builder) WithVPAClient(c vpaclientset.Interface) {
|
||||
b.vpaClient = c
|
||||
}
|
||||
|
||||
// WithWhiteBlackList configures the white or blacklisted metric to be exposed
|
||||
// by the store build by the Builder.
|
||||
func (b *Builder) WithWhiteBlackList(l whiteBlackLister) {
|
||||
|
|
@ -144,6 +152,7 @@ var availableStores = map[string]func(f *Builder) *metricsstore.MetricsStore{
|
|||
"services": func(b *Builder) *metricsstore.MetricsStore { return b.buildServiceStore() },
|
||||
"statefulsets": func(b *Builder) *metricsstore.MetricsStore { return b.buildStatefulSetStore() },
|
||||
"storageclasses": func(b *Builder) *metricsstore.MetricsStore { return b.buildStorageClassStore() },
|
||||
"verticalpodautoscalers": func(b *Builder) *metricsstore.MetricsStore { return b.buildVPAStore() },
|
||||
}
|
||||
|
||||
func collectorExists(name string) bool {
|
||||
|
|
@ -251,6 +260,10 @@ func (b *Builder) buildCsrStore() *metricsstore.MetricsStore {
|
|||
return b.buildStore(csrMetricFamilies, &certv1beta1.CertificateSigningRequest{}, createCSRListWatch)
|
||||
}
|
||||
|
||||
func (b *Builder) buildVPAStore() *metricsstore.MetricsStore {
|
||||
return b.buildStore(vpaMetricFamilies, &vpaautoscaling.VerticalPodAutoscaler{}, createVPAListWatchFunc(b.vpaClient))
|
||||
}
|
||||
|
||||
func (b *Builder) buildStore(
|
||||
metricFamilies []metric.FamilyGenerator,
|
||||
expectedType interface{},
|
||||
|
|
|
|||
|
|
@ -0,0 +1,256 @@
|
|||
/*
|
||||
Copyright 2019 The Kubernetes Authors All rights reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package store
|
||||
|
||||
import (
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/kube-state-metrics/pkg/constant"
|
||||
|
||||
autoscaling "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2"
|
||||
vpaclientset "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned"
|
||||
clientset "k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
"k8s.io/kube-state-metrics/pkg/metric"
|
||||
)
|
||||
|
||||
var (
|
||||
descVerticalPodAutoscalerLabelsName = "kube_verticalpodautoscaler_labels"
|
||||
descVerticalPodAutoscalerLabelsHelp = "Kubernetes labels converted to Prometheus labels."
|
||||
descVerticalPodAutoscalerLabelsDefaultLabels = []string{"namespace", "verticalpodautoscaler", "target_api_version", "target_kind", "target_name"}
|
||||
|
||||
vpaMetricFamilies = []metric.FamilyGenerator{
|
||||
{
|
||||
Name: descVerticalPodAutoscalerLabelsName,
|
||||
Type: metric.Gauge,
|
||||
Help: descVerticalPodAutoscalerLabelsHelp,
|
||||
GenerateFunc: wrapVPAFunc(func(a *autoscaling.VerticalPodAutoscaler) *metric.Family {
|
||||
labelKeys, labelValues := kubeLabelsToPrometheusLabels(a.Labels)
|
||||
return &metric.Family{
|
||||
Metrics: []*metric.Metric{
|
||||
{
|
||||
LabelKeys: labelKeys,
|
||||
LabelValues: labelValues,
|
||||
Value: 1,
|
||||
},
|
||||
},
|
||||
}
|
||||
}),
|
||||
},
|
||||
{
|
||||
Name: "kube_verticalpodautoscaler_spec_updatepolicy_updatemode",
|
||||
Type: metric.Gauge,
|
||||
Help: "Update mode of the VerticalPodAutoscaler.",
|
||||
GenerateFunc: wrapVPAFunc(func(a *autoscaling.VerticalPodAutoscaler) *metric.Family {
|
||||
ms := []*metric.Metric{}
|
||||
|
||||
if a.Spec.UpdatePolicy.UpdateMode == nil {
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}
|
||||
|
||||
for _, mode := range []autoscaling.UpdateMode{
|
||||
autoscaling.UpdateModeOff,
|
||||
autoscaling.UpdateModeInitial,
|
||||
autoscaling.UpdateModeRecreate,
|
||||
autoscaling.UpdateModeAuto,
|
||||
} {
|
||||
var v float64
|
||||
if *a.Spec.UpdatePolicy.UpdateMode == mode {
|
||||
v = 1
|
||||
} else {
|
||||
v = 0
|
||||
}
|
||||
ms = append(ms, &metric.Metric{
|
||||
LabelKeys: []string{"update_mode"},
|
||||
LabelValues: []string{string(mode)},
|
||||
Value: v,
|
||||
})
|
||||
}
|
||||
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}),
|
||||
},
|
||||
{
|
||||
Name: "kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_minallowed",
|
||||
Type: metric.Gauge,
|
||||
Help: "Minimum resources the VerticalPodAutoscaler can set for containers matching the name.",
|
||||
GenerateFunc: wrapVPAFunc(func(a *autoscaling.VerticalPodAutoscaler) *metric.Family {
|
||||
ms := []*metric.Metric{}
|
||||
for _, c := range a.Spec.ResourcePolicy.ContainerPolicies {
|
||||
ms = append(ms, vpaResourcesToMetrics(c.ContainerName, c.MinAllowed)...)
|
||||
|
||||
}
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}),
|
||||
},
|
||||
{
|
||||
Name: "kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_maxallowed",
|
||||
Type: metric.Gauge,
|
||||
Help: "Maximum resources the VerticalPodAutoscaler can set for containers matching the name.",
|
||||
GenerateFunc: wrapVPAFunc(func(a *autoscaling.VerticalPodAutoscaler) *metric.Family {
|
||||
ms := []*metric.Metric{}
|
||||
for _, c := range a.Spec.ResourcePolicy.ContainerPolicies {
|
||||
ms = append(ms, vpaResourcesToMetrics(c.ContainerName, c.MaxAllowed)...)
|
||||
}
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}),
|
||||
},
|
||||
{
|
||||
Name: "kube_verticalpodautoscaler_status_recommendation_containerrecommendations_lowerbound",
|
||||
Type: metric.Gauge,
|
||||
Help: "Minimum resources the container can use before the VerticalPodAutoscaler updater evicts it.",
|
||||
GenerateFunc: wrapVPAFunc(func(a *autoscaling.VerticalPodAutoscaler) *metric.Family {
|
||||
ms := []*metric.Metric{}
|
||||
if a.Status.Recommendation == nil || a.Status.Recommendation.ContainerRecommendations == nil {
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}
|
||||
|
||||
for _, c := range a.Status.Recommendation.ContainerRecommendations {
|
||||
ms = append(ms, vpaResourcesToMetrics(c.ContainerName, c.LowerBound)...)
|
||||
}
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}),
|
||||
},
|
||||
{
|
||||
Name: "kube_verticalpodautoscaler_status_recommendation_containerrecommendations_upperbound",
|
||||
Type: metric.Gauge,
|
||||
Help: "Maximum resources the container can use before the VerticalPodAutoscaler updater evicts it.",
|
||||
GenerateFunc: wrapVPAFunc(func(a *autoscaling.VerticalPodAutoscaler) *metric.Family {
|
||||
ms := []*metric.Metric{}
|
||||
if a.Status.Recommendation == nil || a.Status.Recommendation.ContainerRecommendations == nil {
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}
|
||||
|
||||
for _, c := range a.Status.Recommendation.ContainerRecommendations {
|
||||
ms = append(ms, vpaResourcesToMetrics(c.ContainerName, c.UpperBound)...)
|
||||
}
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}),
|
||||
},
|
||||
{
|
||||
Name: "kube_verticalpodautoscaler_status_recommendation_containerrecommendations_target",
|
||||
Type: metric.Gauge,
|
||||
Help: "Target resources the VerticalPodAutoscaler recommends for the container.",
|
||||
GenerateFunc: wrapVPAFunc(func(a *autoscaling.VerticalPodAutoscaler) *metric.Family {
|
||||
ms := []*metric.Metric{}
|
||||
if a.Status.Recommendation == nil || a.Status.Recommendation.ContainerRecommendations == nil {
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}
|
||||
for _, c := range a.Status.Recommendation.ContainerRecommendations {
|
||||
ms = append(ms, vpaResourcesToMetrics(c.ContainerName, c.Target)...)
|
||||
}
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}),
|
||||
},
|
||||
{
|
||||
Name: "kube_verticalpodautoscaler_status_recommendation_containerrecommendations_uncappedtarget",
|
||||
Type: metric.Gauge,
|
||||
Help: "Target resources the VerticalPodAutoscaler recommends for the container ignoring bounds.",
|
||||
GenerateFunc: wrapVPAFunc(func(a *autoscaling.VerticalPodAutoscaler) *metric.Family {
|
||||
ms := []*metric.Metric{}
|
||||
if a.Status.Recommendation == nil || a.Status.Recommendation.ContainerRecommendations == nil {
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}
|
||||
for _, c := range a.Status.Recommendation.ContainerRecommendations {
|
||||
ms = append(ms, vpaResourcesToMetrics(c.ContainerName, c.UncappedTarget)...)
|
||||
}
|
||||
return &metric.Family{
|
||||
Metrics: ms,
|
||||
}
|
||||
}),
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
func vpaResourcesToMetrics(containerName string, resources v1.ResourceList) []*metric.Metric {
|
||||
ms := []*metric.Metric{}
|
||||
for resourceName, val := range resources {
|
||||
switch resourceName {
|
||||
case v1.ResourceCPU:
|
||||
ms = append(ms, &metric.Metric{
|
||||
LabelValues: []string{containerName, sanitizeLabelName(string(resourceName)), string(constant.UnitCore)},
|
||||
Value: float64(val.MilliValue()) / 1000,
|
||||
})
|
||||
case v1.ResourceStorage:
|
||||
fallthrough
|
||||
case v1.ResourceEphemeralStorage:
|
||||
fallthrough
|
||||
case v1.ResourceMemory:
|
||||
ms = append(ms, &metric.Metric{
|
||||
LabelValues: []string{containerName, sanitizeLabelName(string(resourceName)), string(constant.UnitByte)},
|
||||
Value: float64(val.Value()),
|
||||
})
|
||||
}
|
||||
}
|
||||
for _, metric := range ms {
|
||||
metric.LabelKeys = []string{"container", "resource", "unit"}
|
||||
}
|
||||
return ms
|
||||
}
|
||||
|
||||
func wrapVPAFunc(f func(*autoscaling.VerticalPodAutoscaler) *metric.Family) func(interface{}) *metric.Family {
|
||||
return func(obj interface{}) *metric.Family {
|
||||
vpa := obj.(*autoscaling.VerticalPodAutoscaler)
|
||||
|
||||
metricFamily := f(vpa)
|
||||
targetRef := vpa.Spec.TargetRef
|
||||
|
||||
for _, m := range metricFamily.Metrics {
|
||||
m.LabelKeys = append(descVerticalPodAutoscalerLabelsDefaultLabels, m.LabelKeys...)
|
||||
m.LabelValues = append([]string{vpa.Namespace, vpa.Name, targetRef.APIVersion, targetRef.Kind, targetRef.Name}, m.LabelValues...)
|
||||
}
|
||||
|
||||
return metricFamily
|
||||
}
|
||||
}
|
||||
|
||||
func createVPAListWatchFunc(vpaClient vpaclientset.Interface) func(kubeClient clientset.Interface, ns string) cache.ListerWatcher {
|
||||
return func(kubeClient clientset.Interface, ns string) cache.ListerWatcher {
|
||||
return &cache.ListWatch{
|
||||
ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) {
|
||||
return vpaClient.AutoscalingV1beta2().VerticalPodAutoscalers(ns).List(opts)
|
||||
},
|
||||
WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
return vpaClient.AutoscalingV1beta2().VerticalPodAutoscalers(ns).Watch(opts)
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
/*
|
||||
Copyright 2019 The Kubernetes Authors All rights reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package store
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
||||
k8sautoscaling "k8s.io/api/autoscaling/v1"
|
||||
autoscaling "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2"
|
||||
"k8s.io/kube-state-metrics/pkg/metric"
|
||||
)
|
||||
|
||||
func TestVPAStore(t *testing.T) {
|
||||
|
||||
const metadata = `
|
||||
# HELP kube_verticalpodautoscaler_labels Kubernetes labels converted to Prometheus labels.
|
||||
# TYPE kube_verticalpodautoscaler_labels gauge
|
||||
# HELP kube_verticalpodautoscaler_spec_updatepolicy_updatemode Update mode of the VPA.
|
||||
# TYPE kube_verticalpodautoscaler_spec_updatepolicy_updatemode gauge
|
||||
# HELP kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_minallowed Minimum resources the VPA can set for containers matching the name.
|
||||
# TYPE kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_minallowed gauge
|
||||
# HELP kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_maxallowed Maximum resources the VPA can set for containers matching the name.
|
||||
# TYPE kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_maxallowed gauge
|
||||
# HELP kube_verticalpodautoscaler_status_recommendation_containerrecommendations_lowerbound Minimum resources the container can use before the VPA updater evicts it.
|
||||
# TYPE kube_verticalpodautoscaler_status_recommendation_containerrecommendations_lowerbound gauge
|
||||
# HELP kube_verticalpodautoscaler_status_recommendation_containerrecommendations_upperbound Maximum resources the container can use before the VPA updater evicts it.
|
||||
# TYPE kube_verticalpodautoscaler_status_recommendation_containerrecommendations_upperbound gauge
|
||||
# HELP kube_verticalpodautoscaler_status_recommendation_containerrecommendations_target Target resources the VPA recommends for the container.
|
||||
# TYPE kube_verticalpodautoscaler_status_recommendation_containerrecommendations_target gauge
|
||||
# HELP kube_verticalpodautoscaler_status_recommendation_containerrecommendations_uncappedtarget Target resources the VPA recommends for the container ignoring bounds.
|
||||
# TYPE kube_verticalpodautoscaler_status_recommendation_containerrecommendations_uncappedtarget gauge
|
||||
`
|
||||
|
||||
updateMode := autoscaling.UpdateModeRecreate
|
||||
|
||||
v1Resource := func(cpu, mem string) v1.ResourceList {
|
||||
return v1.ResourceList{
|
||||
v1.ResourceCPU: resource.MustParse(cpu),
|
||||
v1.ResourceMemory: resource.MustParse(mem),
|
||||
}
|
||||
}
|
||||
|
||||
cases := []generateMetricsTestCase{
|
||||
{
|
||||
Obj: &autoscaling.VerticalPodAutoscaler{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Generation: 2,
|
||||
Name: "vpa1",
|
||||
Namespace: "ns1",
|
||||
Labels: map[string]string{
|
||||
"app": "foobar",
|
||||
},
|
||||
},
|
||||
Spec: autoscaling.VerticalPodAutoscalerSpec{
|
||||
TargetRef: &k8sautoscaling.CrossVersionObjectReference{
|
||||
APIVersion: "extensions/v1beta1",
|
||||
Kind: "Deployment",
|
||||
Name: "deployment1",
|
||||
},
|
||||
UpdatePolicy: &autoscaling.PodUpdatePolicy{
|
||||
UpdateMode: &updateMode,
|
||||
},
|
||||
ResourcePolicy: &autoscaling.PodResourcePolicy{
|
||||
ContainerPolicies: []autoscaling.ContainerResourcePolicy{
|
||||
{
|
||||
ContainerName: "*",
|
||||
MinAllowed: v1Resource("1", "4Gi"),
|
||||
MaxAllowed: v1Resource("4", "8Gi"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Status: autoscaling.VerticalPodAutoscalerStatus{
|
||||
Recommendation: &autoscaling.RecommendedPodResources{
|
||||
ContainerRecommendations: []autoscaling.RecommendedContainerResources{
|
||||
{
|
||||
ContainerName: "container1",
|
||||
LowerBound: v1Resource("1", "4Gi"),
|
||||
UpperBound: v1Resource("4", "8Gi"),
|
||||
Target: v1Resource("3", "7Gi"),
|
||||
UncappedTarget: v1Resource("6", "10Gi"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Want: `
|
||||
kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_maxallowed{container="*",namespace="ns1",resource="cpu",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="core",verticalpodautoscaler="vpa1"} 4
|
||||
kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_maxallowed{container="*",namespace="ns1",resource="memory",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="byte",verticalpodautoscaler="vpa1"} 8.589934592e+09
|
||||
kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_minallowed{container="*",namespace="ns1",resource="cpu",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="core",verticalpodautoscaler="vpa1"} 1
|
||||
kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_minallowed{container="*",namespace="ns1",resource="memory",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="byte",verticalpodautoscaler="vpa1"} 4.294967296e+09
|
||||
kube_verticalpodautoscaler_status_recommendation_containerrecommendations_lowerbound{container="container1",namespace="ns1",resource="cpu",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="core",verticalpodautoscaler="vpa1"} 1
|
||||
kube_verticalpodautoscaler_status_recommendation_containerrecommendations_lowerbound{container="container1",namespace="ns1",resource="memory",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="byte",verticalpodautoscaler="vpa1"} 4.294967296e+09
|
||||
kube_verticalpodautoscaler_status_recommendation_containerrecommendations_target{container="container1",namespace="ns1",resource="cpu",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="core",verticalpodautoscaler="vpa1"} 3
|
||||
kube_verticalpodautoscaler_status_recommendation_containerrecommendations_target{container="container1",namespace="ns1",resource="memory",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="byte",verticalpodautoscaler="vpa1"} 7.516192768e+09
|
||||
kube_verticalpodautoscaler_status_recommendation_containerrecommendations_uncappedtarget{container="container1",namespace="ns1",resource="cpu",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="core",verticalpodautoscaler="vpa1"} 6
|
||||
kube_verticalpodautoscaler_status_recommendation_containerrecommendations_uncappedtarget{container="container1",namespace="ns1",resource="memory",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="byte",verticalpodautoscaler="vpa1"} 1.073741824e+10
|
||||
kube_verticalpodautoscaler_status_recommendation_containerrecommendations_upperbound{container="container1",namespace="ns1",resource="cpu",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="core",verticalpodautoscaler="vpa1"} 4
|
||||
kube_verticalpodautoscaler_status_recommendation_containerrecommendations_upperbound{container="container1",namespace="ns1",resource="memory",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",unit="byte",verticalpodautoscaler="vpa1"} 8.589934592e+09
|
||||
kube_verticalpodautoscaler_labels{label_app="foobar",namespace="ns1",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",verticalpodautoscaler="vpa1"} 1
|
||||
kube_verticalpodautoscaler_spec_updatepolicy_updatemode{namespace="ns1",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",update_mode="Auto",verticalpodautoscaler="vpa1"} 0
|
||||
kube_verticalpodautoscaler_spec_updatepolicy_updatemode{namespace="ns1",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",update_mode="Initial",verticalpodautoscaler="vpa1"} 0
|
||||
kube_verticalpodautoscaler_spec_updatepolicy_updatemode{namespace="ns1",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",update_mode="Off",verticalpodautoscaler="vpa1"} 0
|
||||
kube_verticalpodautoscaler_spec_updatepolicy_updatemode{namespace="ns1",target_api_version="extensions/v1beta1",target_kind="Deployment",target_name="deployment1",update_mode="Recreate",verticalpodautoscaler="vpa1"} 1
|
||||
`,
|
||||
MetricNames: []string{
|
||||
"kube_verticalpodautoscaler_labels",
|
||||
"kube_verticalpodautoscaler_spec_updatepolicy_updatemode",
|
||||
"kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_minallowed",
|
||||
"kube_verticalpodautoscaler_spec_resourcepolicy_container_policies_maxallowed",
|
||||
"kube_verticalpodautoscaler_status_recommendation_containerrecommendations_lowerbound",
|
||||
"kube_verticalpodautoscaler_status_recommendation_containerrecommendations_upperbound",
|
||||
"kube_verticalpodautoscaler_status_recommendation_containerrecommendations_target",
|
||||
"kube_verticalpodautoscaler_status_recommendation_containerrecommendations_uncappedtarget",
|
||||
},
|
||||
},
|
||||
}
|
||||
for i, c := range cases {
|
||||
c.Func = metric.ComposeMetricGenFuncs(vpaMetricFamilies)
|
||||
if err := c.run(); err != nil {
|
||||
t.Errorf("unexpected collecting result in %vth run:\n%s", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -54,4 +54,7 @@ rules:
|
|||
resources:
|
||||
- storageclasses
|
||||
verbs: ["list", "watch"]
|
||||
|
||||
- apiGroups: ["autoscaling.k8s.io"]
|
||||
resources:
|
||||
- verticalpodautoscalers
|
||||
verbs: ["list", "watch"]
|
||||
|
|
|
|||
18
main.go
18
main.go
|
|
@ -34,6 +34,7 @@ import (
|
|||
"github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||
|
||||
vpaclientset "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned"
|
||||
clientset "k8s.io/client-go/kubernetes"
|
||||
_ "k8s.io/client-go/plugin/pkg/client/auth"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
|
|
@ -142,11 +143,12 @@ func main() {
|
|||
|
||||
proc.StartReaper()
|
||||
|
||||
kubeClient, err := createKubeClient(opts.Apiserver, opts.Kubeconfig)
|
||||
kubeClient, vpaClient, err := createKubeClient(opts.Apiserver, opts.Kubeconfig)
|
||||
if err != nil {
|
||||
klog.Fatalf("Failed to create client: %v", err)
|
||||
}
|
||||
storeBuilder.WithKubeClient(kubeClient)
|
||||
storeBuilder.WithVPAClient(vpaClient)
|
||||
|
||||
ksmMetricsRegistry := prometheus.NewRegistry()
|
||||
ksmMetricsRegistry.Register(prometheus.NewProcessCollector(prometheus.ProcessCollectorOpts{}))
|
||||
|
|
@ -158,10 +160,10 @@ func main() {
|
|||
serveMetrics(stores, opts.Host, opts.Port, opts.EnableGZIPEncoding)
|
||||
}
|
||||
|
||||
func createKubeClient(apiserver string, kubeconfig string) (clientset.Interface, error) {
|
||||
func createKubeClient(apiserver string, kubeconfig string) (clientset.Interface, vpaclientset.Interface, error) {
|
||||
config, err := clientcmd.BuildConfigFromFlags(apiserver, kubeconfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
config.UserAgent = version.GetVersion().String()
|
||||
|
|
@ -170,22 +172,26 @@ func createKubeClient(apiserver string, kubeconfig string) (clientset.Interface,
|
|||
|
||||
kubeClient, err := clientset.NewForConfig(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
vpaClient, err := vpaclientset.NewForConfig(config)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
// Informers don't seem to do a good job logging error messages when it
|
||||
// can't reach the server, making debugging hard. This makes it easier to
|
||||
// figure out if apiserver is configured incorrectly.
|
||||
klog.Infof("Testing communication with server")
|
||||
v, err := kubeClient.Discovery().ServerVersion()
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "ERROR communicating with apiserver")
|
||||
return nil, nil, errors.Wrap(err, "error while trying to communicate with apiserver")
|
||||
}
|
||||
klog.Infof("Running with Kubernetes cluster version: v%s.%s. git version: %s. git tree state: %s. commit: %s. platform: %s",
|
||||
v.Major, v.Minor, v.GitVersion, v.GitTreeState, v.GitCommit, v.Platform)
|
||||
klog.Infof("Communication with server successful")
|
||||
|
||||
return kubeClient, nil
|
||||
return kubeClient, vpaClient, nil
|
||||
}
|
||||
|
||||
func telemetryServer(registry prometheus.Gatherer, host string, port int) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ MINIKUBE_VERSION=v1.1.1
|
|||
MINIKUBE_DRIVER=${MINIKUBE_DRIVER:-virtualbox}
|
||||
SUDO=${SUDO:-}
|
||||
|
||||
EXCLUDED_RESOURCE_REGEX="verticalpodautoscaler"
|
||||
|
||||
mkdir -p ${KUBE_STATE_METRICS_LOG_DIR}
|
||||
|
||||
function finish() {
|
||||
|
|
@ -166,7 +168,7 @@ echo "check metrics format with promtool"
|
|||
[[ -n "$E2E_SETUP_PROMTOOL" ]] && setup_promtool
|
||||
< ${KUBE_STATE_METRICS_LOG_DIR}/metrics promtool check metrics
|
||||
|
||||
resources=$(find internal/store/ -maxdepth 1 -name "*.go" -not -name "*_test.go" -not -name "builder.go" -not -name "testutils.go" -not -name "utils.go" -print0 | xargs -0 -n1 basename | awk -F. '{print $1}')
|
||||
resources=$(find internal/store/ -maxdepth 1 -name "*.go" -not -name "*_test.go" -not -name "builder.go" -not -name "testutils.go" -not -name "utils.go" -print0 | xargs -0 -n1 basename | awk -F. '{print $1}'| grep -v "$EXCLUDED_RESOURCE_REGEX")
|
||||
echo "available resources: $resources"
|
||||
for resource in ${resources}; do
|
||||
echo "checking that kube_${resource}* metrics exists"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
21
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/doc.go
generated
vendored
Normal file
21
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
|
||||
// Package v1 contains definitions of Vertical Pod Autoscaler related objects.
|
||||
// +groupName=autoscaling.k8s.io
|
||||
package v1
|
||||
58
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/register.go
generated
vendored
Normal file
58
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/register.go
generated
vendored
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package v1
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
var SchemeGroupVersion = schema.GroupVersion{Group: "autoscaling.k8s.io", Version: "v1"}
|
||||
|
||||
// Resource takes an unqualified resource and returns a Group qualified GroupResource
|
||||
func Resource(resource string) schema.GroupResource {
|
||||
return SchemeGroupVersion.WithResource(resource).GroupResource()
|
||||
}
|
||||
|
||||
var (
|
||||
// SchemeBuilder points to a list of functions added to Scheme.
|
||||
SchemeBuilder runtime.SchemeBuilder
|
||||
localSchemeBuilder = &SchemeBuilder
|
||||
// AddToScheme applies all the stored functions to the scheme.
|
||||
AddToScheme = localSchemeBuilder.AddToScheme
|
||||
)
|
||||
|
||||
func init() {
|
||||
// We only register manually written functions here. The registration of the
|
||||
// generated functions takes place in the generated files. The separation
|
||||
// makes the code compile even when the generated files are missing.
|
||||
localSchemeBuilder.Register(addKnownTypes)
|
||||
}
|
||||
|
||||
// Adds the list of known types to api.Scheme.
|
||||
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||
&VerticalPodAutoscaler{},
|
||||
&VerticalPodAutoscalerList{},
|
||||
&VerticalPodAutoscalerCheckpoint{},
|
||||
&VerticalPodAutoscalerCheckpointList{},
|
||||
)
|
||||
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||
return nil
|
||||
}
|
||||
339
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/types.go
generated
vendored
Normal file
339
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/types.go
generated
vendored
Normal file
|
|
@ -0,0 +1,339 @@
|
|||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Package v1 contains definitions of Vertical Pod Autoscaler related objects.
|
||||
package v1
|
||||
|
||||
import (
|
||||
autoscaling "k8s.io/api/autoscaling/v1"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects.
|
||||
type VerticalPodAutoscalerList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// metadata is the standard list metadata.
|
||||
// +optional
|
||||
metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// items is the list of vertical pod autoscaler objects.
|
||||
Items []VerticalPodAutoscaler `json:"items" protobuf:"bytes,2,rep,name=items"`
|
||||
}
|
||||
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscaler is the configuration for a vertical pod
|
||||
// autoscaler, which automatically manages pod resources based on historical and
|
||||
// real time resource utilization.
|
||||
type VerticalPodAutoscaler struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
|
||||
// +optional
|
||||
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// Specification of the behavior of the autoscaler.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
|
||||
Spec VerticalPodAutoscalerSpec `json:"spec" protobuf:"bytes,2,name=spec"`
|
||||
|
||||
// Current information about the autoscaler.
|
||||
// +optional
|
||||
Status VerticalPodAutoscalerStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler.
|
||||
type VerticalPodAutoscalerSpec struct {
|
||||
|
||||
// TargetRef points to the controller managing the set of pods for the
|
||||
// autoscaler to control - e.g. Deployment, StatefulSet. VerticalPodAutoscaler
|
||||
// can be targeted at controller implementing scale subresource (the pod set is
|
||||
// retrieved from the controller's ScaleStatus) or some well known controllers
|
||||
// (e.g. for DaemonSet the pod set is read from the controller's spec).
|
||||
// If VerticalPodAutoscaler cannot use specified target it will report
|
||||
// ConfigUnsupported condition.
|
||||
// Note that VerticalPodAutoscaler does not require full implementation
|
||||
// of scale subresource - it will not use it to modify the replica count.
|
||||
// The only thing retrieved is a label selector matching pods grouped by
|
||||
// the target resource.
|
||||
TargetRef *autoscaling.CrossVersionObjectReference `json:"targetRef" protobuf:"bytes,1,name=targetRef"`
|
||||
|
||||
// Describes the rules on how changes are applied to the pods.
|
||||
// If not specified, all fields in the `PodUpdatePolicy` are set to their
|
||||
// default values.
|
||||
// +optional
|
||||
UpdatePolicy *PodUpdatePolicy `json:"updatePolicy,omitempty" protobuf:"bytes,2,opt,name=updatePolicy"`
|
||||
|
||||
// Controls how the autoscaler computes recommended resources.
|
||||
// The resource policy may be used to set constraints on the recommendations
|
||||
// for individual containers. If not specified, the autoscaler computes recommended
|
||||
// resources for all containers in the pod, without additional constraints.
|
||||
// +optional
|
||||
ResourcePolicy *PodResourcePolicy `json:"resourcePolicy,omitempty" protobuf:"bytes,3,opt,name=resourcePolicy"`
|
||||
}
|
||||
|
||||
// PodUpdatePolicy describes the rules on how changes are applied to the pods.
|
||||
type PodUpdatePolicy struct {
|
||||
// Controls when autoscaler applies changes to the pod resources.
|
||||
// The default is 'Auto'.
|
||||
// +optional
|
||||
UpdateMode *UpdateMode `json:"updateMode,omitempty" protobuf:"bytes,1,opt,name=updateMode"`
|
||||
}
|
||||
|
||||
// UpdateMode controls when autoscaler applies changes to the pod resoures.
|
||||
type UpdateMode string
|
||||
|
||||
const (
|
||||
// UpdateModeOff means that autoscaler never changes Pod resources.
|
||||
// The recommender still sets the recommended resources in the
|
||||
// VerticalPodAutoscaler object. This can be used for a "dry run".
|
||||
UpdateModeOff UpdateMode = "Off"
|
||||
// UpdateModeInitial means that autoscaler only assigns resources on pod
|
||||
// creation and does not change them during the lifetime of the pod.
|
||||
UpdateModeInitial UpdateMode = "Initial"
|
||||
// UpdateModeRecreate means that autoscaler assigns resources on pod
|
||||
// creation and additionally can update them during the lifetime of the
|
||||
// pod by deleting and recreating the pod.
|
||||
UpdateModeRecreate UpdateMode = "Recreate"
|
||||
// UpdateModeAuto means that autoscaler assigns resources on pod creation
|
||||
// and additionally can update them during the lifetime of the pod,
|
||||
// using any available update method. Currently this is equivalent to
|
||||
// Recreate, which is the only available update method.
|
||||
UpdateModeAuto UpdateMode = "Auto"
|
||||
)
|
||||
|
||||
// PodResourcePolicy controls how autoscaler computes the recommended resources
|
||||
// for containers belonging to the pod. There can be at most one entry for every
|
||||
// named container and optionally a single wildcard entry with `containerName` = '*',
|
||||
// which handles all containers that don't have individual policies.
|
||||
type PodResourcePolicy struct {
|
||||
// Per-container resource policies.
|
||||
// +optional
|
||||
// +patchMergeKey=containerName
|
||||
// +patchStrategy=merge
|
||||
ContainerPolicies []ContainerResourcePolicy `json:"containerPolicies,omitempty" patchStrategy:"merge" patchMergeKey:"containerName" protobuf:"bytes,1,rep,name=containerPolicies"`
|
||||
}
|
||||
|
||||
// ContainerResourcePolicy controls how autoscaler computes the recommended
|
||||
// resources for a specific container.
|
||||
type ContainerResourcePolicy struct {
|
||||
// Name of the container or DefaultContainerResourcePolicy, in which
|
||||
// case the policy is used by the containers that don't have their own
|
||||
// policy specified.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"`
|
||||
// Whether autoscaler is enabled for the container. The default is "Auto".
|
||||
// +optional
|
||||
Mode *ContainerScalingMode `json:"mode,omitempty" protobuf:"bytes,2,opt,name=mode"`
|
||||
// Specifies the minimal amount of resources that will be recommended
|
||||
// for the container. The default is no minimum.
|
||||
// +optional
|
||||
MinAllowed v1.ResourceList `json:"minAllowed,omitempty" protobuf:"bytes,3,rep,name=minAllowed,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Specifies the maximum amount of resources that will be recommended
|
||||
// for the container. The default is no maximum.
|
||||
// +optional
|
||||
MaxAllowed v1.ResourceList `json:"maxAllowed,omitempty" protobuf:"bytes,4,rep,name=maxAllowed,casttype=ResourceList,castkey=ResourceName"`
|
||||
}
|
||||
|
||||
const (
|
||||
// DefaultContainerResourcePolicy can be passed as
|
||||
// ContainerResourcePolicy.ContainerName to specify the default policy.
|
||||
DefaultContainerResourcePolicy = "*"
|
||||
)
|
||||
|
||||
// ContainerScalingMode controls whether autoscaler is enabled for a specific
|
||||
// container.
|
||||
type ContainerScalingMode string
|
||||
|
||||
const (
|
||||
// ContainerScalingModeAuto means autoscaling is enabled for a container.
|
||||
ContainerScalingModeAuto ContainerScalingMode = "Auto"
|
||||
// ContainerScalingModeOff means autoscaling is disabled for a container.
|
||||
ContainerScalingModeOff ContainerScalingMode = "Off"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerStatus describes the runtime state of the autoscaler.
|
||||
type VerticalPodAutoscalerStatus struct {
|
||||
// The most recently computed amount of resources recommended by the
|
||||
// autoscaler for the controlled pods.
|
||||
// +optional
|
||||
Recommendation *RecommendedPodResources `json:"recommendation,omitempty" protobuf:"bytes,1,opt,name=recommendation"`
|
||||
|
||||
// Conditions is the set of conditions required for this autoscaler to scale its target,
|
||||
// and indicates whether or not those conditions are met.
|
||||
// +optional
|
||||
// +patchMergeKey=type
|
||||
// +patchStrategy=merge
|
||||
Conditions []VerticalPodAutoscalerCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=conditions"`
|
||||
}
|
||||
|
||||
// RecommendedPodResources is the recommendation of resources computed by
|
||||
// autoscaler. It contains a recommendation for each container in the pod
|
||||
// (except for those with `ContainerScalingMode` set to 'Off').
|
||||
type RecommendedPodResources struct {
|
||||
// Resources recommended by the autoscaler for each container.
|
||||
// +optional
|
||||
ContainerRecommendations []RecommendedContainerResources `json:"containerRecommendations,omitempty" protobuf:"bytes,1,rep,name=containerRecommendations"`
|
||||
}
|
||||
|
||||
// RecommendedContainerResources is the recommendation of resources computed by
|
||||
// autoscaler for a specific container. Respects the container resource policy
|
||||
// if present in the spec. In particular the recommendation is not produced for
|
||||
// containers with `ContainerScalingMode` set to 'Off'.
|
||||
type RecommendedContainerResources struct {
|
||||
// Name of the container.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"`
|
||||
// Recommended amount of resources. Observes ContainerResourcePolicy.
|
||||
Target v1.ResourceList `json:"target" protobuf:"bytes,2,rep,name=target,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Minimum recommended amount of resources. Observes ContainerResourcePolicy.
|
||||
// This amount is not guaranteed to be sufficient for the application to operate in a stable way, however
|
||||
// running with less resources is likely to have significant impact on performance/availability.
|
||||
// +optional
|
||||
LowerBound v1.ResourceList `json:"lowerBound,omitempty" protobuf:"bytes,3,rep,name=lowerBound,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Maximum recommended amount of resources. Observes ContainerResourcePolicy.
|
||||
// Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum
|
||||
// amount of application is actually capable of consuming.
|
||||
// +optional
|
||||
UpperBound v1.ResourceList `json:"upperBound,omitempty" protobuf:"bytes,4,rep,name=upperBound,casttype=ResourceList,castkey=ResourceName"`
|
||||
// The most recent recommended resources target computed by the autoscaler
|
||||
// for the controlled pods, based only on actual resource usage, not taking
|
||||
// into account the ContainerResourcePolicy.
|
||||
// May differ from the Recommendation if the actual resource usage causes
|
||||
// the target to violate the ContainerResourcePolicy (lower than MinAllowed
|
||||
// or higher that MaxAllowed).
|
||||
// Used only as status indication, will not affect actual resource assignment.
|
||||
// +optional
|
||||
UncappedTarget v1.ResourceList `json:"uncappedTarget,omitempty" protobuf:"bytes,5,opt,name=uncappedTarget"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerConditionType are the valid conditions of
|
||||
// a VerticalPodAutoscaler.
|
||||
type VerticalPodAutoscalerConditionType string
|
||||
|
||||
var (
|
||||
// RecommendationProvided indicates whether the VPA recommender was able to calculate a recommendation.
|
||||
RecommendationProvided VerticalPodAutoscalerConditionType = "RecommendationProvided"
|
||||
// LowConfidence indicates whether the VPA recommender has low confidence in the recommendation for
|
||||
// some of containers.
|
||||
LowConfidence VerticalPodAutoscalerConditionType = "LowConfidence"
|
||||
// NoPodsMatched indicates that label selector used with VPA object didn't match any pods.
|
||||
NoPodsMatched VerticalPodAutoscalerConditionType = "NoPodsMatched"
|
||||
// FetchingHistory indicates that VPA recommender is in the process of loading additional history samples.
|
||||
FetchingHistory VerticalPodAutoscalerConditionType = "FetchingHistory"
|
||||
// ConfigDeprecated indicates that this VPA configuration is deprecated
|
||||
// and will stop being supported soon.
|
||||
ConfigDeprecated VerticalPodAutoscalerConditionType = "ConfigDeprecated"
|
||||
// ConfigUnsupported indicates that this VPA configuration is unsupported
|
||||
// and recommendations will not be provided for it.
|
||||
ConfigUnsupported VerticalPodAutoscalerConditionType = "ConfigUnsupported"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerCondition describes the state of
|
||||
// a VerticalPodAutoscaler at a certain point.
|
||||
type VerticalPodAutoscalerCondition struct {
|
||||
// type describes the current condition
|
||||
Type VerticalPodAutoscalerConditionType `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"`
|
||||
}
|
||||
|
||||
// +genclient
|
||||
// +genclient:noStatus
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerCheckpoint is the checkpoint of the internal state of VPA that
|
||||
// is used for recovery after recommender's restart.
|
||||
type VerticalPodAutoscalerCheckpoint struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
|
||||
// +optional
|
||||
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// Specification of the checkpoint.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
|
||||
// +optional
|
||||
Spec VerticalPodAutoscalerCheckpointSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`
|
||||
|
||||
// Data of the checkpoint.
|
||||
// +optional
|
||||
Status VerticalPodAutoscalerCheckpointStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerCheckpointList is a list of VerticalPodAutoscalerCheckpoint objects.
|
||||
type VerticalPodAutoscalerCheckpointList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []VerticalPodAutoscalerCheckpoint `json:"items"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointSpec is the specification of the checkpoint object.
|
||||
type VerticalPodAutoscalerCheckpointSpec struct {
|
||||
// Name of the VPA object that stored VerticalPodAutoscalerCheckpoint object.
|
||||
VPAObjectName string `json:"vpaObjectName,omitempty" protobuf:"bytes,1,opt,name=vpaObjectName"`
|
||||
|
||||
// Name of the checkpointed container.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,2,opt,name=containerName"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointStatus contains data of the checkpoint.
|
||||
type VerticalPodAutoscalerCheckpointStatus struct {
|
||||
// The time when the status was last refreshed.
|
||||
LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,1,opt,name=lastUpdateTime"`
|
||||
|
||||
// Version of the format of the stored data.
|
||||
Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"`
|
||||
|
||||
// Checkpoint of histogram for consumption of CPU.
|
||||
CPUHistogram HistogramCheckpoint `json:"cpuHistogram,omitempty" protobuf:"bytes,3,rep,name=cpuHistograms"`
|
||||
|
||||
// Checkpoint of histogram for consumption of memory.
|
||||
MemoryHistogram HistogramCheckpoint `json:"memoryHistogram,omitempty" protobuf:"bytes,4,rep,name=memoryHistogram"`
|
||||
|
||||
// Timestamp of the fist sample from the histograms.
|
||||
FirstSampleStart metav1.Time `json:"firstSampleStart,omitempty" protobuf:"bytes,5,opt,name=firstSampleStart"`
|
||||
|
||||
// Timestamp of the last sample from the histograms.
|
||||
LastSampleStart metav1.Time `json:"lastSampleStart,omitempty" protobuf:"bytes,6,opt,name=lastSampleStart"`
|
||||
|
||||
// Total number of samples in the histograms.
|
||||
TotalSamplesCount int `json:"totalSamplesCount,omitempty" protobuf:"bytes,7,opt,name=totalSamplesCount"`
|
||||
}
|
||||
|
||||
// HistogramCheckpoint contains data needed to reconstruct the histogram.
|
||||
type HistogramCheckpoint struct {
|
||||
// Reference timestamp for samples collected within this histogram.
|
||||
ReferenceTimestamp metav1.Time `json:"referenceTimestamp,omitempty" protobuf:"bytes,1,opt,name=referenceTimestamp"`
|
||||
|
||||
// Map from bucket index to bucket weight.
|
||||
BucketWeights map[int]uint32 `json:"bucketWeights,omitempty" protobuf:"bytes,2,opt,name=bucketWeights"`
|
||||
|
||||
// Sum of samples to be used as denominator for weights from BucketWeights.
|
||||
TotalWeight float64 `json:"totalWeight,omitempty" protobuf:"bytes,3,opt,name=totalWeight"`
|
||||
}
|
||||
432
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/zz_generated.deepcopy.go
generated
vendored
Normal file
432
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/zz_generated.deepcopy.go
generated
vendored
Normal file
|
|
@ -0,0 +1,432 @@
|
|||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package v1
|
||||
|
||||
import (
|
||||
autoscalingv1 "k8s.io/api/autoscaling/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *ContainerResourcePolicy) DeepCopyInto(out *ContainerResourcePolicy) {
|
||||
*out = *in
|
||||
if in.Mode != nil {
|
||||
in, out := &in.Mode, &out.Mode
|
||||
*out = new(ContainerScalingMode)
|
||||
**out = **in
|
||||
}
|
||||
if in.MinAllowed != nil {
|
||||
in, out := &in.MinAllowed, &out.MinAllowed
|
||||
*out = make(corev1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.MaxAllowed != nil {
|
||||
in, out := &in.MaxAllowed, &out.MaxAllowed
|
||||
*out = make(corev1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourcePolicy.
|
||||
func (in *ContainerResourcePolicy) DeepCopy() *ContainerResourcePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(ContainerResourcePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *HistogramCheckpoint) DeepCopyInto(out *HistogramCheckpoint) {
|
||||
*out = *in
|
||||
in.ReferenceTimestamp.DeepCopyInto(&out.ReferenceTimestamp)
|
||||
if in.BucketWeights != nil {
|
||||
in, out := &in.BucketWeights, &out.BucketWeights
|
||||
*out = make(map[int]uint32, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HistogramCheckpoint.
|
||||
func (in *HistogramCheckpoint) DeepCopy() *HistogramCheckpoint {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(HistogramCheckpoint)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PodResourcePolicy) DeepCopyInto(out *PodResourcePolicy) {
|
||||
*out = *in
|
||||
if in.ContainerPolicies != nil {
|
||||
in, out := &in.ContainerPolicies, &out.ContainerPolicies
|
||||
*out = make([]ContainerResourcePolicy, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodResourcePolicy.
|
||||
func (in *PodResourcePolicy) DeepCopy() *PodResourcePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(PodResourcePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PodUpdatePolicy) DeepCopyInto(out *PodUpdatePolicy) {
|
||||
*out = *in
|
||||
if in.UpdateMode != nil {
|
||||
in, out := &in.UpdateMode, &out.UpdateMode
|
||||
*out = new(UpdateMode)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodUpdatePolicy.
|
||||
func (in *PodUpdatePolicy) DeepCopy() *PodUpdatePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(PodUpdatePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *RecommendedContainerResources) DeepCopyInto(out *RecommendedContainerResources) {
|
||||
*out = *in
|
||||
if in.Target != nil {
|
||||
in, out := &in.Target, &out.Target
|
||||
*out = make(corev1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.LowerBound != nil {
|
||||
in, out := &in.LowerBound, &out.LowerBound
|
||||
*out = make(corev1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.UpperBound != nil {
|
||||
in, out := &in.UpperBound, &out.UpperBound
|
||||
*out = make(corev1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.UncappedTarget != nil {
|
||||
in, out := &in.UncappedTarget, &out.UncappedTarget
|
||||
*out = make(corev1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedContainerResources.
|
||||
func (in *RecommendedContainerResources) DeepCopy() *RecommendedContainerResources {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(RecommendedContainerResources)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *RecommendedPodResources) DeepCopyInto(out *RecommendedPodResources) {
|
||||
*out = *in
|
||||
if in.ContainerRecommendations != nil {
|
||||
in, out := &in.ContainerRecommendations, &out.ContainerRecommendations
|
||||
*out = make([]RecommendedContainerResources, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedPodResources.
|
||||
func (in *RecommendedPodResources) DeepCopy() *RecommendedPodResources {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(RecommendedPodResources)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscaler) DeepCopyInto(out *VerticalPodAutoscaler) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscaler.
|
||||
func (in *VerticalPodAutoscaler) DeepCopy() *VerticalPodAutoscaler {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscaler)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscaler) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopyInto(out *VerticalPodAutoscalerCheckpoint) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
out.Spec = in.Spec
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpoint.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopy() *VerticalPodAutoscalerCheckpoint {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpoint)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopyInto(out *VerticalPodAutoscalerCheckpointList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]VerticalPodAutoscalerCheckpoint, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointList.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopy() *VerticalPodAutoscalerCheckpointList {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointList)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointSpec) DeepCopyInto(out *VerticalPodAutoscalerCheckpointSpec) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointSpec.
|
||||
func (in *VerticalPodAutoscalerCheckpointSpec) DeepCopy() *VerticalPodAutoscalerCheckpointSpec {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointSpec)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointStatus) DeepCopyInto(out *VerticalPodAutoscalerCheckpointStatus) {
|
||||
*out = *in
|
||||
in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)
|
||||
in.CPUHistogram.DeepCopyInto(&out.CPUHistogram)
|
||||
in.MemoryHistogram.DeepCopyInto(&out.MemoryHistogram)
|
||||
in.FirstSampleStart.DeepCopyInto(&out.FirstSampleStart)
|
||||
in.LastSampleStart.DeepCopyInto(&out.LastSampleStart)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointStatus.
|
||||
func (in *VerticalPodAutoscalerCheckpointStatus) DeepCopy() *VerticalPodAutoscalerCheckpointStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCondition) DeepCopyInto(out *VerticalPodAutoscalerCondition) {
|
||||
*out = *in
|
||||
in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCondition.
|
||||
func (in *VerticalPodAutoscalerCondition) DeepCopy() *VerticalPodAutoscalerCondition {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCondition)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopyInto(out *VerticalPodAutoscalerList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]VerticalPodAutoscaler, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerList.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopy() *VerticalPodAutoscalerList {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerList)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerSpec) DeepCopyInto(out *VerticalPodAutoscalerSpec) {
|
||||
*out = *in
|
||||
if in.TargetRef != nil {
|
||||
in, out := &in.TargetRef, &out.TargetRef
|
||||
*out = new(autoscalingv1.CrossVersionObjectReference)
|
||||
**out = **in
|
||||
}
|
||||
if in.UpdatePolicy != nil {
|
||||
in, out := &in.UpdatePolicy, &out.UpdatePolicy
|
||||
*out = new(PodUpdatePolicy)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.ResourcePolicy != nil {
|
||||
in, out := &in.ResourcePolicy, &out.ResourcePolicy
|
||||
*out = new(PodResourcePolicy)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerSpec.
|
||||
func (in *VerticalPodAutoscalerSpec) DeepCopy() *VerticalPodAutoscalerSpec {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerSpec)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerStatus) DeepCopyInto(out *VerticalPodAutoscalerStatus) {
|
||||
*out = *in
|
||||
if in.Recommendation != nil {
|
||||
in, out := &in.Recommendation, &out.Recommendation
|
||||
*out = new(RecommendedPodResources)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Conditions != nil {
|
||||
in, out := &in.Conditions, &out.Conditions
|
||||
*out = make([]VerticalPodAutoscalerCondition, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerStatus.
|
||||
func (in *VerticalPodAutoscalerStatus) DeepCopy() *VerticalPodAutoscalerStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
21
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1/doc.go
generated
vendored
Normal file
21
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
|
||||
// Package v1beta1 contains definitions of Vertical Pod Autoscaler related objects.
|
||||
// +groupName=autoscaling.k8s.io
|
||||
package v1beta1
|
||||
58
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1/register.go
generated
vendored
Normal file
58
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1/register.go
generated
vendored
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package v1beta1
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
var SchemeGroupVersion = schema.GroupVersion{Group: "autoscaling.k8s.io", Version: "v1beta1"}
|
||||
|
||||
// Resource takes an unqualified resource and returns a Group qualified GroupResource
|
||||
func Resource(resource string) schema.GroupResource {
|
||||
return SchemeGroupVersion.WithResource(resource).GroupResource()
|
||||
}
|
||||
|
||||
var (
|
||||
// SchemeBuilder points to a list of functions added to Scheme.
|
||||
SchemeBuilder runtime.SchemeBuilder
|
||||
localSchemeBuilder = &SchemeBuilder
|
||||
// AddToScheme applies all the stored functions to the scheme.
|
||||
AddToScheme = localSchemeBuilder.AddToScheme
|
||||
)
|
||||
|
||||
func init() {
|
||||
// We only register manually written functions here. The registration of the
|
||||
// generated functions takes place in the generated files. The separation
|
||||
// makes the code compile even when the generated files are missing.
|
||||
localSchemeBuilder.Register(addKnownTypes)
|
||||
}
|
||||
|
||||
// Adds the list of known types to api.Scheme.
|
||||
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||
&VerticalPodAutoscaler{},
|
||||
&VerticalPodAutoscalerList{},
|
||||
&VerticalPodAutoscalerCheckpoint{},
|
||||
&VerticalPodAutoscalerCheckpointList{},
|
||||
)
|
||||
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||
return nil
|
||||
}
|
||||
322
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1/types.go
generated
vendored
Normal file
322
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1/types.go
generated
vendored
Normal file
|
|
@ -0,0 +1,322 @@
|
|||
/*
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Package v1beta1 contains definitions of Vertical Pod Autoscaler related objects.
|
||||
package v1beta1
|
||||
|
||||
import (
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects.
|
||||
type VerticalPodAutoscalerList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// metadata is the standard list metadata.
|
||||
// +optional
|
||||
metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// items is the list of vertical pod autoscaler objects.
|
||||
Items []VerticalPodAutoscaler `json:"items" protobuf:"bytes,2,rep,name=items"`
|
||||
}
|
||||
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscaler is the configuration for a vertical pod
|
||||
// autoscaler, which automatically manages pod resources based on historical and
|
||||
// real time resource utilization.
|
||||
type VerticalPodAutoscaler struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
|
||||
// +optional
|
||||
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// Specification of the behavior of the autoscaler.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
|
||||
Spec VerticalPodAutoscalerSpec `json:"spec" protobuf:"bytes,2,name=spec"`
|
||||
|
||||
// Current information about the autoscaler.
|
||||
// +optional
|
||||
Status VerticalPodAutoscalerStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler.
|
||||
type VerticalPodAutoscalerSpec struct {
|
||||
// A label query that determines the set of pods controlled by the Autoscaler.
|
||||
// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
|
||||
Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,1,name=selector"`
|
||||
|
||||
// Describes the rules on how changes are applied to the pods.
|
||||
// If not specified, all fields in the `PodUpdatePolicy` are set to their
|
||||
// default values.
|
||||
// +optional
|
||||
UpdatePolicy *PodUpdatePolicy `json:"updatePolicy,omitempty" protobuf:"bytes,2,opt,name=updatePolicy"`
|
||||
|
||||
// Controls how the autoscaler computes recommended resources.
|
||||
// The resource policy may be used to set constraints on the recommendations
|
||||
// for individual containers. If not specified, the autoscaler computes recommended
|
||||
// resources for all containers in the pod, without additional constraints.
|
||||
// +optional
|
||||
ResourcePolicy *PodResourcePolicy `json:"resourcePolicy,omitempty" protobuf:"bytes,3,opt,name=resourcePolicy"`
|
||||
}
|
||||
|
||||
// PodUpdatePolicy describes the rules on how changes are applied to the pods.
|
||||
type PodUpdatePolicy struct {
|
||||
// Controls when autoscaler applies changes to the pod resources.
|
||||
// The default is 'Auto'.
|
||||
// +optional
|
||||
UpdateMode *UpdateMode `json:"updateMode,omitempty" protobuf:"bytes,1,opt,name=updateMode"`
|
||||
}
|
||||
|
||||
// UpdateMode controls when autoscaler applies changes to the pod resoures.
|
||||
type UpdateMode string
|
||||
|
||||
const (
|
||||
// UpdateModeOff means that autoscaler never changes Pod resources.
|
||||
// The recommender still sets the recommended resources in the
|
||||
// VerticalPodAutoscaler object. This can be used for a "dry run".
|
||||
UpdateModeOff UpdateMode = "Off"
|
||||
// UpdateModeInitial means that autoscaler only assigns resources on pod
|
||||
// creation and does not change them during the lifetime of the pod.
|
||||
UpdateModeInitial UpdateMode = "Initial"
|
||||
// UpdateModeRecreate means that autoscaler assigns resources on pod
|
||||
// creation and additionally can update them during the lifetime of the
|
||||
// pod by deleting and recreating the pod.
|
||||
UpdateModeRecreate UpdateMode = "Recreate"
|
||||
// UpdateModeAuto means that autoscaler assigns resources on pod creation
|
||||
// and additionally can update them during the lifetime of the pod,
|
||||
// using any available update method. Currently this is equivalent to
|
||||
// Recreate, which is the only available update method.
|
||||
UpdateModeAuto UpdateMode = "Auto"
|
||||
)
|
||||
|
||||
// PodResourcePolicy controls how autoscaler computes the recommended resources
|
||||
// for containers belonging to the pod. There can be at most one entry for every
|
||||
// named container and optionally a single wildcard entry with `containerName` = '*',
|
||||
// which handles all containers that don't have individual policies.
|
||||
type PodResourcePolicy struct {
|
||||
// Per-container resource policies.
|
||||
// +optional
|
||||
// +patchMergeKey=containerName
|
||||
// +patchStrategy=merge
|
||||
ContainerPolicies []ContainerResourcePolicy `json:"containerPolicies,omitempty" patchStrategy:"merge" patchMergeKey:"containerName" protobuf:"bytes,1,rep,name=containerPolicies"`
|
||||
}
|
||||
|
||||
// ContainerResourcePolicy controls how autoscaler computes the recommended
|
||||
// resources for a specific container.
|
||||
type ContainerResourcePolicy struct {
|
||||
// Name of the container or DefaultContainerResourcePolicy, in which
|
||||
// case the policy is used by the containers that don't have their own
|
||||
// policy specified.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"`
|
||||
// Whether autoscaler is enabled for the container. The default is "Auto".
|
||||
// +optional
|
||||
Mode *ContainerScalingMode `json:"mode,omitempty" protobuf:"bytes,2,opt,name=mode"`
|
||||
// Specifies the minimal amount of resources that will be recommended
|
||||
// for the container. The default is no minimum.
|
||||
// +optional
|
||||
MinAllowed v1.ResourceList `json:"minAllowed,omitempty" protobuf:"bytes,3,rep,name=minAllowed,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Specifies the maximum amount of resources that will be recommended
|
||||
// for the container. The default is no maximum.
|
||||
// +optional
|
||||
MaxAllowed v1.ResourceList `json:"maxAllowed,omitempty" protobuf:"bytes,4,rep,name=maxAllowed,casttype=ResourceList,castkey=ResourceName"`
|
||||
}
|
||||
|
||||
const (
|
||||
// DefaultContainerResourcePolicy can be passed as
|
||||
// ContainerResourcePolicy.ContainerName to specify the default policy.
|
||||
DefaultContainerResourcePolicy = "*"
|
||||
)
|
||||
|
||||
// ContainerScalingMode controls whether autoscaler is enabled for a specific
|
||||
// container.
|
||||
type ContainerScalingMode string
|
||||
|
||||
const (
|
||||
// ContainerScalingModeAuto means autoscaling is enabled for a container.
|
||||
ContainerScalingModeAuto ContainerScalingMode = "Auto"
|
||||
// ContainerScalingModeOff means autoscaling is disabled for a container.
|
||||
ContainerScalingModeOff ContainerScalingMode = "Off"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerStatus describes the runtime state of the autoscaler.
|
||||
type VerticalPodAutoscalerStatus struct {
|
||||
// The most recently computed amount of resources recommended by the
|
||||
// autoscaler for the controlled pods.
|
||||
// +optional
|
||||
Recommendation *RecommendedPodResources `json:"recommendation,omitempty" protobuf:"bytes,1,opt,name=recommendation"`
|
||||
|
||||
// Conditions is the set of conditions required for this autoscaler to scale its target,
|
||||
// and indicates whether or not those conditions are met.
|
||||
// +optional
|
||||
// +patchMergeKey=type
|
||||
// +patchStrategy=merge
|
||||
Conditions []VerticalPodAutoscalerCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=conditions"`
|
||||
}
|
||||
|
||||
// RecommendedPodResources is the recommendation of resources computed by
|
||||
// autoscaler. It contains a recommendation for each container in the pod
|
||||
// (except for those with `ContainerScalingMode` set to 'Off').
|
||||
type RecommendedPodResources struct {
|
||||
// Resources recommended by the autoscaler for each container.
|
||||
// +optional
|
||||
ContainerRecommendations []RecommendedContainerResources `json:"containerRecommendations,omitempty" protobuf:"bytes,1,rep,name=containerRecommendations"`
|
||||
}
|
||||
|
||||
// RecommendedContainerResources is the recommendation of resources computed by
|
||||
// autoscaler for a specific container. Respects the container resource policy
|
||||
// if present in the spec. In particular the recommendation is not produced for
|
||||
// containers with `ContainerScalingMode` set to 'Off'.
|
||||
type RecommendedContainerResources struct {
|
||||
// Name of the container.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"`
|
||||
// Recommended amount of resources. Observes ContainerResourcePolicy.
|
||||
Target v1.ResourceList `json:"target" protobuf:"bytes,2,rep,name=target,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Minimum recommended amount of resources. Observes ContainerResourcePolicy.
|
||||
// This amount is not guaranteed to be sufficient for the application to operate in a stable way, however
|
||||
// running with less resources is likely to have significant impact on performance/availability.
|
||||
// +optional
|
||||
LowerBound v1.ResourceList `json:"lowerBound,omitempty" protobuf:"bytes,3,rep,name=lowerBound,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Maximum recommended amount of resources. Observes ContainerResourcePolicy.
|
||||
// Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum
|
||||
// amount of application is actually capable of consuming.
|
||||
// +optional
|
||||
UpperBound v1.ResourceList `json:"upperBound,omitempty" protobuf:"bytes,4,rep,name=upperBound,casttype=ResourceList,castkey=ResourceName"`
|
||||
// The most recent recommended resources target computed by the autoscaler
|
||||
// for the controlled pods, based only on actual resource usage, not taking
|
||||
// into account the ContainerResourcePolicy.
|
||||
// May differ from the Recommendation if the actual resource usage causes
|
||||
// the target to violate the ContainerResourcePolicy (lower than MinAllowed
|
||||
// or higher that MaxAllowed).
|
||||
// Used only as status indication, will not affect actual resource assignment.
|
||||
// +optional
|
||||
UncappedTarget v1.ResourceList `json:"uncappedTarget,omitempty" protobuf:"bytes,5,opt,name=uncappedTarget"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerConditionType are the valid conditions of
|
||||
// a VerticalPodAutoscaler.
|
||||
type VerticalPodAutoscalerConditionType string
|
||||
|
||||
var (
|
||||
// RecommendationProvided indicates whether the VPA recommender was able to calculate a recommendation.
|
||||
RecommendationProvided VerticalPodAutoscalerConditionType = "RecommendationProvided"
|
||||
// LowConfidence indicates whether the VPA recommender has low confidence in the recommendation for
|
||||
// some of containers.
|
||||
LowConfidence VerticalPodAutoscalerConditionType = "LowConfidence"
|
||||
// NoPodsMatched indicates that label selector used with VPA object didn't match any pods.
|
||||
NoPodsMatched VerticalPodAutoscalerConditionType = "NoPodsMatched"
|
||||
// FetchingHistory indicates that VPA recommender is in the process of loading additional history samples.
|
||||
FetchingHistory VerticalPodAutoscalerConditionType = "FetchingHistory"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerCondition describes the state of
|
||||
// a VerticalPodAutoscaler at a certain point.
|
||||
type VerticalPodAutoscalerCondition struct {
|
||||
// type describes the current condition
|
||||
Type VerticalPodAutoscalerConditionType `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"`
|
||||
}
|
||||
|
||||
// +genclient
|
||||
// +genclient:noStatus
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerCheckpoint is the checkpoint of the internal state of VPA that
|
||||
// is used for recovery after recommender's restart.
|
||||
type VerticalPodAutoscalerCheckpoint struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
|
||||
// +optional
|
||||
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// Specification of the checkpoint.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
|
||||
// +optional
|
||||
Spec VerticalPodAutoscalerCheckpointSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`
|
||||
|
||||
// Data of the checkpoint.
|
||||
// +optional
|
||||
Status VerticalPodAutoscalerCheckpointStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerCheckpointList is a list of VerticalPodAutoscalerCheckpoint objects.
|
||||
type VerticalPodAutoscalerCheckpointList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []VerticalPodAutoscalerCheckpoint `json:"items"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointSpec is the specification of the checkpoint object.
|
||||
type VerticalPodAutoscalerCheckpointSpec struct {
|
||||
// Name of the VPA object that stored VerticalPodAutoscalerCheckpoint object.
|
||||
VPAObjectName string `json:"vpaObjectName,omitempty" protobuf:"bytes,1,opt,name=vpaObjectName"`
|
||||
|
||||
// Name of the checkpointed container.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,2,opt,name=containerName"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointStatus contains data of the checkpoint.
|
||||
type VerticalPodAutoscalerCheckpointStatus struct {
|
||||
// The time when the status was last refreshed.
|
||||
LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,1,opt,name=lastUpdateTime"`
|
||||
|
||||
// Version of the format of the stored data.
|
||||
Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"`
|
||||
|
||||
// Checkpoint of histogram for consumption of CPU.
|
||||
CPUHistogram HistogramCheckpoint `json:"cpuHistogram,omitempty" protobuf:"bytes,3,rep,name=cpuHistograms"`
|
||||
|
||||
// Checkpoint of histogram for consumption of memory.
|
||||
MemoryHistogram HistogramCheckpoint `json:"memoryHistogram,omitempty" protobuf:"bytes,4,rep,name=memoryHistogram"`
|
||||
|
||||
// Timestamp of the fist sample from the histograms.
|
||||
FirstSampleStart metav1.Time `json:"firstSampleStart,omitempty" protobuf:"bytes,5,opt,name=firstSampleStart"`
|
||||
|
||||
// Timestamp of the last sample from the histograms.
|
||||
LastSampleStart metav1.Time `json:"lastSampleStart,omitempty" protobuf:"bytes,6,opt,name=lastSampleStart"`
|
||||
|
||||
// Total number of samples in the histograms.
|
||||
TotalSamplesCount int `json:"totalSamplesCount,omitempty" protobuf:"bytes,7,opt,name=totalSamplesCount"`
|
||||
}
|
||||
|
||||
// HistogramCheckpoint contains data needed to reconstruct the histogram.
|
||||
type HistogramCheckpoint struct {
|
||||
// Reference timestamp for samples collected within this histogram.
|
||||
ReferenceTimestamp metav1.Time `json:"referenceTimestamp,omitempty" protobuf:"bytes,1,opt,name=referenceTimestamp"`
|
||||
|
||||
// Map from bucket index to bucket weight.
|
||||
BucketWeights map[int]uint32 `json:"bucketWeights,omitempty" protobuf:"bytes,2,opt,name=bucketWeights"`
|
||||
|
||||
// Sum of samples to be used as denominator for weights from BucketWeights.
|
||||
TotalWeight float64 `json:"totalWeight,omitempty" protobuf:"bytes,3,opt,name=totalWeight"`
|
||||
}
|
||||
432
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1/zz_generated.deepcopy.go
generated
vendored
Normal file
432
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1/zz_generated.deepcopy.go
generated
vendored
Normal file
|
|
@ -0,0 +1,432 @@
|
|||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta1
|
||||
|
||||
import (
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *ContainerResourcePolicy) DeepCopyInto(out *ContainerResourcePolicy) {
|
||||
*out = *in
|
||||
if in.Mode != nil {
|
||||
in, out := &in.Mode, &out.Mode
|
||||
*out = new(ContainerScalingMode)
|
||||
**out = **in
|
||||
}
|
||||
if in.MinAllowed != nil {
|
||||
in, out := &in.MinAllowed, &out.MinAllowed
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.MaxAllowed != nil {
|
||||
in, out := &in.MaxAllowed, &out.MaxAllowed
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourcePolicy.
|
||||
func (in *ContainerResourcePolicy) DeepCopy() *ContainerResourcePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(ContainerResourcePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *HistogramCheckpoint) DeepCopyInto(out *HistogramCheckpoint) {
|
||||
*out = *in
|
||||
in.ReferenceTimestamp.DeepCopyInto(&out.ReferenceTimestamp)
|
||||
if in.BucketWeights != nil {
|
||||
in, out := &in.BucketWeights, &out.BucketWeights
|
||||
*out = make(map[int]uint32, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HistogramCheckpoint.
|
||||
func (in *HistogramCheckpoint) DeepCopy() *HistogramCheckpoint {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(HistogramCheckpoint)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PodResourcePolicy) DeepCopyInto(out *PodResourcePolicy) {
|
||||
*out = *in
|
||||
if in.ContainerPolicies != nil {
|
||||
in, out := &in.ContainerPolicies, &out.ContainerPolicies
|
||||
*out = make([]ContainerResourcePolicy, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodResourcePolicy.
|
||||
func (in *PodResourcePolicy) DeepCopy() *PodResourcePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(PodResourcePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PodUpdatePolicy) DeepCopyInto(out *PodUpdatePolicy) {
|
||||
*out = *in
|
||||
if in.UpdateMode != nil {
|
||||
in, out := &in.UpdateMode, &out.UpdateMode
|
||||
*out = new(UpdateMode)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodUpdatePolicy.
|
||||
func (in *PodUpdatePolicy) DeepCopy() *PodUpdatePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(PodUpdatePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *RecommendedContainerResources) DeepCopyInto(out *RecommendedContainerResources) {
|
||||
*out = *in
|
||||
if in.Target != nil {
|
||||
in, out := &in.Target, &out.Target
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.LowerBound != nil {
|
||||
in, out := &in.LowerBound, &out.LowerBound
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.UpperBound != nil {
|
||||
in, out := &in.UpperBound, &out.UpperBound
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.UncappedTarget != nil {
|
||||
in, out := &in.UncappedTarget, &out.UncappedTarget
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedContainerResources.
|
||||
func (in *RecommendedContainerResources) DeepCopy() *RecommendedContainerResources {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(RecommendedContainerResources)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *RecommendedPodResources) DeepCopyInto(out *RecommendedPodResources) {
|
||||
*out = *in
|
||||
if in.ContainerRecommendations != nil {
|
||||
in, out := &in.ContainerRecommendations, &out.ContainerRecommendations
|
||||
*out = make([]RecommendedContainerResources, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedPodResources.
|
||||
func (in *RecommendedPodResources) DeepCopy() *RecommendedPodResources {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(RecommendedPodResources)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscaler) DeepCopyInto(out *VerticalPodAutoscaler) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscaler.
|
||||
func (in *VerticalPodAutoscaler) DeepCopy() *VerticalPodAutoscaler {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscaler)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscaler) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopyInto(out *VerticalPodAutoscalerCheckpoint) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
out.Spec = in.Spec
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpoint.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopy() *VerticalPodAutoscalerCheckpoint {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpoint)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopyInto(out *VerticalPodAutoscalerCheckpointList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]VerticalPodAutoscalerCheckpoint, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointList.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopy() *VerticalPodAutoscalerCheckpointList {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointList)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointSpec) DeepCopyInto(out *VerticalPodAutoscalerCheckpointSpec) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointSpec.
|
||||
func (in *VerticalPodAutoscalerCheckpointSpec) DeepCopy() *VerticalPodAutoscalerCheckpointSpec {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointSpec)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointStatus) DeepCopyInto(out *VerticalPodAutoscalerCheckpointStatus) {
|
||||
*out = *in
|
||||
in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)
|
||||
in.CPUHistogram.DeepCopyInto(&out.CPUHistogram)
|
||||
in.MemoryHistogram.DeepCopyInto(&out.MemoryHistogram)
|
||||
in.FirstSampleStart.DeepCopyInto(&out.FirstSampleStart)
|
||||
in.LastSampleStart.DeepCopyInto(&out.LastSampleStart)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointStatus.
|
||||
func (in *VerticalPodAutoscalerCheckpointStatus) DeepCopy() *VerticalPodAutoscalerCheckpointStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCondition) DeepCopyInto(out *VerticalPodAutoscalerCondition) {
|
||||
*out = *in
|
||||
in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCondition.
|
||||
func (in *VerticalPodAutoscalerCondition) DeepCopy() *VerticalPodAutoscalerCondition {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCondition)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopyInto(out *VerticalPodAutoscalerList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]VerticalPodAutoscaler, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerList.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopy() *VerticalPodAutoscalerList {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerList)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerSpec) DeepCopyInto(out *VerticalPodAutoscalerSpec) {
|
||||
*out = *in
|
||||
if in.Selector != nil {
|
||||
in, out := &in.Selector, &out.Selector
|
||||
*out = new(metav1.LabelSelector)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.UpdatePolicy != nil {
|
||||
in, out := &in.UpdatePolicy, &out.UpdatePolicy
|
||||
*out = new(PodUpdatePolicy)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.ResourcePolicy != nil {
|
||||
in, out := &in.ResourcePolicy, &out.ResourcePolicy
|
||||
*out = new(PodResourcePolicy)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerSpec.
|
||||
func (in *VerticalPodAutoscalerSpec) DeepCopy() *VerticalPodAutoscalerSpec {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerSpec)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerStatus) DeepCopyInto(out *VerticalPodAutoscalerStatus) {
|
||||
*out = *in
|
||||
if in.Recommendation != nil {
|
||||
in, out := &in.Recommendation, &out.Recommendation
|
||||
*out = new(RecommendedPodResources)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Conditions != nil {
|
||||
in, out := &in.Conditions, &out.Conditions
|
||||
*out = make([]VerticalPodAutoscalerCondition, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerStatus.
|
||||
func (in *VerticalPodAutoscalerStatus) DeepCopy() *VerticalPodAutoscalerStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
21
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/doc.go
generated
vendored
Normal file
21
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
|
||||
// Package v1beta2 contains definitions of Vertical Pod Autoscaler related objects.
|
||||
// +groupName=autoscaling.k8s.io
|
||||
package v1beta2
|
||||
58
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/register.go
generated
vendored
Normal file
58
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/register.go
generated
vendored
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package v1beta2
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
var SchemeGroupVersion = schema.GroupVersion{Group: "autoscaling.k8s.io", Version: "v1beta2"}
|
||||
|
||||
// Resource takes an unqualified resource and returns a Group qualified GroupResource
|
||||
func Resource(resource string) schema.GroupResource {
|
||||
return SchemeGroupVersion.WithResource(resource).GroupResource()
|
||||
}
|
||||
|
||||
var (
|
||||
// SchemeBuilder points to a list of functions added to Scheme.
|
||||
SchemeBuilder runtime.SchemeBuilder
|
||||
localSchemeBuilder = &SchemeBuilder
|
||||
// AddToScheme applies all the stored functions to the scheme.
|
||||
AddToScheme = localSchemeBuilder.AddToScheme
|
||||
)
|
||||
|
||||
func init() {
|
||||
// We only register manually written functions here. The registration of the
|
||||
// generated functions takes place in the generated files. The separation
|
||||
// makes the code compile even when the generated files are missing.
|
||||
localSchemeBuilder.Register(addKnownTypes)
|
||||
}
|
||||
|
||||
// Adds the list of known types to api.Scheme.
|
||||
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||
&VerticalPodAutoscaler{},
|
||||
&VerticalPodAutoscalerList{},
|
||||
&VerticalPodAutoscalerCheckpoint{},
|
||||
&VerticalPodAutoscalerCheckpointList{},
|
||||
)
|
||||
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||
return nil
|
||||
}
|
||||
339
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/types.go
generated
vendored
Normal file
339
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/types.go
generated
vendored
Normal file
|
|
@ -0,0 +1,339 @@
|
|||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Package v1beta2 contains definitions of Vertical Pod Autoscaler related objects.
|
||||
package v1beta2
|
||||
|
||||
import (
|
||||
autoscaling "k8s.io/api/autoscaling/v1"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects.
|
||||
type VerticalPodAutoscalerList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// metadata is the standard list metadata.
|
||||
// +optional
|
||||
metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// items is the list of vertical pod autoscaler objects.
|
||||
Items []VerticalPodAutoscaler `json:"items" protobuf:"bytes,2,rep,name=items"`
|
||||
}
|
||||
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscaler is the configuration for a vertical pod
|
||||
// autoscaler, which automatically manages pod resources based on historical and
|
||||
// real time resource utilization.
|
||||
type VerticalPodAutoscaler struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
|
||||
// +optional
|
||||
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// Specification of the behavior of the autoscaler.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
|
||||
Spec VerticalPodAutoscalerSpec `json:"spec" protobuf:"bytes,2,name=spec"`
|
||||
|
||||
// Current information about the autoscaler.
|
||||
// +optional
|
||||
Status VerticalPodAutoscalerStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler.
|
||||
type VerticalPodAutoscalerSpec struct {
|
||||
|
||||
// TargetRef points to the controller managing the set of pods for the
|
||||
// autoscaler to control - e.g. Deployment, StatefulSet. VerticalPodAutoscaler
|
||||
// can be targeted at controller implementing scale subresource (the pod set is
|
||||
// retrieved from the controller's ScaleStatus) or some well known controllers
|
||||
// (e.g. for DaemonSet the pod set is read from the controller's spec).
|
||||
// If VerticalPodAutoscaler cannot use specified target it will report
|
||||
// ConfigUnsupported condition.
|
||||
// Note that VerticalPodAutoscaler does not require full implementation
|
||||
// of scale subresource - it will not use it to modify the replica count.
|
||||
// The only thing retrieved is a label selector matching pods grouped by
|
||||
// the target resource.
|
||||
TargetRef *autoscaling.CrossVersionObjectReference `json:"targetRef" protobuf:"bytes,1,name=targetRef"`
|
||||
|
||||
// Describes the rules on how changes are applied to the pods.
|
||||
// If not specified, all fields in the `PodUpdatePolicy` are set to their
|
||||
// default values.
|
||||
// +optional
|
||||
UpdatePolicy *PodUpdatePolicy `json:"updatePolicy,omitempty" protobuf:"bytes,2,opt,name=updatePolicy"`
|
||||
|
||||
// Controls how the autoscaler computes recommended resources.
|
||||
// The resource policy may be used to set constraints on the recommendations
|
||||
// for individual containers. If not specified, the autoscaler computes recommended
|
||||
// resources for all containers in the pod, without additional constraints.
|
||||
// +optional
|
||||
ResourcePolicy *PodResourcePolicy `json:"resourcePolicy,omitempty" protobuf:"bytes,3,opt,name=resourcePolicy"`
|
||||
}
|
||||
|
||||
// PodUpdatePolicy describes the rules on how changes are applied to the pods.
|
||||
type PodUpdatePolicy struct {
|
||||
// Controls when autoscaler applies changes to the pod resources.
|
||||
// The default is 'Auto'.
|
||||
// +optional
|
||||
UpdateMode *UpdateMode `json:"updateMode,omitempty" protobuf:"bytes,1,opt,name=updateMode"`
|
||||
}
|
||||
|
||||
// UpdateMode controls when autoscaler applies changes to the pod resoures.
|
||||
type UpdateMode string
|
||||
|
||||
const (
|
||||
// UpdateModeOff means that autoscaler never changes Pod resources.
|
||||
// The recommender still sets the recommended resources in the
|
||||
// VerticalPodAutoscaler object. This can be used for a "dry run".
|
||||
UpdateModeOff UpdateMode = "Off"
|
||||
// UpdateModeInitial means that autoscaler only assigns resources on pod
|
||||
// creation and does not change them during the lifetime of the pod.
|
||||
UpdateModeInitial UpdateMode = "Initial"
|
||||
// UpdateModeRecreate means that autoscaler assigns resources on pod
|
||||
// creation and additionally can update them during the lifetime of the
|
||||
// pod by deleting and recreating the pod.
|
||||
UpdateModeRecreate UpdateMode = "Recreate"
|
||||
// UpdateModeAuto means that autoscaler assigns resources on pod creation
|
||||
// and additionally can update them during the lifetime of the pod,
|
||||
// using any available update method. Currently this is equivalent to
|
||||
// Recreate, which is the only available update method.
|
||||
UpdateModeAuto UpdateMode = "Auto"
|
||||
)
|
||||
|
||||
// PodResourcePolicy controls how autoscaler computes the recommended resources
|
||||
// for containers belonging to the pod. There can be at most one entry for every
|
||||
// named container and optionally a single wildcard entry with `containerName` = '*',
|
||||
// which handles all containers that don't have individual policies.
|
||||
type PodResourcePolicy struct {
|
||||
// Per-container resource policies.
|
||||
// +optional
|
||||
// +patchMergeKey=containerName
|
||||
// +patchStrategy=merge
|
||||
ContainerPolicies []ContainerResourcePolicy `json:"containerPolicies,omitempty" patchStrategy:"merge" patchMergeKey:"containerName" protobuf:"bytes,1,rep,name=containerPolicies"`
|
||||
}
|
||||
|
||||
// ContainerResourcePolicy controls how autoscaler computes the recommended
|
||||
// resources for a specific container.
|
||||
type ContainerResourcePolicy struct {
|
||||
// Name of the container or DefaultContainerResourcePolicy, in which
|
||||
// case the policy is used by the containers that don't have their own
|
||||
// policy specified.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"`
|
||||
// Whether autoscaler is enabled for the container. The default is "Auto".
|
||||
// +optional
|
||||
Mode *ContainerScalingMode `json:"mode,omitempty" protobuf:"bytes,2,opt,name=mode"`
|
||||
// Specifies the minimal amount of resources that will be recommended
|
||||
// for the container. The default is no minimum.
|
||||
// +optional
|
||||
MinAllowed v1.ResourceList `json:"minAllowed,omitempty" protobuf:"bytes,3,rep,name=minAllowed,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Specifies the maximum amount of resources that will be recommended
|
||||
// for the container. The default is no maximum.
|
||||
// +optional
|
||||
MaxAllowed v1.ResourceList `json:"maxAllowed,omitempty" protobuf:"bytes,4,rep,name=maxAllowed,casttype=ResourceList,castkey=ResourceName"`
|
||||
}
|
||||
|
||||
const (
|
||||
// DefaultContainerResourcePolicy can be passed as
|
||||
// ContainerResourcePolicy.ContainerName to specify the default policy.
|
||||
DefaultContainerResourcePolicy = "*"
|
||||
)
|
||||
|
||||
// ContainerScalingMode controls whether autoscaler is enabled for a specific
|
||||
// container.
|
||||
type ContainerScalingMode string
|
||||
|
||||
const (
|
||||
// ContainerScalingModeAuto means autoscaling is enabled for a container.
|
||||
ContainerScalingModeAuto ContainerScalingMode = "Auto"
|
||||
// ContainerScalingModeOff means autoscaling is disabled for a container.
|
||||
ContainerScalingModeOff ContainerScalingMode = "Off"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerStatus describes the runtime state of the autoscaler.
|
||||
type VerticalPodAutoscalerStatus struct {
|
||||
// The most recently computed amount of resources recommended by the
|
||||
// autoscaler for the controlled pods.
|
||||
// +optional
|
||||
Recommendation *RecommendedPodResources `json:"recommendation,omitempty" protobuf:"bytes,1,opt,name=recommendation"`
|
||||
|
||||
// Conditions is the set of conditions required for this autoscaler to scale its target,
|
||||
// and indicates whether or not those conditions are met.
|
||||
// +optional
|
||||
// +patchMergeKey=type
|
||||
// +patchStrategy=merge
|
||||
Conditions []VerticalPodAutoscalerCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=conditions"`
|
||||
}
|
||||
|
||||
// RecommendedPodResources is the recommendation of resources computed by
|
||||
// autoscaler. It contains a recommendation for each container in the pod
|
||||
// (except for those with `ContainerScalingMode` set to 'Off').
|
||||
type RecommendedPodResources struct {
|
||||
// Resources recommended by the autoscaler for each container.
|
||||
// +optional
|
||||
ContainerRecommendations []RecommendedContainerResources `json:"containerRecommendations,omitempty" protobuf:"bytes,1,rep,name=containerRecommendations"`
|
||||
}
|
||||
|
||||
// RecommendedContainerResources is the recommendation of resources computed by
|
||||
// autoscaler for a specific container. Respects the container resource policy
|
||||
// if present in the spec. In particular the recommendation is not produced for
|
||||
// containers with `ContainerScalingMode` set to 'Off'.
|
||||
type RecommendedContainerResources struct {
|
||||
// Name of the container.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"`
|
||||
// Recommended amount of resources. Observes ContainerResourcePolicy.
|
||||
Target v1.ResourceList `json:"target" protobuf:"bytes,2,rep,name=target,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Minimum recommended amount of resources. Observes ContainerResourcePolicy.
|
||||
// This amount is not guaranteed to be sufficient for the application to operate in a stable way, however
|
||||
// running with less resources is likely to have significant impact on performance/availability.
|
||||
// +optional
|
||||
LowerBound v1.ResourceList `json:"lowerBound,omitempty" protobuf:"bytes,3,rep,name=lowerBound,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Maximum recommended amount of resources. Observes ContainerResourcePolicy.
|
||||
// Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum
|
||||
// amount of application is actually capable of consuming.
|
||||
// +optional
|
||||
UpperBound v1.ResourceList `json:"upperBound,omitempty" protobuf:"bytes,4,rep,name=upperBound,casttype=ResourceList,castkey=ResourceName"`
|
||||
// The most recent recommended resources target computed by the autoscaler
|
||||
// for the controlled pods, based only on actual resource usage, not taking
|
||||
// into account the ContainerResourcePolicy.
|
||||
// May differ from the Recommendation if the actual resource usage causes
|
||||
// the target to violate the ContainerResourcePolicy (lower than MinAllowed
|
||||
// or higher that MaxAllowed).
|
||||
// Used only as status indication, will not affect actual resource assignment.
|
||||
// +optional
|
||||
UncappedTarget v1.ResourceList `json:"uncappedTarget,omitempty" protobuf:"bytes,5,opt,name=uncappedTarget"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerConditionType are the valid conditions of
|
||||
// a VerticalPodAutoscaler.
|
||||
type VerticalPodAutoscalerConditionType string
|
||||
|
||||
var (
|
||||
// RecommendationProvided indicates whether the VPA recommender was able to calculate a recommendation.
|
||||
RecommendationProvided VerticalPodAutoscalerConditionType = "RecommendationProvided"
|
||||
// LowConfidence indicates whether the VPA recommender has low confidence in the recommendation for
|
||||
// some of containers.
|
||||
LowConfidence VerticalPodAutoscalerConditionType = "LowConfidence"
|
||||
// NoPodsMatched indicates that label selector used with VPA object didn't match any pods.
|
||||
NoPodsMatched VerticalPodAutoscalerConditionType = "NoPodsMatched"
|
||||
// FetchingHistory indicates that VPA recommender is in the process of loading additional history samples.
|
||||
FetchingHistory VerticalPodAutoscalerConditionType = "FetchingHistory"
|
||||
// ConfigDeprecated indicates that this VPA configuration is deprecated
|
||||
// and will stop being supported soon.
|
||||
ConfigDeprecated VerticalPodAutoscalerConditionType = "ConfigDeprecated"
|
||||
// ConfigUnsupported indicates that this VPA configuration is unsupported
|
||||
// and recommendations will not be provided for it.
|
||||
ConfigUnsupported VerticalPodAutoscalerConditionType = "ConfigUnsupported"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerCondition describes the state of
|
||||
// a VerticalPodAutoscaler at a certain point.
|
||||
type VerticalPodAutoscalerCondition struct {
|
||||
// type describes the current condition
|
||||
Type VerticalPodAutoscalerConditionType `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"`
|
||||
}
|
||||
|
||||
// +genclient
|
||||
// +genclient:noStatus
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerCheckpoint is the checkpoint of the internal state of VPA that
|
||||
// is used for recovery after recommender's restart.
|
||||
type VerticalPodAutoscalerCheckpoint struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
|
||||
// +optional
|
||||
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// Specification of the checkpoint.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
|
||||
// +optional
|
||||
Spec VerticalPodAutoscalerCheckpointSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`
|
||||
|
||||
// Data of the checkpoint.
|
||||
// +optional
|
||||
Status VerticalPodAutoscalerCheckpointStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerCheckpointList is a list of VerticalPodAutoscalerCheckpoint objects.
|
||||
type VerticalPodAutoscalerCheckpointList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []VerticalPodAutoscalerCheckpoint `json:"items"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointSpec is the specification of the checkpoint object.
|
||||
type VerticalPodAutoscalerCheckpointSpec struct {
|
||||
// Name of the VPA object that stored VerticalPodAutoscalerCheckpoint object.
|
||||
VPAObjectName string `json:"vpaObjectName,omitempty" protobuf:"bytes,1,opt,name=vpaObjectName"`
|
||||
|
||||
// Name of the checkpointed container.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,2,opt,name=containerName"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointStatus contains data of the checkpoint.
|
||||
type VerticalPodAutoscalerCheckpointStatus struct {
|
||||
// The time when the status was last refreshed.
|
||||
LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,1,opt,name=lastUpdateTime"`
|
||||
|
||||
// Version of the format of the stored data.
|
||||
Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"`
|
||||
|
||||
// Checkpoint of histogram for consumption of CPU.
|
||||
CPUHistogram HistogramCheckpoint `json:"cpuHistogram,omitempty" protobuf:"bytes,3,rep,name=cpuHistograms"`
|
||||
|
||||
// Checkpoint of histogram for consumption of memory.
|
||||
MemoryHistogram HistogramCheckpoint `json:"memoryHistogram,omitempty" protobuf:"bytes,4,rep,name=memoryHistogram"`
|
||||
|
||||
// Timestamp of the fist sample from the histograms.
|
||||
FirstSampleStart metav1.Time `json:"firstSampleStart,omitempty" protobuf:"bytes,5,opt,name=firstSampleStart"`
|
||||
|
||||
// Timestamp of the last sample from the histograms.
|
||||
LastSampleStart metav1.Time `json:"lastSampleStart,omitempty" protobuf:"bytes,6,opt,name=lastSampleStart"`
|
||||
|
||||
// Total number of samples in the histograms.
|
||||
TotalSamplesCount int `json:"totalSamplesCount,omitempty" protobuf:"bytes,7,opt,name=totalSamplesCount"`
|
||||
}
|
||||
|
||||
// HistogramCheckpoint contains data needed to reconstruct the histogram.
|
||||
type HistogramCheckpoint struct {
|
||||
// Reference timestamp for samples collected within this histogram.
|
||||
ReferenceTimestamp metav1.Time `json:"referenceTimestamp,omitempty" protobuf:"bytes,1,opt,name=referenceTimestamp"`
|
||||
|
||||
// Map from bucket index to bucket weight.
|
||||
BucketWeights map[int]uint32 `json:"bucketWeights,omitempty" protobuf:"bytes,2,opt,name=bucketWeights"`
|
||||
|
||||
// Sum of samples to be used as denominator for weights from BucketWeights.
|
||||
TotalWeight float64 `json:"totalWeight,omitempty" protobuf:"bytes,3,opt,name=totalWeight"`
|
||||
}
|
||||
432
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/zz_generated.deepcopy.go
generated
vendored
Normal file
432
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/zz_generated.deepcopy.go
generated
vendored
Normal file
|
|
@ -0,0 +1,432 @@
|
|||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta2
|
||||
|
||||
import (
|
||||
autoscalingv1 "k8s.io/api/autoscaling/v1"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *ContainerResourcePolicy) DeepCopyInto(out *ContainerResourcePolicy) {
|
||||
*out = *in
|
||||
if in.Mode != nil {
|
||||
in, out := &in.Mode, &out.Mode
|
||||
*out = new(ContainerScalingMode)
|
||||
**out = **in
|
||||
}
|
||||
if in.MinAllowed != nil {
|
||||
in, out := &in.MinAllowed, &out.MinAllowed
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.MaxAllowed != nil {
|
||||
in, out := &in.MaxAllowed, &out.MaxAllowed
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourcePolicy.
|
||||
func (in *ContainerResourcePolicy) DeepCopy() *ContainerResourcePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(ContainerResourcePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *HistogramCheckpoint) DeepCopyInto(out *HistogramCheckpoint) {
|
||||
*out = *in
|
||||
in.ReferenceTimestamp.DeepCopyInto(&out.ReferenceTimestamp)
|
||||
if in.BucketWeights != nil {
|
||||
in, out := &in.BucketWeights, &out.BucketWeights
|
||||
*out = make(map[int]uint32, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HistogramCheckpoint.
|
||||
func (in *HistogramCheckpoint) DeepCopy() *HistogramCheckpoint {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(HistogramCheckpoint)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PodResourcePolicy) DeepCopyInto(out *PodResourcePolicy) {
|
||||
*out = *in
|
||||
if in.ContainerPolicies != nil {
|
||||
in, out := &in.ContainerPolicies, &out.ContainerPolicies
|
||||
*out = make([]ContainerResourcePolicy, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodResourcePolicy.
|
||||
func (in *PodResourcePolicy) DeepCopy() *PodResourcePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(PodResourcePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PodUpdatePolicy) DeepCopyInto(out *PodUpdatePolicy) {
|
||||
*out = *in
|
||||
if in.UpdateMode != nil {
|
||||
in, out := &in.UpdateMode, &out.UpdateMode
|
||||
*out = new(UpdateMode)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodUpdatePolicy.
|
||||
func (in *PodUpdatePolicy) DeepCopy() *PodUpdatePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(PodUpdatePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *RecommendedContainerResources) DeepCopyInto(out *RecommendedContainerResources) {
|
||||
*out = *in
|
||||
if in.Target != nil {
|
||||
in, out := &in.Target, &out.Target
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.LowerBound != nil {
|
||||
in, out := &in.LowerBound, &out.LowerBound
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.UpperBound != nil {
|
||||
in, out := &in.UpperBound, &out.UpperBound
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.UncappedTarget != nil {
|
||||
in, out := &in.UncappedTarget, &out.UncappedTarget
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedContainerResources.
|
||||
func (in *RecommendedContainerResources) DeepCopy() *RecommendedContainerResources {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(RecommendedContainerResources)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *RecommendedPodResources) DeepCopyInto(out *RecommendedPodResources) {
|
||||
*out = *in
|
||||
if in.ContainerRecommendations != nil {
|
||||
in, out := &in.ContainerRecommendations, &out.ContainerRecommendations
|
||||
*out = make([]RecommendedContainerResources, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedPodResources.
|
||||
func (in *RecommendedPodResources) DeepCopy() *RecommendedPodResources {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(RecommendedPodResources)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscaler) DeepCopyInto(out *VerticalPodAutoscaler) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscaler.
|
||||
func (in *VerticalPodAutoscaler) DeepCopy() *VerticalPodAutoscaler {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscaler)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscaler) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopyInto(out *VerticalPodAutoscalerCheckpoint) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
out.Spec = in.Spec
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpoint.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopy() *VerticalPodAutoscalerCheckpoint {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpoint)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopyInto(out *VerticalPodAutoscalerCheckpointList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]VerticalPodAutoscalerCheckpoint, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointList.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopy() *VerticalPodAutoscalerCheckpointList {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointList)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointSpec) DeepCopyInto(out *VerticalPodAutoscalerCheckpointSpec) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointSpec.
|
||||
func (in *VerticalPodAutoscalerCheckpointSpec) DeepCopy() *VerticalPodAutoscalerCheckpointSpec {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointSpec)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointStatus) DeepCopyInto(out *VerticalPodAutoscalerCheckpointStatus) {
|
||||
*out = *in
|
||||
in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)
|
||||
in.CPUHistogram.DeepCopyInto(&out.CPUHistogram)
|
||||
in.MemoryHistogram.DeepCopyInto(&out.MemoryHistogram)
|
||||
in.FirstSampleStart.DeepCopyInto(&out.FirstSampleStart)
|
||||
in.LastSampleStart.DeepCopyInto(&out.LastSampleStart)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointStatus.
|
||||
func (in *VerticalPodAutoscalerCheckpointStatus) DeepCopy() *VerticalPodAutoscalerCheckpointStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCondition) DeepCopyInto(out *VerticalPodAutoscalerCondition) {
|
||||
*out = *in
|
||||
in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCondition.
|
||||
func (in *VerticalPodAutoscalerCondition) DeepCopy() *VerticalPodAutoscalerCondition {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCondition)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopyInto(out *VerticalPodAutoscalerList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]VerticalPodAutoscaler, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerList.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopy() *VerticalPodAutoscalerList {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerList)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerSpec) DeepCopyInto(out *VerticalPodAutoscalerSpec) {
|
||||
*out = *in
|
||||
if in.TargetRef != nil {
|
||||
in, out := &in.TargetRef, &out.TargetRef
|
||||
*out = new(autoscalingv1.CrossVersionObjectReference)
|
||||
**out = **in
|
||||
}
|
||||
if in.UpdatePolicy != nil {
|
||||
in, out := &in.UpdatePolicy, &out.UpdatePolicy
|
||||
*out = new(PodUpdatePolicy)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.ResourcePolicy != nil {
|
||||
in, out := &in.ResourcePolicy, &out.ResourcePolicy
|
||||
*out = new(PodResourcePolicy)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerSpec.
|
||||
func (in *VerticalPodAutoscalerSpec) DeepCopy() *VerticalPodAutoscalerSpec {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerSpec)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerStatus) DeepCopyInto(out *VerticalPodAutoscalerStatus) {
|
||||
*out = *in
|
||||
if in.Recommendation != nil {
|
||||
in, out := &in.Recommendation, &out.Recommendation
|
||||
*out = new(RecommendedPodResources)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Conditions != nil {
|
||||
in, out := &in.Conditions, &out.Conditions
|
||||
*out = make([]VerticalPodAutoscalerCondition, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerStatus.
|
||||
func (in *VerticalPodAutoscalerStatus) DeepCopy() *VerticalPodAutoscalerStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
21
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1/doc.go
generated
vendored
Normal file
21
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
|
||||
// Package v1alpha1 contains definitions of Vertical Pod Autoscaler related objects.
|
||||
// +groupName=poc.autoscaling.k8s.io
|
||||
package v1alpha1
|
||||
58
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1/register.go
generated
vendored
Normal file
58
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1/register.go
generated
vendored
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
var SchemeGroupVersion = schema.GroupVersion{Group: "poc.autoscaling.k8s.io", Version: "v1alpha1"}
|
||||
|
||||
// Resource takes an unqualified resource and returns a Group qualified GroupResource
|
||||
func Resource(resource string) schema.GroupResource {
|
||||
return SchemeGroupVersion.WithResource(resource).GroupResource()
|
||||
}
|
||||
|
||||
var (
|
||||
// SchemeBuilder points to a list of functions added to Scheme.
|
||||
SchemeBuilder runtime.SchemeBuilder
|
||||
localSchemeBuilder = &SchemeBuilder
|
||||
// AddToScheme applies all the stored functions to the scheme.
|
||||
AddToScheme = localSchemeBuilder.AddToScheme
|
||||
)
|
||||
|
||||
func init() {
|
||||
// We only register manually written functions here. The registration of the
|
||||
// generated functions takes place in the generated files. The separation
|
||||
// makes the code compile even when the generated files are missing.
|
||||
localSchemeBuilder.Register(addKnownTypes)
|
||||
}
|
||||
|
||||
// Adds the list of known types to api.Scheme.
|
||||
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||
&VerticalPodAutoscaler{},
|
||||
&VerticalPodAutoscalerList{},
|
||||
&VerticalPodAutoscalerCheckpoint{},
|
||||
&VerticalPodAutoscalerCheckpointList{},
|
||||
)
|
||||
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||
return nil
|
||||
}
|
||||
313
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1/types.go
generated
vendored
Normal file
313
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1/types.go
generated
vendored
Normal file
|
|
@ -0,0 +1,313 @@
|
|||
/*
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Package v1alpha1 contains definitions of Vertical Pod Autoscaler related objects.
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
"k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects.
|
||||
type VerticalPodAutoscalerList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// metadata is the standard list metadata.
|
||||
// +optional
|
||||
metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// items is the list of vertical pod autoscaler objects.
|
||||
Items []VerticalPodAutoscaler `json:"items" protobuf:"bytes,2,rep,name=items"`
|
||||
}
|
||||
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscaler is the configuration for a vertical pod
|
||||
// autoscaler, which automatically manages pod resources based on historical and
|
||||
// real time resource utilization.
|
||||
type VerticalPodAutoscaler struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
|
||||
// +optional
|
||||
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// Specification of the behavior of the autoscaler.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
|
||||
Spec VerticalPodAutoscalerSpec `json:"spec" protobuf:"bytes,2,name=spec"`
|
||||
|
||||
// Current information about the autoscaler.
|
||||
// +optional
|
||||
Status VerticalPodAutoscalerStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler.
|
||||
type VerticalPodAutoscalerSpec struct {
|
||||
// A label query that determines the set of pods controlled by the Autoscaler.
|
||||
// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
|
||||
Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,1,name=selector"`
|
||||
|
||||
// Describes the rules on how changes are applied to the pods.
|
||||
// If not specified, all fields in the `PodUpdatePolicy` are set to their
|
||||
// default values.
|
||||
// +optional
|
||||
UpdatePolicy *PodUpdatePolicy `json:"updatePolicy,omitempty" protobuf:"bytes,2,opt,name=updatePolicy"`
|
||||
|
||||
// Controls how the autoscaler computes recommended resources.
|
||||
// The resource policy may be used to set constraints on the recommendations
|
||||
// for individual containers. If not specified, the autoscaler computes recommended
|
||||
// resources for all containers in the pod, without additional constraints.
|
||||
// +optional
|
||||
ResourcePolicy *PodResourcePolicy `json:"resourcePolicy,omitempty" protobuf:"bytes,3,opt,name=resourcePolicy"`
|
||||
}
|
||||
|
||||
// PodUpdatePolicy describes the rules on how changes are applied to the pods.
|
||||
type PodUpdatePolicy struct {
|
||||
// Controls when autoscaler applies changes to the pod resources.
|
||||
// The default is 'Auto'.
|
||||
// +optional
|
||||
UpdateMode *UpdateMode `json:"updateMode,omitempty" protobuf:"bytes,1,opt,name=updateMode"`
|
||||
}
|
||||
|
||||
// UpdateMode controls when autoscaler applies changes to the pod resoures.
|
||||
type UpdateMode string
|
||||
|
||||
const (
|
||||
// UpdateModeOff means that autoscaler never changes Pod resources.
|
||||
// The recommender still sets the recommended resources in the
|
||||
// VerticalPodAutoscaler object. This can be used for a "dry run".
|
||||
UpdateModeOff UpdateMode = "Off"
|
||||
// UpdateModeInitial means that autoscaler only assigns resources on pod
|
||||
// creation and does not change them during the lifetime of the pod.
|
||||
UpdateModeInitial UpdateMode = "Initial"
|
||||
// UpdateModeRecreate means that autoscaler assigns resources on pod
|
||||
// creation and additionally can update them during the lifetime of the
|
||||
// pod by deleting and recreating the pod.
|
||||
UpdateModeRecreate UpdateMode = "Recreate"
|
||||
// UpdateModeAuto means that autoscaler assigns resources on pod creation
|
||||
// and additionally can update them during the lifetime of the pod,
|
||||
// using any available update method. Currently this is equivalent to
|
||||
// Recreate, which is the only available update method.
|
||||
UpdateModeAuto UpdateMode = "Auto"
|
||||
)
|
||||
|
||||
// PodResourcePolicy controls how autoscaler computes the recommended resources
|
||||
// for containers belonging to the pod. There can be at most one entry for every
|
||||
// named container and optionally a single wildcard entry with `containerName` = '*',
|
||||
// which handles all containers that don't have individual policies.
|
||||
type PodResourcePolicy struct {
|
||||
// Per-container resource policies.
|
||||
// +optional
|
||||
// +patchMergeKey=containerName
|
||||
// +patchStrategy=merge
|
||||
ContainerPolicies []ContainerResourcePolicy `json:"containerPolicies,omitempty" patchStrategy:"merge" patchMergeKey:"containerName" protobuf:"bytes,1,rep,name=containerPolicies"`
|
||||
}
|
||||
|
||||
// ContainerResourcePolicy controls how autoscaler computes the recommended
|
||||
// resources for a specific container.
|
||||
type ContainerResourcePolicy struct {
|
||||
// Name of the container or DefaultContainerResourcePolicy, in which
|
||||
// case the policy is used by the containers that don't have their own
|
||||
// policy specified.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"`
|
||||
// Whether autoscaler is enabled for the container. The default is "Auto".
|
||||
// +optional
|
||||
Mode *ContainerScalingMode `json:"mode,omitempty" protobuf:"bytes,2,opt,name=mode"`
|
||||
// Specifies the minimal amount of resources that will be recommended
|
||||
// for the container. The default is no minimum.
|
||||
// +optional
|
||||
MinAllowed v1.ResourceList `json:"minAllowed,omitempty" protobuf:"bytes,3,rep,name=minAllowed,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Specifies the maximum amount of resources that will be recommended
|
||||
// for the container. The default is no maximum.
|
||||
// +optional
|
||||
MaxAllowed v1.ResourceList `json:"maxAllowed,omitempty" protobuf:"bytes,4,rep,name=maxAllowed,casttype=ResourceList,castkey=ResourceName"`
|
||||
}
|
||||
|
||||
const (
|
||||
// DefaultContainerResourcePolicy can be passed as
|
||||
// ContainerResourcePolicy.ContainerName to specify the default policy.
|
||||
DefaultContainerResourcePolicy = "*"
|
||||
)
|
||||
|
||||
// ContainerScalingMode controls whether autoscaler is enabled for a specific
|
||||
// container.
|
||||
type ContainerScalingMode string
|
||||
|
||||
const (
|
||||
// ContainerScalingModeAuto means autoscaling is enabled for a container.
|
||||
ContainerScalingModeAuto ContainerScalingMode = "Auto"
|
||||
// ContainerScalingModeOff means autoscaling is disabled for a container.
|
||||
ContainerScalingModeOff ContainerScalingMode = "Off"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerStatus describes the runtime state of the autoscaler.
|
||||
type VerticalPodAutoscalerStatus struct {
|
||||
// The most recently computed amount of resources recommended by the
|
||||
// autoscaler for the controlled pods.
|
||||
// +optional
|
||||
Recommendation *RecommendedPodResources `json:"recommendation,omitempty" protobuf:"bytes,1,opt,name=recommendation"`
|
||||
|
||||
// Conditions is the set of conditions required for this autoscaler to scale its target,
|
||||
// and indicates whether or not those conditions are met.
|
||||
// +optional
|
||||
// +patchMergeKey=type
|
||||
// +patchStrategy=merge
|
||||
Conditions []VerticalPodAutoscalerCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=conditions"`
|
||||
}
|
||||
|
||||
// RecommendedPodResources is the recommendation of resources computed by
|
||||
// autoscaler. It contains a recommendation for each container in the pod
|
||||
// (except for those with `ContainerScalingMode` set to 'Off').
|
||||
type RecommendedPodResources struct {
|
||||
// Resources recommended by the autoscaler for each container.
|
||||
// +optional
|
||||
ContainerRecommendations []RecommendedContainerResources `json:"containerRecommendations,omitempty" protobuf:"bytes,1,rep,name=containerRecommendations"`
|
||||
}
|
||||
|
||||
// RecommendedContainerResources is the recommendation of resources computed by
|
||||
// autoscaler for a specific container. Respects the container resource policy
|
||||
// if present in the spec. In particular the recommendation is not produced for
|
||||
// containers with `ContainerScalingMode` set to 'Off'.
|
||||
type RecommendedContainerResources struct {
|
||||
// Name of the container.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"`
|
||||
// Recommended amount of resources.
|
||||
Target v1.ResourceList `json:"target" protobuf:"bytes,2,rep,name=target,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Minimum recommended amount of resources.
|
||||
// This amount is not guaranteed to be sufficient for the application to operate in a stable way, however
|
||||
// running with less resources is likely to have significant impact on performance/availability.
|
||||
// +optional
|
||||
LowerBound v1.ResourceList `json:"lowerBound,omitempty" protobuf:"bytes,3,rep,name=lowerBound,casttype=ResourceList,castkey=ResourceName"`
|
||||
// Maximum recommended amount of resources.
|
||||
// Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum
|
||||
// amount of application is actually capable of consuming.
|
||||
// +optional
|
||||
UpperBound v1.ResourceList `json:"upperBound,omitempty" protobuf:"bytes,4,rep,name=upperBound,casttype=ResourceList,castkey=ResourceName"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerConditionType are the valid conditions of
|
||||
// a VerticalPodAutoscaler.
|
||||
type VerticalPodAutoscalerConditionType string
|
||||
|
||||
var (
|
||||
// RecommendationProvided indicates whether the VPA recommender was able to calculate a recommendation.
|
||||
RecommendationProvided VerticalPodAutoscalerConditionType = "RecommendationProvided"
|
||||
// LowConfidence indicates whether the VPA recommender has low confidence in the recommendation for
|
||||
// some of containers.
|
||||
LowConfidence VerticalPodAutoscalerConditionType = "LowConfidence"
|
||||
// NoPodsMatched indicates that label selector used with VPA object didn't match any pods.
|
||||
NoPodsMatched VerticalPodAutoscalerConditionType = "NoPodsMatched"
|
||||
// FetchingHistory indicates that VPA recommender is in the process of loading additional history samples.
|
||||
FetchingHistory VerticalPodAutoscalerConditionType = "FetchingHistory"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerCondition describes the state of
|
||||
// a VerticalPodAutoscaler at a certain point.
|
||||
type VerticalPodAutoscalerCondition struct {
|
||||
// type describes the current condition
|
||||
Type VerticalPodAutoscalerConditionType `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"`
|
||||
}
|
||||
|
||||
// +genclient
|
||||
// +genclient:noStatus
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerCheckpoint is the checkpoint of the internal state of VPA that
|
||||
// is used for recovery after recommender's restart.
|
||||
type VerticalPodAutoscalerCheckpoint struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
// Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
|
||||
// +optional
|
||||
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
|
||||
|
||||
// Specification of the checkpoint.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
|
||||
// +optional
|
||||
Spec VerticalPodAutoscalerCheckpointSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`
|
||||
|
||||
// Data of the checkpoint.
|
||||
// +optional
|
||||
Status VerticalPodAutoscalerCheckpointStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// VerticalPodAutoscalerCheckpointList is a list of VerticalPodAutoscalerCheckpoint objects.
|
||||
type VerticalPodAutoscalerCheckpointList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []VerticalPodAutoscalerCheckpoint `json:"items"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointSpec is the specification of the checkpoint object.
|
||||
type VerticalPodAutoscalerCheckpointSpec struct {
|
||||
// Name of the VPA object that stored VerticalPodAutoscalerCheckpoint object.
|
||||
VPAObjectName string `json:"vpaObjectName,omitempty" protobuf:"bytes,1,opt,name=vpaObjectName"`
|
||||
|
||||
// Name of the checkpointed container.
|
||||
ContainerName string `json:"containerName,omitempty" protobuf:"bytes,2,opt,name=containerName"`
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointStatus contains data of the checkpoint.
|
||||
type VerticalPodAutoscalerCheckpointStatus struct {
|
||||
// The time when the status was last refreshed.
|
||||
LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,1,opt,name=lastUpdateTime"`
|
||||
|
||||
// Version of the format of the stored data.
|
||||
Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"`
|
||||
|
||||
// Checkpoint of histogram for consumption of CPU.
|
||||
CPUHistogram HistogramCheckpoint `json:"cpuHistogram,omitempty" protobuf:"bytes,3,rep,name=cpuHistograms"`
|
||||
|
||||
// Checkpoint of histogram for consumption of memory.
|
||||
MemoryHistogram HistogramCheckpoint `json:"memoryHistogram,omitempty" protobuf:"bytes,4,rep,name=memoryHistogram"`
|
||||
|
||||
// Timestamp of the fist sample from the histograms.
|
||||
FirstSampleStart metav1.Time `json:"firstSampleStart,omitempty" protobuf:"bytes,5,opt,name=firstSampleStart"`
|
||||
|
||||
// Timestamp of the last sample from the histograms.
|
||||
LastSampleStart metav1.Time `json:"lastSampleStart,omitempty" protobuf:"bytes,6,opt,name=lastSampleStart"`
|
||||
|
||||
// Total number of samples in the histograms.
|
||||
TotalSamplesCount int `json:"totalSamplesCount,omitempty" protobuf:"bytes,7,opt,name=totalSamplesCount"`
|
||||
}
|
||||
|
||||
// HistogramCheckpoint contains data needed to reconstruct the histogram.
|
||||
type HistogramCheckpoint struct {
|
||||
// Reference timestamp for samples collected within this histogram.
|
||||
ReferenceTimestamp metav1.Time `json:"referenceTimestamp,omitempty" protobuf:"bytes,1,opt,name=referenceTimestamp"`
|
||||
|
||||
// Map from bucket index to bucket weight.
|
||||
BucketWeights map[int]uint32 `json:"bucketWeights,omitempty" protobuf:"bytes,2,opt,name=bucketWeights"`
|
||||
|
||||
// Sum of samples to be used as denominator for weights from BucketWeights.
|
||||
TotalWeight float64 `json:"totalWeight,omitempty" protobuf:"bytes,3,opt,name=totalWeight"`
|
||||
}
|
||||
425
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1/zz_generated.deepcopy.go
generated
vendored
Normal file
425
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1/zz_generated.deepcopy.go
generated
vendored
Normal file
|
|
@ -0,0 +1,425 @@
|
|||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *ContainerResourcePolicy) DeepCopyInto(out *ContainerResourcePolicy) {
|
||||
*out = *in
|
||||
if in.Mode != nil {
|
||||
in, out := &in.Mode, &out.Mode
|
||||
*out = new(ContainerScalingMode)
|
||||
**out = **in
|
||||
}
|
||||
if in.MinAllowed != nil {
|
||||
in, out := &in.MinAllowed, &out.MinAllowed
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.MaxAllowed != nil {
|
||||
in, out := &in.MaxAllowed, &out.MaxAllowed
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourcePolicy.
|
||||
func (in *ContainerResourcePolicy) DeepCopy() *ContainerResourcePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(ContainerResourcePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *HistogramCheckpoint) DeepCopyInto(out *HistogramCheckpoint) {
|
||||
*out = *in
|
||||
in.ReferenceTimestamp.DeepCopyInto(&out.ReferenceTimestamp)
|
||||
if in.BucketWeights != nil {
|
||||
in, out := &in.BucketWeights, &out.BucketWeights
|
||||
*out = make(map[int]uint32, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HistogramCheckpoint.
|
||||
func (in *HistogramCheckpoint) DeepCopy() *HistogramCheckpoint {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(HistogramCheckpoint)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PodResourcePolicy) DeepCopyInto(out *PodResourcePolicy) {
|
||||
*out = *in
|
||||
if in.ContainerPolicies != nil {
|
||||
in, out := &in.ContainerPolicies, &out.ContainerPolicies
|
||||
*out = make([]ContainerResourcePolicy, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodResourcePolicy.
|
||||
func (in *PodResourcePolicy) DeepCopy() *PodResourcePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(PodResourcePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PodUpdatePolicy) DeepCopyInto(out *PodUpdatePolicy) {
|
||||
*out = *in
|
||||
if in.UpdateMode != nil {
|
||||
in, out := &in.UpdateMode, &out.UpdateMode
|
||||
*out = new(UpdateMode)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodUpdatePolicy.
|
||||
func (in *PodUpdatePolicy) DeepCopy() *PodUpdatePolicy {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(PodUpdatePolicy)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *RecommendedContainerResources) DeepCopyInto(out *RecommendedContainerResources) {
|
||||
*out = *in
|
||||
if in.Target != nil {
|
||||
in, out := &in.Target, &out.Target
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.LowerBound != nil {
|
||||
in, out := &in.LowerBound, &out.LowerBound
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
if in.UpperBound != nil {
|
||||
in, out := &in.UpperBound, &out.UpperBound
|
||||
*out = make(v1.ResourceList, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val.DeepCopy()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedContainerResources.
|
||||
func (in *RecommendedContainerResources) DeepCopy() *RecommendedContainerResources {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(RecommendedContainerResources)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *RecommendedPodResources) DeepCopyInto(out *RecommendedPodResources) {
|
||||
*out = *in
|
||||
if in.ContainerRecommendations != nil {
|
||||
in, out := &in.ContainerRecommendations, &out.ContainerRecommendations
|
||||
*out = make([]RecommendedContainerResources, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedPodResources.
|
||||
func (in *RecommendedPodResources) DeepCopy() *RecommendedPodResources {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(RecommendedPodResources)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscaler) DeepCopyInto(out *VerticalPodAutoscaler) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscaler.
|
||||
func (in *VerticalPodAutoscaler) DeepCopy() *VerticalPodAutoscaler {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscaler)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscaler) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopyInto(out *VerticalPodAutoscalerCheckpoint) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
out.Spec = in.Spec
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpoint.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopy() *VerticalPodAutoscalerCheckpoint {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpoint)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerCheckpoint) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopyInto(out *VerticalPodAutoscalerCheckpointList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]VerticalPodAutoscalerCheckpoint, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointList.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopy() *VerticalPodAutoscalerCheckpointList {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointList)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerCheckpointList) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointSpec) DeepCopyInto(out *VerticalPodAutoscalerCheckpointSpec) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointSpec.
|
||||
func (in *VerticalPodAutoscalerCheckpointSpec) DeepCopy() *VerticalPodAutoscalerCheckpointSpec {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointSpec)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCheckpointStatus) DeepCopyInto(out *VerticalPodAutoscalerCheckpointStatus) {
|
||||
*out = *in
|
||||
in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)
|
||||
in.CPUHistogram.DeepCopyInto(&out.CPUHistogram)
|
||||
in.MemoryHistogram.DeepCopyInto(&out.MemoryHistogram)
|
||||
in.FirstSampleStart.DeepCopyInto(&out.FirstSampleStart)
|
||||
in.LastSampleStart.DeepCopyInto(&out.LastSampleStart)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointStatus.
|
||||
func (in *VerticalPodAutoscalerCheckpointStatus) DeepCopy() *VerticalPodAutoscalerCheckpointStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCheckpointStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerCondition) DeepCopyInto(out *VerticalPodAutoscalerCondition) {
|
||||
*out = *in
|
||||
in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCondition.
|
||||
func (in *VerticalPodAutoscalerCondition) DeepCopy() *VerticalPodAutoscalerCondition {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerCondition)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopyInto(out *VerticalPodAutoscalerList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]VerticalPodAutoscaler, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerList.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopy() *VerticalPodAutoscalerList {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerList)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (in *VerticalPodAutoscalerList) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerSpec) DeepCopyInto(out *VerticalPodAutoscalerSpec) {
|
||||
*out = *in
|
||||
if in.Selector != nil {
|
||||
in, out := &in.Selector, &out.Selector
|
||||
*out = new(metav1.LabelSelector)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.UpdatePolicy != nil {
|
||||
in, out := &in.UpdatePolicy, &out.UpdatePolicy
|
||||
*out = new(PodUpdatePolicy)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.ResourcePolicy != nil {
|
||||
in, out := &in.ResourcePolicy, &out.ResourcePolicy
|
||||
*out = new(PodResourcePolicy)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerSpec.
|
||||
func (in *VerticalPodAutoscalerSpec) DeepCopy() *VerticalPodAutoscalerSpec {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerSpec)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VerticalPodAutoscalerStatus) DeepCopyInto(out *VerticalPodAutoscalerStatus) {
|
||||
*out = *in
|
||||
if in.Recommendation != nil {
|
||||
in, out := &in.Recommendation, &out.Recommendation
|
||||
*out = new(RecommendedPodResources)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Conditions != nil {
|
||||
in, out := &in.Conditions, &out.Conditions
|
||||
*out = make([]VerticalPodAutoscalerCondition, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerStatus.
|
||||
func (in *VerticalPodAutoscalerStatus) DeepCopy() *VerticalPodAutoscalerStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VerticalPodAutoscalerStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
132
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/clientset.go
generated
vendored
Normal file
132
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/clientset.go
generated
vendored
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package versioned
|
||||
|
||||
import (
|
||||
autoscalingv1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1"
|
||||
autoscalingv1beta1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta1"
|
||||
autoscalingv1beta2 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta2"
|
||||
pocv1alpha1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/poc.autoscaling.k8s.io/v1alpha1"
|
||||
discovery "k8s.io/client-go/discovery"
|
||||
rest "k8s.io/client-go/rest"
|
||||
flowcontrol "k8s.io/client-go/util/flowcontrol"
|
||||
)
|
||||
|
||||
type Interface interface {
|
||||
Discovery() discovery.DiscoveryInterface
|
||||
AutoscalingV1() autoscalingv1.AutoscalingV1Interface
|
||||
AutoscalingV1beta2() autoscalingv1beta2.AutoscalingV1beta2Interface
|
||||
AutoscalingV1beta1() autoscalingv1beta1.AutoscalingV1beta1Interface
|
||||
PocV1alpha1() pocv1alpha1.PocV1alpha1Interface
|
||||
}
|
||||
|
||||
// Clientset contains the clients for groups. Each group has exactly one
|
||||
// version included in a Clientset.
|
||||
type Clientset struct {
|
||||
*discovery.DiscoveryClient
|
||||
autoscalingV1 *autoscalingv1.AutoscalingV1Client
|
||||
autoscalingV1beta2 *autoscalingv1beta2.AutoscalingV1beta2Client
|
||||
autoscalingV1beta1 *autoscalingv1beta1.AutoscalingV1beta1Client
|
||||
pocV1alpha1 *pocv1alpha1.PocV1alpha1Client
|
||||
}
|
||||
|
||||
// AutoscalingV1 retrieves the AutoscalingV1Client
|
||||
func (c *Clientset) AutoscalingV1() autoscalingv1.AutoscalingV1Interface {
|
||||
return c.autoscalingV1
|
||||
}
|
||||
|
||||
// AutoscalingV1beta2 retrieves the AutoscalingV1beta2Client
|
||||
func (c *Clientset) AutoscalingV1beta2() autoscalingv1beta2.AutoscalingV1beta2Interface {
|
||||
return c.autoscalingV1beta2
|
||||
}
|
||||
|
||||
// AutoscalingV1beta1 retrieves the AutoscalingV1beta1Client
|
||||
func (c *Clientset) AutoscalingV1beta1() autoscalingv1beta1.AutoscalingV1beta1Interface {
|
||||
return c.autoscalingV1beta1
|
||||
}
|
||||
|
||||
// PocV1alpha1 retrieves the PocV1alpha1Client
|
||||
func (c *Clientset) PocV1alpha1() pocv1alpha1.PocV1alpha1Interface {
|
||||
return c.pocV1alpha1
|
||||
}
|
||||
|
||||
// Discovery retrieves the DiscoveryClient
|
||||
func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.DiscoveryClient
|
||||
}
|
||||
|
||||
// NewForConfig creates a new Clientset for the given config.
|
||||
func NewForConfig(c *rest.Config) (*Clientset, error) {
|
||||
configShallowCopy := *c
|
||||
if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {
|
||||
configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst)
|
||||
}
|
||||
var cs Clientset
|
||||
var err error
|
||||
cs.autoscalingV1, err = autoscalingv1.NewForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cs.autoscalingV1beta2, err = autoscalingv1beta2.NewForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cs.autoscalingV1beta1, err = autoscalingv1beta1.NewForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cs.pocV1alpha1, err = pocv1alpha1.NewForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &cs, nil
|
||||
}
|
||||
|
||||
// NewForConfigOrDie creates a new Clientset for the given config and
|
||||
// panics if there is an error in the config.
|
||||
func NewForConfigOrDie(c *rest.Config) *Clientset {
|
||||
var cs Clientset
|
||||
cs.autoscalingV1 = autoscalingv1.NewForConfigOrDie(c)
|
||||
cs.autoscalingV1beta2 = autoscalingv1beta2.NewForConfigOrDie(c)
|
||||
cs.autoscalingV1beta1 = autoscalingv1beta1.NewForConfigOrDie(c)
|
||||
cs.pocV1alpha1 = pocv1alpha1.NewForConfigOrDie(c)
|
||||
|
||||
cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
|
||||
return &cs
|
||||
}
|
||||
|
||||
// New creates a new Clientset for the given RESTClient.
|
||||
func New(c rest.Interface) *Clientset {
|
||||
var cs Clientset
|
||||
cs.autoscalingV1 = autoscalingv1.New(c)
|
||||
cs.autoscalingV1beta2 = autoscalingv1beta2.New(c)
|
||||
cs.autoscalingV1beta1 = autoscalingv1beta1.New(c)
|
||||
cs.pocV1alpha1 = pocv1alpha1.New(c)
|
||||
|
||||
cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
||||
return &cs
|
||||
}
|
||||
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/doc.go
generated
vendored
Normal file
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
// This package has the automatically generated clientset.
|
||||
package versioned
|
||||
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme/doc.go
generated
vendored
Normal file
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
// This package contains the scheme of the automatically generated clientset.
|
||||
package scheme
|
||||
62
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme/register.go
generated
vendored
Normal file
62
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme/register.go
generated
vendored
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package scheme
|
||||
|
||||
import (
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||
autoscalingv1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1"
|
||||
autoscalingv1beta1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1"
|
||||
autoscalingv1beta2 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2"
|
||||
pocv1alpha1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1"
|
||||
)
|
||||
|
||||
var Scheme = runtime.NewScheme()
|
||||
var Codecs = serializer.NewCodecFactory(Scheme)
|
||||
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
||||
var localSchemeBuilder = runtime.SchemeBuilder{
|
||||
autoscalingv1.AddToScheme,
|
||||
autoscalingv1beta2.AddToScheme,
|
||||
autoscalingv1beta1.AddToScheme,
|
||||
pocv1alpha1.AddToScheme,
|
||||
}
|
||||
|
||||
// AddToScheme adds all types of this clientset into the given scheme. This allows composition
|
||||
// of clientsets, like in:
|
||||
//
|
||||
// import (
|
||||
// "k8s.io/client-go/kubernetes"
|
||||
// clientsetscheme "k8s.io/client-go/kubernetes/scheme"
|
||||
// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
|
||||
// )
|
||||
//
|
||||
// kclientset, _ := kubernetes.NewForConfig(c)
|
||||
// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
|
||||
//
|
||||
// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types
|
||||
// correctly.
|
||||
var AddToScheme = localSchemeBuilder.AddToScheme
|
||||
|
||||
func init() {
|
||||
v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"})
|
||||
utilruntime.Must(AddToScheme(Scheme))
|
||||
}
|
||||
95
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1/autoscaling.k8s.io_client.go
generated
vendored
Normal file
95
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1/autoscaling.k8s.io_client.go
generated
vendored
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1
|
||||
|
||||
import (
|
||||
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
v1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1"
|
||||
"k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
type AutoscalingV1Interface interface {
|
||||
RESTClient() rest.Interface
|
||||
VerticalPodAutoscalersGetter
|
||||
VerticalPodAutoscalerCheckpointsGetter
|
||||
}
|
||||
|
||||
// AutoscalingV1Client is used to interact with features provided by the autoscaling.k8s.io group.
|
||||
type AutoscalingV1Client struct {
|
||||
restClient rest.Interface
|
||||
}
|
||||
|
||||
func (c *AutoscalingV1Client) VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface {
|
||||
return newVerticalPodAutoscalers(c, namespace)
|
||||
}
|
||||
|
||||
func (c *AutoscalingV1Client) VerticalPodAutoscalerCheckpoints(namespace string) VerticalPodAutoscalerCheckpointInterface {
|
||||
return newVerticalPodAutoscalerCheckpoints(c, namespace)
|
||||
}
|
||||
|
||||
// NewForConfig creates a new AutoscalingV1Client for the given config.
|
||||
func NewForConfig(c *rest.Config) (*AutoscalingV1Client, error) {
|
||||
config := *c
|
||||
if err := setConfigDefaults(&config); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
client, err := rest.RESTClientFor(&config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &AutoscalingV1Client{client}, nil
|
||||
}
|
||||
|
||||
// NewForConfigOrDie creates a new AutoscalingV1Client for the given config and
|
||||
// panics if there is an error in the config.
|
||||
func NewForConfigOrDie(c *rest.Config) *AutoscalingV1Client {
|
||||
client, err := NewForConfig(c)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return client
|
||||
}
|
||||
|
||||
// New creates a new AutoscalingV1Client for the given RESTClient.
|
||||
func New(c rest.Interface) *AutoscalingV1Client {
|
||||
return &AutoscalingV1Client{c}
|
||||
}
|
||||
|
||||
func setConfigDefaults(config *rest.Config) error {
|
||||
gv := v1.SchemeGroupVersion
|
||||
config.GroupVersion = &gv
|
||||
config.APIPath = "/apis"
|
||||
config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}
|
||||
|
||||
if config.UserAgent == "" {
|
||||
config.UserAgent = rest.DefaultKubernetesUserAgent()
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// RESTClient returns a RESTClient that is used to communicate
|
||||
// with API server by this client implementation.
|
||||
func (c *AutoscalingV1Client) RESTClient() rest.Interface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.restClient
|
||||
}
|
||||
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1/doc.go
generated
vendored
Normal file
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
// This package has the automatically generated typed clients.
|
||||
package v1
|
||||
23
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1/generated_expansion.go
generated
vendored
Normal file
23
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1/generated_expansion.go
generated
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1
|
||||
|
||||
type VerticalPodAutoscalerExpansion interface{}
|
||||
|
||||
type VerticalPodAutoscalerCheckpointExpansion interface{}
|
||||
191
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1/verticalpodautoscaler.go
generated
vendored
Normal file
191
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1/verticalpodautoscaler.go
generated
vendored
Normal file
|
|
@ -0,0 +1,191 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
types "k8s.io/apimachinery/pkg/types"
|
||||
watch "k8s.io/apimachinery/pkg/watch"
|
||||
v1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1"
|
||||
scheme "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalersGetter has a method to return a VerticalPodAutoscalerInterface.
|
||||
// A group's client should implement this interface.
|
||||
type VerticalPodAutoscalersGetter interface {
|
||||
VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerInterface has methods to work with VerticalPodAutoscaler resources.
|
||||
type VerticalPodAutoscalerInterface interface {
|
||||
Create(*v1.VerticalPodAutoscaler) (*v1.VerticalPodAutoscaler, error)
|
||||
Update(*v1.VerticalPodAutoscaler) (*v1.VerticalPodAutoscaler, error)
|
||||
UpdateStatus(*v1.VerticalPodAutoscaler) (*v1.VerticalPodAutoscaler, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions) (*v1.VerticalPodAutoscaler, error)
|
||||
List(opts metav1.ListOptions) (*v1.VerticalPodAutoscalerList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VerticalPodAutoscaler, err error)
|
||||
VerticalPodAutoscalerExpansion
|
||||
}
|
||||
|
||||
// verticalPodAutoscalers implements VerticalPodAutoscalerInterface
|
||||
type verticalPodAutoscalers struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newVerticalPodAutoscalers returns a VerticalPodAutoscalers
|
||||
func newVerticalPodAutoscalers(c *AutoscalingV1Client, namespace string) *verticalPodAutoscalers {
|
||||
return &verticalPodAutoscalers{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the verticalPodAutoscaler, and returns the corresponding verticalPodAutoscaler object, and an error if there is any.
|
||||
func (c *verticalPodAutoscalers) Get(name string, options metav1.GetOptions) (result *v1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1.VerticalPodAutoscaler{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of VerticalPodAutoscalers that match those selectors.
|
||||
func (c *verticalPodAutoscalers) List(opts metav1.ListOptions) (result *v1.VerticalPodAutoscalerList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1.VerticalPodAutoscalerList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested verticalPodAutoscalers.
|
||||
func (c *verticalPodAutoscalers) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
opts.Watch = true
|
||||
return c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a verticalPodAutoscaler and creates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalers) Create(verticalPodAutoscaler *v1.VerticalPodAutoscaler) (result *v1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1.VerticalPodAutoscaler{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a verticalPodAutoscaler and updates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalers) Update(verticalPodAutoscaler *v1.VerticalPodAutoscaler) (result *v1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1.VerticalPodAutoscaler{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(verticalPodAutoscaler.Name).
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||
|
||||
func (c *verticalPodAutoscalers) UpdateStatus(verticalPodAutoscaler *v1.VerticalPodAutoscaler) (result *v1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1.VerticalPodAutoscaler{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(verticalPodAutoscaler.Name).
|
||||
SubResource("status").
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the verticalPodAutoscaler and deletes it. Returns an error if one occurs.
|
||||
func (c *verticalPodAutoscalers) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *verticalPodAutoscalers) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
|
||||
var timeout time.Duration
|
||||
if listOptions.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||
}
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched verticalPodAutoscaler.
|
||||
func (c *verticalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1.VerticalPodAutoscaler{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
types "k8s.io/apimachinery/pkg/types"
|
||||
watch "k8s.io/apimachinery/pkg/watch"
|
||||
v1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1"
|
||||
scheme "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerCheckpointsGetter has a method to return a VerticalPodAutoscalerCheckpointInterface.
|
||||
// A group's client should implement this interface.
|
||||
type VerticalPodAutoscalerCheckpointsGetter interface {
|
||||
VerticalPodAutoscalerCheckpoints(namespace string) VerticalPodAutoscalerCheckpointInterface
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointInterface has methods to work with VerticalPodAutoscalerCheckpoint resources.
|
||||
type VerticalPodAutoscalerCheckpointInterface interface {
|
||||
Create(*v1.VerticalPodAutoscalerCheckpoint) (*v1.VerticalPodAutoscalerCheckpoint, error)
|
||||
Update(*v1.VerticalPodAutoscalerCheckpoint) (*v1.VerticalPodAutoscalerCheckpoint, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions) (*v1.VerticalPodAutoscalerCheckpoint, error)
|
||||
List(opts metav1.ListOptions) (*v1.VerticalPodAutoscalerCheckpointList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VerticalPodAutoscalerCheckpoint, err error)
|
||||
VerticalPodAutoscalerCheckpointExpansion
|
||||
}
|
||||
|
||||
// verticalPodAutoscalerCheckpoints implements VerticalPodAutoscalerCheckpointInterface
|
||||
type verticalPodAutoscalerCheckpoints struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newVerticalPodAutoscalerCheckpoints returns a VerticalPodAutoscalerCheckpoints
|
||||
func newVerticalPodAutoscalerCheckpoints(c *AutoscalingV1Client, namespace string) *verticalPodAutoscalerCheckpoints {
|
||||
return &verticalPodAutoscalerCheckpoints{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the verticalPodAutoscalerCheckpoint, and returns the corresponding verticalPodAutoscalerCheckpoint object, and an error if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Get(name string, options metav1.GetOptions) (result *v1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of VerticalPodAutoscalerCheckpoints that match those selectors.
|
||||
func (c *verticalPodAutoscalerCheckpoints) List(opts metav1.ListOptions) (result *v1.VerticalPodAutoscalerCheckpointList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1.VerticalPodAutoscalerCheckpointList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested verticalPodAutoscalerCheckpoints.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
opts.Watch = true
|
||||
return c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a verticalPodAutoscalerCheckpoint and creates it. Returns the server's representation of the verticalPodAutoscalerCheckpoint, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Create(verticalPodAutoscalerCheckpoint *v1.VerticalPodAutoscalerCheckpoint) (result *v1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Body(verticalPodAutoscalerCheckpoint).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a verticalPodAutoscalerCheckpoint and updates it. Returns the server's representation of the verticalPodAutoscalerCheckpoint, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Update(verticalPodAutoscalerCheckpoint *v1.VerticalPodAutoscalerCheckpoint) (result *v1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(verticalPodAutoscalerCheckpoint.Name).
|
||||
Body(verticalPodAutoscalerCheckpoint).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the verticalPodAutoscalerCheckpoint and deletes it. Returns an error if one occurs.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *verticalPodAutoscalerCheckpoints) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
|
||||
var timeout time.Duration
|
||||
if listOptions.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||
}
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched verticalPodAutoscalerCheckpoint.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta1
|
||||
|
||||
import (
|
||||
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
v1beta1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1"
|
||||
"k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
type AutoscalingV1beta1Interface interface {
|
||||
RESTClient() rest.Interface
|
||||
VerticalPodAutoscalersGetter
|
||||
VerticalPodAutoscalerCheckpointsGetter
|
||||
}
|
||||
|
||||
// AutoscalingV1beta1Client is used to interact with features provided by the autoscaling.k8s.io group.
|
||||
type AutoscalingV1beta1Client struct {
|
||||
restClient rest.Interface
|
||||
}
|
||||
|
||||
func (c *AutoscalingV1beta1Client) VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface {
|
||||
return newVerticalPodAutoscalers(c, namespace)
|
||||
}
|
||||
|
||||
func (c *AutoscalingV1beta1Client) VerticalPodAutoscalerCheckpoints(namespace string) VerticalPodAutoscalerCheckpointInterface {
|
||||
return newVerticalPodAutoscalerCheckpoints(c, namespace)
|
||||
}
|
||||
|
||||
// NewForConfig creates a new AutoscalingV1beta1Client for the given config.
|
||||
func NewForConfig(c *rest.Config) (*AutoscalingV1beta1Client, error) {
|
||||
config := *c
|
||||
if err := setConfigDefaults(&config); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
client, err := rest.RESTClientFor(&config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &AutoscalingV1beta1Client{client}, nil
|
||||
}
|
||||
|
||||
// NewForConfigOrDie creates a new AutoscalingV1beta1Client for the given config and
|
||||
// panics if there is an error in the config.
|
||||
func NewForConfigOrDie(c *rest.Config) *AutoscalingV1beta1Client {
|
||||
client, err := NewForConfig(c)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return client
|
||||
}
|
||||
|
||||
// New creates a new AutoscalingV1beta1Client for the given RESTClient.
|
||||
func New(c rest.Interface) *AutoscalingV1beta1Client {
|
||||
return &AutoscalingV1beta1Client{c}
|
||||
}
|
||||
|
||||
func setConfigDefaults(config *rest.Config) error {
|
||||
gv := v1beta1.SchemeGroupVersion
|
||||
config.GroupVersion = &gv
|
||||
config.APIPath = "/apis"
|
||||
config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}
|
||||
|
||||
if config.UserAgent == "" {
|
||||
config.UserAgent = rest.DefaultKubernetesUserAgent()
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// RESTClient returns a RESTClient that is used to communicate
|
||||
// with API server by this client implementation.
|
||||
func (c *AutoscalingV1beta1Client) RESTClient() rest.Interface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.restClient
|
||||
}
|
||||
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta1/doc.go
generated
vendored
Normal file
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta1/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
// This package has the automatically generated typed clients.
|
||||
package v1beta1
|
||||
23
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta1/generated_expansion.go
generated
vendored
Normal file
23
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta1/generated_expansion.go
generated
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta1
|
||||
|
||||
type VerticalPodAutoscalerExpansion interface{}
|
||||
|
||||
type VerticalPodAutoscalerCheckpointExpansion interface{}
|
||||
191
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta1/verticalpodautoscaler.go
generated
vendored
Normal file
191
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta1/verticalpodautoscaler.go
generated
vendored
Normal file
|
|
@ -0,0 +1,191 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
types "k8s.io/apimachinery/pkg/types"
|
||||
watch "k8s.io/apimachinery/pkg/watch"
|
||||
v1beta1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1"
|
||||
scheme "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalersGetter has a method to return a VerticalPodAutoscalerInterface.
|
||||
// A group's client should implement this interface.
|
||||
type VerticalPodAutoscalersGetter interface {
|
||||
VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerInterface has methods to work with VerticalPodAutoscaler resources.
|
||||
type VerticalPodAutoscalerInterface interface {
|
||||
Create(*v1beta1.VerticalPodAutoscaler) (*v1beta1.VerticalPodAutoscaler, error)
|
||||
Update(*v1beta1.VerticalPodAutoscaler) (*v1beta1.VerticalPodAutoscaler, error)
|
||||
UpdateStatus(*v1beta1.VerticalPodAutoscaler) (*v1beta1.VerticalPodAutoscaler, error)
|
||||
Delete(name string, options *v1.DeleteOptions) error
|
||||
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
|
||||
Get(name string, options v1.GetOptions) (*v1beta1.VerticalPodAutoscaler, error)
|
||||
List(opts v1.ListOptions) (*v1beta1.VerticalPodAutoscalerList, error)
|
||||
Watch(opts v1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VerticalPodAutoscaler, err error)
|
||||
VerticalPodAutoscalerExpansion
|
||||
}
|
||||
|
||||
// verticalPodAutoscalers implements VerticalPodAutoscalerInterface
|
||||
type verticalPodAutoscalers struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newVerticalPodAutoscalers returns a VerticalPodAutoscalers
|
||||
func newVerticalPodAutoscalers(c *AutoscalingV1beta1Client, namespace string) *verticalPodAutoscalers {
|
||||
return &verticalPodAutoscalers{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the verticalPodAutoscaler, and returns the corresponding verticalPodAutoscaler object, and an error if there is any.
|
||||
func (c *verticalPodAutoscalers) Get(name string, options v1.GetOptions) (result *v1beta1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1beta1.VerticalPodAutoscaler{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of VerticalPodAutoscalers that match those selectors.
|
||||
func (c *verticalPodAutoscalers) List(opts v1.ListOptions) (result *v1beta1.VerticalPodAutoscalerList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1beta1.VerticalPodAutoscalerList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested verticalPodAutoscalers.
|
||||
func (c *verticalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
opts.Watch = true
|
||||
return c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a verticalPodAutoscaler and creates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalers) Create(verticalPodAutoscaler *v1beta1.VerticalPodAutoscaler) (result *v1beta1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1beta1.VerticalPodAutoscaler{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a verticalPodAutoscaler and updates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalers) Update(verticalPodAutoscaler *v1beta1.VerticalPodAutoscaler) (result *v1beta1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1beta1.VerticalPodAutoscaler{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(verticalPodAutoscaler.Name).
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||
|
||||
func (c *verticalPodAutoscalers) UpdateStatus(verticalPodAutoscaler *v1beta1.VerticalPodAutoscaler) (result *v1beta1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1beta1.VerticalPodAutoscaler{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(verticalPodAutoscaler.Name).
|
||||
SubResource("status").
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the verticalPodAutoscaler and deletes it. Returns an error if one occurs.
|
||||
func (c *verticalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *verticalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
var timeout time.Duration
|
||||
if listOptions.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||
}
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched verticalPodAutoscaler.
|
||||
func (c *verticalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1beta1.VerticalPodAutoscaler{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
types "k8s.io/apimachinery/pkg/types"
|
||||
watch "k8s.io/apimachinery/pkg/watch"
|
||||
v1beta1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1"
|
||||
scheme "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerCheckpointsGetter has a method to return a VerticalPodAutoscalerCheckpointInterface.
|
||||
// A group's client should implement this interface.
|
||||
type VerticalPodAutoscalerCheckpointsGetter interface {
|
||||
VerticalPodAutoscalerCheckpoints(namespace string) VerticalPodAutoscalerCheckpointInterface
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointInterface has methods to work with VerticalPodAutoscalerCheckpoint resources.
|
||||
type VerticalPodAutoscalerCheckpointInterface interface {
|
||||
Create(*v1beta1.VerticalPodAutoscalerCheckpoint) (*v1beta1.VerticalPodAutoscalerCheckpoint, error)
|
||||
Update(*v1beta1.VerticalPodAutoscalerCheckpoint) (*v1beta1.VerticalPodAutoscalerCheckpoint, error)
|
||||
Delete(name string, options *v1.DeleteOptions) error
|
||||
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
|
||||
Get(name string, options v1.GetOptions) (*v1beta1.VerticalPodAutoscalerCheckpoint, error)
|
||||
List(opts v1.ListOptions) (*v1beta1.VerticalPodAutoscalerCheckpointList, error)
|
||||
Watch(opts v1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VerticalPodAutoscalerCheckpoint, err error)
|
||||
VerticalPodAutoscalerCheckpointExpansion
|
||||
}
|
||||
|
||||
// verticalPodAutoscalerCheckpoints implements VerticalPodAutoscalerCheckpointInterface
|
||||
type verticalPodAutoscalerCheckpoints struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newVerticalPodAutoscalerCheckpoints returns a VerticalPodAutoscalerCheckpoints
|
||||
func newVerticalPodAutoscalerCheckpoints(c *AutoscalingV1beta1Client, namespace string) *verticalPodAutoscalerCheckpoints {
|
||||
return &verticalPodAutoscalerCheckpoints{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the verticalPodAutoscalerCheckpoint, and returns the corresponding verticalPodAutoscalerCheckpoint object, and an error if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Get(name string, options v1.GetOptions) (result *v1beta1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1beta1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of VerticalPodAutoscalerCheckpoints that match those selectors.
|
||||
func (c *verticalPodAutoscalerCheckpoints) List(opts v1.ListOptions) (result *v1beta1.VerticalPodAutoscalerCheckpointList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1beta1.VerticalPodAutoscalerCheckpointList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested verticalPodAutoscalerCheckpoints.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
opts.Watch = true
|
||||
return c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a verticalPodAutoscalerCheckpoint and creates it. Returns the server's representation of the verticalPodAutoscalerCheckpoint, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Create(verticalPodAutoscalerCheckpoint *v1beta1.VerticalPodAutoscalerCheckpoint) (result *v1beta1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1beta1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Body(verticalPodAutoscalerCheckpoint).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a verticalPodAutoscalerCheckpoint and updates it. Returns the server's representation of the verticalPodAutoscalerCheckpoint, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Update(verticalPodAutoscalerCheckpoint *v1beta1.VerticalPodAutoscalerCheckpoint) (result *v1beta1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1beta1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(verticalPodAutoscalerCheckpoint.Name).
|
||||
Body(verticalPodAutoscalerCheckpoint).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the verticalPodAutoscalerCheckpoint and deletes it. Returns an error if one occurs.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Delete(name string, options *v1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *verticalPodAutoscalerCheckpoints) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
var timeout time.Duration
|
||||
if listOptions.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||
}
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched verticalPodAutoscalerCheckpoint.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1beta1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta2
|
||||
|
||||
import (
|
||||
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
v1beta2 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2"
|
||||
"k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
type AutoscalingV1beta2Interface interface {
|
||||
RESTClient() rest.Interface
|
||||
VerticalPodAutoscalersGetter
|
||||
VerticalPodAutoscalerCheckpointsGetter
|
||||
}
|
||||
|
||||
// AutoscalingV1beta2Client is used to interact with features provided by the autoscaling.k8s.io group.
|
||||
type AutoscalingV1beta2Client struct {
|
||||
restClient rest.Interface
|
||||
}
|
||||
|
||||
func (c *AutoscalingV1beta2Client) VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface {
|
||||
return newVerticalPodAutoscalers(c, namespace)
|
||||
}
|
||||
|
||||
func (c *AutoscalingV1beta2Client) VerticalPodAutoscalerCheckpoints(namespace string) VerticalPodAutoscalerCheckpointInterface {
|
||||
return newVerticalPodAutoscalerCheckpoints(c, namespace)
|
||||
}
|
||||
|
||||
// NewForConfig creates a new AutoscalingV1beta2Client for the given config.
|
||||
func NewForConfig(c *rest.Config) (*AutoscalingV1beta2Client, error) {
|
||||
config := *c
|
||||
if err := setConfigDefaults(&config); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
client, err := rest.RESTClientFor(&config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &AutoscalingV1beta2Client{client}, nil
|
||||
}
|
||||
|
||||
// NewForConfigOrDie creates a new AutoscalingV1beta2Client for the given config and
|
||||
// panics if there is an error in the config.
|
||||
func NewForConfigOrDie(c *rest.Config) *AutoscalingV1beta2Client {
|
||||
client, err := NewForConfig(c)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return client
|
||||
}
|
||||
|
||||
// New creates a new AutoscalingV1beta2Client for the given RESTClient.
|
||||
func New(c rest.Interface) *AutoscalingV1beta2Client {
|
||||
return &AutoscalingV1beta2Client{c}
|
||||
}
|
||||
|
||||
func setConfigDefaults(config *rest.Config) error {
|
||||
gv := v1beta2.SchemeGroupVersion
|
||||
config.GroupVersion = &gv
|
||||
config.APIPath = "/apis"
|
||||
config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}
|
||||
|
||||
if config.UserAgent == "" {
|
||||
config.UserAgent = rest.DefaultKubernetesUserAgent()
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// RESTClient returns a RESTClient that is used to communicate
|
||||
// with API server by this client implementation.
|
||||
func (c *AutoscalingV1beta2Client) RESTClient() rest.Interface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.restClient
|
||||
}
|
||||
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta2/doc.go
generated
vendored
Normal file
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta2/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
// This package has the automatically generated typed clients.
|
||||
package v1beta2
|
||||
23
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta2/generated_expansion.go
generated
vendored
Normal file
23
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta2/generated_expansion.go
generated
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta2
|
||||
|
||||
type VerticalPodAutoscalerExpansion interface{}
|
||||
|
||||
type VerticalPodAutoscalerCheckpointExpansion interface{}
|
||||
191
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta2/verticalpodautoscaler.go
generated
vendored
Normal file
191
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta2/verticalpodautoscaler.go
generated
vendored
Normal file
|
|
@ -0,0 +1,191 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta2
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
types "k8s.io/apimachinery/pkg/types"
|
||||
watch "k8s.io/apimachinery/pkg/watch"
|
||||
v1beta2 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2"
|
||||
scheme "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalersGetter has a method to return a VerticalPodAutoscalerInterface.
|
||||
// A group's client should implement this interface.
|
||||
type VerticalPodAutoscalersGetter interface {
|
||||
VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerInterface has methods to work with VerticalPodAutoscaler resources.
|
||||
type VerticalPodAutoscalerInterface interface {
|
||||
Create(*v1beta2.VerticalPodAutoscaler) (*v1beta2.VerticalPodAutoscaler, error)
|
||||
Update(*v1beta2.VerticalPodAutoscaler) (*v1beta2.VerticalPodAutoscaler, error)
|
||||
UpdateStatus(*v1beta2.VerticalPodAutoscaler) (*v1beta2.VerticalPodAutoscaler, error)
|
||||
Delete(name string, options *v1.DeleteOptions) error
|
||||
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
|
||||
Get(name string, options v1.GetOptions) (*v1beta2.VerticalPodAutoscaler, error)
|
||||
List(opts v1.ListOptions) (*v1beta2.VerticalPodAutoscalerList, error)
|
||||
Watch(opts v1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta2.VerticalPodAutoscaler, err error)
|
||||
VerticalPodAutoscalerExpansion
|
||||
}
|
||||
|
||||
// verticalPodAutoscalers implements VerticalPodAutoscalerInterface
|
||||
type verticalPodAutoscalers struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newVerticalPodAutoscalers returns a VerticalPodAutoscalers
|
||||
func newVerticalPodAutoscalers(c *AutoscalingV1beta2Client, namespace string) *verticalPodAutoscalers {
|
||||
return &verticalPodAutoscalers{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the verticalPodAutoscaler, and returns the corresponding verticalPodAutoscaler object, and an error if there is any.
|
||||
func (c *verticalPodAutoscalers) Get(name string, options v1.GetOptions) (result *v1beta2.VerticalPodAutoscaler, err error) {
|
||||
result = &v1beta2.VerticalPodAutoscaler{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of VerticalPodAutoscalers that match those selectors.
|
||||
func (c *verticalPodAutoscalers) List(opts v1.ListOptions) (result *v1beta2.VerticalPodAutoscalerList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1beta2.VerticalPodAutoscalerList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested verticalPodAutoscalers.
|
||||
func (c *verticalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
opts.Watch = true
|
||||
return c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a verticalPodAutoscaler and creates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalers) Create(verticalPodAutoscaler *v1beta2.VerticalPodAutoscaler) (result *v1beta2.VerticalPodAutoscaler, err error) {
|
||||
result = &v1beta2.VerticalPodAutoscaler{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a verticalPodAutoscaler and updates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalers) Update(verticalPodAutoscaler *v1beta2.VerticalPodAutoscaler) (result *v1beta2.VerticalPodAutoscaler, err error) {
|
||||
result = &v1beta2.VerticalPodAutoscaler{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(verticalPodAutoscaler.Name).
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||
|
||||
func (c *verticalPodAutoscalers) UpdateStatus(verticalPodAutoscaler *v1beta2.VerticalPodAutoscaler) (result *v1beta2.VerticalPodAutoscaler, err error) {
|
||||
result = &v1beta2.VerticalPodAutoscaler{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(verticalPodAutoscaler.Name).
|
||||
SubResource("status").
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the verticalPodAutoscaler and deletes it. Returns an error if one occurs.
|
||||
func (c *verticalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *verticalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
var timeout time.Duration
|
||||
if listOptions.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||
}
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched verticalPodAutoscaler.
|
||||
func (c *verticalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta2.VerticalPodAutoscaler, err error) {
|
||||
result = &v1beta2.VerticalPodAutoscaler{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta2
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
types "k8s.io/apimachinery/pkg/types"
|
||||
watch "k8s.io/apimachinery/pkg/watch"
|
||||
v1beta2 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2"
|
||||
scheme "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerCheckpointsGetter has a method to return a VerticalPodAutoscalerCheckpointInterface.
|
||||
// A group's client should implement this interface.
|
||||
type VerticalPodAutoscalerCheckpointsGetter interface {
|
||||
VerticalPodAutoscalerCheckpoints(namespace string) VerticalPodAutoscalerCheckpointInterface
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointInterface has methods to work with VerticalPodAutoscalerCheckpoint resources.
|
||||
type VerticalPodAutoscalerCheckpointInterface interface {
|
||||
Create(*v1beta2.VerticalPodAutoscalerCheckpoint) (*v1beta2.VerticalPodAutoscalerCheckpoint, error)
|
||||
Update(*v1beta2.VerticalPodAutoscalerCheckpoint) (*v1beta2.VerticalPodAutoscalerCheckpoint, error)
|
||||
Delete(name string, options *v1.DeleteOptions) error
|
||||
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
|
||||
Get(name string, options v1.GetOptions) (*v1beta2.VerticalPodAutoscalerCheckpoint, error)
|
||||
List(opts v1.ListOptions) (*v1beta2.VerticalPodAutoscalerCheckpointList, error)
|
||||
Watch(opts v1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta2.VerticalPodAutoscalerCheckpoint, err error)
|
||||
VerticalPodAutoscalerCheckpointExpansion
|
||||
}
|
||||
|
||||
// verticalPodAutoscalerCheckpoints implements VerticalPodAutoscalerCheckpointInterface
|
||||
type verticalPodAutoscalerCheckpoints struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newVerticalPodAutoscalerCheckpoints returns a VerticalPodAutoscalerCheckpoints
|
||||
func newVerticalPodAutoscalerCheckpoints(c *AutoscalingV1beta2Client, namespace string) *verticalPodAutoscalerCheckpoints {
|
||||
return &verticalPodAutoscalerCheckpoints{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the verticalPodAutoscalerCheckpoint, and returns the corresponding verticalPodAutoscalerCheckpoint object, and an error if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Get(name string, options v1.GetOptions) (result *v1beta2.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1beta2.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of VerticalPodAutoscalerCheckpoints that match those selectors.
|
||||
func (c *verticalPodAutoscalerCheckpoints) List(opts v1.ListOptions) (result *v1beta2.VerticalPodAutoscalerCheckpointList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1beta2.VerticalPodAutoscalerCheckpointList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested verticalPodAutoscalerCheckpoints.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
opts.Watch = true
|
||||
return c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a verticalPodAutoscalerCheckpoint and creates it. Returns the server's representation of the verticalPodAutoscalerCheckpoint, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Create(verticalPodAutoscalerCheckpoint *v1beta2.VerticalPodAutoscalerCheckpoint) (result *v1beta2.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1beta2.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Body(verticalPodAutoscalerCheckpoint).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a verticalPodAutoscalerCheckpoint and updates it. Returns the server's representation of the verticalPodAutoscalerCheckpoint, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Update(verticalPodAutoscalerCheckpoint *v1beta2.VerticalPodAutoscalerCheckpoint) (result *v1beta2.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1beta2.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(verticalPodAutoscalerCheckpoint.Name).
|
||||
Body(verticalPodAutoscalerCheckpoint).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the verticalPodAutoscalerCheckpoint and deletes it. Returns an error if one occurs.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Delete(name string, options *v1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *verticalPodAutoscalerCheckpoints) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
var timeout time.Duration
|
||||
if listOptions.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||
}
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched verticalPodAutoscalerCheckpoint.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta2.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1beta2.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/poc.autoscaling.k8s.io/v1alpha1/doc.go
generated
vendored
Normal file
20
vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/poc.autoscaling.k8s.io/v1alpha1/doc.go
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
// This package has the automatically generated typed clients.
|
||||
package v1alpha1
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1alpha1
|
||||
|
||||
type VerticalPodAutoscalerExpansion interface{}
|
||||
|
||||
type VerticalPodAutoscalerCheckpointExpansion interface{}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
v1alpha1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1"
|
||||
"k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
type PocV1alpha1Interface interface {
|
||||
RESTClient() rest.Interface
|
||||
VerticalPodAutoscalersGetter
|
||||
VerticalPodAutoscalerCheckpointsGetter
|
||||
}
|
||||
|
||||
// PocV1alpha1Client is used to interact with features provided by the poc.autoscaling.k8s.io group.
|
||||
type PocV1alpha1Client struct {
|
||||
restClient rest.Interface
|
||||
}
|
||||
|
||||
func (c *PocV1alpha1Client) VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface {
|
||||
return newVerticalPodAutoscalers(c, namespace)
|
||||
}
|
||||
|
||||
func (c *PocV1alpha1Client) VerticalPodAutoscalerCheckpoints(namespace string) VerticalPodAutoscalerCheckpointInterface {
|
||||
return newVerticalPodAutoscalerCheckpoints(c, namespace)
|
||||
}
|
||||
|
||||
// NewForConfig creates a new PocV1alpha1Client for the given config.
|
||||
func NewForConfig(c *rest.Config) (*PocV1alpha1Client, error) {
|
||||
config := *c
|
||||
if err := setConfigDefaults(&config); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
client, err := rest.RESTClientFor(&config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &PocV1alpha1Client{client}, nil
|
||||
}
|
||||
|
||||
// NewForConfigOrDie creates a new PocV1alpha1Client for the given config and
|
||||
// panics if there is an error in the config.
|
||||
func NewForConfigOrDie(c *rest.Config) *PocV1alpha1Client {
|
||||
client, err := NewForConfig(c)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return client
|
||||
}
|
||||
|
||||
// New creates a new PocV1alpha1Client for the given RESTClient.
|
||||
func New(c rest.Interface) *PocV1alpha1Client {
|
||||
return &PocV1alpha1Client{c}
|
||||
}
|
||||
|
||||
func setConfigDefaults(config *rest.Config) error {
|
||||
gv := v1alpha1.SchemeGroupVersion
|
||||
config.GroupVersion = &gv
|
||||
config.APIPath = "/apis"
|
||||
config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}
|
||||
|
||||
if config.UserAgent == "" {
|
||||
config.UserAgent = rest.DefaultKubernetesUserAgent()
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// RESTClient returns a RESTClient that is used to communicate
|
||||
// with API server by this client implementation.
|
||||
func (c *PocV1alpha1Client) RESTClient() rest.Interface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.restClient
|
||||
}
|
||||
|
|
@ -0,0 +1,191 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
types "k8s.io/apimachinery/pkg/types"
|
||||
watch "k8s.io/apimachinery/pkg/watch"
|
||||
v1alpha1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1"
|
||||
scheme "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalersGetter has a method to return a VerticalPodAutoscalerInterface.
|
||||
// A group's client should implement this interface.
|
||||
type VerticalPodAutoscalersGetter interface {
|
||||
VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerInterface has methods to work with VerticalPodAutoscaler resources.
|
||||
type VerticalPodAutoscalerInterface interface {
|
||||
Create(*v1alpha1.VerticalPodAutoscaler) (*v1alpha1.VerticalPodAutoscaler, error)
|
||||
Update(*v1alpha1.VerticalPodAutoscaler) (*v1alpha1.VerticalPodAutoscaler, error)
|
||||
UpdateStatus(*v1alpha1.VerticalPodAutoscaler) (*v1alpha1.VerticalPodAutoscaler, error)
|
||||
Delete(name string, options *v1.DeleteOptions) error
|
||||
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
|
||||
Get(name string, options v1.GetOptions) (*v1alpha1.VerticalPodAutoscaler, error)
|
||||
List(opts v1.ListOptions) (*v1alpha1.VerticalPodAutoscalerList, error)
|
||||
Watch(opts v1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VerticalPodAutoscaler, err error)
|
||||
VerticalPodAutoscalerExpansion
|
||||
}
|
||||
|
||||
// verticalPodAutoscalers implements VerticalPodAutoscalerInterface
|
||||
type verticalPodAutoscalers struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newVerticalPodAutoscalers returns a VerticalPodAutoscalers
|
||||
func newVerticalPodAutoscalers(c *PocV1alpha1Client, namespace string) *verticalPodAutoscalers {
|
||||
return &verticalPodAutoscalers{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the verticalPodAutoscaler, and returns the corresponding verticalPodAutoscaler object, and an error if there is any.
|
||||
func (c *verticalPodAutoscalers) Get(name string, options v1.GetOptions) (result *v1alpha1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1alpha1.VerticalPodAutoscaler{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of VerticalPodAutoscalers that match those selectors.
|
||||
func (c *verticalPodAutoscalers) List(opts v1.ListOptions) (result *v1alpha1.VerticalPodAutoscalerList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1alpha1.VerticalPodAutoscalerList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested verticalPodAutoscalers.
|
||||
func (c *verticalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
opts.Watch = true
|
||||
return c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a verticalPodAutoscaler and creates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalers) Create(verticalPodAutoscaler *v1alpha1.VerticalPodAutoscaler) (result *v1alpha1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1alpha1.VerticalPodAutoscaler{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a verticalPodAutoscaler and updates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalers) Update(verticalPodAutoscaler *v1alpha1.VerticalPodAutoscaler) (result *v1alpha1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1alpha1.VerticalPodAutoscaler{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(verticalPodAutoscaler.Name).
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||
|
||||
func (c *verticalPodAutoscalers) UpdateStatus(verticalPodAutoscaler *v1alpha1.VerticalPodAutoscaler) (result *v1alpha1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1alpha1.VerticalPodAutoscaler{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(verticalPodAutoscaler.Name).
|
||||
SubResource("status").
|
||||
Body(verticalPodAutoscaler).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the verticalPodAutoscaler and deletes it. Returns an error if one occurs.
|
||||
func (c *verticalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *verticalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
var timeout time.Duration
|
||||
if listOptions.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||
}
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched verticalPodAutoscaler.
|
||||
func (c *verticalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VerticalPodAutoscaler, err error) {
|
||||
result = &v1alpha1.VerticalPodAutoscaler{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalers").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by client-gen. DO NOT EDIT.
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
types "k8s.io/apimachinery/pkg/types"
|
||||
watch "k8s.io/apimachinery/pkg/watch"
|
||||
v1alpha1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1"
|
||||
scheme "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
// VerticalPodAutoscalerCheckpointsGetter has a method to return a VerticalPodAutoscalerCheckpointInterface.
|
||||
// A group's client should implement this interface.
|
||||
type VerticalPodAutoscalerCheckpointsGetter interface {
|
||||
VerticalPodAutoscalerCheckpoints(namespace string) VerticalPodAutoscalerCheckpointInterface
|
||||
}
|
||||
|
||||
// VerticalPodAutoscalerCheckpointInterface has methods to work with VerticalPodAutoscalerCheckpoint resources.
|
||||
type VerticalPodAutoscalerCheckpointInterface interface {
|
||||
Create(*v1alpha1.VerticalPodAutoscalerCheckpoint) (*v1alpha1.VerticalPodAutoscalerCheckpoint, error)
|
||||
Update(*v1alpha1.VerticalPodAutoscalerCheckpoint) (*v1alpha1.VerticalPodAutoscalerCheckpoint, error)
|
||||
Delete(name string, options *v1.DeleteOptions) error
|
||||
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
|
||||
Get(name string, options v1.GetOptions) (*v1alpha1.VerticalPodAutoscalerCheckpoint, error)
|
||||
List(opts v1.ListOptions) (*v1alpha1.VerticalPodAutoscalerCheckpointList, error)
|
||||
Watch(opts v1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VerticalPodAutoscalerCheckpoint, err error)
|
||||
VerticalPodAutoscalerCheckpointExpansion
|
||||
}
|
||||
|
||||
// verticalPodAutoscalerCheckpoints implements VerticalPodAutoscalerCheckpointInterface
|
||||
type verticalPodAutoscalerCheckpoints struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newVerticalPodAutoscalerCheckpoints returns a VerticalPodAutoscalerCheckpoints
|
||||
func newVerticalPodAutoscalerCheckpoints(c *PocV1alpha1Client, namespace string) *verticalPodAutoscalerCheckpoints {
|
||||
return &verticalPodAutoscalerCheckpoints{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the verticalPodAutoscalerCheckpoint, and returns the corresponding verticalPodAutoscalerCheckpoint object, and an error if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Get(name string, options v1.GetOptions) (result *v1alpha1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1alpha1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of VerticalPodAutoscalerCheckpoints that match those selectors.
|
||||
func (c *verticalPodAutoscalerCheckpoints) List(opts v1.ListOptions) (result *v1alpha1.VerticalPodAutoscalerCheckpointList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1alpha1.VerticalPodAutoscalerCheckpointList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested verticalPodAutoscalerCheckpoints.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
opts.Watch = true
|
||||
return c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a verticalPodAutoscalerCheckpoint and creates it. Returns the server's representation of the verticalPodAutoscalerCheckpoint, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Create(verticalPodAutoscalerCheckpoint *v1alpha1.VerticalPodAutoscalerCheckpoint) (result *v1alpha1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1alpha1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Body(verticalPodAutoscalerCheckpoint).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a verticalPodAutoscalerCheckpoint and updates it. Returns the server's representation of the verticalPodAutoscalerCheckpoint, and an error, if there is any.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Update(verticalPodAutoscalerCheckpoint *v1alpha1.VerticalPodAutoscalerCheckpoint) (result *v1alpha1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1alpha1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(verticalPodAutoscalerCheckpoint.Name).
|
||||
Body(verticalPodAutoscalerCheckpoint).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the verticalPodAutoscalerCheckpoint and deletes it. Returns an error if one occurs.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Delete(name string, options *v1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *verticalPodAutoscalerCheckpoints) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
var timeout time.Duration
|
||||
if listOptions.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||
}
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched verticalPodAutoscalerCheckpoint.
|
||||
func (c *verticalPodAutoscalerCheckpoints) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VerticalPodAutoscalerCheckpoint, err error) {
|
||||
result = &v1alpha1.VerticalPodAutoscalerCheckpoint{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("verticalpodautoscalercheckpoints").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
|
@ -126,8 +126,8 @@ k8s.io/api/extensions/v1beta1
|
|||
k8s.io/api/policy/v1beta1
|
||||
k8s.io/api/storage/v1
|
||||
k8s.io/api/apps/v1beta1
|
||||
k8s.io/api/admissionregistration/v1beta1
|
||||
k8s.io/api/autoscaling/v1
|
||||
k8s.io/api/admissionregistration/v1beta1
|
||||
k8s.io/api/apps/v1beta2
|
||||
k8s.io/api/auditregistration/v1alpha1
|
||||
k8s.io/api/authentication/v1
|
||||
|
|
@ -195,12 +195,25 @@ k8s.io/apimachinery/pkg/apis/meta/v1/unstructured
|
|||
k8s.io/apimachinery/pkg/util/strategicpatch
|
||||
k8s.io/apimachinery/pkg/util/mergepatch
|
||||
k8s.io/apimachinery/third_party/forked/golang/json
|
||||
# k8s.io/autoscaler v0.0.0-20190612121530-8bb2354d9af9
|
||||
k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned
|
||||
k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2
|
||||
k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1
|
||||
k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta1
|
||||
k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/autoscaling.k8s.io/v1beta2
|
||||
k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/typed/poc.autoscaling.k8s.io/v1alpha1
|
||||
k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1
|
||||
k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned/scheme
|
||||
k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta1
|
||||
k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/poc.autoscaling.k8s.io/v1alpha1
|
||||
# k8s.io/client-go v2.0.0-alpha.0.0.20190313235726-6ee68ca5fd83+incompatible
|
||||
k8s.io/client-go/kubernetes
|
||||
k8s.io/client-go/plugin/pkg/client/auth
|
||||
k8s.io/client-go/tools/clientcmd
|
||||
k8s.io/client-go/tools/cache
|
||||
k8s.io/client-go/discovery
|
||||
k8s.io/client-go/rest
|
||||
k8s.io/client-go/util/flowcontrol
|
||||
k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1
|
||||
k8s.io/client-go/kubernetes/typed/apps/v1
|
||||
k8s.io/client-go/kubernetes/typed/apps/v1beta1
|
||||
|
|
@ -237,8 +250,6 @@ k8s.io/client-go/kubernetes/typed/settings/v1alpha1
|
|||
k8s.io/client-go/kubernetes/typed/storage/v1
|
||||
k8s.io/client-go/kubernetes/typed/storage/v1alpha1
|
||||
k8s.io/client-go/kubernetes/typed/storage/v1beta1
|
||||
k8s.io/client-go/rest
|
||||
k8s.io/client-go/util/flowcontrol
|
||||
k8s.io/client-go/plugin/pkg/client/auth/azure
|
||||
k8s.io/client-go/plugin/pkg/client/auth/gcp
|
||||
k8s.io/client-go/plugin/pkg/client/auth/oidc
|
||||
|
|
@ -251,13 +262,13 @@ k8s.io/client-go/kubernetes/fake
|
|||
k8s.io/client-go/tools/pager
|
||||
k8s.io/client-go/util/retry
|
||||
k8s.io/client-go/kubernetes/scheme
|
||||
k8s.io/client-go/tools/reference
|
||||
k8s.io/client-go/pkg/version
|
||||
k8s.io/client-go/plugin/pkg/client/auth/exec
|
||||
k8s.io/client-go/rest/watch
|
||||
k8s.io/client-go/tools/metrics
|
||||
k8s.io/client-go/transport
|
||||
k8s.io/client-go/util/cert
|
||||
k8s.io/client-go/tools/reference
|
||||
k8s.io/client-go/util/jsonpath
|
||||
k8s.io/client-go/tools/clientcmd/api/v1
|
||||
k8s.io/client-go/discovery/fake
|
||||
|
|
|
|||
Loading…
Reference in New Issue