mirror of
https://github.com/kubernetes/client-go.git
synced 2025-08-10 19:51:55 +00:00
Merge pull request #100724 from liggitt/eviction-v1beta1
Add policy/v1 Eviction support Kubernetes-commit: 27a625cf8921007eaf115425b6d61587eb253e92
This commit is contained in:
commit
4e267f6cae
2
Godeps/Godeps.json
generated
2
Godeps/Godeps.json
generated
@ -476,7 +476,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/api",
|
"ImportPath": "k8s.io/api",
|
||||||
"Rev": "e55a4a108a76"
|
"Rev": "86cef11b7287"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery",
|
"ImportPath": "k8s.io/apimachinery",
|
||||||
|
@ -8984,6 +8984,22 @@ var schemaYAML = typed.YAMLObject(`types:
|
|||||||
elementType:
|
elementType:
|
||||||
namedType: io.k8s.api.core.v1.Toleration
|
namedType: io.k8s.api.core.v1.Toleration
|
||||||
elementRelationship: atomic
|
elementRelationship: atomic
|
||||||
|
- name: io.k8s.api.policy.v1.Eviction
|
||||||
|
map:
|
||||||
|
fields:
|
||||||
|
- name: apiVersion
|
||||||
|
type:
|
||||||
|
scalar: string
|
||||||
|
- name: deleteOptions
|
||||||
|
type:
|
||||||
|
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions
|
||||||
|
- name: kind
|
||||||
|
type:
|
||||||
|
scalar: string
|
||||||
|
- name: metadata
|
||||||
|
type:
|
||||||
|
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta
|
||||||
|
default: {}
|
||||||
- name: io.k8s.api.policy.v1.PodDisruptionBudget
|
- name: io.k8s.api.policy.v1.PodDisruptionBudget
|
||||||
map:
|
map:
|
||||||
fields:
|
fields:
|
||||||
|
256
applyconfigurations/policy/v1/eviction.go
Normal file
256
applyconfigurations/policy/v1/eviction.go
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
/*
|
||||||
|
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 applyconfiguration-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1
|
||||||
|
|
||||||
|
import (
|
||||||
|
policyv1 "k8s.io/api/policy/v1"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
types "k8s.io/apimachinery/pkg/types"
|
||||||
|
managedfields "k8s.io/apimachinery/pkg/util/managedfields"
|
||||||
|
internal "k8s.io/client-go/applyconfigurations/internal"
|
||||||
|
v1 "k8s.io/client-go/applyconfigurations/meta/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EvictionApplyConfiguration represents an declarative configuration of the Eviction type for use
|
||||||
|
// with apply.
|
||||||
|
type EvictionApplyConfiguration struct {
|
||||||
|
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||||
|
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||||
|
DeleteOptions *v1.DeleteOptionsApplyConfiguration `json:"deleteOptions,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Eviction constructs an declarative configuration of the Eviction type for use with
|
||||||
|
// apply.
|
||||||
|
func Eviction(name, namespace string) *EvictionApplyConfiguration {
|
||||||
|
b := &EvictionApplyConfiguration{}
|
||||||
|
b.WithName(name)
|
||||||
|
b.WithNamespace(namespace)
|
||||||
|
b.WithKind("Eviction")
|
||||||
|
b.WithAPIVersion("policy/v1")
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// ExtractEviction extracts the applied configuration owned by fieldManager from
|
||||||
|
// eviction. If no managedFields are found in eviction for fieldManager, a
|
||||||
|
// EvictionApplyConfiguration is returned with only the Name, Namespace (if applicable),
|
||||||
|
// APIVersion and Kind populated. Is is possible that no managed fields were found for because other
|
||||||
|
// field managers have taken ownership of all the fields previously owned by fieldManager, or because
|
||||||
|
// the fieldManager never owned fields any fields.
|
||||||
|
// eviction must be a unmodified Eviction API object that was retrieved from the Kubernetes API.
|
||||||
|
// ExtractEviction provides a way to perform a extract/modify-in-place/apply workflow.
|
||||||
|
// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously
|
||||||
|
// applied if another fieldManager has updated or force applied any of the previously applied fields.
|
||||||
|
// Experimental!
|
||||||
|
func ExtractEviction(eviction *policyv1.Eviction, fieldManager string) (*EvictionApplyConfiguration, error) {
|
||||||
|
b := &EvictionApplyConfiguration{}
|
||||||
|
err := managedfields.ExtractInto(eviction, internal.Parser().Type("io.k8s.api.policy.v1.Eviction"), fieldManager, b)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
b.WithName(eviction.Name)
|
||||||
|
b.WithNamespace(eviction.Namespace)
|
||||||
|
|
||||||
|
b.WithKind("Eviction")
|
||||||
|
b.WithAPIVersion("policy/v1")
|
||||||
|
return b, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithKind sets the Kind field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the Kind field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithKind(value string) *EvictionApplyConfiguration {
|
||||||
|
b.Kind = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the APIVersion field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithAPIVersion(value string) *EvictionApplyConfiguration {
|
||||||
|
b.APIVersion = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithName sets the Name field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the Name field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithName(value string) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.Name = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the GenerateName field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithGenerateName(value string) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.GenerateName = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithNamespace sets the Namespace field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the Namespace field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithNamespace(value string) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.Namespace = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithSelfLink sets the SelfLink field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the SelfLink field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithSelfLink(value string) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.SelfLink = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithUID sets the UID field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the UID field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithUID(value types.UID) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.UID = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the ResourceVersion field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithResourceVersion(value string) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.ResourceVersion = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithGeneration sets the Generation field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the Generation field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithGeneration(value int64) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.Generation = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the CreationTimestamp field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.CreationTimestamp = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.DeletionTimestamp = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.DeletionGracePeriodSeconds = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithLabels puts the entries into the Labels field in the declarative configuration
|
||||||
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the entries provided by each call will be put on the Labels field,
|
||||||
|
// overwriting an existing map entries in Labels field with the same key.
|
||||||
|
func (b *EvictionApplyConfiguration) WithLabels(entries map[string]string) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
if b.Labels == nil && len(entries) > 0 {
|
||||||
|
b.Labels = make(map[string]string, len(entries))
|
||||||
|
}
|
||||||
|
for k, v := range entries {
|
||||||
|
b.Labels[k] = v
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithAnnotations puts the entries into the Annotations field in the declarative configuration
|
||||||
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the entries provided by each call will be put on the Annotations field,
|
||||||
|
// overwriting an existing map entries in Annotations field with the same key.
|
||||||
|
func (b *EvictionApplyConfiguration) WithAnnotations(entries map[string]string) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
if b.Annotations == nil && len(entries) > 0 {
|
||||||
|
b.Annotations = make(map[string]string, len(entries))
|
||||||
|
}
|
||||||
|
for k, v := range entries {
|
||||||
|
b.Annotations[k] = v
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
|
||||||
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
||||||
|
// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
|
||||||
|
func (b *EvictionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
for i := range values {
|
||||||
|
if values[i] == nil {
|
||||||
|
panic("nil value passed to WithOwnerReferences")
|
||||||
|
}
|
||||||
|
b.OwnerReferences = append(b.OwnerReferences, *values[i])
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
|
||||||
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
||||||
|
// If called multiple times, values provided by each call will be appended to the Finalizers field.
|
||||||
|
func (b *EvictionApplyConfiguration) WithFinalizers(values ...string) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
for i := range values {
|
||||||
|
b.Finalizers = append(b.Finalizers, values[i])
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithClusterName sets the ClusterName field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the ClusterName field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithClusterName(value string) *EvictionApplyConfiguration {
|
||||||
|
b.ensureObjectMetaApplyConfigurationExists()
|
||||||
|
b.ClusterName = &value
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *EvictionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
|
||||||
|
if b.ObjectMetaApplyConfiguration == nil {
|
||||||
|
b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithDeleteOptions sets the DeleteOptions field in the declarative configuration to the given value
|
||||||
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||||
|
// If called multiple times, the DeleteOptions field is set to the value of the last call.
|
||||||
|
func (b *EvictionApplyConfiguration) WithDeleteOptions(value *v1.DeleteOptionsApplyConfiguration) *EvictionApplyConfiguration {
|
||||||
|
b.DeleteOptions = value
|
||||||
|
return b
|
||||||
|
}
|
@ -1139,6 +1139,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
|
|||||||
return &applyconfigurationsnodev1beta1.SchedulingApplyConfiguration{}
|
return &applyconfigurationsnodev1beta1.SchedulingApplyConfiguration{}
|
||||||
|
|
||||||
// Group=policy, Version=v1
|
// Group=policy, Version=v1
|
||||||
|
case policyv1.SchemeGroupVersion.WithKind("Eviction"):
|
||||||
|
return &applyconfigurationspolicyv1.EvictionApplyConfiguration{}
|
||||||
case policyv1.SchemeGroupVersion.WithKind("PodDisruptionBudget"):
|
case policyv1.SchemeGroupVersion.WithKind("PodDisruptionBudget"):
|
||||||
return &applyconfigurationspolicyv1.PodDisruptionBudgetApplyConfiguration{}
|
return &applyconfigurationspolicyv1.PodDisruptionBudgetApplyConfiguration{}
|
||||||
case policyv1.SchemeGroupVersion.WithKind("PodDisruptionBudgetSpec"):
|
case policyv1.SchemeGroupVersion.WithKind("PodDisruptionBudgetSpec"):
|
||||||
|
4
go.mod
4
go.mod
@ -27,7 +27,7 @@ require (
|
|||||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
||||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d
|
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d
|
||||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba
|
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba
|
||||||
k8s.io/api v0.0.0-20210415154719-e55a4a108a76
|
k8s.io/api v0.0.0-20210416194706-86cef11b7287
|
||||||
k8s.io/apimachinery v0.0.0-20210415154527-1ba67c107540
|
k8s.io/apimachinery v0.0.0-20210415154527-1ba67c107540
|
||||||
k8s.io/klog/v2 v2.8.0
|
k8s.io/klog/v2 v2.8.0
|
||||||
k8s.io/utils v0.0.0-20201110183641-67b214c5f920
|
k8s.io/utils v0.0.0-20201110183641-67b214c5f920
|
||||||
@ -36,6 +36,6 @@ require (
|
|||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace (
|
||||||
k8s.io/api => k8s.io/api v0.0.0-20210415154719-e55a4a108a76
|
k8s.io/api => k8s.io/api v0.0.0-20210416194706-86cef11b7287
|
||||||
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20210415154527-1ba67c107540
|
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20210415154527-1ba67c107540
|
||||||
)
|
)
|
||||||
|
2
go.sum
2
go.sum
@ -431,7 +431,7 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh
|
|||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
k8s.io/api v0.0.0-20210415154719-e55a4a108a76/go.mod h1:DHqxvzZf7mMtXnGgywYgvLoyfA2SGsMd1vdGAEcDjbA=
|
k8s.io/api v0.0.0-20210416194706-86cef11b7287/go.mod h1:DHqxvzZf7mMtXnGgywYgvLoyfA2SGsMd1vdGAEcDjbA=
|
||||||
k8s.io/apimachinery v0.0.0-20210415154527-1ba67c107540/go.mod h1:CRK4uy8GKqwLtMa4Gj9i/B2EBjcqOsuvwP2xZJWUwmk=
|
k8s.io/apimachinery v0.0.0-20210415154527-1ba67c107540/go.mod h1:CRK4uy8GKqwLtMa4Gj9i/B2EBjcqOsuvwP2xZJWUwmk=
|
||||||
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
||||||
|
@ -24,7 +24,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
policy "k8s.io/api/policy/v1beta1"
|
policyv1 "k8s.io/api/policy/v1"
|
||||||
|
policyv1beta1 "k8s.io/api/policy/v1beta1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/client-go/kubernetes/scheme"
|
"k8s.io/client-go/kubernetes/scheme"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
@ -78,7 +79,23 @@ func (c *FakePods) GetLogs(name string, opts *v1.PodLogOptions) *restclient.Requ
|
|||||||
return fakeClient.Request()
|
return fakeClient.Request()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakePods) Evict(ctx context.Context, eviction *policy.Eviction) error {
|
func (c *FakePods) Evict(ctx context.Context, eviction *policyv1beta1.Eviction) error {
|
||||||
|
return c.EvictV1beta1(ctx, eviction)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *FakePods) EvictV1(ctx context.Context, eviction *policyv1.Eviction) error {
|
||||||
|
action := core.CreateActionImpl{}
|
||||||
|
action.Verb = "create"
|
||||||
|
action.Namespace = c.ns
|
||||||
|
action.Resource = podsResource
|
||||||
|
action.Subresource = "eviction"
|
||||||
|
action.Object = eviction
|
||||||
|
|
||||||
|
_, err := c.Fake.Invokes(action, eviction)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *FakePods) EvictV1beta1(ctx context.Context, eviction *policyv1beta1.Eviction) error {
|
||||||
action := core.CreateActionImpl{}
|
action := core.CreateActionImpl{}
|
||||||
action.Verb = "create"
|
action.Verb = "create"
|
||||||
action.Namespace = c.ns
|
action.Namespace = c.ns
|
||||||
|
@ -20,7 +20,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
policy "k8s.io/api/policy/v1beta1"
|
policyv1 "k8s.io/api/policy/v1"
|
||||||
|
policyv1beta1 "k8s.io/api/policy/v1beta1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/net"
|
"k8s.io/apimachinery/pkg/util/net"
|
||||||
"k8s.io/client-go/kubernetes/scheme"
|
"k8s.io/client-go/kubernetes/scheme"
|
||||||
@ -30,7 +31,16 @@ import (
|
|||||||
// The PodExpansion interface allows manually adding extra methods to the PodInterface.
|
// The PodExpansion interface allows manually adding extra methods to the PodInterface.
|
||||||
type PodExpansion interface {
|
type PodExpansion interface {
|
||||||
Bind(ctx context.Context, binding *v1.Binding, opts metav1.CreateOptions) error
|
Bind(ctx context.Context, binding *v1.Binding, opts metav1.CreateOptions) error
|
||||||
Evict(ctx context.Context, eviction *policy.Eviction) error
|
// Evict submits a policy/v1beta1 Eviction request to the pod's eviction subresource.
|
||||||
|
// Equivalent to calling EvictV1beta1.
|
||||||
|
// Deprecated: Use EvictV1() (supported in 1.22+) or EvictV1beta1().
|
||||||
|
Evict(ctx context.Context, eviction *policyv1beta1.Eviction) error
|
||||||
|
// EvictV1 submits a policy/v1 Eviction request to the pod's eviction subresource.
|
||||||
|
// Supported in 1.22+.
|
||||||
|
EvictV1(ctx context.Context, eviction *policyv1.Eviction) error
|
||||||
|
// EvictV1beta1 submits a policy/v1beta1 Eviction request to the pod's eviction subresource.
|
||||||
|
// Supported in 1.22+.
|
||||||
|
EvictV1beta1(ctx context.Context, eviction *policyv1beta1.Eviction) error
|
||||||
GetLogs(name string, opts *v1.PodLogOptions) *restclient.Request
|
GetLogs(name string, opts *v1.PodLogOptions) *restclient.Request
|
||||||
ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper
|
ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper
|
||||||
}
|
}
|
||||||
@ -40,7 +50,18 @@ func (c *pods) Bind(ctx context.Context, binding *v1.Binding, opts metav1.Create
|
|||||||
return c.client.Post().Namespace(c.ns).Resource("pods").Name(binding.Name).VersionedParams(&opts, scheme.ParameterCodec).SubResource("binding").Body(binding).Do(ctx).Error()
|
return c.client.Post().Namespace(c.ns).Resource("pods").Name(binding.Name).VersionedParams(&opts, scheme.ParameterCodec).SubResource("binding").Body(binding).Do(ctx).Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *pods) Evict(ctx context.Context, eviction *policy.Eviction) error {
|
// Evict submits a policy/v1beta1 Eviction request to the pod's eviction subresource.
|
||||||
|
// Equivalent to calling EvictV1beta1.
|
||||||
|
// Deprecated: Use EvictV1() (supported in 1.22+) or EvictV1beta1().
|
||||||
|
func (c *pods) Evict(ctx context.Context, eviction *policyv1beta1.Eviction) error {
|
||||||
|
return c.client.Post().Namespace(c.ns).Resource("pods").Name(eviction.Name).SubResource("eviction").Body(eviction).Do(ctx).Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *pods) EvictV1beta1(ctx context.Context, eviction *policyv1beta1.Eviction) error {
|
||||||
|
return c.client.Post().Namespace(c.ns).Resource("pods").Name(eviction.Name).SubResource("eviction").Body(eviction).Do(ctx).Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *pods) EvictV1(ctx context.Context, eviction *policyv1.Eviction) error {
|
||||||
return c.client.Post().Namespace(c.ns).Resource("pods").Name(eviction.Name).SubResource("eviction").Body(eviction).Do(ctx).Error()
|
return c.client.Post().Namespace(c.ns).Resource("pods").Name(eviction.Name).SubResource("eviction").Body(eviction).Do(ctx).Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
48
kubernetes/typed/policy/v1/eviction.go
Normal file
48
kubernetes/typed/policy/v1/eviction.go
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
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 (
|
||||||
|
rest "k8s.io/client-go/rest"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EvictionsGetter has a method to return a EvictionInterface.
|
||||||
|
// A group's client should implement this interface.
|
||||||
|
type EvictionsGetter interface {
|
||||||
|
Evictions(namespace string) EvictionInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
// EvictionInterface has methods to work with Eviction resources.
|
||||||
|
type EvictionInterface interface {
|
||||||
|
EvictionExpansion
|
||||||
|
}
|
||||||
|
|
||||||
|
// evictions implements EvictionInterface
|
||||||
|
type evictions struct {
|
||||||
|
client rest.Interface
|
||||||
|
ns string
|
||||||
|
}
|
||||||
|
|
||||||
|
// newEvictions returns a Evictions
|
||||||
|
func newEvictions(c *PolicyV1Client, namespace string) *evictions {
|
||||||
|
return &evictions{
|
||||||
|
client: c.RESTClient(),
|
||||||
|
ns: namespace,
|
||||||
|
}
|
||||||
|
}
|
40
kubernetes/typed/policy/v1/eviction_expansion.go
Normal file
40
kubernetes/typed/policy/v1/eviction_expansion.go
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 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 (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
policy "k8s.io/api/policy/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// The EvictionExpansion interface allows manually adding extra methods to the ScaleInterface.
|
||||||
|
type EvictionExpansion interface {
|
||||||
|
Evict(ctx context.Context, eviction *policy.Eviction) error
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *evictions) Evict(ctx context.Context, eviction *policy.Eviction) error {
|
||||||
|
return c.client.Post().
|
||||||
|
AbsPath("/api/v1").
|
||||||
|
Namespace(eviction.Namespace).
|
||||||
|
Resource("pods").
|
||||||
|
Name(eviction.Name).
|
||||||
|
SubResource("eviction").
|
||||||
|
Body(eviction).
|
||||||
|
Do(ctx).
|
||||||
|
Error()
|
||||||
|
}
|
25
kubernetes/typed/policy/v1/fake/fake_eviction.go
Normal file
25
kubernetes/typed/policy/v1/fake/fake_eviction.go
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
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 fake
|
||||||
|
|
||||||
|
// FakeEvictions implements EvictionInterface
|
||||||
|
type FakeEvictions struct {
|
||||||
|
Fake *FakePolicyV1
|
||||||
|
ns string
|
||||||
|
}
|
37
kubernetes/typed/policy/v1/fake/fake_eviction_expansion.go
Normal file
37
kubernetes/typed/policy/v1/fake/fake_eviction_expansion.go
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 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 fake
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
policy "k8s.io/api/policy/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
core "k8s.io/client-go/testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (c *FakeEvictions) Evict(ctx context.Context, eviction *policy.Eviction) error {
|
||||||
|
action := core.CreateActionImpl{}
|
||||||
|
action.Verb = "create"
|
||||||
|
action.Namespace = c.ns
|
||||||
|
action.Resource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"}
|
||||||
|
action.Subresource = "eviction"
|
||||||
|
action.Object = eviction
|
||||||
|
|
||||||
|
_, err := c.Fake.Invokes(action, eviction)
|
||||||
|
return err
|
||||||
|
}
|
@ -28,6 +28,10 @@ type FakePolicyV1 struct {
|
|||||||
*testing.Fake
|
*testing.Fake
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *FakePolicyV1) Evictions(namespace string) v1.EvictionInterface {
|
||||||
|
return &FakeEvictions{c, namespace}
|
||||||
|
}
|
||||||
|
|
||||||
func (c *FakePolicyV1) PodDisruptionBudgets(namespace string) v1.PodDisruptionBudgetInterface {
|
func (c *FakePolicyV1) PodDisruptionBudgets(namespace string) v1.PodDisruptionBudgetInterface {
|
||||||
return &FakePodDisruptionBudgets{c, namespace}
|
return &FakePodDisruptionBudgets{c, namespace}
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
|
|
||||||
type PolicyV1Interface interface {
|
type PolicyV1Interface interface {
|
||||||
RESTClient() rest.Interface
|
RESTClient() rest.Interface
|
||||||
|
EvictionsGetter
|
||||||
PodDisruptionBudgetsGetter
|
PodDisruptionBudgetsGetter
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,6 +35,10 @@ type PolicyV1Client struct {
|
|||||||
restClient rest.Interface
|
restClient rest.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *PolicyV1Client) Evictions(namespace string) EvictionInterface {
|
||||||
|
return newEvictions(c, namespace)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *PolicyV1Client) PodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface {
|
func (c *PolicyV1Client) PodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface {
|
||||||
return newPodDisruptionBudgets(c, namespace)
|
return newPodDisruptionBudgets(c, namespace)
|
||||||
}
|
}
|
||||||
|
99
listers/policy/v1/eviction.go
Normal file
99
listers/policy/v1/eviction.go
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
/*
|
||||||
|
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 lister-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1
|
||||||
|
|
||||||
|
import (
|
||||||
|
v1 "k8s.io/api/policy/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
|
"k8s.io/client-go/tools/cache"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EvictionLister helps list Evictions.
|
||||||
|
// All objects returned here must be treated as read-only.
|
||||||
|
type EvictionLister interface {
|
||||||
|
// List lists all Evictions in the indexer.
|
||||||
|
// Objects returned here must be treated as read-only.
|
||||||
|
List(selector labels.Selector) (ret []*v1.Eviction, err error)
|
||||||
|
// Evictions returns an object that can list and get Evictions.
|
||||||
|
Evictions(namespace string) EvictionNamespaceLister
|
||||||
|
EvictionListerExpansion
|
||||||
|
}
|
||||||
|
|
||||||
|
// evictionLister implements the EvictionLister interface.
|
||||||
|
type evictionLister struct {
|
||||||
|
indexer cache.Indexer
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewEvictionLister returns a new EvictionLister.
|
||||||
|
func NewEvictionLister(indexer cache.Indexer) EvictionLister {
|
||||||
|
return &evictionLister{indexer: indexer}
|
||||||
|
}
|
||||||
|
|
||||||
|
// List lists all Evictions in the indexer.
|
||||||
|
func (s *evictionLister) List(selector labels.Selector) (ret []*v1.Eviction, err error) {
|
||||||
|
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
||||||
|
ret = append(ret, m.(*v1.Eviction))
|
||||||
|
})
|
||||||
|
return ret, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Evictions returns an object that can list and get Evictions.
|
||||||
|
func (s *evictionLister) Evictions(namespace string) EvictionNamespaceLister {
|
||||||
|
return evictionNamespaceLister{indexer: s.indexer, namespace: namespace}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EvictionNamespaceLister helps list and get Evictions.
|
||||||
|
// All objects returned here must be treated as read-only.
|
||||||
|
type EvictionNamespaceLister interface {
|
||||||
|
// List lists all Evictions in the indexer for a given namespace.
|
||||||
|
// Objects returned here must be treated as read-only.
|
||||||
|
List(selector labels.Selector) (ret []*v1.Eviction, err error)
|
||||||
|
// Get retrieves the Eviction from the indexer for a given namespace and name.
|
||||||
|
// Objects returned here must be treated as read-only.
|
||||||
|
Get(name string) (*v1.Eviction, error)
|
||||||
|
EvictionNamespaceListerExpansion
|
||||||
|
}
|
||||||
|
|
||||||
|
// evictionNamespaceLister implements the EvictionNamespaceLister
|
||||||
|
// interface.
|
||||||
|
type evictionNamespaceLister struct {
|
||||||
|
indexer cache.Indexer
|
||||||
|
namespace string
|
||||||
|
}
|
||||||
|
|
||||||
|
// List lists all Evictions in the indexer for a given namespace.
|
||||||
|
func (s evictionNamespaceLister) List(selector labels.Selector) (ret []*v1.Eviction, err error) {
|
||||||
|
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
||||||
|
ret = append(ret, m.(*v1.Eviction))
|
||||||
|
})
|
||||||
|
return ret, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get retrieves the Eviction from the indexer for a given namespace and name.
|
||||||
|
func (s evictionNamespaceLister) Get(name string) (*v1.Eviction, error) {
|
||||||
|
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if !exists {
|
||||||
|
return nil, errors.NewNotFound(v1.Resource("eviction"), name)
|
||||||
|
}
|
||||||
|
return obj.(*v1.Eviction), nil
|
||||||
|
}
|
@ -17,3 +17,11 @@ limitations under the License.
|
|||||||
// Code generated by lister-gen. DO NOT EDIT.
|
// Code generated by lister-gen. DO NOT EDIT.
|
||||||
|
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
|
// EvictionListerExpansion allows custom methods to be added to
|
||||||
|
// EvictionLister.
|
||||||
|
type EvictionListerExpansion interface{}
|
||||||
|
|
||||||
|
// EvictionNamespaceListerExpansion allows custom methods to be added to
|
||||||
|
// EvictionNamespaceLister.
|
||||||
|
type EvictionNamespaceListerExpansion interface{}
|
||||||
|
Loading…
Reference in New Issue
Block a user